diff --git a/agents/dmtagent_it_test.go b/agents/dmtagent_it_test.go index 72a6731b7..1d653f0a3 100644 --- a/agents/dmtagent_it_test.go +++ b/agents/dmtagent_it_test.go @@ -1,3 +1,5 @@ +// +build integration + /* Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments Copyright (C) ITsysCOM GmbH @@ -38,7 +40,7 @@ import ( "github.com/fiorix/go-diameter/diam/dict" ) -var testIntegration = flag.Bool("integration", false, "Perform the tests in integration mode, not by default.") // This flag will be passed here via "go test -local" args +var testIT = flag.Bool("integration", false, "Perform the tests only on local test environment, not by default.") var waitRater = flag.Int("wait_rater", 100, "Number of miliseconds to wait for rater to start and cache") var dataDir = flag.String("data_dir", "/usr/share/cgrates", "CGR data dir path here") var interations = flag.Int("iterations", 1, "Number of iterations to do for dry run simulation") @@ -48,13 +50,11 @@ var daCfgPath string var daCfg *config.CGRConfig var apierRpc *rpc.Client var dmtClient *DiameterClient -var err error + var rplyTimeout time.Duration func TestDmtAgentInitCfg(t *testing.T) { - if !*testIntegration { - return - } + daCfgPath = path.Join(*dataDir, "conf", "samples", "dmtagent") // Init config first var err error @@ -69,9 +69,7 @@ func TestDmtAgentInitCfg(t *testing.T) { // Remove data in both rating and accounting db func TestDmtAgentResetDataDb(t *testing.T) { - if !*testIntegration { - return - } + if err := engine.InitDataDb(daCfg); err != nil { t.Fatal(err) } @@ -79,9 +77,7 @@ func TestDmtAgentResetDataDb(t *testing.T) { // Wipe out the cdr database func TestDmtAgentResetStorDb(t *testing.T) { - if !*testIntegration { - return - } + if err := engine.InitStorDb(daCfg); err != nil { t.Fatal(err) } @@ -89,18 +85,14 @@ func TestDmtAgentResetStorDb(t *testing.T) { // Start CGR Engine func TestDmtAgentStartEngine(t *testing.T) { - if !*testIntegration { - return - } + if _, err := engine.StopStartEngine(daCfgPath, 4000); err != nil { t.Fatal(err) } } func TestDmtAgentCCRAsSMGenericEvent(t *testing.T) { - if !*testIntegration { - return - } + cfgDefaults, _ := config.NewDefaultCGRConfig() loadDictionaries(cfgDefaults.DiameterAgentCfg().DictionariesDir, "UNIT_TEST") time.Sleep(time.Duration(*waitRater) * time.Millisecond) @@ -160,9 +152,7 @@ func TestDmtAgentCCRAsSMGenericEvent(t *testing.T) { } func TestDmtAgentPopulateCCTotalOctets(t *testing.T) { - if !*testIntegration { - return - } + daRP := &config.DARequestProcessor{CCAFields: []*config.CfgCdrField{ &config.CfgCdrField{Tag: "GrantedUnit", FieldFilter: utils.ParseRSRFieldsMustCompile("CGRError(^$)", utils.INFIELD_SEP), FieldId: "Multiple-Services-Credit-Control>Granted-Service-Unit>CC-Time", Type: utils.META_COMPOSED, Value: utils.ParseRSRFieldsMustCompile("CGRMaxUsage", utils.INFIELD_SEP), Mandatory: true}, @@ -193,9 +183,7 @@ func TestDmtAgentPopulateCCTotalOctets(t *testing.T) { // Connect rpc client to rater func TestDmtAgentApierRpcConn(t *testing.T) { - if !*testIntegration { - return - } + var err error apierRpc, err = jsonrpc.Dial("tcp", daCfg.RPCJSONListen) // We connect over JSON so we can also troubleshoot if needed if err != nil { @@ -205,9 +193,7 @@ func TestDmtAgentApierRpcConn(t *testing.T) { // Load the tariff plan, creating accounts and their balances func TestDmtAgentTPFromFolder(t *testing.T) { - if !*testIntegration { - return - } + attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")} var loadInst utils.LoadInstance if err := apierRpc.Call("ApierV2.LoadTariffPlanFromFolder", attrs, &loadInst); err != nil { @@ -217,9 +203,7 @@ func TestDmtAgentTPFromFolder(t *testing.T) { } func TestConnectDiameterClient(t *testing.T) { - if !*testIntegration { - return - } + dmtClient, err = NewDiameterClient(daCfg.DiameterAgentCfg().Listen, "UNIT_TEST", daCfg.DiameterAgentCfg().OriginRealm, daCfg.DiameterAgentCfg().VendorId, daCfg.DiameterAgentCfg().ProductName, utils.DIAMETER_FIRMWARE_REVISION, daCfg.DiameterAgentCfg().DictionariesDir) if err != nil { @@ -229,9 +213,7 @@ func TestConnectDiameterClient(t *testing.T) { // cgr-console 'cost Category="call" Tenant="cgrates.org" Subject="1001" Destination="1004" TimeStart="2015-11-07T08:42:26Z" TimeEnd="2015-11-07T08:47:26Z"' func TestDmtAgentSendCCRInit(t *testing.T) { - if !*testIntegration { - return - } + cdr := &engine.CDR{CGRID: utils.Sha1("testccr1", time.Date(2015, 11, 7, 8, 42, 20, 0, time.UTC).String()), OrderID: 123, ToR: utils.VOICE, OriginID: "testccr1", OriginHost: "192.168.1.1", Source: utils.UNIT_TEST, RequestType: utils.META_RATED, Direction: "*out", Tenant: "cgrates.org", Category: "call", Account: "1001", Subject: "1001", Destination: "1004", Supplier: "SUPPL1", @@ -273,9 +255,7 @@ func TestDmtAgentSendCCRInit(t *testing.T) { // cgr-console 'cost Category="call" Tenant="cgrates.org" Subject="1001" Destination="1004" TimeStart="2015-11-07T08:42:26Z" TimeEnd="2015-11-07T08:52:26Z"' func TestDmtAgentSendCCRUpdate(t *testing.T) { - if !*testIntegration { - return - } + cdr := &engine.CDR{CGRID: utils.Sha1("testccr1", time.Date(2015, 11, 7, 8, 42, 20, 0, time.UTC).String()), OrderID: 123, ToR: utils.VOICE, OriginID: "testccr1", OriginHost: "192.168.1.1", Source: utils.UNIT_TEST, RequestType: utils.META_RATED, Direction: "*out", Tenant: "cgrates.org", Category: "call", Account: "1001", Subject: "1001", Destination: "1004", Supplier: "SUPPL1", @@ -312,9 +292,7 @@ func TestDmtAgentSendCCRUpdate(t *testing.T) { // cgr-console 'cost Category="call" Tenant="cgrates.org" Subject="1001" Destination="1004" TimeStart="2015-11-07T08:42:26Z" TimeEnd="2015-11-07T08:57:26Z"' func TestDmtAgentSendCCRUpdate2(t *testing.T) { - if !*testIntegration { - return - } + cdr := &engine.CDR{CGRID: utils.Sha1("testccr1", time.Date(2015, 11, 7, 8, 42, 20, 0, time.UTC).String()), OrderID: 123, ToR: utils.VOICE, OriginID: "testccr1", OriginHost: "192.168.1.1", Source: utils.UNIT_TEST, RequestType: utils.META_RATED, Direction: "*out", Tenant: "cgrates.org", Category: "call", Account: "1001", Subject: "1001", Destination: "1004", Supplier: "SUPPL1", @@ -350,9 +328,7 @@ func TestDmtAgentSendCCRUpdate2(t *testing.T) { } func TestDmtAgentSendCCRTerminate(t *testing.T) { - if !*testIntegration { - return - } + cdr := &engine.CDR{CGRID: utils.Sha1("testccr1", time.Date(2015, 11, 7, 8, 42, 20, 0, time.UTC).String()), OrderID: 123, ToR: utils.VOICE, OriginID: "testccr1", OriginHost: "192.168.1.1", Source: utils.UNIT_TEST, RequestType: utils.META_RATED, Direction: "*out", Tenant: "cgrates.org", Category: "call", Account: "1001", Subject: "1001", Destination: "1004", Supplier: "SUPPL1", @@ -391,9 +367,7 @@ func TestDmtAgentSendCCRTerminate(t *testing.T) { } func TestDmtAgentSendCCRSMS(t *testing.T) { - if !*testIntegration { - return - } + ccr := diam.NewRequest(diam.CreditControl, 4, nil) ccr.NewAVP(avp.SessionID, avp.Mbit, 0, datatype.UTF8String("testccr2")) ccr.NewAVP(avp.OriginHost, avp.Mbit, 0, datatype.DiameterIdentity("CGR-DA")) @@ -484,9 +458,7 @@ func TestDmtAgentSendCCRSMS(t *testing.T) { } func TestDmtAgentSendCCRSMSWrongAccount(t *testing.T) { - if !*testIntegration { - return - } + ccr := diam.NewRequest(diam.CreditControl, 4, nil) ccr.NewAVP(avp.SessionID, avp.Mbit, 0, datatype.UTF8String("testccr3")) ccr.NewAVP(avp.OriginHost, avp.Mbit, 0, datatype.DiameterIdentity("CGR-DA")) @@ -553,9 +525,7 @@ func TestDmtAgentSendCCRSMSWrongAccount(t *testing.T) { // cgr-console 'cost Category="call" Tenant="cgrates.org" Subject="1001" Destination="1004" TimeStart="2015-11-07T08:42:26Z" TimeEnd="2015-11-07T08:47:26Z"' func TestDmtAgentSendCCRInitWrongAccount(t *testing.T) { - if !*testIntegration { - return - } + cdr := &engine.CDR{CGRID: utils.Sha1("testccr4", time.Date(2015, 11, 7, 8, 42, 20, 0, time.UTC).String()), OrderID: 123, ToR: utils.VOICE, OriginID: "testccr4", OriginHost: "192.168.1.1", Source: utils.UNIT_TEST, RequestType: utils.META_RATED, Direction: "*out", Tenant: "cgrates.org", Category: "call", Account: "non_existent", Subject: "non_existent", Destination: "1004", Supplier: "SUPPL1", @@ -586,9 +556,7 @@ func TestDmtAgentSendCCRInitWrongAccount(t *testing.T) { } func TestDmtAgentSendCCRSimpaEvent(t *testing.T) { - if !*testIntegration { - return - } + ccr := diam.NewRequest(diam.CreditControl, 4, nil) ccr.NewAVP(avp.SessionID, avp.Mbit, 0, datatype.UTF8String("testccr5")) ccr.NewAVP(avp.OriginHost, avp.Mbit, 0, datatype.DiameterIdentity("CGR-DA")) @@ -661,9 +629,7 @@ func TestDmtAgentSendCCRSimpaEvent(t *testing.T) { } func TestDmtAgentCdrs(t *testing.T) { - if !*testIntegration { - return - } + var cdrs []*engine.ExternalCDR req := utils.RPCCDRsFilter{RunIDs: []string{utils.META_DEFAULT}, ToRs: []string{utils.VOICE}} if err := apierRpc.Call("ApierV2.GetCdrs", req, &cdrs); err != nil { @@ -681,9 +647,7 @@ func TestDmtAgentCdrs(t *testing.T) { } func TestDmtAgentSendDataGrpInit(t *testing.T) { - if !*testIntegration { - return - } + ccr := diam.NewRequest(diam.CreditControl, 4, nil) ccr.NewAVP(avp.SessionID, avp.Mbit, 0, datatype.UTF8String("testdatagrp")) ccr.NewAVP(avp.OriginHost, avp.Mbit, 0, datatype.DiameterIdentity("CGR-DA")) @@ -749,9 +713,7 @@ func TestDmtAgentSendDataGrpInit(t *testing.T) { } func TestDmtAgentSendDataGrpUpdate(t *testing.T) { - if !*testIntegration { - return - } + ccr := diam.NewRequest(diam.CreditControl, 4, nil) ccr.NewAVP(avp.SessionID, avp.Mbit, 0, datatype.UTF8String("testdatagrp")) ccr.NewAVP(avp.OriginHost, avp.Mbit, 0, datatype.DiameterIdentity("CGR-DA")) @@ -843,9 +805,7 @@ func TestDmtAgentSendDataGrpUpdate(t *testing.T) { } func TestDmtAgentSendDataGrpTerminate(t *testing.T) { - if !*testIntegration { - return - } + ccr := diam.NewRequest(diam.CreditControl, 4, nil) ccr.NewAVP(avp.SessionID, avp.Mbit, 0, datatype.UTF8String("testdatagrp")) ccr.NewAVP(avp.OriginHost, avp.Mbit, 0, datatype.DiameterIdentity("CGR-DA")) @@ -923,9 +883,7 @@ func TestDmtAgentSendDataGrpTerminate(t *testing.T) { } func TestDmtAgentSendDataGrpCDRs(t *testing.T) { - if !*testIntegration { - return - } + var cdrs []*engine.ExternalCDR req := utils.RPCCDRsFilter{CGRIDs: []string{utils.Sha1("testdatagrp")}} if err := apierRpc.Call("ApierV2.GetCdrs", req, &cdrs); err != nil { @@ -937,9 +895,7 @@ func TestDmtAgentSendDataGrpCDRs(t *testing.T) { /* func TestDmtAgentDryRun1(t *testing.T) { - if !*testIntegration { - return - } + ccr := diam.NewRequest(diam.CreditControl, 4, nil) ccr.NewAVP(avp.SessionID, avp.Mbit, 0, datatype.UTF8String("cgrates;1451911932;00082")) ccr.NewAVP(avp.OriginHost, avp.Mbit, 0, datatype.DiameterIdentity("CGR-DA")) @@ -971,9 +927,7 @@ func TestDmtAgentDryRun1(t *testing.T) { */ func TestDmtAgentDryRun1(t *testing.T) { - if !*testIntegration { - return - } + ccr := diam.NewRequest(diam.CreditControl, 4, nil) ccr.NewAVP(avp.SessionID, avp.Mbit, 0, datatype.UTF8String("cgrates;1451911932;00082")) ccr.NewAVP(avp.OriginHost, avp.Mbit, 0, datatype.DiameterIdentity("CGR-DA")) @@ -1049,9 +1003,7 @@ func TestDmtAgentDryRun1(t *testing.T) { /* func TestDmtAgentLoadCER(t *testing.T) { - if !*testIntegration { - return - } + m := diam.NewRequest(diam.CapabilitiesExchange, 4, dict.Default) m.NewAVP(avp.OriginHost, avp.Mbit, 0, datatype.DiameterIdentity("CGR-DA")) m.NewAVP(avp.OriginRealm, avp.Mbit, 0, datatype.DiameterIdentity("cgrates.org")) @@ -1073,9 +1025,7 @@ func TestDmtAgentLoadCER(t *testing.T) { */ func TestDmtAgentStopEngine(t *testing.T) { - if !*testIntegration { - return - } + if err := engine.KillEngine(*waitRater); err != nil { t.Error(err) } diff --git a/agents/libdmt_test.go b/agents/libdmt_test.go index 6aade7d93..7cfdb8dcf 100644 --- a/agents/libdmt_test.go +++ b/agents/libdmt_test.go @@ -35,6 +35,8 @@ import ( "github.com/fiorix/go-diameter/diam/dict" ) +var err error + func TestDisectUsageForCCR(t *testing.T) { if reqType, reqNr, reqCCTime, usedCCTime := disectUsageForCCR(time.Duration(0)*time.Second, time.Duration(300)*time.Second, false); reqType != 1 || reqNr != 0 || reqCCTime != 300 || usedCCTime != 0 { t.Error(reqType, reqNr, reqCCTime, usedCCTime) diff --git a/cdrc/flatstore_it_test.go b/cdrc/flatstore_it_test.go index 0d84a40d6..2d32e2c74 100644 --- a/cdrc/flatstore_it_test.go +++ b/cdrc/flatstore_it_test.go @@ -136,7 +136,7 @@ func TestFlatstoreitProcessFiles(t *testing.T) { t.Fatal(err) } } - time.Sleep(time.Duration(2) * time.Second) // Give time for processing to happen and the .unparired file to be written + time.Sleep(time.Duration(3) * time.Second) // Give time for processing to happen and the .unparired file to be written filesInDir, _ := ioutil.ReadDir(flatstoreCdrcCfg.CdrInDir) if len(filesInDir) != 0 { t.Errorf("Files in cdrcInDir: %+v", filesInDir) diff --git a/engine/actions_test.go b/engine/actions_test.go index b708d4e73..0c0e46433 100644 --- a/engine/actions_test.go +++ b/engine/actions_test.go @@ -29,6 +29,7 @@ import ( "github.com/cgrates/cgrates/utils" ) +var err error var ( //referenceDate = time.Date(2013, 7, 10, 10, 30, 0, 0, time.Local) //referenceDate = time.Date(2013, 12, 31, 23, 59, 59, 0, time.Local) diff --git a/engine/storage_cdrs_it_test.go b/engine/storage_cdrs_it_test.go index 9d662538d..f4a083eae 100644 --- a/engine/storage_cdrs_it_test.go +++ b/engine/storage_cdrs_it_test.go @@ -1,3 +1,5 @@ +// +build integration + /* Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments Copyright (C) ITsysCOM GmbH @@ -19,7 +21,6 @@ package engine import ( "errors" - "flag" "fmt" "path" "strconv" @@ -30,12 +31,8 @@ import ( "github.com/cgrates/cgrates/utils" ) -var testIntegration = flag.Bool("integration", false, "Perform the tests in integration mode, not by default.") // This flag will be passed here via "go test -local" args - func TestITCDRsMySQL(t *testing.T) { - if !*testIntegration { - return - } + cfg, err := config.NewCGRConfigFromFolder(path.Join(*dataDir, "conf", "samples", "storage", "mysql")) if err != nil { t.Error(err) @@ -52,9 +49,7 @@ func TestITCDRsMySQL(t *testing.T) { } func TestITCDRsPSQL(t *testing.T) { - if !*testIntegration { - return - } + cfg, err := config.NewCGRConfigFromFolder(path.Join(*dataDir, "conf", "samples", "storage", "postgres")) if err != nil { t.Error(err) @@ -71,9 +66,7 @@ func TestITCDRsPSQL(t *testing.T) { } func TestITCDRsMongo(t *testing.T) { - if !*testIntegration { - return - } + cfg, err := config.NewCGRConfigFromFolder(path.Join(*dataDir, "conf", "samples", "storage", "mongo")) if err != nil { t.Error(err) diff --git a/engine/storage_mongo_it_test.go b/engine/storage_mongo_it_test.go index a28372c2e..1fa5b8d7d 100644 --- a/engine/storage_mongo_it_test.go +++ b/engine/storage_mongo_it_test.go @@ -1,3 +1,5 @@ +// +build integration + /* Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments Copyright (C) ITsysCOM GmbH @@ -29,9 +31,7 @@ import ( var mgoITDB *MongoStorage func TestMGOitConnect(t *testing.T) { - if !*testIntegration { - return - } + var err error cdrsMongoCfgPath := path.Join(*dataDir, "conf", "samples", "cdrsv2mongo") mgoITCfg, err := config.NewCGRConfigFromFolder(cdrsMongoCfgPath) @@ -45,18 +45,14 @@ func TestMGOitConnect(t *testing.T) { } func TestMGOitFlush(t *testing.T) { - if !*testIntegration { - return - } + if err := mgoITDB.Flush(""); err != nil { t.Error(err) } } func TestMGOitSetReqFilterIndexes(t *testing.T) { - if !*testIntegration { - return - } + idxes := map[string]map[string]utils.StringMap{ "Account": map[string]utils.StringMap{ "1001": utils.StringMap{ @@ -88,9 +84,7 @@ func TestMGOitSetReqFilterIndexes(t *testing.T) { } func TestMGOitGetReqFilterIndexes(t *testing.T) { - if !*testIntegration { - return - } + eIdxes := map[string]map[string]utils.StringMap{ "Account": map[string]utils.StringMap{ "1001": utils.StringMap{ @@ -127,9 +121,7 @@ func TestMGOitGetReqFilterIndexes(t *testing.T) { } func TestMGOitMatchReqFilterIndex(t *testing.T) { - if !*testIntegration { - return - } + eMp := utils.StringMap{ "RL1": true, "RL2": true, diff --git a/engine/storage_redis_it_test.go b/engine/storage_redis_it_test.go index 97a3b5636..4eacab267 100644 --- a/engine/storage_redis_it_test.go +++ b/engine/storage_redis_it_test.go @@ -1,3 +1,5 @@ +// +build integration + /* Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments Copyright (C) ITsysCOM GmbH @@ -27,12 +29,9 @@ import ( ) var rds *RedisStorage -var err error func TestRDSitConnectRedis(t *testing.T) { - if !*testIntegration { - return - } + cfg, _ := config.NewDefaultCGRConfig() rds, err = NewRedisStorage(fmt.Sprintf("%s:%s", cfg.TpDbHost, cfg.TpDbPort), 4, cfg.TpDbPass, cfg.DBDataEncoding, utils.REDIS_MAX_CONNS, nil, 1) if err != nil { @@ -41,9 +40,7 @@ func TestRDSitConnectRedis(t *testing.T) { } func TestRDSitFlush(t *testing.T) { - if !*testIntegration { - return - } + if err := rds.Flush(""); err != nil { t.Error("Failed to Flush redis database", err.Error()) } @@ -51,9 +48,7 @@ func TestRDSitFlush(t *testing.T) { } func TestRDSitSetGetDerivedCharges(t *testing.T) { - if !*testIntegration { - return - } + keyCharger1 := utils.ConcatenatedKey("*out", "cgrates.org", "call", "dan", "dan") charger1 := &utils.DerivedChargers{Chargers: []*utils.DerivedCharger{ &utils.DerivedCharger{RunID: "extra1", RequestTypeField: "^prepaid", DirectionField: "*default", TenantField: "*default", CategoryField: "*default", @@ -79,9 +74,7 @@ func TestRDSitSetGetDerivedCharges(t *testing.T) { } func TestRDSitSetReqFilterIndexes(t *testing.T) { - if !*testIntegration { - return - } + idxes := map[string]map[string]utils.StringMap{ "Account": map[string]utils.StringMap{ "1001": utils.StringMap{ @@ -113,9 +106,7 @@ func TestRDSitSetReqFilterIndexes(t *testing.T) { } func TestRDSitGetReqFilterIndexes(t *testing.T) { - if !*testIntegration { - return - } + eIdxes := map[string]map[string]utils.StringMap{ "Account": map[string]utils.StringMap{ "1001": utils.StringMap{ @@ -152,9 +143,7 @@ func TestRDSitGetReqFilterIndexes(t *testing.T) { } func TestRDSitMatchReqFilterIndex(t *testing.T) { - if !*testIntegration { - return - } + eMp := utils.StringMap{ "RL1": true, "RL2": true,