diff --git a/config/cdrecfg_test.go b/config/cdrecfg_test.go index 3eaf2622d..d58d07564 100644 --- a/config/cdrecfg_test.go +++ b/config/cdrecfg_test.go @@ -81,12 +81,12 @@ func TestCdreCfgClone(t *testing.T) { func TestCdreCfgloadFromJsonCfg(t *testing.T) { var lstcfg, expected CdreCfg - if err := lstcfg.loadFromJsonCfg(nil, utils.INFIELD_SEP, 5); err != nil { + if err := lstcfg.loadFromJsonCfg(nil, utils.INFIELD_SEP, 0); err != nil { t.Error(err) } else if !reflect.DeepEqual(lstcfg, expected) { t.Errorf("Expected: %+v ,recived: %+v", expected, lstcfg) } - if err := lstcfg.loadFromJsonCfg(new(CdreJsonCfg), utils.INFIELD_SEP, 5); err != nil { + if err := lstcfg.loadFromJsonCfg(new(CdreJsonCfg), utils.INFIELD_SEP, 0); err != nil { t.Error(err) } else if !reflect.DeepEqual(lstcfg, expected) { t.Errorf("Expected: %+v ,recived: %+v", expected, lstcfg) @@ -129,7 +129,7 @@ func TestCdreCfgloadFromJsonCfg(t *testing.T) { t.Error(err) } else if jsnCdreCfg, err := jsnCfg.CdreJsonCfgs(); err != nil { t.Error(err) - } else if err = lstcfg.loadFromJsonCfg(jsnCdreCfg[utils.MetaDefault], utils.INFIELD_SEP, 5); err != nil { + } else if err = lstcfg.loadFromJsonCfg(jsnCdreCfg[utils.MetaDefault], utils.INFIELD_SEP, 0); err != nil { t.Error(err) } else if !reflect.DeepEqual(expected, lstcfg) { t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(lstcfg)) diff --git a/config/config_it_test.go b/config/config_it_test.go index 4e550e739..c4666da60 100644 --- a/config/config_it_test.go +++ b/config/config_it_test.go @@ -430,17 +430,17 @@ func testCGRConfigReloadERs(t *testing.T) { flags, _ := utils.FlagsWithParamsFromSlice([]string{"*dryrun"}) flagsDefault, _ := utils.FlagsWithParamsFromSlice([]string{}) content := []*FCTemplate{ - &FCTemplate{Tag: utils.ToR, Path: utils.MetaCgreq + utils.NestingSep + utils.ToR, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true}, - &FCTemplate{Tag: utils.OriginID, Path: utils.MetaCgreq + utils.NestingSep + utils.OriginID, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true}, - &FCTemplate{Tag: utils.RequestType, Path: utils.MetaCgreq + utils.NestingSep + utils.RequestType, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true}, - &FCTemplate{Tag: utils.Tenant, Path: utils.MetaCgreq + utils.NestingSep + utils.Tenant, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true}, - &FCTemplate{Tag: utils.Category, Path: utils.MetaCgreq + utils.NestingSep + utils.Category, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true}, - &FCTemplate{Tag: utils.Account, Path: utils.MetaCgreq + utils.NestingSep + utils.Account, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true}, - &FCTemplate{Tag: utils.Subject, Path: utils.MetaCgreq + utils.NestingSep + utils.Subject, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true}, - &FCTemplate{Tag: utils.Destination, Path: utils.MetaCgreq + utils.NestingSep + utils.Destination, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true}, - &FCTemplate{Tag: utils.SetupTime, Path: utils.MetaCgreq + utils.NestingSep + utils.SetupTime, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true}, - &FCTemplate{Tag: utils.AnswerTime, Path: utils.MetaCgreq + utils.NestingSep + utils.AnswerTime, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true}, - &FCTemplate{Tag: utils.Usage, Path: utils.MetaCgreq + utils.NestingSep + utils.Usage, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true}, + &FCTemplate{Tag: utils.ToR, Path: utils.MetaCgreq + utils.NestingSep + utils.ToR, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, + &FCTemplate{Tag: utils.OriginID, Path: utils.MetaCgreq + utils.NestingSep + utils.OriginID, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, + &FCTemplate{Tag: utils.RequestType, Path: utils.MetaCgreq + utils.NestingSep + utils.RequestType, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, + &FCTemplate{Tag: utils.Tenant, Path: utils.MetaCgreq + utils.NestingSep + utils.Tenant, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, + &FCTemplate{Tag: utils.Category, Path: utils.MetaCgreq + utils.NestingSep + utils.Category, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, + &FCTemplate{Tag: utils.Account, Path: utils.MetaCgreq + utils.NestingSep + utils.Account, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, + &FCTemplate{Tag: utils.Subject, Path: utils.MetaCgreq + utils.NestingSep + utils.Subject, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, + &FCTemplate{Tag: utils.Destination, Path: utils.MetaCgreq + utils.NestingSep + utils.Destination, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, + &FCTemplate{Tag: utils.SetupTime, Path: utils.MetaCgreq + utils.NestingSep + utils.SetupTime, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, + &FCTemplate{Tag: utils.AnswerTime, Path: utils.MetaCgreq + utils.NestingSep + utils.AnswerTime, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, + &FCTemplate{Tag: utils.Usage, Path: utils.MetaCgreq + utils.NestingSep + utils.Usage, Type: utils.MetaVariable, Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, } expAttr := &ERsCfg{ Enabled: true, @@ -566,7 +566,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) { "MaskLen": 0, "NewBranch": false, "Padding": "", - "RoundingDecimals": 0, + "RoundingDecimals": 5, "Strip": "", "Tag": "ToR", "Timezone": "", @@ -591,7 +591,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) { "MaskLen": 0, "NewBranch": false, "Padding": "", - "RoundingDecimals": 0, + "RoundingDecimals": 5, "Strip": "", "Tag": "OriginID", "Timezone": "", @@ -616,7 +616,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) { "MaskLen": 0, "NewBranch": false, "Padding": "", - "RoundingDecimals": 0, + "RoundingDecimals": 5, "Strip": "", "Tag": "RequestType", "Timezone": "", @@ -641,7 +641,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) { "MaskLen": 0, "NewBranch": false, "Padding": "", - "RoundingDecimals": 0, + "RoundingDecimals": 5, "Strip": "", "Tag": "Tenant", "Timezone": "", @@ -666,7 +666,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) { "MaskLen": 0, "NewBranch": false, "Padding": "", - "RoundingDecimals": 0, + "RoundingDecimals": 5, "Strip": "", "Tag": "Category", "Timezone": "", @@ -691,7 +691,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) { "MaskLen": 0, "NewBranch": false, "Padding": "", - "RoundingDecimals": 0, + "RoundingDecimals": 5, "Strip": "", "Tag": "Account", "Timezone": "", @@ -716,7 +716,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) { "MaskLen": 0, "NewBranch": false, "Padding": "", - "RoundingDecimals": 0, + "RoundingDecimals": 5, "Strip": "", "Tag": "Subject", "Timezone": "", @@ -741,7 +741,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) { "MaskLen": 0, "NewBranch": false, "Padding": "", - "RoundingDecimals": 0, + "RoundingDecimals": 5, "Strip": "", "Tag": "Destination", "Timezone": "", @@ -766,7 +766,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) { "MaskLen": 0, "NewBranch": false, "Padding": "", - "RoundingDecimals": 0, + "RoundingDecimals": 5, "Strip": "", "Tag": "SetupTime", "Timezone": "", @@ -791,7 +791,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) { "MaskLen": 0, "NewBranch": false, "Padding": "", - "RoundingDecimals": 0, + "RoundingDecimals": 5, "Strip": "", "Tag": "AnswerTime", "Timezone": "", @@ -816,7 +816,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) { "MaskLen": 0, "NewBranch": false, "Padding": "", - "RoundingDecimals": 0, + "RoundingDecimals": 5, "Strip": "", "Tag": "Usage", "Timezone": "", @@ -844,6 +844,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) { "FailedCallsPrefix": "", "ID": "*default", "ProcessedPath": "/var/spool/cgrates/cdrc/out", + "RowLength": 0, "RunDelay": 0, "SourcePath": "/var/spool/cgrates/cdrc/in", "Tenant": nil, @@ -864,6 +865,7 @@ func testCgrCfgV1ReloadConfigSection(t *testing.T) { "PartialRecordCache": 0, "ID": "file_reader1", "ProcessedPath": "/tmp/ers/out", + "RowLength": 0, "RunDelay": -1., "SourcePath": "/tmp/ers/in", "Tenant": nil, diff --git a/config/config_test.go b/config/config_test.go index 00ff589a8..10aa2af65 100755 --- a/config/config_test.go +++ b/config/config_test.go @@ -482,84 +482,97 @@ func TestCgrCfgJSONLoadCDRS(t *testing.T) { func TestCgrCfgJSONDefaultsCdreProfiles(t *testing.T) { eContentFlds := []*FCTemplate{ { - Tag: "*exp.CGRID", - Path: "*exp.CGRID", - Type: "*variable", - Value: NewRSRParsersMustCompile("~*req.CGRID", true, utils.INFIELD_SEP), + Tag: "*exp.CGRID", + Path: "*exp.CGRID", + Type: "*variable", + Value: NewRSRParsersMustCompile("~*req.CGRID", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, { - Tag: "*exp.RunID", - Path: "*exp.RunID", - Type: "*variable", - Value: NewRSRParsersMustCompile("~*req.RunID", true, utils.INFIELD_SEP), + Tag: "*exp.RunID", + Path: "*exp.RunID", + Type: "*variable", + Value: NewRSRParsersMustCompile("~*req.RunID", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, { - Tag: "*exp.ToR", - Path: "*exp.ToR", - Type: "*variable", - Value: NewRSRParsersMustCompile("~*req.ToR", true, utils.INFIELD_SEP), + Tag: "*exp.ToR", + Path: "*exp.ToR", + Type: "*variable", + Value: NewRSRParsersMustCompile("~*req.ToR", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, { - Tag: "*exp.OriginID", - Path: "*exp.OriginID", - Type: "*variable", - Value: NewRSRParsersMustCompile("~*req.OriginID", true, utils.INFIELD_SEP), + Tag: "*exp.OriginID", + Path: "*exp.OriginID", + Type: "*variable", + Value: NewRSRParsersMustCompile("~*req.OriginID", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, { - Tag: "*exp.RequestType", - Path: "*exp.RequestType", - Type: "*variable", - Value: NewRSRParsersMustCompile("~*req.RequestType", true, utils.INFIELD_SEP), + Tag: "*exp.RequestType", + Path: "*exp.RequestType", + Type: "*variable", + Value: NewRSRParsersMustCompile("~*req.RequestType", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, { - Tag: "*exp.Tenant", - Path: "*exp.Tenant", - Type: "*variable", - Value: NewRSRParsersMustCompile("~*req.Tenant", true, utils.INFIELD_SEP), + Tag: "*exp.Tenant", + Path: "*exp.Tenant", + Type: "*variable", + Value: NewRSRParsersMustCompile("~*req.Tenant", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, { - Tag: "*exp.Category", - Path: "*exp.Category", - Type: "*variable", - Value: NewRSRParsersMustCompile("~*req.Category", true, utils.INFIELD_SEP), + Tag: "*exp.Category", + Path: "*exp.Category", + Type: "*variable", + Value: NewRSRParsersMustCompile("~*req.Category", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, { - Tag: "*exp.Account", - Path: "*exp.Account", - Type: "*variable", - Value: NewRSRParsersMustCompile("~*req.Account", true, utils.INFIELD_SEP), + Tag: "*exp.Account", + Path: "*exp.Account", + Type: "*variable", + Value: NewRSRParsersMustCompile("~*req.Account", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, { - Tag: "*exp.Subject", - Path: "*exp.Subject", - Type: "*variable", - Value: NewRSRParsersMustCompile("~*req.Subject", true, utils.INFIELD_SEP), + Tag: "*exp.Subject", + Path: "*exp.Subject", + Type: "*variable", + Value: NewRSRParsersMustCompile("~*req.Subject", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, { - Tag: "*exp.Destination", - Path: "*exp.Destination", - Type: "*variable", - Value: NewRSRParsersMustCompile("~*req.Destination", true, utils.INFIELD_SEP), + Tag: "*exp.Destination", + Path: "*exp.Destination", + Type: "*variable", + Value: NewRSRParsersMustCompile("~*req.Destination", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, { - Tag: "*exp.SetupTime", - Path: "*exp.SetupTime", - Type: "*variable", - Value: NewRSRParsersMustCompile("~*req.SetupTime", true, utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", + Tag: "*exp.SetupTime", + Path: "*exp.SetupTime", + Type: "*variable", + Value: NewRSRParsersMustCompile("~*req.SetupTime", true, utils.INFIELD_SEP), + Layout: "2006-01-02T15:04:05Z07:00", + RoundingDecimals: 5, }, { - Tag: "*exp.AnswerTime", - Path: "*exp.AnswerTime", - Type: "*variable", - Value: NewRSRParsersMustCompile("~*req.AnswerTime", true, utils.INFIELD_SEP), - Layout: "2006-01-02T15:04:05Z07:00", + Tag: "*exp.AnswerTime", + Path: "*exp.AnswerTime", + Type: "*variable", + Value: NewRSRParsersMustCompile("~*req.AnswerTime", true, utils.INFIELD_SEP), + Layout: "2006-01-02T15:04:05Z07:00", + RoundingDecimals: 5, }, { - Tag: "*exp.Usage", - Path: "*exp.Usage", - Type: "*variable", - Value: NewRSRParsersMustCompile("~*req.Usage", true, utils.INFIELD_SEP), + Tag: "*exp.Usage", + Path: "*exp.Usage", + Type: "*variable", + Value: NewRSRParsersMustCompile("~*req.Usage", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, { Tag: "*exp.Cost", @@ -582,7 +595,7 @@ func TestCgrCfgJSONDefaultsCdreProfiles(t *testing.T) { }, } if !reflect.DeepEqual(cgrCfg.CdreProfiles, eCdreCfg) { - t.Errorf("received: %+v, expecting: %+v", cgrCfg.CdreProfiles, eCdreCfg) + t.Errorf("Expecting: %+v,\nReceived: %+v", utils.ToJSON(eCdreCfg), utils.ToJSON(cgrCfg.CdreProfiles)) } } @@ -1021,51 +1034,62 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Filename: utils.AttributesCsv, Fields: []*FCTemplate{ {Tag: "TenantID", - Path: "Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "Tenant", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "ProfileID", - Path: "ID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "ID", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "Contexts", - Path: "Contexts", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP)}, + Path: "Contexts", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "FilterIDs", - Path: "FilterIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP)}, + Path: "FilterIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "ActivationInterval", - Path: "ActivationInterval", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP)}, + Path: "ActivationInterval", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "AttributeFilterIDs", - Path: "AttributeFilterIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP)}, + Path: "AttributeFilterIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Path", - Path: "Path", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP)}, + Path: "Path", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Type", - Path: "Type", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP)}, + Path: "Type", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Value", - Path: "Value", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP)}, + Path: "Value", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Blocker", - Path: "Blocker", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP)}, + Path: "Blocker", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Weight", - Path: "Weight", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP)}, + Path: "Weight", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, }, }, { @@ -1073,31 +1097,37 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Filename: utils.FiltersCsv, Fields: []*FCTemplate{ {Tag: "Tenant", - Path: "Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "Tenant", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "ID", - Path: "ID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "ID", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "Type", - Path: "Type", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP)}, + Path: "Type", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Element", - Path: "Element", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP)}, + Path: "Element", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Values", - Path: "Values", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP)}, + Path: "Values", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "ActivationInterval", - Path: "ActivationInterval", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP)}, + Path: "ActivationInterval", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, }, }, { @@ -1105,51 +1135,62 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Filename: utils.ResourcesCsv, Fields: []*FCTemplate{ {Tag: "Tenant", - Path: "Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "Tenant", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "ID", - Path: "ID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "ID", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "FilterIDs", - Path: "FilterIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP)}, + Path: "FilterIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "ActivationInterval", - Path: "ActivationInterval", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP)}, + Path: "ActivationInterval", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "TTL", - Path: "UsageTTL", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP)}, + Path: "UsageTTL", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Limit", - Path: "Limit", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP)}, + Path: "Limit", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "AllocationMessage", - Path: "AllocationMessage", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP)}, + Path: "AllocationMessage", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Blocker", - Path: "Blocker", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP)}, + Path: "Blocker", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Stored", - Path: "Stored", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP)}, + Path: "Stored", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Weight", - Path: "Weight", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP)}, + Path: "Weight", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "ThresholdIDs", - Path: "ThresholdIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP)}, + Path: "ThresholdIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, }, }, { @@ -1157,60 +1198,73 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Filename: utils.StatsCsv, Fields: []*FCTemplate{ {Tag: "Tenant", - Path: "Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "Tenant", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "ID", - Path: "ID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "ID", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "FilterIDs", - Path: "FilterIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP)}, + Path: "FilterIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "ActivationInterval", - Path: "ActivationInterval", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP)}, + Path: "ActivationInterval", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "QueueLength", - Path: "QueueLength", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP)}, + Path: "QueueLength", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "TTL", - Path: "TTL", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP)}, + Path: "TTL", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "MinItems", - Path: "MinItems", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP)}, + Path: "MinItems", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "MetricIDs", - Path: "MetricIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP)}, + Path: "MetricIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "MetricFilterIDs", - Path: "MetricFilterIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP)}, + Path: "MetricFilterIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Blocker", - Path: "Blocker", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP)}, + Path: "Blocker", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Stored", - Path: "Stored", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP)}, + Path: "Stored", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Weight", - Path: "Weight", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~11", true, utils.INFIELD_SEP)}, + Path: "Weight", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~11", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "ThresholdIDs", - Path: "ThresholdIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~12", true, utils.INFIELD_SEP)}, + Path: "ThresholdIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~12", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, }, }, { @@ -1218,51 +1272,62 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Filename: utils.ThresholdsCsv, Fields: []*FCTemplate{ {Tag: "Tenant", - Path: "Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "Tenant", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "ID", - Path: "ID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "ID", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "FilterIDs", - Path: "FilterIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP)}, + Path: "FilterIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "ActivationInterval", - Path: "ActivationInterval", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP)}, + Path: "ActivationInterval", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "MaxHits", - Path: "MaxHits", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP)}, + Path: "MaxHits", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "MinHits", - Path: "MinHits", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP)}, + Path: "MinHits", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "MinSleep", - Path: "MinSleep", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP)}, + Path: "MinSleep", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Blocker", - Path: "Blocker", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP)}, + Path: "Blocker", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Weight", - Path: "Weight", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP)}, + Path: "Weight", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "ActionIDs", - Path: "ActionIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP)}, + Path: "ActionIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Async", - Path: "Async", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP)}, + Path: "Async", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, }, }, { @@ -1270,71 +1335,87 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Filename: utils.SuppliersCsv, Fields: []*FCTemplate{ {Tag: "Tenant", - Path: "Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "Tenant", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "ID", - Path: "ID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "ID", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "FilterIDs", - Path: "FilterIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP)}, + Path: "FilterIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "ActivationInterval", - Path: "ActivationInterval", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP)}, + Path: "ActivationInterval", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Sorting", - Path: "Sorting", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP)}, + Path: "Sorting", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "SortingParamameters", - Path: "SortingParamameters", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP)}, + Path: "SortingParamameters", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "SupplierID", - Path: "SupplierID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP)}, + Path: "SupplierID", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "SupplierFilterIDs", - Path: "SupplierFilterIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP)}, + Path: "SupplierFilterIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "SupplierAccountIDs", - Path: "SupplierAccountIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP)}, + Path: "SupplierAccountIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "SupplierRatingPlanIDs", - Path: "SupplierRatingPlanIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP)}, + Path: "SupplierRatingPlanIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "SupplierResourceIDs", - Path: "SupplierResourceIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP)}, + Path: "SupplierResourceIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "SupplierStatIDs", - Path: "SupplierStatIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~11", true, utils.INFIELD_SEP)}, + Path: "SupplierStatIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~11", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "SupplierWeight", - Path: "SupplierWeight", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~12", true, utils.INFIELD_SEP)}, + Path: "SupplierWeight", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~12", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "SupplierBlocker", - Path: "SupplierBlocker", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~13", true, utils.INFIELD_SEP)}, + Path: "SupplierBlocker", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~13", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "SupplierParameters", - Path: "SupplierParameters", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~14", true, utils.INFIELD_SEP)}, + Path: "SupplierParameters", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~14", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Weight", - Path: "Weight", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~15", true, utils.INFIELD_SEP)}, + Path: "Weight", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~15", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, }, }, { @@ -1342,35 +1423,42 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Filename: utils.ChargersCsv, Fields: []*FCTemplate{ {Tag: "Tenant", - Path: "Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "Tenant", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "ID", - Path: "ID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "ID", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "FilterIDs", - Path: "FilterIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP)}, + Path: "FilterIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "ActivationInterval", - Path: "ActivationInterval", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP)}, + Path: "ActivationInterval", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "RunID", - Path: "RunID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP)}, + Path: "RunID", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "AttributeIDs", - Path: "AttributeIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP)}, + Path: "AttributeIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, {Tag: "Weight", - Path: "Weight", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP)}, + Path: "Weight", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP), + RoundingDecimals: 5}, }, }, { @@ -1378,69 +1466,82 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Filename: utils.DispatcherProfilesCsv, Fields: []*FCTemplate{ {Tag: "Tenant", - Path: "Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "Tenant", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "ID", - Path: "ID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "ID", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "Contexts", - Path: "Contexts", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP), + Path: "Contexts", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, {Tag: "FilterIDs", - Path: "FilterIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP), + Path: "FilterIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, {Tag: "ActivationInterval", - Path: "ActivationInterval", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP), + Path: "ActivationInterval", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, {Tag: "Strategy", - Path: "Strategy", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP), + Path: "Strategy", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~5", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, {Tag: "StrategyParameters", - Path: "StrategyParameters", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP), + Path: "StrategyParameters", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~6", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, {Tag: "ConnID", - Path: "ConnID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP), + Path: "ConnID", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~7", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, {Tag: "ConnFilterIDs", - Path: "ConnFilterIDs", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP), + Path: "ConnFilterIDs", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~8", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, {Tag: "ConnWeight", - Path: "ConnWeight", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP), + Path: "ConnWeight", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~9", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, {Tag: "ConnBlocker", - Path: "ConnBlocker", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP), + Path: "ConnBlocker", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~10", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, {Tag: "ConnParameters", - Path: "ConnParameters", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~11", true, utils.INFIELD_SEP), + Path: "ConnParameters", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~11", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, {Tag: "Weight", - Path: "Weight", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~12", true, utils.INFIELD_SEP), + Path: "Weight", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~12", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, }, }, @@ -1449,29 +1550,34 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { Filename: utils.DispatcherHostsCsv, Fields: []*FCTemplate{ {Tag: "Tenant", - Path: "Tenant", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "Tenant", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~0", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "ID", - Path: "ID", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), - Mandatory: true}, + Path: "ID", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~1", true, utils.INFIELD_SEP), + Mandatory: true, + RoundingDecimals: 5}, {Tag: "Address", - Path: "Address", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP), + Path: "Address", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~2", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, {Tag: "Transport", - Path: "Transport", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP), + Path: "Transport", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~3", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, {Tag: "TLS", - Path: "TLS", - Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP), + Path: "TLS", + Type: utils.MetaVariable, + Value: NewRSRParsersMustCompile("~4", true, utils.INFIELD_SEP), + RoundingDecimals: 5, }, }, }, @@ -1479,7 +1585,7 @@ func TestCgrLoaderCfgITDefaults(t *testing.T) { }, } if !reflect.DeepEqual(eCfg, cgrCfg.loaderCfg) { - t.Errorf("received: %+v, \n expecting: %+v", + t.Errorf("Expecting: %+v,\nReceived: %+v", utils.ToJSON(eCfg), utils.ToJSON(cgrCfg.loaderCfg)) } } @@ -1684,27 +1790,27 @@ func TestCgrCdfEventReader(t *testing.T) { Flags: utils.FlagsWithParams{}, Fields: []*FCTemplate{ {Tag: utils.ToR, Path: utils.MetaCgreq + utils.NestingSep + utils.ToR, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.OriginID, Path: utils.MetaCgreq + utils.NestingSep + utils.OriginID, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.RequestType, Path: utils.MetaCgreq + utils.NestingSep + utils.RequestType, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Tenant, Path: utils.MetaCgreq + utils.NestingSep + utils.Tenant, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Category, Path: utils.MetaCgreq + utils.NestingSep + utils.Category, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Account, Path: utils.MetaCgreq + utils.NestingSep + utils.Account, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Subject, Path: utils.MetaCgreq + utils.NestingSep + utils.Subject, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Destination, Path: utils.MetaCgreq + utils.NestingSep + utils.Destination, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.SetupTime, Path: utils.MetaCgreq + utils.NestingSep + utils.SetupTime, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.AnswerTime, Path: utils.MetaCgreq + utils.NestingSep + utils.AnswerTime, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Usage, Path: utils.MetaCgreq + utils.NestingSep + utils.Usage, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, }, CacheDumpFields: []*FCTemplate{}, }, @@ -1731,27 +1837,27 @@ func TestCgrCfgEventReaderDefault(t *testing.T) { Flags: utils.FlagsWithParams{}, Fields: []*FCTemplate{ {Tag: utils.ToR, Path: utils.MetaCgreq + utils.NestingSep + utils.ToR, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.OriginID, Path: utils.MetaCgreq + utils.NestingSep + utils.OriginID, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.RequestType, Path: utils.MetaCgreq + utils.NestingSep + utils.RequestType, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Tenant, Path: utils.MetaCgreq + utils.NestingSep + utils.Tenant, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Category, Path: utils.MetaCgreq + utils.NestingSep + utils.Category, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Account, Path: utils.MetaCgreq + utils.NestingSep + utils.Account, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Subject, Path: utils.MetaCgreq + utils.NestingSep + utils.Subject, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Destination, Path: utils.MetaCgreq + utils.NestingSep + utils.Destination, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.SetupTime, Path: utils.MetaCgreq + utils.NestingSep + utils.SetupTime, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.AnswerTime, Path: utils.MetaCgreq + utils.NestingSep + utils.AnswerTime, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Usage, Path: utils.MetaCgreq + utils.NestingSep + utils.Usage, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, }, CacheDumpFields: make([]*FCTemplate, 0), } diff --git a/config/erscfg_test.go b/config/erscfg_test.go index a4f0d0fd5..daf57dd76 100644 --- a/config/erscfg_test.go +++ b/config/erscfg_test.go @@ -113,27 +113,27 @@ func TestEventReaderLoadFromJSON(t *testing.T) { Flags: utils.FlagsWithParams{}, Fields: []*FCTemplate{ {Tag: utils.ToR, Path: utils.MetaCgreq + utils.NestingSep + utils.ToR, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.OriginID, Path: utils.MetaCgreq + utils.NestingSep + utils.OriginID, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.RequestType, Path: utils.MetaCgreq + utils.NestingSep + utils.RequestType, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Tenant, Path: utils.MetaCgreq + utils.NestingSep + utils.Tenant, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Category, Path: utils.MetaCgreq + utils.NestingSep + utils.Category, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Account, Path: utils.MetaCgreq + utils.NestingSep + utils.Account, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Subject, Path: utils.MetaCgreq + utils.NestingSep + utils.Subject, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Destination, Path: utils.MetaCgreq + utils.NestingSep + utils.Destination, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.SetupTime, Path: utils.MetaCgreq + utils.NestingSep + utils.SetupTime, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.AnswerTime, Path: utils.MetaCgreq + utils.NestingSep + utils.AnswerTime, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Usage, Path: utils.MetaCgreq + utils.NestingSep + utils.Usage, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, }, CacheDumpFields: make([]*FCTemplate, 0), }, @@ -152,27 +152,27 @@ func TestEventReaderLoadFromJSON(t *testing.T) { Flags: utils.FlagsWithParams{}, Fields: []*FCTemplate{ {Tag: utils.ToR, Path: utils.MetaCgreq + utils.NestingSep + utils.ToR, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.OriginID, Path: utils.MetaCgreq + utils.NestingSep + utils.OriginID, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.RequestType, Path: utils.MetaCgreq + utils.NestingSep + utils.RequestType, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Tenant, Path: utils.MetaCgreq + utils.NestingSep + utils.Tenant, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Category, Path: utils.MetaCgreq + utils.NestingSep + utils.Category, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Account, Path: utils.MetaCgreq + utils.NestingSep + utils.Account, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Subject, Path: utils.MetaCgreq + utils.NestingSep + utils.Subject, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Destination, Path: utils.MetaCgreq + utils.NestingSep + utils.Destination, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.SetupTime, Path: utils.MetaCgreq + utils.NestingSep + utils.SetupTime, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.AnswerTime, Path: utils.MetaCgreq + utils.NestingSep + utils.AnswerTime, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Usage, Path: utils.MetaCgreq + utils.NestingSep + utils.Usage, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, }, CacheDumpFields: make([]*FCTemplate, 0), }, @@ -245,27 +245,27 @@ func TestEventReaderSameID(t *testing.T) { Flags: utils.FlagsWithParams{}, Fields: []*FCTemplate{ {Tag: utils.ToR, Path: utils.MetaCgreq + utils.NestingSep + utils.ToR, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.2", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.OriginID, Path: utils.MetaCgreq + utils.NestingSep + utils.OriginID, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.3", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.RequestType, Path: utils.MetaCgreq + utils.NestingSep + utils.RequestType, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.4", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Tenant, Path: utils.MetaCgreq + utils.NestingSep + utils.Tenant, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.6", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Category, Path: utils.MetaCgreq + utils.NestingSep + utils.Category, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.7", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Account, Path: utils.MetaCgreq + utils.NestingSep + utils.Account, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.8", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Subject, Path: utils.MetaCgreq + utils.NestingSep + utils.Subject, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.9", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Destination, Path: utils.MetaCgreq + utils.NestingSep + utils.Destination, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.10", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.SetupTime, Path: utils.MetaCgreq + utils.NestingSep + utils.SetupTime, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.11", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.AnswerTime, Path: utils.MetaCgreq + utils.NestingSep + utils.AnswerTime, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.12", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, {Tag: utils.Usage, Path: utils.MetaCgreq + utils.NestingSep + utils.Usage, Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("~*req.13", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, }, CacheDumpFields: make([]*FCTemplate, 0), }, @@ -285,7 +285,7 @@ func TestEventReaderSameID(t *testing.T) { Flags: utils.FlagsWithParams{}, Fields: []*FCTemplate{ {Tag: "CustomTag2", Path: "CustomPath2", Type: utils.MetaVariable, - Value: NewRSRParsersMustCompile("CustomValue2", true, utils.INFIELD_SEP), Mandatory: true}, + Value: NewRSRParsersMustCompile("CustomValue2", true, utils.INFIELD_SEP), Mandatory: true, RoundingDecimals: 5}, }, CacheDumpFields: make([]*FCTemplate, 0), }, diff --git a/config/fctemplate_test.go b/config/fctemplate_test.go index d81c3e8ef..13f0a5ad6 100755 --- a/config/fctemplate_test.go +++ b/config/fctemplate_test.go @@ -39,7 +39,7 @@ func TestNewFCTemplateFromFCTemplateJsonCfg(t *testing.T) { Filters: []string{"Filter1", "Filter2"}, Value: NewRSRParsersMustCompile("cgrates.org", true, utils.INFIELD_SEP), } - if rcv, err := NewFCTemplateFromFCTemplateJsonCfg(jsonCfg, utils.INFIELD_SEP, 5); err != nil { + if rcv, err := NewFCTemplateFromFCTemplateJsonCfg(jsonCfg, utils.INFIELD_SEP, 0); err != nil { t.Error(err) } else if !reflect.DeepEqual(expected, rcv) { t.Errorf("expected: %s ,received: %s", utils.ToJSON(expected), utils.ToJSON(rcv)) @@ -79,7 +79,7 @@ func TestFCTemplatesFromFCTemplatesJsonCfg(t *testing.T) { Value: NewRSRParsersMustCompile("SampleValue", true, utils.INFIELD_SEP), }, } - if rcv, err := FCTemplatesFromFCTemplatesJsonCfg(jsnCfgs, utils.INFIELD_SEP, 5); err != nil { + if rcv, err := FCTemplatesFromFCTemplatesJsonCfg(jsnCfgs, utils.INFIELD_SEP, 0); err != nil { t.Error(err) } else if !reflect.DeepEqual(expected, rcv) { t.Errorf("expected: %s ,received: %s", utils.ToJSON(expected), utils.ToJSON(rcv)) diff --git a/config/httpagntcfg_test.go b/config/httpagntcfg_test.go index 510ac18f3..f46068ae4 100644 --- a/config/httpagntcfg_test.go +++ b/config/httpagntcfg_test.go @@ -26,12 +26,12 @@ import ( func TestHttpAgentCfgsloadFromJsonCfg(t *testing.T) { var httpcfg, expected HttpAgentCfgs - if err := httpcfg.loadFromJsonCfg(nil, utils.INFIELD_SEP, 5); err != nil { + if err := httpcfg.loadFromJsonCfg(nil, utils.INFIELD_SEP, 0); err != nil { t.Error(err) } else if !reflect.DeepEqual(httpcfg, expected) { t.Errorf("Expected: %+v ,recived: %+v", expected, httpcfg) } - if err := httpcfg.loadFromJsonCfg(new([]*HttpAgentJsonCfg), utils.INFIELD_SEP, 5); err != nil { + if err := httpcfg.loadFromJsonCfg(new([]*HttpAgentJsonCfg), utils.INFIELD_SEP, 0); err != nil { t.Error(err) } else if !reflect.DeepEqual(httpcfg, expected) { t.Errorf("Expected: %+v ,recived: %+v", expected, httpcfg) @@ -86,7 +86,7 @@ func TestHttpAgentCfgsloadFromJsonCfg(t *testing.T) { t.Error(err) } else if jsnhttpCfg, err := jsnCfg.HttpAgentJsonCfg(); err != nil { t.Error(err) - } else if err = httpcfg.loadFromJsonCfg(jsnhttpCfg, utils.INFIELD_SEP, 5); err != nil { + } else if err = httpcfg.loadFromJsonCfg(jsnhttpCfg, utils.INFIELD_SEP, 0); err != nil { t.Error(err) } else if !reflect.DeepEqual(expected, httpcfg) { t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(httpcfg)) @@ -193,7 +193,7 @@ func TestHttpAgentCfgsloadFromJsonCfg(t *testing.T) { t.Error(err) } else if jsnhttpCfg, err := jsnCfg.HttpAgentJsonCfg(); err != nil { t.Error(err) - } else if err = httpcfg.loadFromJsonCfg(jsnhttpCfg, utils.INFIELD_SEP, 5); err != nil { + } else if err = httpcfg.loadFromJsonCfg(jsnhttpCfg, utils.INFIELD_SEP, 0); err != nil { t.Error(err) } else if !reflect.DeepEqual(expected, httpcfg) { t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(httpcfg)) @@ -338,7 +338,7 @@ func TestHttpAgentCfgappendHttpAgntProcCfgs(t *testing.T) { }}, } - if err = initial.appendHttpAgntProcCfgs(proceses, utils.INFIELD_SEP, 5); err != nil { + if err = initial.appendHttpAgntProcCfgs(proceses, utils.INFIELD_SEP, 0); err != nil { t.Error(err) } else if !reflect.DeepEqual(expected, initial) { t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(initial)) diff --git a/config/loaderscfg_test.go b/config/loaderscfg_test.go index 4f933cfda..528eaa92f 100644 --- a/config/loaderscfg_test.go +++ b/config/loaderscfg_test.go @@ -26,12 +26,12 @@ import ( func TestLoaderSCfgloadFromJsonCfg(t *testing.T) { var loadscfg, expected LoaderSCfg - if err := loadscfg.loadFromJsonCfg(nil, utils.INFIELD_SEP, 5); err != nil { + if err := loadscfg.loadFromJsonCfg(nil, utils.INFIELD_SEP, 0); err != nil { t.Error(err) } else if !reflect.DeepEqual(loadscfg, expected) { t.Errorf("Expected: %+v ,recived: %+v", expected, loadscfg) } - if err := loadscfg.loadFromJsonCfg(new(LoaderJsonCfg), utils.INFIELD_SEP, 5); err != nil { + if err := loadscfg.loadFromJsonCfg(new(LoaderJsonCfg), utils.INFIELD_SEP, 0); err != nil { t.Error(err) } else if !reflect.DeepEqual(loadscfg, expected) { t.Errorf("Expected: %+v ,recived: %+v", expected, loadscfg) @@ -96,7 +96,7 @@ func TestLoaderSCfgloadFromJsonCfg(t *testing.T) { t.Error(err) } else if jsnLoadersCfg, err := jsnCfg.LoaderJsonCfg(); err != nil { t.Error(err) - } else if err = loadscfg.loadFromJsonCfg(jsnLoadersCfg[0], utils.INFIELD_SEP, 5); err != nil { + } else if err = loadscfg.loadFromJsonCfg(jsnLoadersCfg[0], utils.INFIELD_SEP, 0); err != nil { t.Error(err) } else if !reflect.DeepEqual(expected, loadscfg) { t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(loadscfg)) diff --git a/sessions/sessions_it_test.go b/sessions/sessions_it_test.go index 361928a6d..e7bdc3700 100644 --- a/sessions/sessions_it_test.go +++ b/sessions/sessions_it_test.go @@ -189,10 +189,10 @@ func testSessionsItTerminatUnexist(t *testing.T) { t.Errorf("Unexpected number of CDRs returned: %v \n cdrs=%s", len(cdrs), utils.ToJSON(cdrs)) } else { if cdrs[0].Usage != "2m0s" { - t.Errorf("Unexpected CDR Usage received, cdr: %v %+v ", cdrs[0].Usage, cdrs[0]) + t.Errorf("Unexpected CDR Usage received, cdr: %v %+v ", cdrs[0].Usage, utils.ToJSON(cdrs[0])) } if cdrs[0].Cost != 0.7002 { - t.Errorf("Unexpected CDR Usage received, cdr: %v %+v ", cdrs[0].Cost, cdrs[0]) + t.Errorf("Unexpected CDR Usage received, cdr: %v %+v ", cdrs[0].Cost, utils.ToJSON(cdrs[0])) } }