mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Coverage tests for config, agents, engine
This commit is contained in:
committed by
Dan Christian Bogos
parent
eed5ba2cd5
commit
fba94efc2b
@@ -2190,3 +2190,33 @@ func TestAgReqSetFieldsFromCfg(t *testing.T) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestFieldAsInterface(t *testing.T) {
|
||||
fldPath := []string{utils.MetaOpts, utils.AccountField}
|
||||
ar := &AgentRequest{
|
||||
Request: nil,
|
||||
Vars: &utils.DataNode{},
|
||||
CGRRequest: &utils.OrderedNavigableMap{},
|
||||
diamreq: nil,
|
||||
tmp: &utils.DataNode{},
|
||||
Opts: utils.MapStorage{
|
||||
utils.AccountField: "Field1",
|
||||
},
|
||||
}
|
||||
|
||||
rcv, err := ar.FieldAsInterface(fldPath)
|
||||
rcvExpect := ar.Opts[utils.AccountField]
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv != rcvExpect {
|
||||
t.Errorf("Expected %v but received %v", rcvExpect, rcv)
|
||||
}
|
||||
|
||||
//default case
|
||||
fldPath = []string{utils.MetaNone}
|
||||
_, err = ar.FieldAsInterface(fldPath)
|
||||
errExpect := "unsupported field prefix: <*none>"
|
||||
if err == nil || err.Error() != errExpect {
|
||||
t.Errorf("Expected %v but received %v", errExpect, err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1301,6 +1301,8 @@ func TestConfigSanityEventReader(t *testing.T) {
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
//CacheDumpFields
|
||||
expected = "<ERs> MANDATORY_IE_MISSING: [Path] for at SessionId"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
@@ -1310,6 +1312,79 @@ func TestConfigSanityEventReader(t *testing.T) {
|
||||
if err := cfg.CheckConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.ersCfg.Readers[0].CacheDumpFields[0].Path = "~Field1..Field2[0]"
|
||||
expected = "<ERs> Empty field path for ~Field1..Field2[0] at Path"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.ersCfg.Readers[0].CacheDumpFields[0].Value = RSRParsers{
|
||||
&RSRParser{
|
||||
Rules: "~*req.Session-Id2",
|
||||
path: "~Field1..Field2[0]",
|
||||
},
|
||||
}
|
||||
cfg.ersCfg.Readers[0].CacheDumpFields[0].Path = "~Field1.Field3[0]"
|
||||
cfg.ersCfg.Readers[0].CacheDumpFields[0].Type = utils.MetaUnixTimestamp
|
||||
expected = "<ERs> Empty field path for ~Field1..Field2[0] at Values of cache_dump_fields"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.ersCfg.Readers[0].CacheDumpFields[0].Type = utils.MetaNone
|
||||
cfg.ersCfg.Readers[0].CacheDumpFields[0].Value = RSRParsers{
|
||||
&RSRParser{
|
||||
Rules: "~*req.Session-Id2",
|
||||
path: "~Field1.Field2[0]",
|
||||
},
|
||||
}
|
||||
cfg.ersCfg.Readers[0].CacheDumpFields[0].Filters = []string{"*empty:~Field1..Field2[0]:*Test3:*Test4"}
|
||||
expected = "<ERs> Empty field path for <*empty:~Field1..Field2[0]:*Test3:*Test4> for [*empty:~Field1..Field2[0]:*Test3:*Test4] at cache_dump_fields"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.ersCfg.Readers[0].CacheDumpFields[0].Filters = nil
|
||||
|
||||
//Fields
|
||||
cfg.ersCfg.Readers[0].Fields[0].Path = "~Field1..Field2[0]"
|
||||
expected = "<ERs> Empty field path for ~Field1..Field2[0] at Path"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.ersCfg.Readers[0].Fields[0].Value = RSRParsers{
|
||||
&RSRParser{
|
||||
Rules: "~*req.Session-Id2",
|
||||
path: "~Field1..Field2[0]",
|
||||
},
|
||||
}
|
||||
cfg.ersCfg.Readers[0].Fields[0].Path = "~Field1.Field3[0]"
|
||||
cfg.ersCfg.Readers[0].Fields[0].Type = utils.MetaUnixTimestamp
|
||||
expected = "<ERs> Empty field path for ~Field1..Field2[0] at Values of fields"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.ersCfg.Readers[0].Fields[0].Type = utils.MetaNone
|
||||
cfg.ersCfg.Readers[0].Fields[0].Value = RSRParsers{
|
||||
&RSRParser{
|
||||
Rules: "~*req.Session-Id2",
|
||||
path: "~Field1.Field2[0]",
|
||||
},
|
||||
}
|
||||
cfg.ersCfg.Readers[0].Fields[0].Filters = []string{"*empty:~Field1..Field2[0]:*Test3:*Test4"}
|
||||
expected = "<ERs> Empty field path for <*empty:~Field1..Field2[0]:*Test3:*Test4> for [*empty:~Field1..Field2[0]:*Test3:*Test4] at fields"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.ersCfg.Readers[0].Fields[0].Filters = nil
|
||||
|
||||
cfg.ersCfg.Readers[0].Filters = []string{"*empty:~Field1..Field2[0]:*Test3:*Test4"}
|
||||
expected = "<ERs> Empty field path for <*empty:~Field1..Field2[0]:*Test3:*Test4> for [*empty:~Field1..Field2[0]:*Test3:*Test4] at readers"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigSanityEventExporter(t *testing.T) {
|
||||
@@ -1373,6 +1448,46 @@ func TestConfigSanityEventExporter(t *testing.T) {
|
||||
if err := cfg.CheckConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.eesCfg.Exporters[0].Type = utils.MetaHTTPPost
|
||||
cfg.eesCfg.Exporters[0].Fields[0].Path = "~Field1..Field2[0]"
|
||||
expected = "<EEs> Empty field path for ~Field1..Field2[0] at Path"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.eesCfg.Exporters[0].Fields[0].Value = RSRParsers{
|
||||
&RSRParser{
|
||||
Rules: "~*req.Session-Id2",
|
||||
path: "~Field1..Field2[0]",
|
||||
},
|
||||
}
|
||||
cfg.eesCfg.Exporters[0].Fields[0].Path = "~Field1.Field3[0]"
|
||||
cfg.eesCfg.Exporters[0].Fields[0].Type = utils.MetaUnixTimestamp
|
||||
expected = "<EEs> Empty field path for ~Field1..Field2[0] at Values of fields"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.eesCfg.Exporters[0].Fields[0].Type = utils.MetaNone
|
||||
cfg.eesCfg.Exporters[0].Fields[0].Value = RSRParsers{
|
||||
&RSRParser{
|
||||
Rules: "~*req.Session-Id2",
|
||||
path: "~Field1.Field2[0]",
|
||||
},
|
||||
}
|
||||
cfg.eesCfg.Exporters[0].Fields[0].Filters = []string{"*empty:~Field1..Field2[0]:*Test3:*Test4"}
|
||||
expected = "<EEs> Empty field path for <*empty:~Field1..Field2[0]:*Test3:*Test4> for [*empty:~Field1..Field2[0]:*Test3:*Test4] at fields"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.eesCfg.Exporters[0].Fields[0].Filters = nil
|
||||
|
||||
cfg.eesCfg.Exporters[0].Filters = []string{"*empty:~Field1..Field2[0]:*Test3:*Test4"}
|
||||
expected = "<EEs> Empty field path for <*empty:~Field1..Field2[0]:*Test3:*Test4> for [*empty:~Field1..Field2[0]:*Test3:*Test4] at exporters"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigSanityCache(t *testing.T) {
|
||||
|
||||
@@ -54,6 +54,66 @@ func TestNewCDRFromExternalCDR(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestNewCDRFromExternalCDRErrors(t *testing.T) {
|
||||
extCdr := &ExternalCDR{
|
||||
CGRID: utils.Sha1("dsafdsaf", time.Date(2013, 11, 7, 8, 42, 20, 0, time.UTC).String()),
|
||||
OrderID: 123,
|
||||
ToR: utils.MetaVoice,
|
||||
OriginID: "dsafdsaf",
|
||||
OriginHost: "192.168.1.1",
|
||||
Source: utils.UnitTest,
|
||||
RequestType: utils.MetaRated,
|
||||
Tenant: "cgrates.org",
|
||||
Category: "call",
|
||||
Account: "1001",
|
||||
Subject: "1001",
|
||||
Destination: "1002",
|
||||
SetupTime: "2013-11-07T08:42:20Z",
|
||||
AnswerTime: "2013-11-07T08:42:26Z",
|
||||
RunID: utils.MetaDefault,
|
||||
Usage: "10",
|
||||
Cost: 1.01,
|
||||
PreRated: true,
|
||||
ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"},
|
||||
}
|
||||
|
||||
///
|
||||
extCdr.SetupTime = "invalid"
|
||||
errExpect := "Unsupported time format"
|
||||
if _, err := NewCDRFromExternalCDR(extCdr, ""); err == nil || err.Error() != errExpect {
|
||||
t.Errorf("Expected %v but received %v", errExpect, err)
|
||||
}
|
||||
extCdr.SetupTime = "2013-11-07T08:42:20Z"
|
||||
|
||||
///
|
||||
extCdr.AnswerTime = "invalid"
|
||||
if _, err := NewCDRFromExternalCDR(extCdr, ""); err == nil || err.Error() != errExpect {
|
||||
t.Errorf("Expected %v but received %v", errExpect, err)
|
||||
}
|
||||
extCdr.AnswerTime = "2013-11-07T08:42:20Z"
|
||||
|
||||
///
|
||||
extCdr.CGRID = ""
|
||||
if _, err := NewCDRFromExternalCDR(extCdr, ""); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
extCdr.CGRID = utils.Sha1("dsafdsaf", time.Date(2013, 11, 7, 8, 42, 20, 0, time.UTC).String())
|
||||
|
||||
///
|
||||
extCdr.Usage = "invalid"
|
||||
errExpect = `time: invalid duration "invalid"`
|
||||
if _, err := NewCDRFromExternalCDR(extCdr, ""); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
extCdr.Usage = "10"
|
||||
|
||||
///
|
||||
extCdr.CostDetails = "CostDetail"
|
||||
if _, err := NewCDRFromExternalCDR(extCdr, ""); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCDRClone(t *testing.T) {
|
||||
storCdr := &CDR{CGRID: utils.Sha1("dsafdsaf", time.Date(2013, 11, 7, 8, 42, 20, 0, time.UTC).String()),
|
||||
OrderID: 123, ToR: utils.MetaVoice, OriginID: "dsafdsaf", OriginHost: "192.168.1.1",
|
||||
|
||||
Reference in New Issue
Block a user