Fix validation for Actions, now with shared balances

This commit is contained in:
DanB
2014-02-27 17:38:42 +01:00
parent fc91e35433
commit b9d52c6401
3 changed files with 7 additions and 6 deletions

View File

@@ -514,7 +514,7 @@ func (csvr *CSVReader) LoadSharedGroups() (err error) {
func (csvr *CSVReader) LoadActions() (err error) {
csvReader, fp, err := csvr.readerFunc(csvr.actionsFn, csvr.sep, utils.ACTIONS_NRCOLS)
if err != nil {
log.Print("Could not load action triggers file: ", err)
log.Print("Could not load action file: ", err)
// allow writing of the other values
return nil
}

View File

@@ -203,7 +203,7 @@ var FileValidators = map[string]*FileLineRegexValidator{
regexp.MustCompile(``),
""},
utils.ACTIONS_CSV: &FileLineRegexValidator{utils.ACTIONS_NRCOLS,
regexp.MustCompile(`(?:\w+\s*),(?:\*\w+\s*),(?:\*\w+\s*)?,(?:\*out\s*)?,(?:\d+\s*)?,(?:\*\w+\s*|\+\d+[smh]\s*|\d+\s*)?,(?:\*any|\w+\s*)?,(?:\*?\w+\s*)?,(?:\d+\.?\d*\s*)?,(?:\S+\s*)?,(?:\d+\.?\d*\s*)$`),
regexp.MustCompile(`^(?:\w+\s*),(?:\*\w+\s*),(?:\*\w+\s*)?,(?:\*out\s*)?,(?:\d+\s*)?,(?:\*\w+\s*|\+\d+[smh]\s*|\d+\s*)?,(?:\*any|\w+\s*)?,(?:\*?\w+\s*)?,(?:\w+\s*)?,(?:\d+\.?\d*\s*)?,(?:\S+\s*)?,(?:\d+\.?\d*\s*)$`),
"Tag([0-9A-Za-z_]),Action([0-9A-Za-z_]),BalanceType([*a-z_]),Direction(*out),Units([0-9]),ExpiryTime(*[a-z_]|+[0-9][smh]|[0-9])DestinationTag([0-9A-Za-z_]|*all),RatingSubject([0-9A-Za-z_]),BalanceWeight([0-9.]),ExtraParameters([0-9A-Za-z_:;]),Weight([0-9.])"},
utils.ACTION_PLANS_CSV: &FileLineRegexValidator{utils.ACTION_PLANS_NRCOLS,
regexp.MustCompile(`(?:\w+\s*,\s*){3}(?:\d+\.?\d*){1}`),

View File

@@ -57,11 +57,12 @@ cgrates.org,call,*out,*any,2012-01-01T00:00:00Z,RP_RETAIL,
DUMMY,INVALID;DATA
`
var actionsSample = `#ActionsTag,Action,BalanceType,Direction,Units,ExpiryTime,DestinationTag,RatingSubject,BalanceWeight,ExtraParameters,Weight
var actionsSample = `#ActionsTag,Action,BalanceType,Direction,Units,ExpiryTime,DestinationTag,RatingSubject,BalanceWeight,SharedGroup,ExtraParameters,Weight
PREPAID_10,*topup_reset,*monetary,*out,5,*unlimited,*any,,,10,,10
WARN_HTTP,*call_url,,,,,,,,http://localhost:8000,10
LOG_BALANCE,*log,,,,,,,,,10
WARN_HTTP,*call_url,,,,,,,,,http://localhost:8000,10
LOG_BALANCE,*log,,,,,,,,,,10
DUMMY,INVALID;DATA
PREPAID_10,*topup_reset,*monetary,*out,5,*unlimited,*any,,10,,10
`
var actionTimingsSample = `#Tag,ActionsTag,TimingTag,Weight
@@ -237,7 +238,7 @@ func TestActionsValidator(t *testing.T) {
}
valid := lnValidator.Rule.Match(ln)
switch lineNr {
case 1, 5:
case 1, 5, 6:
if valid {
t.Error("Validation passed for invalid line", string(ln))
}