From 9168eacc39016ff597f3efb557c902b2d3c92fec Mon Sep 17 00:00:00 2001 From: DanB Date: Tue, 10 Nov 2015 13:49:38 +0100 Subject: [PATCH] Various test improvements --- apier/v1/smgenericv1_it_test.go | 4 +- general_tests/multiplecdrc_local_test.go | 18 ++++----- general_tests/tut_smgeneric_it_test.go | 50 ++---------------------- general_tests/tutorial_fs_calls_test.go | 32 +++++++-------- general_tests/tutorial_local_test.go | 3 +- 5 files changed, 32 insertions(+), 75 deletions(-) diff --git a/apier/v1/smgenericv1_it_test.go b/apier/v1/smgenericv1_it_test.go index 995e31115..51534ee57 100644 --- a/apier/v1/smgenericv1_it_test.go +++ b/apier/v1/smgenericv1_it_test.go @@ -83,7 +83,7 @@ func TestSMGV1StartEngine(t *testing.T) { } // Connect rpc client to rater -func TestsmgV1RpcConn(t *testing.T) { +func TestSMGV1RpcConn(t *testing.T) { if !*testLocal { return } @@ -115,7 +115,7 @@ func TestSMGV1CacheStats(t *testing.T) { } var rcvStats *utils.CacheStats - expectedStats := &utils.CacheStats{Destinations: 4, RatingPlans: 3, RatingProfiles: 8, Actions: 7, SharedGroups: 1, Aliases: 1, + expectedStats := &utils.CacheStats{Destinations: 4, RatingPlans: 3, RatingProfiles: 8, Actions: 7, ActionPlans: 4, SharedGroups: 1, Aliases: 1, DerivedChargers: 1, LcrProfiles: 5, CdrStats: 6, Users: 3, LastLoadId: smgV1LoadInst.LoadId, LastLoadTime: smgV1LoadInst.LoadTime.Format(time.RFC3339)} var args utils.AttrCacheStats if err := smgV1Rpc.Call("ApierV2.GetCacheStats", args, &rcvStats); err != nil { diff --git a/general_tests/multiplecdrc_local_test.go b/general_tests/multiplecdrc_local_test.go index f651e2a7c..65f57be6c 100644 --- a/general_tests/multiplecdrc_local_test.go +++ b/general_tests/multiplecdrc_local_test.go @@ -66,7 +66,7 @@ func stopEngine() error { return nil } -func TestLoadConfig(t *testing.T) { +func TestMCDRCLoadConfig(t *testing.T) { if !*testLocal { return } @@ -77,7 +77,7 @@ func TestLoadConfig(t *testing.T) { } } -func TestEmptyTables(t *testing.T) { +func TestMCDRCEmptyTables(t *testing.T) { if !*testLocal { return } @@ -99,7 +99,7 @@ func TestEmptyTables(t *testing.T) { } } -func TestCreateCdrDirs(t *testing.T) { +func TestMCDRCCreateCdrDirs(t *testing.T) { if !*testLocal { return } @@ -118,11 +118,11 @@ func TestCreateCdrDirs(t *testing.T) { } // Connect rpc client to rater -func TestRpcConn(t *testing.T) { +func TestMCDRCRpcConn(t *testing.T) { if !*testLocal { return } - startEngine() + //startEngine() var err error rater, err = jsonrpc.Dial("tcp", cfg.RPCJSONListen) // We connect over JSON so we can also troubleshoot if needed if err != nil { @@ -131,7 +131,7 @@ func TestRpcConn(t *testing.T) { } // Test here LoadTariffPlanFromFolder -func TestApierLoadTariffPlanFromFolder(t *testing.T) { +func TestMCDRCApierLoadTariffPlanFromFolder(t *testing.T) { if !*testLocal { return } @@ -147,7 +147,7 @@ func TestApierLoadTariffPlanFromFolder(t *testing.T) { } // The default scenario, out of cdrc defined in .cfg file -func TestHandleCdr1File(t *testing.T) { +func TestMCDRCHandleCdr1File(t *testing.T) { if !*testLocal { return } @@ -165,7 +165,7 @@ dbafe9c8614c785a65aabd116dd3959c3c56f7f7,default,*voice,dsafdsag,rated,*out,cgra } // Scenario out of first .xml config -func TestHandleCdr2File(t *testing.T) { +func TestMCDRCHandleCdr2File(t *testing.T) { if !*testLocal { return } @@ -183,7 +183,7 @@ func TestHandleCdr2File(t *testing.T) { } // Scenario out of second .xml config -func TestHandleCdr3File(t *testing.T) { +func TestMCDRCHandleCdr3File(t *testing.T) { if !*testLocal { return } diff --git a/general_tests/tut_smgeneric_it_test.go b/general_tests/tut_smgeneric_it_test.go index 50ff280cc..0f666f5e7 100644 --- a/general_tests/tut_smgeneric_it_test.go +++ b/general_tests/tut_smgeneric_it_test.go @@ -19,16 +19,13 @@ along with this program. If not, see package general_tests import ( - "encoding/json" "net/rpc" "net/rpc/jsonrpc" "path" "reflect" - "strings" "testing" "time" - "github.com/cgrates/cgrates/apier/v1" "github.com/cgrates/cgrates/config" "github.com/cgrates/cgrates/engine" "github.com/cgrates/cgrates/utils" @@ -117,7 +114,7 @@ func TestTutSMGCacheStats(t *testing.T) { } var rcvStats *utils.CacheStats - expectedStats := &utils.CacheStats{Destinations: 4, RatingPlans: 3, RatingProfiles: 8, Actions: 7, SharedGroups: 1, Aliases: 1, + expectedStats := &utils.CacheStats{Destinations: 4, RatingPlans: 3, RatingProfiles: 8, Actions: 7, ActionPlans: 4, SharedGroups: 1, Aliases: 1, DerivedChargers: 1, LcrProfiles: 5, CdrStats: 6, Users: 3, LastLoadId: smgLoadInst.LoadId, LastLoadTime: smgLoadInst.LoadTime.Format(time.RFC3339)} var args utils.AttrCacheStats if err := tutSMGRpc.Call("ApierV2.GetCacheStats", args, &rcvStats); err != nil { @@ -127,6 +124,7 @@ func TestTutSMGCacheStats(t *testing.T) { } } +/* // Make sure account was debited properly func TestTutSMGAccountsBefore(t *testing.T) { if !*testLocal { @@ -170,49 +168,7 @@ func TestTutSMGAccountsBefore(t *testing.T) { } } -// Make sure all stats queues are in place -func TestTutSMGCdrStatsBefore(t *testing.T) { - if !*testLocal { - return - } - var statMetrics map[string]float64 - eMetrics := map[string]float64{engine.ACD: -1, engine.ASR: -1, engine.TCC: -1, engine.TCD: -1, engine.ACC: -1} - if err := tutSMGRpc.Call("CDRStatsV1.GetMetrics", v1.AttrGetMetrics{StatsQueueId: "CDRST1"}, &statMetrics); err != nil { - t.Error("Calling CDRStatsV1.GetMetrics, got error: ", err.Error()) - } else if !reflect.DeepEqual(eMetrics, statMetrics) { - t.Errorf("Expecting: %v, received: %v", eMetrics, statMetrics) - } - eMetrics = map[string]float64{engine.ACC: -1, engine.ACD: -1, engine.ASR: -1, engine.TCC: -1, engine.TCD: -1} - if err := tutSMGRpc.Call("CDRStatsV1.GetMetrics", v1.AttrGetMetrics{StatsQueueId: "CDRST_1001"}, &statMetrics); err != nil { - t.Error("Calling CDRStatsV1.GetMetrics, got error: ", err.Error()) - } else if !reflect.DeepEqual(eMetrics, statMetrics) { - t.Errorf("Expecting: %v, received: %v", eMetrics, statMetrics) - } - eMetrics = map[string]float64{engine.ACD: -1, engine.ASR: -1, engine.TCC: -1, engine.TCD: -1, engine.ACC: -1} - if err := tutSMGRpc.Call("CDRStatsV1.GetMetrics", v1.AttrGetMetrics{StatsQueueId: "CDRST_1002"}, &statMetrics); err != nil { - t.Error("Calling CDRStatsV1.GetMetrics, got error: ", err.Error()) - } else if !reflect.DeepEqual(eMetrics, statMetrics) { - t.Errorf("Expecting: %v, received: %v", eMetrics, statMetrics) - } - eMetrics = map[string]float64{engine.ACD: -1, engine.ASR: -1, engine.TCC: -1, engine.TCD: -1, engine.ACC: -1} - if err := tutSMGRpc.Call("CDRStatsV1.GetMetrics", v1.AttrGetMetrics{StatsQueueId: "CDRST_1003"}, &statMetrics); err != nil { - t.Error("Calling CDRStatsV1.GetMetrics, got error: ", err.Error()) - } else if !reflect.DeepEqual(eMetrics, statMetrics) { - t.Errorf("Expecting: %v, received: %v", eMetrics, statMetrics) - } - eMetrics = map[string]float64{engine.ACD: -1, engine.ASR: -1, engine.TCC: -1, engine.TCD: -1, engine.ACC: -1} - if err := tutSMGRpc.Call("CDRStatsV1.GetMetrics", v1.AttrGetMetrics{StatsQueueId: "STATS_SUPPL1"}, &statMetrics); err != nil { - t.Error("Calling CDRStatsV1.GetMetrics, got error: ", err.Error()) - } else if !reflect.DeepEqual(eMetrics, statMetrics) { - t.Errorf("Expecting: %v, received: %v", eMetrics, statMetrics) - } - eMetrics = map[string]float64{engine.ACD: -1, engine.ASR: -1, engine.TCC: -1, engine.TCD: -1, engine.ACC: -1} - if err := tutSMGRpc.Call("CDRStatsV1.GetMetrics", v1.AttrGetMetrics{StatsQueueId: "STATS_SUPPL2"}, &statMetrics); err != nil { - t.Error("Calling CDRStatsV1.GetMetrics, got error: ", err.Error()) - } else if !reflect.DeepEqual(eMetrics, statMetrics) { - t.Errorf("Expecting: %v, received: %v", eMetrics, statMetrics) - } -} +*/ func TestTutSMGStopCgrEngine(t *testing.T) { if !*testLocal { diff --git a/general_tests/tutorial_fs_calls_test.go b/general_tests/tutorial_fs_calls_test.go index e0ffb95e7..7d9494e5e 100644 --- a/general_tests/tutorial_fs_calls_test.go +++ b/general_tests/tutorial_fs_calls_test.go @@ -138,38 +138,38 @@ func TestTutFsCallsAccountsBefore(t *testing.T) { } var reply *engine.Account attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"} - if err := tutFsCallsRpc.Call("ApierV1.GetAccount", attrs, &reply); err != nil { - t.Error("Got error on ApierV1.GetAccount: ", err.Error()) + if err := tutFsCallsRpc.Call("ApierV2.GetAccount", attrs, &reply); err != nil { + t.Error("Got error on ApierV2.GetAccount: ", err.Error()) } else if reply.BalanceMap[utils.MONETARY].GetTotalValue() != 10.0 { // Make sure we debitted t.Errorf("Calling ApierV1.GetBalance received: %f", reply.BalanceMap[utils.MONETARY].GetTotalValue()) } attrs = &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1002"} - if err := tutFsCallsRpc.Call("ApierV1.GetAccount", attrs, &reply); err != nil { - t.Error("Got error on ApierV1.GetAccount: ", err.Error()) + if err := tutFsCallsRpc.Call("ApierV2.GetAccount", attrs, &reply); err != nil { + t.Error("Got error on ApierV2.GetAccount: ", err.Error()) } else if reply.BalanceMap[utils.MONETARY].GetTotalValue() != 10.0 { // Make sure we debitted t.Errorf("Calling ApierV1.GetBalance received: %f", reply.BalanceMap[utils.MONETARY].GetTotalValue()) } attrs = &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1003"} - if err := tutFsCallsRpc.Call("ApierV1.GetAccount", attrs, &reply); err != nil { - t.Error("Got error on ApierV1.GetAccount: ", err.Error()) + if err := tutFsCallsRpc.Call("ApierV2.GetAccount", attrs, &reply); err != nil { + t.Error("Got error on ApierV2.GetAccount: ", err.Error()) } else if reply.BalanceMap[utils.MONETARY].GetTotalValue() != 10.0 { // Make sure we debitted t.Errorf("Calling ApierV1.GetBalance received: %f", reply.BalanceMap[utils.MONETARY].GetTotalValue()) } attrs = &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1004"} - if err := tutFsCallsRpc.Call("ApierV1.GetAccount", attrs, &reply); err != nil { - t.Error("Got error on ApierV1.GetAccount: ", err.Error()) + if err := tutFsCallsRpc.Call("ApierV2.GetAccount", attrs, &reply); err != nil { + t.Error("Got error on ApierV2.GetAccount: ", err.Error()) } else if reply.BalanceMap[utils.MONETARY].GetTotalValue() != 10.0 { // Make sure we debitted t.Errorf("Calling ApierV1.GetBalance received: %f", reply.BalanceMap[utils.MONETARY].GetTotalValue()) } attrs = &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1007"} - if err := tutFsCallsRpc.Call("ApierV1.GetAccount", attrs, &reply); err != nil { - t.Error("Got error on ApierV1.GetAccount: ", err.Error()) + if err := tutFsCallsRpc.Call("ApierV2.GetAccount", attrs, &reply); err != nil { + t.Error("Got error on ApierV2.GetAccount: ", err.Error()) } else if reply.BalanceMap[utils.MONETARY].GetTotalValue() != 0.0 { // Make sure we debitted t.Errorf("Calling ApierV1.GetBalance received: %f", reply.BalanceMap[utils.MONETARY].GetTotalValue()) } attrs = &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1005"} - if err := tutFsCallsRpc.Call("ApierV1.GetAccount", attrs, &reply); err == nil || !strings.HasSuffix(err.Error(), "does not exist") { - t.Error("Got error on ApierV1.GetAccount: %v", err) + if err := tutFsCallsRpc.Call("ApierV2.GetAccount", attrs, &reply); err == nil || !strings.HasSuffix(err.Error(), "does not exist") { + t.Error("Got error on ApierV2.GetAccount: %v", err) } } @@ -316,8 +316,8 @@ func TestTutFsCallsAccount1001(t *testing.T) { time.Sleep(time.Duration(70) * time.Second) // Allow calls to finish before start querying the results var reply *engine.Account attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"} - if err := tutFsCallsRpc.Call("ApierV1.GetAccount", attrs, &reply); err != nil { - t.Error("Got error on ApierV1.GetAccount: ", err.Error()) + if err := tutFsCallsRpc.Call("ApierV2.GetAccount", attrs, &reply); err != nil { + t.Error("Got error on ApierV2.GetAccount: ", err.Error()) } else if reply.BalanceMap[utils.MONETARY].GetTotalValue() == 10.0 { // Make sure we debitted t.Errorf("Calling ApierV1.GetBalance received: %f", reply.BalanceMap[utils.MONETARY].GetTotalValue()) } else if reply.Disabled == true { @@ -550,8 +550,8 @@ func TestTutFsCallsAccountDisabled1001(t *testing.T) { } var reply *engine.Account attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"} - if err := tutFsCallsRpc.Call("ApierV1.GetAccount", attrs, &reply); err != nil { - t.Error("Got error on ApierV1.GetAccount: ", err.Error()) + if err := tutFsCallsRpc.Call("ApierV2.GetAccount", attrs, &reply); err != nil { + t.Error("Got error on ApierV2.GetAccount: ", err.Error()) } else if reply.Disabled == false { t.Error("Account should be disabled per fraud detection rules.") } diff --git a/general_tests/tutorial_local_test.go b/general_tests/tutorial_local_test.go index 4b49dbc4c..26da1d728 100644 --- a/general_tests/tutorial_local_test.go +++ b/general_tests/tutorial_local_test.go @@ -117,7 +117,7 @@ func TestTutLocalCacheStats(t *testing.T) { } var rcvStats *utils.CacheStats - expectedStats := &utils.CacheStats{Destinations: 4, RatingPlans: 3, RatingProfiles: 8, Actions: 7, SharedGroups: 1, Aliases: 1, + expectedStats := &utils.CacheStats{Destinations: 4, RatingPlans: 3, RatingProfiles: 8, Actions: 7, ActionPlans: 4, SharedGroups: 1, Aliases: 1, DerivedChargers: 1, LcrProfiles: 5, CdrStats: 6, Users: 3, LastLoadId: loadInst.LoadId, LastLoadTime: loadInst.LoadTime.Format(time.RFC3339)} var args utils.AttrCacheStats if err := tutLocalRpc.Call("ApierV2.GetCacheStats", args, &rcvStats); err != nil { @@ -647,6 +647,7 @@ func TestTutLocalCostErrors(t *testing.T) { } else if reply != utils.OK { t.Error("Unexpected reply received: ", reply) } + time.Sleep(time.Duration(*waitRater) * time.Millisecond) var cdrs []*engine.ExternalCdr req := utils.RpcCdrsFilter{RunIds: []string{utils.META_DEFAULT}, Accounts: []string{cdr.Account}, DestPrefixes: []string{cdr.Destination}} if err := tutLocalRpc.Call("ApierV2.GetCdrs", req, &cdrs); err != nil {