diff --git a/engine/suretax_test.go b/engine/suretax_test.go index 572df5515..fdf06758b 100644 --- a/engine/suretax_test.go +++ b/engine/suretax_test.go @@ -84,3 +84,143 @@ func TestNewSureTaxRequest(t *testing.T) { t.Errorf("Expecting:\n%s\nReceived:\n%s", string(eSureTaxRequest.Request), string(stReq.Request)) } } + +func TestSuretaxNewSureTaxRequestNilCfg(t *testing.T) { + CGRID := utils.Sha1("testOriginID", time.Date(2021, 1, 1, 8, 42, 20, 0, time.UTC).String()) + cdr := &CDR{CGRID: CGRID, + OrderID: 123, + ToR: utils.MetaVoice, + OriginID: "testOriginID", + OriginHost: "192.168.1.1", + Source: utils.UnitTest, + RequestType: utils.MetaRated, + Tenant: "cgrates.org", + Category: "call", + Account: "1001", + Subject: "1001", + Destination: "1002", + SetupTime: time.Date(2021, 1, 1, 8, 42, 20, 0, time.UTC), + AnswerTime: time.Date(2021, 1, 1, 8, 42, 26, 0, time.UTC), + RunID: utils.MetaDefault, + Usage: 12 * time.Second, + ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"}, + Cost: 1.01, PreRated: true, + } + var stCfg *config.SureTaxCfg + + experr := "invalid SureTax config" + stReq, err := NewSureTaxRequest(cdr, stCfg) + + if err == nil || err.Error() != experr { + t.Fatalf("\nExpected: %q, \nReceived: %q", experr, err) + } + + if stReq != nil { + t.Errorf("\nExpected: <%+v>, \nReceived: <%+v>", + nil, stReq) + } +} + +func TestSuretaxNewSureTaxRequestInvalidUnits(t *testing.T) { + CGRID := utils.Sha1("testOriginID", time.Date(2021, 1, 1, 8, 42, 20, 0, time.UTC).String()) + cdr := &CDR{CGRID: CGRID, OrderID: 123, ToR: utils.MetaVoice, + OriginID: "testOriginID", OriginHost: "192.168.1.1", + Source: utils.UnitTest, RequestType: utils.MetaRated, + Tenant: "cgrates.org", Category: "call", Account: "1001", + Subject: "1001", Destination: "1002", + SetupTime: time.Date(2021, 1, 1, 8, 42, 20, 0, time.UTC), + AnswerTime: time.Date(2021, 1, 1, 8, 42, 26, 0, time.UTC), + RunID: utils.MetaDefault, + Usage: 12 * time.Second, + ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"}, + Cost: 1.01, PreRated: true, + } + cfg := config.NewDefaultCGRConfig() + stCfg := cfg.SureTaxCfg() + stCfg.Units = nil + stCfg.ClientNumber = "000000000" + stCfg.ValidationKey = "19491161-F004-4F44-BDB3-E976D6739A64" + stCfg.Timezone = time.UTC + experr := "strconv.ParseInt: parsing \"\": invalid syntax" + stReq, err := NewSureTaxRequest(cdr, stCfg) + + if err == nil || err.Error() != experr { + t.Fatalf("\nExpected: %q, \nReceived: %q", experr, err) + } + + if stReq != nil { + t.Errorf("\nExpected: <%+v>, \nReceived: <%+v>", + nil, stReq) + } +} + +// func TestSuretaxNewSureTaxRequest3(t *testing.T) { +// CGRID := utils.Sha1("testOriginID", time.Date(2013, 11, 7, 8, 42, 20, 0, time.UTC).String()) +// cdr := &CDR{ +// CGRID: CGRID, +// OrderID: 123, +// ToR: utils.MetaVoice, +// OriginID: "testOriginID", +// OriginHost: "192.168.1.1", +// Source: utils.UnitTest, +// RequestType: utils.MetaRated, +// Tenant: "cgrates.org", +// Category: "call", +// Account: "1001", +// Subject: "1001", +// Destination: "1002", +// SetupTime: time.Date(2013, 11, 7, 8, 42, 20, 0, time.UTC), +// AnswerTime: time.Date(2013, 11, 7, 8, 42, 26, 0, time.UTC), +// RunID: utils.MetaDefault, +// Usage: 12 * time.Second, +// ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"}, +// Cost: 1.01, PreRated: true, +// } +// cfg := config.NewDefaultCGRConfig() +// stCfg := cfg.SureTaxCfg() +// stCfg.ClientNumber = "000000000" +// stCfg.ValidationKey = "19491161-F004-4F44-BDB3-E976D6739A64" +// stCfg.Timezone = time.UTC + +// experr := "" +// stReq, err := NewSureTaxRequest(cdr, stCfg) + +// if err == nil || err.Error() != experr { +// t.Fatalf("\nExpected: %q, \nReceived: %q", experr, err) +// } + +// if stReq != nil { +// t.Errorf("\nExpected: <%+v>, \nReceived: <%+v>", nil, stReq) +// } +// } + +func TestSuretaxSureTaxProcessCdrPostFail(t *testing.T) { + CGRID := utils.Sha1("testOriginID", time.Date(2021, 1, 1, 8, 42, 20, 0, time.UTC).String()) + cdr := &CDR{ + CGRID: CGRID, + OrderID: 123, + ToR: utils.MetaVoice, + OriginID: "testOriginID", + OriginHost: "192.168.1.1", + Source: utils.UnitTest, + RequestType: utils.MetaRated, + Tenant: "cgrates.org", + Category: "call", + Account: "1001", + Subject: "1001", + Destination: "1002", + SetupTime: time.Date(2021, 1, 1, 8, 42, 20, 0, time.UTC), + AnswerTime: time.Date(2021, 1, 1, 8, 42, 26, 0, time.UTC), + RunID: utils.MetaDefault, + Usage: 12 * time.Second, + ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"}, + Cost: 1.01, PreRated: true, + } + + experr := `Post "": unsupported protocol scheme ""` + err := SureTaxProcessCdr(cdr) + + if err == nil || err.Error() != experr { + t.Errorf("\nExpected: %q, \nReceived: %q", experr, err) + } +}