diff --git a/general_tests/a1_it_test.go b/general_tests/a1_it_test.go
index d7956cce2..0c1bba478 100644
--- a/general_tests/a1_it_test.go
+++ b/general_tests/a1_it_test.go
@@ -20,379 +20,379 @@ along with this program. If not, see
*/
package general_tests
-import (
- "encoding/json"
- "fmt"
- "net/rpc"
- "path"
- "sync"
- "testing"
- "time"
+// import (
+// "encoding/json"
+// "fmt"
+// "net/rpc"
+// "path"
+// "sync"
+// "testing"
+// "time"
- "github.com/cgrates/birpc/context"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/birpc/context"
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- a1ConfigDir string
- a1CfgPath string
- a1Cfg *config.CGRConfig
- a1rpc *rpc.Client
+// var (
+// a1ConfigDir string
+// a1CfgPath string
+// a1Cfg *config.CGRConfig
+// a1rpc *rpc.Client
- sTestsA1it = []func(t *testing.T){
- testA1itLoadConfig,
- testA1itResetDataDB,
- testA1itResetStorDb,
- testA1itStartEngine,
- testA1itRPCConn,
- testA1itLoadTPFromFolder,
- testA1itAddBalance1,
- testA1itDataSession1,
- testA1itConcurrentAPs,
- testA1itStopCgrEngine,
- }
-)
+// sTestsA1it = []func(t *testing.T){
+// testA1itLoadConfig,
+// testA1itResetDataDB,
+// testA1itResetStorDb,
+// testA1itStartEngine,
+// testA1itRPCConn,
+// testA1itLoadTPFromFolder,
+// testA1itAddBalance1,
+// testA1itDataSession1,
+// testA1itConcurrentAPs,
+// testA1itStopCgrEngine,
+// }
+// )
-func TestA1It(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- a1ConfigDir = "tutinternal"
- case utils.MetaMySQL:
- a1ConfigDir = "tutmysql"
- case utils.MetaMongo:
- a1ConfigDir = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
+// func TestA1It(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// a1ConfigDir = "tutinternal"
+// case utils.MetaMySQL:
+// a1ConfigDir = "tutmysql"
+// case utils.MetaMongo:
+// a1ConfigDir = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
- for _, stest := range sTestsA1it {
- t.Run(a1ConfigDir, stest)
- }
-}
+// for _, stest := range sTestsA1it {
+// t.Run(a1ConfigDir, stest)
+// }
+// }
-func testA1itLoadConfig(t *testing.T) {
- a1CfgPath = path.Join(*dataDir, "conf", "samples", a1ConfigDir)
- if a1Cfg, err = config.NewCGRConfigFromPath(context.Background(), a1CfgPath); err != nil {
- t.Error(err)
- }
-}
+// func testA1itLoadConfig(t *testing.T) {
+// a1CfgPath = path.Join(*dataDir, "conf", "samples", a1ConfigDir)
+// if a1Cfg, err = config.NewCGRConfigFromPath(context.Background(), a1CfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testA1itResetDataDB(t *testing.T) {
- if err := engine.InitDataDB(a1Cfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testA1itResetDataDB(t *testing.T) {
+// if err := engine.InitDataDB(a1Cfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testA1itResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(a1Cfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testA1itResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(a1Cfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testA1itStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(a1CfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testA1itStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(a1CfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testA1itRPCConn(t *testing.T) {
- var err error
- a1rpc, err = newRPCClient(a1Cfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testA1itRPCConn(t *testing.T) {
+// var err error
+// a1rpc, err = newRPCClient(a1Cfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testA1itLoadTPFromFolder(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "test", "a1")}
- if err := a1rpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error(reply)
- }
- time.Sleep(100 * time.Millisecond)
- tStart := time.Date(2017, 3, 3, 10, 39, 33, 0, time.UTC)
- tEnd := time.Date(2017, 3, 3, 10, 39, 33, 10240, time.UTC)
- cd := &engine.CallDescriptorWithAPIOpts{
- CallDescriptor: &engine.CallDescriptor{
- Category: "data1",
- Tenant: "cgrates.org",
- Subject: "rpdata1",
- Destination: "data",
- TimeStart: tStart,
- TimeEnd: tEnd,
- },
- }
- var cc engine.CallCost
- if err := a1rpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
- t.Error("Got error on Responder.GetCost: ", err.Error())
- } else if cc.Cost != 0.0 {
- t.Errorf("Calling Responder.GetCost got callcost: %v", cc)
- }
+// func testA1itLoadTPFromFolder(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "test", "a1")}
+// if err := a1rpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error(reply)
+// }
+// time.Sleep(100 * time.Millisecond)
+// tStart := time.Date(2017, 3, 3, 10, 39, 33, 0, time.UTC)
+// tEnd := time.Date(2017, 3, 3, 10, 39, 33, 10240, time.UTC)
+// cd := &engine.CallDescriptorWithAPIOpts{
+// CallDescriptor: &engine.CallDescriptor{
+// Category: "data1",
+// Tenant: "cgrates.org",
+// Subject: "rpdata1",
+// Destination: "data",
+// TimeStart: tStart,
+// TimeEnd: tEnd,
+// },
+// }
+// var cc engine.CallCost
+// if err := a1rpc.Call(utils.ResponderGetCost, cd, &cc); err != nil {
+// t.Error("Got error on Responder.GetCost: ", err.Error())
+// } else if cc.Cost != 0.0 {
+// t.Errorf("Calling Responder.GetCost got callcost: %v", cc)
+// }
- //add a default charger
- chargerProfile := &v1.ChargerWithAPIOpts{
- ChargerProfile: &engine.ChargerProfile{
- Tenant: "cgrates.org",
- ID: "Default",
- RunID: utils.MetaDefault,
- AttributeIDs: []string{"*none"},
- Weight: 20,
- },
- }
- var result string
- if err := a1rpc.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-}
+// //add a default charger
+// chargerProfile := &v1.ChargerWithAPIOpts{
+// ChargerProfile: &engine.ChargerProfile{
+// Tenant: "cgrates.org",
+// ID: "Default",
+// RunID: utils.MetaDefault,
+// AttributeIDs: []string{"*none"},
+// Weight: 20,
+// },
+// }
+// var result string
+// if err := a1rpc.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// }
-func testA1itAddBalance1(t *testing.T) {
- var reply string
- argAdd := &v1.AttrAddBalance{
- Tenant: "cgrates.org",
- Account: "rpdata1",
- BalanceType: utils.MetaData,
- Value: 10000000000,
- Balance: map[string]interface{}{
- utils.ID: "rpdata1_test",
- },
- }
- if err := a1rpc.Call(utils.APIerSv1AddBalance, argAdd, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf(reply)
- }
- argGet := &utils.AttrGetAccount{Tenant: argAdd.Tenant, Account: argAdd.Account}
- var acnt *engine.Account
- if err := a1rpc.Call(utils.APIerSv2GetAccount, argGet, &acnt); err != nil {
- t.Error(err)
- } else {
- if acnt.BalanceMap[utils.MetaData].GetTotalValue() != argAdd.Value { // We expect 11.5 since we have added in the previous test 1.5
- t.Errorf("Received account value: %f", acnt.BalanceMap[utils.MetaData].GetTotalValue())
- }
- }
-}
+// func testA1itAddBalance1(t *testing.T) {
+// var reply string
+// argAdd := &v1.AttrAddBalance{
+// Tenant: "cgrates.org",
+// Account: "rpdata1",
+// BalanceType: utils.MetaData,
+// Value: 10000000000,
+// Balance: map[string]interface{}{
+// utils.ID: "rpdata1_test",
+// },
+// }
+// if err := a1rpc.Call(utils.APIerSv1AddBalance, argAdd, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf(reply)
+// }
+// argGet := &utils.AttrGetAccount{Tenant: argAdd.Tenant, Account: argAdd.Account}
+// var acnt *engine.Account
+// if err := a1rpc.Call(utils.APIerSv2GetAccount, argGet, &acnt); err != nil {
+// t.Error(err)
+// } else {
+// if acnt.BalanceMap[utils.MetaData].GetTotalValue() != argAdd.Value { // We expect 11.5 since we have added in the previous test 1.5
+// t.Errorf("Received account value: %f", acnt.BalanceMap[utils.MetaData].GetTotalValue())
+// }
+// }
+// }
-func testA1itDataSession1(t *testing.T) {
- usage := time.Duration(10240)
- initArgs := &sessions.V1InitSessionArgs{
- InitSession: true,
+// func testA1itDataSession1(t *testing.T) {
+// usage := time.Duration(10240)
+// initArgs := &sessions.V1InitSessionArgs{
+// InitSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestA1itDataSession1",
- Event: map[string]interface{}{
- utils.EventName: "INITIATE_SESSION",
- utils.ToR: utils.MetaData,
- utils.OriginID: "504966119",
- utils.AccountField: "rpdata1",
- utils.Subject: "rpdata1",
- utils.Destination: "data",
- utils.Category: "data1",
- utils.Tenant: "cgrates.org",
- utils.RequestType: utils.MetaPrepaid,
- utils.SetupTime: "2017-03-03 11:39:32 +0100 CET",
- utils.AnswerTime: "2017-03-03 11:39:32 +0100 CET",
- utils.Usage: "10240",
- },
- APIOpts: map[string]interface{}{
- utils.OptsSesTTL: "28800s",
- utils.OptsSesTTLLastUsed: "0s",
- utils.OptsSesTTLUsage: "0s",
- },
- },
- }
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestA1itDataSession1",
+// Event: map[string]interface{}{
+// utils.EventName: "INITIATE_SESSION",
+// utils.ToR: utils.MetaData,
+// utils.OriginID: "504966119",
+// utils.AccountField: "rpdata1",
+// utils.Subject: "rpdata1",
+// utils.Destination: "data",
+// utils.Category: "data1",
+// utils.Tenant: "cgrates.org",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.SetupTime: "2017-03-03 11:39:32 +0100 CET",
+// utils.AnswerTime: "2017-03-03 11:39:32 +0100 CET",
+// utils.Usage: "10240",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsSesTTL: "28800s",
+// utils.OptsSesTTLLastUsed: "0s",
+// utils.OptsSesTTLUsage: "0s",
+// },
+// },
+// }
- var initRpl *sessions.V1InitSessionReply
- if err := a1rpc.Call(utils.SessionSv1InitiateSession,
- initArgs, &initRpl); err != nil {
- t.Fatal(err)
- }
- if initRpl.MaxUsage == nil || *initRpl.MaxUsage != usage {
- t.Errorf("Expecting : %+v, received: %+v", usage, initRpl.MaxUsage)
- }
+// var initRpl *sessions.V1InitSessionReply
+// if err := a1rpc.Call(utils.SessionSv1InitiateSession,
+// initArgs, &initRpl); err != nil {
+// t.Fatal(err)
+// }
+// if initRpl.MaxUsage == nil || *initRpl.MaxUsage != usage {
+// t.Errorf("Expecting : %+v, received: %+v", usage, initRpl.MaxUsage)
+// }
- updateArgs := &sessions.V1UpdateSessionArgs{
- UpdateSession: true,
+// updateArgs := &sessions.V1UpdateSessionArgs{
+// UpdateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestSessionsVoiceLastUsed",
- Event: map[string]interface{}{
- utils.EventName: "UPDATE_SESSION",
- utils.AccountField: "rpdata1",
- utils.Category: "data1",
- utils.Destination: "data",
- utils.InitialOriginID: "504966119",
- utils.LastUsed: "0s",
- utils.OriginID: "504966119-1",
- utils.RequestType: utils.MetaPrepaid,
- utils.Subject: "rpdata1",
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaData,
- utils.SetupTime: "2017-03-03 11:39:32 +0100 CET",
- utils.AnswerTime: "2017-03-03 11:39:32 +0100 CET",
- utils.Usage: "2097152",
- },
- APIOpts: map[string]interface{}{
- utils.OptsSesTTL: "28800s",
- utils.OptsSesTTLLastUsed: "2097152s",
- utils.OptsSesTTLUsage: "0s",
- },
- },
- }
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestSessionsVoiceLastUsed",
+// Event: map[string]interface{}{
+// utils.EventName: "UPDATE_SESSION",
+// utils.AccountField: "rpdata1",
+// utils.Category: "data1",
+// utils.Destination: "data",
+// utils.InitialOriginID: "504966119",
+// utils.LastUsed: "0s",
+// utils.OriginID: "504966119-1",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.Subject: "rpdata1",
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaData,
+// utils.SetupTime: "2017-03-03 11:39:32 +0100 CET",
+// utils.AnswerTime: "2017-03-03 11:39:32 +0100 CET",
+// utils.Usage: "2097152",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsSesTTL: "28800s",
+// utils.OptsSesTTLLastUsed: "2097152s",
+// utils.OptsSesTTLUsage: "0s",
+// },
+// },
+// }
- usage = 2097152
- var updateRpl *sessions.V1UpdateSessionReply
- if err := a1rpc.Call(utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
- t.Error(err)
- }
- if updateRpl.MaxUsage == nil || *updateRpl.MaxUsage != usage {
- t.Errorf("Expected: %+v, received: %+v", usage, updateRpl.MaxUsage)
- }
+// usage = 2097152
+// var updateRpl *sessions.V1UpdateSessionReply
+// if err := a1rpc.Call(utils.SessionSv1UpdateSession, updateArgs, &updateRpl); err != nil {
+// t.Error(err)
+// }
+// if updateRpl.MaxUsage == nil || *updateRpl.MaxUsage != usage {
+// t.Errorf("Expected: %+v, received: %+v", usage, updateRpl.MaxUsage)
+// }
- usage = time.Minute
- termArgs := &sessions.V1TerminateSessionArgs{
- TerminateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestSessionsVoiceLastUsed",
- Event: map[string]interface{}{
- utils.EventName: "TERMINATE_SESSION",
- utils.AccountField: "rpdata1",
- utils.Category: "data1",
- utils.Destination: "data",
- utils.LastUsed: "2202800",
- utils.OriginID: "504966119-1",
- utils.OriginIDPrefix: "504966119-1",
- utils.RequestType: utils.MetaPrepaid,
- utils.SetupTime: "2017-03-03 11:39:32 +0100 CET",
- utils.AnswerTime: "2017-03-03 11:39:32 +0100 CET",
- utils.Subject: "rpdata1",
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaData,
- },
- },
- }
+// usage = time.Minute
+// termArgs := &sessions.V1TerminateSessionArgs{
+// TerminateSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestSessionsVoiceLastUsed",
+// Event: map[string]interface{}{
+// utils.EventName: "TERMINATE_SESSION",
+// utils.AccountField: "rpdata1",
+// utils.Category: "data1",
+// utils.Destination: "data",
+// utils.LastUsed: "2202800",
+// utils.OriginID: "504966119-1",
+// utils.OriginIDPrefix: "504966119-1",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.SetupTime: "2017-03-03 11:39:32 +0100 CET",
+// utils.AnswerTime: "2017-03-03 11:39:32 +0100 CET",
+// utils.Subject: "rpdata1",
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaData,
+// },
+// },
+// }
- var rpl string
- if err := a1rpc.Call(utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
- t.Error(err)
- }
+// var rpl string
+// if err := a1rpc.Call(utils.SessionSv1TerminateSession, termArgs, &rpl); err != nil || rpl != utils.OK {
+// t.Error(err)
+// }
- if err := a1rpc.Call(utils.SessionSv1ProcessCDR, termArgs.CGREvent, &rpl); err != nil {
- t.Error(err)
- } else if rpl != utils.OK {
- t.Errorf("Received reply: %s", rpl)
- }
+// if err := a1rpc.Call(utils.SessionSv1ProcessCDR, termArgs.CGREvent, &rpl); err != nil {
+// t.Error(err)
+// } else if rpl != utils.OK {
+// t.Errorf("Received reply: %s", rpl)
+// }
- time.Sleep(20 * time.Millisecond)
+// time.Sleep(20 * time.Millisecond)
- var cdrs []*engine.ExternalCDR
- req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}}
- if err := a1rpc.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Error("Unexpected number of CDRs returned: ", len(cdrs))
- } else {
- if cdrs[0].Usage != "2202800" {
- t.Errorf("Unexpected CDR Usage received, cdr: %+v ", cdrs[0])
- }
- var cc engine.CallCost
- var ec engine.EventCost
- if err := json.Unmarshal([]byte(cdrs[0].CostDetails), &ec); err != nil {
- t.Error(err)
- }
- cc = *ec.AsCallCost(utils.EmptyString)
- if len(cc.Timespans) != 1 {
- t.Errorf("Unexpected number of timespans: %+v, for %+v\n from:%+v", len(cc.Timespans), utils.ToJSON(cc.Timespans), utils.ToJSON(ec))
- }
- if cc.RatedUsage != 2202800 {
- t.Errorf("RatingUsage expected: %f received %f, callcost: %+v ", 2202800.0, cc.RatedUsage, cc)
- }
- }
- expBalance := float64(10000000000 - 2202800) // initial - total usage
- var acnt *engine.Account
- if err := a1rpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "rpdata1"}, &acnt); err != nil {
- t.Error(err)
- } else if acnt.BalanceMap[utils.MetaData].GetTotalValue() != expBalance { // We expect 11.5 since we have added in the previous test 1.5
- t.Errorf("Expecting: %f, received: %f", expBalance, acnt.BalanceMap[utils.MetaData].GetTotalValue())
- }
-}
+// var cdrs []*engine.ExternalCDR
+// req := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}}
+// if err := a1rpc.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
+// } else {
+// if cdrs[0].Usage != "2202800" {
+// t.Errorf("Unexpected CDR Usage received, cdr: %+v ", cdrs[0])
+// }
+// var cc engine.CallCost
+// var ec engine.EventCost
+// if err := json.Unmarshal([]byte(cdrs[0].CostDetails), &ec); err != nil {
+// t.Error(err)
+// }
+// cc = *ec.AsCallCost(utils.EmptyString)
+// if len(cc.Timespans) != 1 {
+// t.Errorf("Unexpected number of timespans: %+v, for %+v\n from:%+v", len(cc.Timespans), utils.ToJSON(cc.Timespans), utils.ToJSON(ec))
+// }
+// if cc.RatedUsage != 2202800 {
+// t.Errorf("RatingUsage expected: %f received %f, callcost: %+v ", 2202800.0, cc.RatedUsage, cc)
+// }
+// }
+// expBalance := float64(10000000000 - 2202800) // initial - total usage
+// var acnt *engine.Account
+// if err := a1rpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "rpdata1"}, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.BalanceMap[utils.MetaData].GetTotalValue() != expBalance { // We expect 11.5 since we have added in the previous test 1.5
+// t.Errorf("Expecting: %f, received: %f", expBalance, acnt.BalanceMap[utils.MetaData].GetTotalValue())
+// }
+// }
-func testA1itConcurrentAPs(t *testing.T) {
- var wg sync.WaitGroup
- var acnts []string
- for i := 0; i < 1000; i++ {
- acnts = append(acnts, fmt.Sprintf("acnt_%d", i))
- }
- // Set initial action plans
- for _, acnt := range acnts {
- wg.Add(1)
- go func(acnt string) {
- attrSetAcnt := v2.AttrSetAccount{
- Tenant: "cgrates.org",
- Account: acnt,
- ActionPlanIDs: []string{"PACKAGE_1"},
- }
- var reply string
- if err := a1rpc.Call(utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
- t.Error(err)
- }
- wg.Done()
- }(acnt)
- }
- wg.Wait()
- // Make sure action plan was properly set
- var aps []*engine.ActionPlan
- if err := a1rpc.Call(utils.APIerSv1GetActionPlan, &v1.AttrGetActionPlan{ID: "PACKAGE_1"}, &aps); err != nil {
- t.Error(err)
- } else if len(aps[0].AccountIDs.Slice()) != len(acnts) {
- t.Errorf("Received: %+v", aps[0])
- }
- // Change offer
- for _, acnt := range acnts {
- wg.Add(3)
- go func(acnt string) {
- attrSetAcnt := v2.AttrSetAccount{
- Tenant: "cgrates.org",
- Account: acnt,
- ActionPlanIDs: []string{"PACKAGE_2"},
- }
- var reply string
- if err := a1rpc.Call(utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
- t.Error(err)
- }
- wg.Done()
- }(acnt)
- }
- wg.Wait()
- // Make sure action plan was properly rem/set
- aps = []*engine.ActionPlan{}
- if err := a1rpc.Call(utils.APIerSv1GetActionPlan, &v1.AttrGetActionPlan{ID: "PACKAGE_1"}, &aps); err != nil {
- t.Error(err)
- } else if len(aps[0].AccountIDs.Slice()) != 0 {
- t.Errorf("Received: %+v", aps[0])
- }
- aps = []*engine.ActionPlan{}
- if err := a1rpc.Call(utils.APIerSv1GetActionPlan, &v1.AttrGetActionPlan{ID: "PACKAGE_2"}, &aps); err != nil {
- t.Error(err)
- } else if len(aps[0].AccountIDs.Slice()) != len(acnts) {
- t.Errorf("Received: %+v", aps[0])
- }
-}
+// func testA1itConcurrentAPs(t *testing.T) {
+// var wg sync.WaitGroup
+// var acnts []string
+// for i := 0; i < 1000; i++ {
+// acnts = append(acnts, fmt.Sprintf("acnt_%d", i))
+// }
+// // Set initial action plans
+// for _, acnt := range acnts {
+// wg.Add(1)
+// go func(acnt string) {
+// attrSetAcnt := v2.AttrSetAccount{
+// Tenant: "cgrates.org",
+// Account: acnt,
+// ActionPlanIDs: []string{"PACKAGE_1"},
+// }
+// var reply string
+// if err := a1rpc.Call(utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
+// t.Error(err)
+// }
+// wg.Done()
+// }(acnt)
+// }
+// wg.Wait()
+// // Make sure action plan was properly set
+// var aps []*engine.ActionPlan
+// if err := a1rpc.Call(utils.APIerSv1GetActionPlan, &v1.AttrGetActionPlan{ID: "PACKAGE_1"}, &aps); err != nil {
+// t.Error(err)
+// } else if len(aps[0].AccountIDs.Slice()) != len(acnts) {
+// t.Errorf("Received: %+v", aps[0])
+// }
+// // Change offer
+// for _, acnt := range acnts {
+// wg.Add(3)
+// go func(acnt string) {
+// attrSetAcnt := v2.AttrSetAccount{
+// Tenant: "cgrates.org",
+// Account: acnt,
+// ActionPlanIDs: []string{"PACKAGE_2"},
+// }
+// var reply string
+// if err := a1rpc.Call(utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
+// t.Error(err)
+// }
+// wg.Done()
+// }(acnt)
+// }
+// wg.Wait()
+// // Make sure action plan was properly rem/set
+// aps = []*engine.ActionPlan{}
+// if err := a1rpc.Call(utils.APIerSv1GetActionPlan, &v1.AttrGetActionPlan{ID: "PACKAGE_1"}, &aps); err != nil {
+// t.Error(err)
+// } else if len(aps[0].AccountIDs.Slice()) != 0 {
+// t.Errorf("Received: %+v", aps[0])
+// }
+// aps = []*engine.ActionPlan{}
+// if err := a1rpc.Call(utils.APIerSv1GetActionPlan, &v1.AttrGetActionPlan{ID: "PACKAGE_2"}, &aps); err != nil {
+// t.Error(err)
+// } else if len(aps[0].AccountIDs.Slice()) != len(acnts) {
+// t.Errorf("Received: %+v", aps[0])
+// }
+// }
-func testA1itStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testA1itStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/accountactions_it_test.go b/general_tests/accountactions_it_test.go
index f50bba1e0..2d47ffa58 100644
--- a/general_tests/accountactions_it_test.go
+++ b/general_tests/accountactions_it_test.go
@@ -21,337 +21,337 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "path"
- "reflect"
- "strconv"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "reflect"
+// "strconv"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- accPrfCfgPath string
- accPrfCfg *config.CGRConfig
- accSRPC *rpc.Client
- accPrfConfigDIR string //run tests for specific configuration
+// var (
+// accPrfCfgPath string
+// accPrfCfg *config.CGRConfig
+// accSRPC *rpc.Client
+// accPrfConfigDIR string //run tests for specific configuration
- sTestsAccPrf = []func(t *testing.T){
- testAccActionsInitCfg,
- testAccActionsInitDataDb,
- testAccActionsResetStorDb,
- testAccActionsStartEngine,
- testAccActionsRPCConn,
- testAccActionsSetActionProfile,
- testAccActionsExecuteAction,
- testAccActionsSetActionProfile,
- testAccActionsExecuteAction2,
- testAccActionsGetAccountAfterActions,
- testAccActionsSetActionProfile2,
- testAccActionsExecuteAction3,
- testAccActionsGetAccountAfterRemActions,
- testAccActionsKillEngine,
- }
-)
+// sTestsAccPrf = []func(t *testing.T){
+// testAccActionsInitCfg,
+// testAccActionsInitDataDb,
+// testAccActionsResetStorDb,
+// testAccActionsStartEngine,
+// testAccActionsRPCConn,
+// testAccActionsSetActionProfile,
+// testAccActionsExecuteAction,
+// testAccActionsSetActionProfile,
+// testAccActionsExecuteAction2,
+// testAccActionsGetAccountAfterActions,
+// testAccActionsSetActionProfile2,
+// testAccActionsExecuteAction3,
+// testAccActionsGetAccountAfterRemActions,
+// testAccActionsKillEngine,
+// }
+// )
-//Test start here
-func TestAccActionsIT(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- accPrfConfigDIR = "tutinternal"
- case utils.MetaMySQL:
- accPrfConfigDIR = "tutmysql"
- case utils.MetaMongo:
- accPrfConfigDIR = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sTestsAccPrf {
- t.Run(accPrfConfigDIR, stest)
- }
-}
+// //Test start here
+// func TestAccActionsIT(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// accPrfConfigDIR = "tutinternal"
+// case utils.MetaMySQL:
+// accPrfConfigDIR = "tutmysql"
+// case utils.MetaMongo:
+// accPrfConfigDIR = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sTestsAccPrf {
+// t.Run(accPrfConfigDIR, stest)
+// }
+// }
-func testAccActionsInitCfg(t *testing.T) {
- var err error
- accPrfCfgPath = path.Join(*dataDir, "conf", "samples", accPrfConfigDIR)
- if accPrfCfg, err = config.NewCGRConfigFromPath(accPrfCfgPath); err != nil {
- t.Error(err)
- }
-}
+// func testAccActionsInitCfg(t *testing.T) {
+// var err error
+// accPrfCfgPath = path.Join(*dataDir, "conf", "samples", accPrfConfigDIR)
+// if accPrfCfg, err = config.NewCGRConfigFromPath(accPrfCfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testAccActionsInitDataDb(t *testing.T) {
- if err := engine.InitDataDB(accPrfCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testAccActionsInitDataDb(t *testing.T) {
+// if err := engine.InitDataDB(accPrfCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Wipe out the cdr database
-func testAccActionsResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(accPrfCfg); err != nil {
- t.Fatal(err)
- }
-}
+// // Wipe out the cdr database
+// func testAccActionsResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(accPrfCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Start CGR Engine
-func testAccActionsStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(accPrfCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// // Start CGR Engine
+// func testAccActionsStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(accPrfCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Connect rpc client to rater
-func testAccActionsRPCConn(t *testing.T) {
- var err error
- accSRPC, err = newRPCClient(accPrfCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal(err)
- }
-}
+// // Connect rpc client to rater
+// func testAccActionsRPCConn(t *testing.T) {
+// var err error
+// accSRPC, err = newRPCClient(accPrfCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testAccActionsSetActionProfile(t *testing.T) {
- actPrf := &engine.ActionProfileWithAPIOpts{
- ActionProfile: &engine.ActionProfile{
- Tenant: "cgrates.org",
- ID: "CREATE_ACC",
- FilterIDs: []string{"*string:~*req.Account:1001"},
- Weight: 0,
- Targets: map[string]utils.StringSet{utils.MetaAccounts: {"1001": {}}},
- Schedule: utils.MetaASAP,
- Actions: []*engine.APAction{
- {
- ID: "SET_NEW_BAL",
- FilterIDs: []string{"*exists:*opts.BAL_NEW:"},
- Type: utils.MetaSetBalance,
- Diktats: []*engine.APDiktat{
- {
- Path: "*account.ThresholdIDs",
- Value: utils.MetaNone,
- },
- {
- Path: "*balance.MONETARY.Type",
- Value: utils.MetaConcrete,
- },
- {
- Path: "*balance.MONETARY.Units",
- Value: "1048576",
- },
- {
- Path: "*balance.MONETARY.Weights",
- Value: "`;0`",
- },
- {
- Path: "*balance.MONETARY.CostIncrements",
- Value: "`*string:~*req.ToR:*data;1024;0;0.01`",
- },
- },
- },
- {
- ID: "SET_ADD_BAL",
- FilterIDs: []string{"*exists:*opts.BAL_ADD:"},
- Type: utils.MetaAddBalance,
- Diktats: []*engine.APDiktat{
- {
- Path: "*balance.VOICE.Type",
- Value: utils.MetaAbstract,
- },
- {
- Path: "*balance.VOICE.Units",
- Value: strconv.FormatInt((3 * time.Hour).Nanoseconds(), 10),
- },
- {
- Path: "*balance.VOICE.FilterIDs",
- Value: "`*string:~*req.ToR:*voice`",
- },
- {
- Path: "*balance.VOICE.Weights",
- Value: "`;2`",
- },
- {
- Path: "*balance.VOICE.CostIncrements",
- Value: "`*string:~*req.ToR:*voice;1000000000;0;0.01`",
- },
- },
- },
- },
- },
- APIOpts: map[string]interface{}{},
- }
- var reply string
- if err := accSRPC.Call(utils.APIerSv1SetActionProfile, actPrf, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
- var result *engine.ActionProfile
- if err := accSRPC.Call(utils.APIerSv1GetActionProfile, &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{Tenant: actPrf.Tenant, ID: actPrf.ID}}, &result); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(actPrf.ActionProfile, result) {
- t.Errorf("Expecting : %+v, received: %+v", actPrf.ActionProfile, result)
- }
-}
+// func testAccActionsSetActionProfile(t *testing.T) {
+// actPrf := &engine.ActionProfileWithAPIOpts{
+// ActionProfile: &engine.ActionProfile{
+// Tenant: "cgrates.org",
+// ID: "CREATE_ACC",
+// FilterIDs: []string{"*string:~*req.Account:1001"},
+// Weight: 0,
+// Targets: map[string]utils.StringSet{utils.MetaAccounts: {"1001": {}}},
+// Schedule: utils.MetaASAP,
+// Actions: []*engine.APAction{
+// {
+// ID: "SET_NEW_BAL",
+// FilterIDs: []string{"*exists:*opts.BAL_NEW:"},
+// Type: utils.MetaSetBalance,
+// Diktats: []*engine.APDiktat{
+// {
+// Path: "*account.ThresholdIDs",
+// Value: utils.MetaNone,
+// },
+// {
+// Path: "*balance.MONETARY.Type",
+// Value: utils.MetaConcrete,
+// },
+// {
+// Path: "*balance.MONETARY.Units",
+// Value: "1048576",
+// },
+// {
+// Path: "*balance.MONETARY.Weights",
+// Value: "`;0`",
+// },
+// {
+// Path: "*balance.MONETARY.CostIncrements",
+// Value: "`*string:~*req.ToR:*data;1024;0;0.01`",
+// },
+// },
+// },
+// {
+// ID: "SET_ADD_BAL",
+// FilterIDs: []string{"*exists:*opts.BAL_ADD:"},
+// Type: utils.MetaAddBalance,
+// Diktats: []*engine.APDiktat{
+// {
+// Path: "*balance.VOICE.Type",
+// Value: utils.MetaAbstract,
+// },
+// {
+// Path: "*balance.VOICE.Units",
+// Value: strconv.FormatInt((3 * time.Hour).Nanoseconds(), 10),
+// },
+// {
+// Path: "*balance.VOICE.FilterIDs",
+// Value: "`*string:~*req.ToR:*voice`",
+// },
+// {
+// Path: "*balance.VOICE.Weights",
+// Value: "`;2`",
+// },
+// {
+// Path: "*balance.VOICE.CostIncrements",
+// Value: "`*string:~*req.ToR:*voice;1000000000;0;0.01`",
+// },
+// },
+// },
+// },
+// },
+// APIOpts: map[string]interface{}{},
+// }
+// var reply string
+// if err := accSRPC.Call(utils.APIerSv1SetActionProfile, actPrf, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// var result *engine.ActionProfile
+// if err := accSRPC.Call(utils.APIerSv1GetActionProfile, &utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{Tenant: actPrf.Tenant, ID: actPrf.ID}}, &result); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(actPrf.ActionProfile, result) {
+// t.Errorf("Expecting : %+v, received: %+v", actPrf.ActionProfile, result)
+// }
+// }
-func testAccActionsExecuteAction(t *testing.T) {
- var reply string
- if err := accSRPC.Call(utils.ActionSv1ExecuteActions, &utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- "Account": 1001,
- },
- APIOpts: map[string]interface{}{
- "BAL_NEW": true,
- "BAL_ADD": true,
- },
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
-}
+// func testAccActionsExecuteAction(t *testing.T) {
+// var reply string
+// if err := accSRPC.Call(utils.ActionSv1ExecuteActions, &utils.CGREvent{
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// "Account": 1001,
+// },
+// APIOpts: map[string]interface{}{
+// "BAL_NEW": true,
+// "BAL_ADD": true,
+// },
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// }
-func testAccActionsExecuteAction2(t *testing.T) {
- var reply string
- if err := accSRPC.Call(utils.ActionSv1ExecuteActions, &utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- "Account": 1001,
- },
- APIOpts: map[string]interface{}{
- "BAL_NEW": true,
- "BAL_ADD": true,
- utils.OptsActionsActionProfileIDs: []string{"CREATE_ACC"},
- },
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
-}
+// func testAccActionsExecuteAction2(t *testing.T) {
+// var reply string
+// if err := accSRPC.Call(utils.ActionSv1ExecuteActions, &utils.CGREvent{
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// "Account": 1001,
+// },
+// APIOpts: map[string]interface{}{
+// "BAL_NEW": true,
+// "BAL_ADD": true,
+// utils.OptsActionsActionProfileIDs: []string{"CREATE_ACC"},
+// },
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// }
-func testAccActionsGetAccountAfterActions(t *testing.T) {
- accPrf := &utils.Account{
- Tenant: "cgrates.org",
- ID: "1001",
- Balances: map[string]*utils.Balance{
- "MONETARY": {
- ID: "MONETARY",
- Weights: utils.DynamicWeights{{}},
- Type: utils.MetaConcrete,
- Units: utils.NewDecimalFromFloat64(1048576),
- CostIncrements: []*utils.CostIncrement{{
- FilterIDs: []string{"*string:~*req.ToR:*data"},
- Increment: utils.NewDecimalFromFloat64(1024),
- FixedFee: utils.NewDecimalFromFloat64(0),
- RecurrentFee: utils.NewDecimalFromFloat64(0.01),
- }},
- },
- "VOICE": {
- ID: "VOICE",
- FilterIDs: []string{"*string:~*req.ToR:*voice"},
- Weights: utils.DynamicWeights{{Weight: 2}},
- Type: utils.MetaAbstract,
- Units: utils.NewDecimalFromFloat64(2 * 10800000000000),
- CostIncrements: []*utils.CostIncrement{{
- FilterIDs: []string{"*string:~*req.ToR:*voice"},
- Increment: utils.NewDecimalFromFloat64(1000000000),
- FixedFee: utils.NewDecimalFromFloat64(0),
- RecurrentFee: utils.NewDecimalFromFloat64(0.01),
- }},
- },
- },
- ThresholdIDs: []string{utils.MetaNone},
- }
- var result *utils.Account
- if err := accSRPC.Call(utils.APIerSv1GetAccount, &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "1001"}}, &result); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(accPrf, result) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(accPrf), utils.ToJSON(result))
- }
-}
+// func testAccActionsGetAccountAfterActions(t *testing.T) {
+// accPrf := &utils.Account{
+// Tenant: "cgrates.org",
+// ID: "1001",
+// Balances: map[string]*utils.Balance{
+// "MONETARY": {
+// ID: "MONETARY",
+// Weights: utils.DynamicWeights{{}},
+// Type: utils.MetaConcrete,
+// Units: utils.NewDecimalFromFloat64(1048576),
+// CostIncrements: []*utils.CostIncrement{{
+// FilterIDs: []string{"*string:~*req.ToR:*data"},
+// Increment: utils.NewDecimalFromFloat64(1024),
+// FixedFee: utils.NewDecimalFromFloat64(0),
+// RecurrentFee: utils.NewDecimalFromFloat64(0.01),
+// }},
+// },
+// "VOICE": {
+// ID: "VOICE",
+// FilterIDs: []string{"*string:~*req.ToR:*voice"},
+// Weights: utils.DynamicWeights{{Weight: 2}},
+// Type: utils.MetaAbstract,
+// Units: utils.NewDecimalFromFloat64(2 * 10800000000000),
+// CostIncrements: []*utils.CostIncrement{{
+// FilterIDs: []string{"*string:~*req.ToR:*voice"},
+// Increment: utils.NewDecimalFromFloat64(1000000000),
+// FixedFee: utils.NewDecimalFromFloat64(0),
+// RecurrentFee: utils.NewDecimalFromFloat64(0.01),
+// }},
+// },
+// },
+// ThresholdIDs: []string{utils.MetaNone},
+// }
+// var result *utils.Account
+// if err := accSRPC.Call(utils.APIerSv1GetAccount, &utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "1001"}}, &result); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(accPrf, result) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(accPrf), utils.ToJSON(result))
+// }
+// }
-func testAccActionsSetActionProfile2(t *testing.T) {
- actPrf := &engine.ActionProfileWithAPIOpts{
- ActionProfile: &engine.ActionProfile{
- Tenant: "cgrates.org",
- ID: "REM_ACC",
- FilterIDs: []string{"*string:~*req.Account:1001"},
- Weight: 0,
- Targets: map[string]utils.StringSet{utils.MetaAccounts: {"1001": {}}},
- Schedule: utils.MetaASAP,
- Actions: []*engine.APAction{
- {
- ID: "REM_BAL",
- Type: utils.MetaRemBalance,
- Diktats: []*engine.APDiktat{
- {
- Path: "MONETARY",
- },
- {
- Path: "VOICE",
- },
- },
- },
- },
- },
- APIOpts: map[string]interface{}{},
- }
- var reply string
- if err := accSRPC.Call(utils.APIerSv1SetActionProfile, actPrf, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
- var result *engine.ActionProfile
- if err := accSRPC.Call(utils.APIerSv1GetActionProfile, &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{Tenant: actPrf.Tenant, ID: actPrf.ID}}, &result); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(actPrf.ActionProfile, result) {
- t.Errorf("Expecting : %+v, received: %+v", actPrf.ActionProfile, result)
- }
-}
+// func testAccActionsSetActionProfile2(t *testing.T) {
+// actPrf := &engine.ActionProfileWithAPIOpts{
+// ActionProfile: &engine.ActionProfile{
+// Tenant: "cgrates.org",
+// ID: "REM_ACC",
+// FilterIDs: []string{"*string:~*req.Account:1001"},
+// Weight: 0,
+// Targets: map[string]utils.StringSet{utils.MetaAccounts: {"1001": {}}},
+// Schedule: utils.MetaASAP,
+// Actions: []*engine.APAction{
+// {
+// ID: "REM_BAL",
+// Type: utils.MetaRemBalance,
+// Diktats: []*engine.APDiktat{
+// {
+// Path: "MONETARY",
+// },
+// {
+// Path: "VOICE",
+// },
+// },
+// },
+// },
+// },
+// APIOpts: map[string]interface{}{},
+// }
+// var reply string
+// if err := accSRPC.Call(utils.APIerSv1SetActionProfile, actPrf, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// var result *engine.ActionProfile
+// if err := accSRPC.Call(utils.APIerSv1GetActionProfile, &utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{Tenant: actPrf.Tenant, ID: actPrf.ID}}, &result); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(actPrf.ActionProfile, result) {
+// t.Errorf("Expecting : %+v, received: %+v", actPrf.ActionProfile, result)
+// }
+// }
-func testAccActionsExecuteAction3(t *testing.T) {
- var reply string
- if err := accSRPC.Call(utils.ActionSv1ExecuteActions, &utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- "Account": 1001,
- },
- APIOpts: map[string]interface{}{
- utils.OptsActionsActionProfileIDs: []string{"REM_ACC"},
- },
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
-}
+// func testAccActionsExecuteAction3(t *testing.T) {
+// var reply string
+// if err := accSRPC.Call(utils.ActionSv1ExecuteActions, &utils.CGREvent{
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// "Account": 1001,
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsActionsActionProfileIDs: []string{"REM_ACC"},
+// },
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// }
-func testAccActionsGetAccountAfterRemActions(t *testing.T) {
- accPrf := &utils.Account{
- Tenant: "cgrates.org",
- ID: "1001",
- Balances: map[string]*utils.Balance{},
- ThresholdIDs: []string{utils.MetaNone},
- }
- var result *utils.Account
- if err := accSRPC.Call(utils.APIerSv1GetAccount, &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "1001"}}, &result); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(accPrf, result) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(accPrf), utils.ToJSON(result))
- }
-}
+// func testAccActionsGetAccountAfterRemActions(t *testing.T) {
+// accPrf := &utils.Account{
+// Tenant: "cgrates.org",
+// ID: "1001",
+// Balances: map[string]*utils.Balance{},
+// ThresholdIDs: []string{utils.MetaNone},
+// }
+// var result *utils.Account
+// if err := accSRPC.Call(utils.APIerSv1GetAccount, &utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "1001"}}, &result); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(accPrf, result) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(accPrf), utils.ToJSON(result))
+// }
+// }
-func testAccActionsKillEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testAccActionsKillEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/accounts_it_test.go b/general_tests/accounts_it_test.go
index 4488fefc2..3067f5f5a 100644
--- a/general_tests/accounts_it_test.go
+++ b/general_tests/accounts_it_test.go
@@ -20,288 +20,288 @@ along with this program. If not, see
*/
package general_tests
-import (
- "net/rpc"
- "path"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- accCfgPath string
- accCfg *config.CGRConfig
- accRpc *rpc.Client
- accConfDIR string //run tests for specific configuration
- account *engine.Account
- accDelay int
+// var (
+// accCfgPath string
+// accCfg *config.CGRConfig
+// accRpc *rpc.Client
+// accConfDIR string //run tests for specific configuration
+// account *engine.Account
+// accDelay int
- sTestsAcc = []func(t *testing.T){
- testV1AccLoadConfig,
- testV1AccInitDataDb,
- testAccResetStorDb,
- testV1AccStartEngine,
- testV1AccRpcConn,
- testV1AccGetAccountBeforeSet,
- testV1AccLoadTarrifPlans,
- testV1AccGetAccountAfterLoad,
- testV1AccRemAccount,
- testV1AccGetAccountAfterDelete,
- testV1AccSetAccount,
- testV1AccGetAccountAfterSet,
- testV1AccRemAccountSet,
- testV1AccGetAccountSetAfterDelete,
- //testV1AccRemAccountAfterDelete,
- testV1AccMonthly,
- testV1AccSendToThreshold,
- testV1AccStopEngine,
- }
-)
+// sTestsAcc = []func(t *testing.T){
+// testV1AccLoadConfig,
+// testV1AccInitDataDb,
+// testAccResetStorDb,
+// testV1AccStartEngine,
+// testV1AccRpcConn,
+// testV1AccGetAccountBeforeSet,
+// testV1AccLoadTarrifPlans,
+// testV1AccGetAccountAfterLoad,
+// testV1AccRemAccount,
+// testV1AccGetAccountAfterDelete,
+// testV1AccSetAccount,
+// testV1AccGetAccountAfterSet,
+// testV1AccRemAccountSet,
+// testV1AccGetAccountSetAfterDelete,
+// //testV1AccRemAccountAfterDelete,
+// testV1AccMonthly,
+// testV1AccSendToThreshold,
+// testV1AccStopEngine,
+// }
+// )
-// Test start here
-func TestAccIT(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- accConfDIR = "tutinternal"
- case utils.MetaMySQL:
- accConfDIR = "tutmysql"
- case utils.MetaMongo:
- accConfDIR = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
+// // Test start here
+// func TestAccIT(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// accConfDIR = "tutinternal"
+// case utils.MetaMySQL:
+// accConfDIR = "tutmysql"
+// case utils.MetaMongo:
+// accConfDIR = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
- for _, stest := range sTestsAcc {
- t.Run(accConfDIR, stest)
- }
-}
+// for _, stest := range sTestsAcc {
+// t.Run(accConfDIR, stest)
+// }
+// }
-func testV1AccLoadConfig(t *testing.T) {
- var err error
- accCfgPath = path.Join(*dataDir, "conf", "samples", accConfDIR)
- if accCfg, err = config.NewCGRConfigFromPath(accCfgPath); err != nil {
- t.Error(err)
- }
- accDelay = 1000
-}
+// func testV1AccLoadConfig(t *testing.T) {
+// var err error
+// accCfgPath = path.Join(*dataDir, "conf", "samples", accConfDIR)
+// if accCfg, err = config.NewCGRConfigFromPath(accCfgPath); err != nil {
+// t.Error(err)
+// }
+// accDelay = 1000
+// }
-func testV1AccInitDataDb(t *testing.T) {
- if err := engine.InitDataDB(accCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testV1AccInitDataDb(t *testing.T) {
+// if err := engine.InitDataDB(accCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testAccResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(accCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testAccResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(accCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testV1AccStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(accCfgPath, accDelay); err != nil {
- t.Fatal(err)
- }
-}
+// func testV1AccStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(accCfgPath, accDelay); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testV1AccRpcConn(t *testing.T) {
- var err error
- accRpc, err = newRPCClient(accCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal("Could not connect to rater: ", err.Error())
- }
-}
+// func testV1AccRpcConn(t *testing.T) {
+// var err error
+// accRpc, err = newRPCClient(accCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal("Could not connect to rater: ", err.Error())
+// }
+// }
-func testV1AccGetAccountBeforeSet(t *testing.T) {
- var reply *engine.Account
- if err := accRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}, &reply); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
-}
+// func testV1AccGetAccountBeforeSet(t *testing.T) {
+// var reply *engine.Account
+// if err := accRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}, &reply); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// }
-func testV1AccLoadTarrifPlans(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := accRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
- time.Sleep(200 * time.Millisecond)
-}
+// func testV1AccLoadTarrifPlans(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
+// if err := accRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// time.Sleep(200 * time.Millisecond)
+// }
-func testV1AccGetAccountAfterLoad(t *testing.T) {
- var reply *engine.Account
- if err := accRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"},
- &reply); err != nil {
- t.Error(err)
- }
-}
+// func testV1AccGetAccountAfterLoad(t *testing.T) {
+// var reply *engine.Account
+// if err := accRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"},
+// &reply); err != nil {
+// t.Error(err)
+// }
+// }
-func testV1AccRemAccount(t *testing.T) {
- var reply string
- if err := accRpc.Call(utils.APIerSv1RemoveAccount,
- &utils.AttrRemoveAccount{Tenant: "cgrates.org", Account: "1001"},
- &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
-}
+// func testV1AccRemAccount(t *testing.T) {
+// var reply string
+// if err := accRpc.Call(utils.APIerSv1RemoveAccount,
+// &utils.AttrRemoveAccount{Tenant: "cgrates.org", Account: "1001"},
+// &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// }
-func testV1AccGetAccountAfterDelete(t *testing.T) {
- var reply *engine.Account
- if err := accRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}, &reply); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
-}
+// func testV1AccGetAccountAfterDelete(t *testing.T) {
+// var reply *engine.Account
+// if err := accRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}, &reply); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// }
-func testV1AccSetAccount(t *testing.T) {
- var reply string
- if err := accRpc.Call(utils.APIerSv2SetAccount,
- &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "testacc"}, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
-}
+// func testV1AccSetAccount(t *testing.T) {
+// var reply string
+// if err := accRpc.Call(utils.APIerSv2SetAccount,
+// &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "testacc"}, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// }
-func testV1AccGetAccountAfterSet(t *testing.T) {
- var reply *engine.Account
- if err := accRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testacc"}, &reply); err != nil {
- t.Error(err)
- }
-}
+// func testV1AccGetAccountAfterSet(t *testing.T) {
+// var reply *engine.Account
+// if err := accRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testacc"}, &reply); err != nil {
+// t.Error(err)
+// }
+// }
-func testV1AccRemAccountSet(t *testing.T) {
- var reply string
- if err := accRpc.Call(utils.APIerSv1RemoveAccount,
- &utils.AttrRemoveAccount{Tenant: "cgrates.org", Account: "testacc"},
- &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
-}
+// func testV1AccRemAccountSet(t *testing.T) {
+// var reply string
+// if err := accRpc.Call(utils.APIerSv1RemoveAccount,
+// &utils.AttrRemoveAccount{Tenant: "cgrates.org", Account: "testacc"},
+// &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// }
-func testV1AccGetAccountSetAfterDelete(t *testing.T) {
- var reply *engine.Account
- if err := accRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testacc"},
- &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
-}
+// func testV1AccGetAccountSetAfterDelete(t *testing.T) {
+// var reply *engine.Account
+// if err := accRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testacc"},
+// &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// }
-/*
-Need to investigate for redis why didn't return not found
-func testV1AccRemAccountAfterDelete(t *testing.T) {
- var reply string
- if err := accRpc.Call(utils.APIerSv1RemoveAccount,
- &utils.AttrRemoveAccount{Tenant: "cgrates.org", Account: "testacc"},
- &reply); err == nil || err.Error() != utils.NewErrServerError(utils.ErrNotFound).Error() {
- t.Error(err)
- }
-}
-*/
+// /*
+// Need to investigate for redis why didn't return not found
+// func testV1AccRemAccountAfterDelete(t *testing.T) {
+// var reply string
+// if err := accRpc.Call(utils.APIerSv1RemoveAccount,
+// &utils.AttrRemoveAccount{Tenant: "cgrates.org", Account: "testacc"},
+// &reply); err == nil || err.Error() != utils.NewErrServerError(utils.ErrNotFound).Error() {
+// t.Error(err)
+// }
+// }
+// */
-func testV1AccMonthly(t *testing.T) {
- // add 10 seconds delay before and after
- timeAfter := time.Now().Add(10*time.Second).AddDate(0, 1, 0)
- timeBefore := time.Now().Add(-10*time.Second).AddDate(0, 1, 0)
- var reply *engine.Account
- if err := accRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1002"},
- &reply); err != nil {
- t.Error(err)
- } else if _, has := reply.BalanceMap[utils.MetaData]; !has {
- t.Error("Unexpected balance returned: ", utils.ToJSON(reply.BalanceMap[utils.MetaData]))
- } else if len(reply.BalanceMap[utils.MetaData]) != 1 {
- t.Error("Unexpected number of balances returned: ", len(reply.BalanceMap[utils.MetaData]))
- } else if reply.BalanceMap[utils.MetaData][0].ExpirationDate.After(timeAfter) &&
- reply.BalanceMap[utils.MetaData][0].ExpirationDate.Before(timeBefore) {
- t.Error("Unexpected expiration date returned: ", reply.BalanceMap[utils.MetaData][0].ExpirationDate)
- }
+// func testV1AccMonthly(t *testing.T) {
+// // add 10 seconds delay before and after
+// timeAfter := time.Now().Add(10*time.Second).AddDate(0, 1, 0)
+// timeBefore := time.Now().Add(-10*time.Second).AddDate(0, 1, 0)
+// var reply *engine.Account
+// if err := accRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1002"},
+// &reply); err != nil {
+// t.Error(err)
+// } else if _, has := reply.BalanceMap[utils.MetaData]; !has {
+// t.Error("Unexpected balance returned: ", utils.ToJSON(reply.BalanceMap[utils.MetaData]))
+// } else if len(reply.BalanceMap[utils.MetaData]) != 1 {
+// t.Error("Unexpected number of balances returned: ", len(reply.BalanceMap[utils.MetaData]))
+// } else if reply.BalanceMap[utils.MetaData][0].ExpirationDate.After(timeAfter) &&
+// reply.BalanceMap[utils.MetaData][0].ExpirationDate.Before(timeBefore) {
+// t.Error("Unexpected expiration date returned: ", reply.BalanceMap[utils.MetaData][0].ExpirationDate)
+// }
-}
+// }
-//Add test to check if AccountS send event to ThresholdS
-func testV1AccSendToThreshold(t *testing.T) {
- var reply string
+// //Add test to check if AccountS send event to ThresholdS
+// func testV1AccSendToThreshold(t *testing.T) {
+// var reply string
- // Add a disable and log action
- attrsAA := &utils.AttrSetActions{ActionsId: "DISABLE_LOG", Actions: []*utils.TPAction{
- {Identifier: utils.MetaDisableAccount},
- {Identifier: utils.MetaLog},
- }}
- if err := accRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
- t.Error("Got error on APIerSv2.SetActions: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
- }
+// // Add a disable and log action
+// attrsAA := &utils.AttrSetActions{ActionsId: "DISABLE_LOG", Actions: []*utils.TPAction{
+// {Identifier: utils.MetaDisableAccount},
+// {Identifier: utils.MetaLog},
+// }}
+// if err := accRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+// t.Error("Got error on APIerSv2.SetActions: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
+// }
- tPrfl := &engine.ThresholdProfileWithAPIOpts{
- ThresholdProfile: &engine.ThresholdProfile{
- Tenant: "cgrates.org",
- ID: "THD_AccDisableAndLog",
- FilterIDs: []string{"*string:~*opts.*eventType:AccountUpdate",
- "*string:~*asm.ID:testAccThreshold"},
- MaxHits: -1,
- MinSleep: time.Second,
- Weight: 20.0,
- Async: true,
- ActionProfileIDs: []string{"DISABLE_LOG"},
- },
- }
+// tPrfl := &engine.ThresholdProfileWithAPIOpts{
+// ThresholdProfile: &engine.ThresholdProfile{
+// Tenant: "cgrates.org",
+// ID: "THD_AccDisableAndLog",
+// FilterIDs: []string{"*string:~*opts.*eventType:AccountUpdate",
+// "*string:~*asm.ID:testAccThreshold"},
+// MaxHits: -1,
+// MinSleep: time.Second,
+// Weight: 20.0,
+// Async: true,
+// ActionProfileIDs: []string{"DISABLE_LOG"},
+// },
+// }
- if err := accRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
- // Add an account
- attrs := &utils.AttrSetBalance{
- Tenant: "cgrates.org",
- Account: "testAccThreshold",
- BalanceType: "*monetary",
- Value: 1.5,
- Balance: map[string]interface{}{
- utils.ID: "testAccSetBalance",
- },
- }
- if err := accRpc.Call(utils.APIerSv1SetBalance, attrs, &reply); err != nil {
- t.Error("Got error on APIerSv1.SetBalance: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv1.SetBalance received: %s", reply)
- }
+// if err := accRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// // Add an account
+// attrs := &utils.AttrSetBalance{
+// Tenant: "cgrates.org",
+// Account: "testAccThreshold",
+// BalanceType: "*monetary",
+// Value: 1.5,
+// Balance: map[string]interface{}{
+// utils.ID: "testAccSetBalance",
+// },
+// }
+// if err := accRpc.Call(utils.APIerSv1SetBalance, attrs, &reply); err != nil {
+// t.Error("Got error on APIerSv1.SetBalance: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv1.SetBalance received: %s", reply)
+// }
- // give time to threshold to made the change
- time.Sleep(10 * time.Millisecond)
- //verify the account
- var acnt *engine.Account
- attrAcc := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "testAccThreshold",
- }
- if err := accRpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
- t.Error(err)
- } else if acnt.Disabled != true {
- t.Errorf("Expecting: true, received: %v", acnt.Disabled)
- }
-}
+// // give time to threshold to made the change
+// time.Sleep(10 * time.Millisecond)
+// //verify the account
+// var acnt *engine.Account
+// attrAcc := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "testAccThreshold",
+// }
+// if err := accRpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.Disabled != true {
+// t.Errorf("Expecting: true, received: %v", acnt.Disabled)
+// }
+// }
-func testV1AccStopEngine(t *testing.T) {
- if err := engine.KillEngine(accDelay); err != nil {
- t.Error(err)
- }
-}
+// func testV1AccStopEngine(t *testing.T) {
+// if err := engine.KillEngine(accDelay); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/all_cfg_rld_it_test.go b/general_tests/all_cfg_rld_it_test.go
index f0624114d..5de6b5f26 100644
--- a/general_tests/all_cfg_rld_it_test.go
+++ b/general_tests/all_cfg_rld_it_test.go
@@ -20,463 +20,463 @@ along with this program. If not, see
*/
package general_tests
-import (
- "path"
- "testing"
+// import (
+// "path"
+// "testing"
- "github.com/cgrates/birpc"
- "github.com/cgrates/birpc/context"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/birpc"
+// "github.com/cgrates/birpc/context"
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- testCfgDir string
- testCfgPath string
- testCfg *config.CGRConfig
- testRPC *birpc.Client
+// var (
+// testCfgDir string
+// testCfgPath string
+// testCfg *config.CGRConfig
+// testRPC *birpc.Client
- testTestsR = []func(t *testing.T){
- testCfgLoadConfig,
- testResetDataDB,
- testResetStorDb,
- testStartEngine,
- testRPCConn,
- testConfigSReload,
- testStopCgrEngine,
- }
-)
+// testTestsR = []func(t *testing.T){
+// testCfgLoadConfig,
+// testResetDataDB,
+// testResetStorDb,
+// testStartEngine,
+// testRPCConn,
+// testConfigSReload,
+// testStopCgrEngine,
+// }
+// )
-func TestRldCfg(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- testCfgDir = "tutinternal"
- case utils.MetaMySQL:
- testCfgDir = "tutmysql"
- case utils.MetaMongo:
- testCfgDir = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, testRld := range testTestsR {
- t.Run(testCfgDir, testRld)
- }
-}
+// func TestRldCfg(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// testCfgDir = "tutinternal"
+// case utils.MetaMySQL:
+// testCfgDir = "tutmysql"
+// case utils.MetaMongo:
+// testCfgDir = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, testRld := range testTestsR {
+// t.Run(testCfgDir, testRld)
+// }
+// }
-func testCfgLoadConfig(t *testing.T) {
- testCfgPath = path.Join(*dataDir, "conf", "samples", testCfgDir)
- if testCfg, err = config.NewCGRConfigFromPath(testCfgPath); err != nil {
- t.Error(err)
- }
-}
+// func testCfgLoadConfig(t *testing.T) {
+// testCfgPath = path.Join(*dataDir, "conf", "samples", testCfgDir)
+// if testCfg, err = config.NewCGRConfigFromPath(testCfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testResetDataDB(t *testing.T) {
- if err := engine.InitDataDB(testCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testResetDataDB(t *testing.T) {
+// if err := engine.InitDataDB(testCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(testCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(testCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(testCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(testCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testRPCConn(t *testing.T) {
- var err error
- testRPC, err = newRPCClient(testCfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testRPCConn(t *testing.T) {
+// var err error
+// testRPC, err = newRPCClient(testCfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testConfigSReload(t *testing.T) {
+// func testConfigSReload(t *testing.T) {
- var reply string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
- Tenant: "cgrates.org",
- Section: utils.MetaAll,
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %s", reply)
- }
+// var reply string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
+// Tenant: "cgrates.org",
+// Section: utils.MetaAll,
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %s", reply)
+// }
- cfgStr := "{\"cores\":{\"caps\":0,\"caps_stats_interval\":\"0\",\"caps_strategy\":\"*busy\",\"shutdown_timeout\":\"1s\"}}"
- var rpl2 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.CoreSJSON},
- }, &rpl2); err != nil {
- t.Error(err)
- } else if cfgStr != rpl2 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl2))
- }
+// cfgStr := "{\"cores\":{\"caps\":0,\"caps_stats_interval\":\"0\",\"caps_strategy\":\"*busy\",\"shutdown_timeout\":\"1s\"}}"
+// var rpl2 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.CoreSJSON},
+// }, &rpl2); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl2 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl2))
+// }
- cfgStr = "{\"rpc_conns\":{\"*bijson_localhost\":{\"conns\":[{\"address\":\"127.0.0.1:2014\",\"transport\":\"*birpc_json\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*birpc_internal\":{\"conns\":[{\"address\":\"*birpc_internal\",\"transport\":\"\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*internal\":{\"conns\":[{\"address\":\"*internal\",\"transport\":\"\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*localhost\":{\"conns\":[{\"address\":\"127.0.0.1:2012\",\"transport\":\"*json\"}],\"poolSize\":0,\"strategy\":\"*first\"}}}"
- var rpl string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.RPCConnsJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
+// cfgStr = "{\"rpc_conns\":{\"*bijson_localhost\":{\"conns\":[{\"address\":\"127.0.0.1:2014\",\"transport\":\"*birpc_json\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*birpc_internal\":{\"conns\":[{\"address\":\"*birpc_internal\",\"transport\":\"\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*internal\":{\"conns\":[{\"address\":\"*internal\",\"transport\":\"\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*localhost\":{\"conns\":[{\"address\":\"127.0.0.1:2012\",\"transport\":\"*json\"}],\"poolSize\":0,\"strategy\":\"*first\"}}}"
+// var rpl string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.RPCConnsJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
- cfgStr = "{\"listen\":{\"http\":\":2080\",\"http_tls\":\"127.0.0.1:2280\",\"rpc_gob\":\":2013\",\"rpc_gob_tls\":\"127.0.0.1:2023\",\"rpc_json\":\":2012\",\"rpc_json_tls\":\"127.0.0.1:2022\"}}"
- var rpl3 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.ListenJSON},
- }, &rpl3); err != nil {
- t.Error(err)
- } else if cfgStr != rpl3 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl3))
- }
+// cfgStr = "{\"listen\":{\"http\":\":2080\",\"http_tls\":\"127.0.0.1:2280\",\"rpc_gob\":\":2013\",\"rpc_gob_tls\":\"127.0.0.1:2023\",\"rpc_json\":\":2012\",\"rpc_json_tls\":\"127.0.0.1:2022\"}}"
+// var rpl3 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.ListenJSON},
+// }, &rpl3); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl3 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl3))
+// }
- cfgStr = "{\"tls\":{\"ca_certificate\":\"\",\"client_certificate\":\"\",\"client_key\":\"\",\"server_certificate\":\"\",\"server_key\":\"\",\"server_name\":\"\",\"server_policy\":4}}"
- var rpl4 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.TlsJSON},
- }, &rpl4); err != nil {
- t.Error(err)
- } else if cfgStr != rpl4 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl4))
- }
+// cfgStr = "{\"tls\":{\"ca_certificate\":\"\",\"client_certificate\":\"\",\"client_key\":\"\",\"server_certificate\":\"\",\"server_key\":\"\",\"server_name\":\"\",\"server_policy\":4}}"
+// var rpl4 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.TlsJSON},
+// }, &rpl4); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl4 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl4))
+// }
- cfgStr = "{\"http\":{\"auth_users\":{},\"client_opts\":{\"dialFallbackDelay\":\"300ms\",\"dialKeepAlive\":\"30s\",\"dialTimeout\":\"30s\",\"disableCompression\":false,\"disableKeepAlives\":false,\"expectContinueTimeout\":\"0\",\"forceAttemptHttp2\":true,\"idleConnTimeout\":\"90s\",\"maxConnsPerHost\":0,\"maxIdleConns\":100,\"maxIdleConnsPerHost\":2,\"responseHeaderTimeout\":\"0\",\"skipTlsVerify\":false,\"tlsHandshakeTimeout\":\"10s\"},\"freeswitch_cdrs_url\":\"/freeswitch_json\",\"http_cdrs\":\"/cdr_http\",\"json_rpc_url\":\"/jsonrpc\",\"registrars_url\":\"/registrar\",\"use_basic_auth\":false,\"ws_url\":\"/ws\"}}"
+// cfgStr = "{\"http\":{\"auth_users\":{},\"client_opts\":{\"dialFallbackDelay\":\"300ms\",\"dialKeepAlive\":\"30s\",\"dialTimeout\":\"30s\",\"disableCompression\":false,\"disableKeepAlives\":false,\"expectContinueTimeout\":\"0\",\"forceAttemptHttp2\":true,\"idleConnTimeout\":\"90s\",\"maxConnsPerHost\":0,\"maxIdleConns\":100,\"maxIdleConnsPerHost\":2,\"responseHeaderTimeout\":\"0\",\"skipTlsVerify\":false,\"tlsHandshakeTimeout\":\"10s\"},\"freeswitch_cdrs_url\":\"/freeswitch_json\",\"http_cdrs\":\"/cdr_http\",\"json_rpc_url\":\"/jsonrpc\",\"registrars_url\":\"/registrar\",\"use_basic_auth\":false,\"ws_url\":\"/ws\"}}"
- var rpl5 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.HTTPJSON},
- }, &rpl5); err != nil {
- t.Error(err)
- } else if cfgStr != rpl5 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl5))
- }
+// var rpl5 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.HTTPJSON},
+// }, &rpl5); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl5 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl5))
+// }
- cfgStr = "{\"caches\":{\"partitions\":{\"*account_action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*accounts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*action_triggers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*apiban\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"2m0s\"},\"*attribute_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*attribute_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*caps_events\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*cdr_ids\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10m0s\"},\"*cdrs\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*charger_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*charger_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*closed_sessions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10s\"},\"*destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*diameter_messages\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*dispatcher_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_hosts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_loads\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_routes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatchers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*event_charges\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10s\"},\"*event_resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*filters\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*load_ids\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rating_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*replication_hosts\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resource_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resource_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*reverse_destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*reverse_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*route_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*route_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rpc_connections\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rpc_responses\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"2s\"},\"*session_costs\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*shared_groups\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*stat_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*statqueue_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*statqueues\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*stir\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*threshold_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*threshold_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*thresholds\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*timings\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tmp_rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"1m0s\"},\"*tp_account_actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_action_triggers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_attributes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_chargers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_destination_rates\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_dispatcher_hosts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_dispatcher_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_filters\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rates\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rating_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_routes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_shared_groups\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_stats\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_thresholds\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_timings\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*uch\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*versions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"}},\"replication_conns\":[]}}"
- var rpl7 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.CacheJSON},
- }, &rpl7); err != nil {
- t.Error(err)
- } else if cfgStr != rpl7 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl7))
- }
+// cfgStr = "{\"caches\":{\"partitions\":{\"*account_action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*accounts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*action_triggers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*apiban\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"2m0s\"},\"*attribute_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*attribute_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*caps_events\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*cdr_ids\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10m0s\"},\"*cdrs\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*charger_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*charger_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*closed_sessions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10s\"},\"*destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*diameter_messages\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*dispatcher_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_hosts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_loads\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_routes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatchers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*event_charges\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10s\"},\"*event_resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*filters\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*load_ids\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rating_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*replication_hosts\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resource_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resource_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*reverse_destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*reverse_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*route_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*route_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rpc_connections\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rpc_responses\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"2s\"},\"*session_costs\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*shared_groups\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*stat_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*statqueue_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*statqueues\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*stir\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*threshold_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*threshold_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*thresholds\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*timings\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tmp_rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"1m0s\"},\"*tp_account_actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_action_triggers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_attributes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_chargers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_destination_rates\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_dispatcher_hosts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_dispatcher_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_filters\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rates\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rating_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_routes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_shared_groups\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_stats\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_thresholds\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_timings\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*uch\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*versions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"}},\"replication_conns\":[]}}"
+// var rpl7 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.CacheJSON},
+// }, &rpl7); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl7 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl7))
+// }
- cfgStr = "{\"filters\":{\"apiers_conns\":[\"*internal\"],\"resources_conns\":[\"*internal\"],\"stats_conns\":[\"*localhost\"]}}"
- var rpl8 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.FilterSJSON},
- }, &rpl8); err != nil {
- t.Error(err)
- } else if cfgStr != rpl8 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl8))
- }
+// cfgStr = "{\"filters\":{\"apiers_conns\":[\"*internal\"],\"resources_conns\":[\"*internal\"],\"stats_conns\":[\"*localhost\"]}}"
+// var rpl8 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.FilterSJSON},
+// }, &rpl8); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl8 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl8))
+// }
- cfgStr = "{\"cdrs\":{\"attributes_conns\":[],\"chargers_conns\":[\"*internal\"],\"ees_conns\":[],\"enabled\":true,\"extra_fields\":[],\"online_cdr_exports\":[],\"rals_conns\":[],\"scheduler_conns\":[],\"session_cost_retries\":5,\"stats_conns\":[],\"store_cdrs\":true,\"thresholds_conns\":[]}}"
- var rpl10 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.CDRsJSON},
- }, &rpl10); err != nil {
- t.Error(err)
- } else if cfgStr != rpl10 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl10))
- }
- cfgStr = "{\"ers\":{\"enabled\":false,\"partial_cache_ttl\":\"1s\",\"readers\":[{\"cache_dump_fields\":[],\"concurrent_requests\":1024,\"fields\":[{\"mandatory\":true,\"path\":\"*cgreq.ToR\",\"tag\":\"ToR\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"mandatory\":true,\"path\":\"*cgreq.OriginID\",\"tag\":\"OriginID\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"mandatory\":true,\"path\":\"*cgreq.RequestType\",\"tag\":\"RequestType\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"mandatory\":true,\"path\":\"*cgreq.Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"mandatory\":true,\"path\":\"*cgreq.Category\",\"tag\":\"Category\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"mandatory\":true,\"path\":\"*cgreq.Account\",\"tag\":\"Account\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"mandatory\":true,\"path\":\"*cgreq.Subject\",\"tag\":\"Subject\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"mandatory\":true,\"path\":\"*cgreq.Destination\",\"tag\":\"Destination\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"mandatory\":true,\"path\":\"*cgreq.SetupTime\",\"tag\":\"SetupTime\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"mandatory\":true,\"path\":\"*cgreq.AnswerTime\",\"tag\":\"AnswerTime\",\"type\":\"*variable\",\"value\":\"~*req.12\"},{\"mandatory\":true,\"path\":\"*cgreq.Usage\",\"tag\":\"Usage\",\"type\":\"*variable\",\"value\":\"~*req.13\"}],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{\"csvFieldSeparator\":\",\",\"csvHeaderDefineChar\":\":\",\"csvRowLength\":0,\"natsSubject\":\"cgrates_cdrs\",\"partialCacheAction\":\"*none\",\"partialOrderField\":\"~*req.AnswerTime\",\"xmlRootPath\":\"\"},\"partial_commit_fields\":[],\"processed_path\":\"/var/spool/cgrates/ers/out\",\"run_delay\":\"0\",\"source_path\":\"/var/spool/cgrates/ers/in\",\"tenant\":\"\",\"timezone\":\"\",\"type\":\"*none\"}],\"sessions_conns\":[\"*internal\"]}}"
- var rpl11 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.ERsJSON},
- }, &rpl11); err != nil {
- t.Error(err)
- } else if cfgStr != rpl11 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl11))
- }
- cfgStr = "{\"ees\":{\"attributes_conns\":[],\"cache\":{\"*file_csv\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"5s\"}},\"enabled\":false,\"exporters\":[{\"attempts\":1,\"attribute_context\":\"\",\"attribute_ids\":[],\"concurrent_requests\":0,\"export_path\":\"/var/spool/cgrates/ees\",\"fields\":[],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{},\"synchronous\":false,\"timezone\":\"\",\"type\":\"*none\"}]}}"
- var rpl12 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.EEsJSON},
- }, &rpl12); err != nil {
- t.Error(err)
- } else if cfgStr != rpl12 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl12))
- }
- cfgStr = "{\"sessions\":{\"alterable_fields\":[],\"attributes_conns\":[\"*internal\"],\"cdrs_conns\":[\"*localhost\"],\"channel_sync_interval\":\"0\",\"chargers_conns\":[\"*internal\"],\"client_protocol\":1,\"debit_interval\":\"0\",\"default_usage\":{\"*any\":\"3h0m0s\",\"*data\":\"1048576\",\"*sms\":\"1\",\"*voice\":\"3h0m0s\"},\"enabled\":true,\"listen_bigob\":\"\",\"listen_bijson\":\"127.0.0.1:2014\",\"min_dur_low_balance\":\"0\",\"rals_conns\":[\"*internal\"],\"replication_conns\":[],\"resources_conns\":[\"*internal\"],\"routes_conns\":[\"*internal\"],\"scheduler_conns\":[],\"session_indexes\":[\"OriginID\"],\"session_ttl\":\"0\",\"stats_conns\":[],\"stir\":{\"allowed_attest\":[\"*any\"],\"default_attest\":\"A\",\"payload_maxduration\":\"-1\",\"privatekey_path\":\"\",\"publickey_path\":\"\"},\"store_session_costs\":false,\"terminate_attempts\":5,\"thresholds_conns\":[]}}"
- var rpl13 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.SessionSJSON},
- }, &rpl13); err != nil {
- t.Error(err)
- } else if cfgStr != rpl13 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl13))
- }
- cfgStr = "{\"asterisk_agent\":{\"asterisk_conns\":[{\"address\":\"127.0.0.1:8088\",\"alias\":\"\",\"connect_attempts\":3,\"password\":\"CGRateS.org\",\"reconnects\":5,\"user\":\"cgrates\"}],\"create_cdr\":false,\"enabled\":false,\"sessions_conns\":[\"*birpc_internal\"]}}"
- var rpl14 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.AsteriskAgentJSON},
- }, &rpl14); err != nil {
- t.Error(err)
- } else if cfgStr != rpl14 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl14))
- }
- cfgStr = "{\"freeswitch_agent\":{\"create_cdr\":false,\"empty_balance_ann_file\":\"\",\"empty_balance_context\":\"\",\"enabled\":false,\"event_socket_conns\":[{\"address\":\"127.0.0.1:8021\",\"alias\":\"127.0.0.1:8021\",\"password\":\"ClueCon\",\"reconnects\":5}],\"extra_fields\":\"\",\"low_balance_ann_file\":\"\",\"max_wait_connection\":\"2s\",\"sessions_conns\":[\"*birpc_internal\"],\"subscribe_park\":true}}"
- var rpl15 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.FreeSWITCHAgentJSON},
- }, &rpl15); err != nil {
- t.Error(err)
- } else if cfgStr != rpl15 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl15))
- }
- cfgStr = "{\"kamailio_agent\":{\"create_cdr\":false,\"enabled\":false,\"evapi_conns\":[{\"address\":\"127.0.0.1:8448\",\"alias\":\"\",\"reconnects\":5}],\"sessions_conns\":[\"*birpc_internal\"],\"timezone\":\"\"}}"
- var rpl16 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.KamailioAgentJSON},
- }, &rpl16); err != nil {
- t.Error(err)
- } else if cfgStr != rpl16 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl16))
- }
- cfgStr = "{\"diameter_agent\":{\"asr_template\":\"\",\"concurrent_requests\":-1,\"dictionaries_path\":\"/usr/share/cgrates/diameter/dict/\",\"enabled\":false,\"forced_disconnect\":\"*none\",\"listen\":\"127.0.0.1:3868\",\"listen_net\":\"tcp\",\"origin_host\":\"CGR-DA\",\"origin_realm\":\"cgrates.org\",\"product_name\":\"CGRateS\",\"rar_template\":\"\",\"request_processors\":[],\"sessions_conns\":[\"*birpc_internal\"],\"synced_conn_requests\":false,\"vendor_id\":0}}"
- var rpl17 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.DiameterAgentJSON},
- }, &rpl17); err != nil {
- t.Error(err)
- } else if cfgStr != rpl17 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl17))
- }
+// cfgStr = "{\"cdrs\":{\"attributes_conns\":[],\"chargers_conns\":[\"*internal\"],\"ees_conns\":[],\"enabled\":true,\"extra_fields\":[],\"online_cdr_exports\":[],\"rals_conns\":[],\"scheduler_conns\":[],\"session_cost_retries\":5,\"stats_conns\":[],\"store_cdrs\":true,\"thresholds_conns\":[]}}"
+// var rpl10 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.CDRsJSON},
+// }, &rpl10); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl10 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl10))
+// }
+// cfgStr = "{\"ers\":{\"enabled\":false,\"partial_cache_ttl\":\"1s\",\"readers\":[{\"cache_dump_fields\":[],\"concurrent_requests\":1024,\"fields\":[{\"mandatory\":true,\"path\":\"*cgreq.ToR\",\"tag\":\"ToR\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"mandatory\":true,\"path\":\"*cgreq.OriginID\",\"tag\":\"OriginID\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"mandatory\":true,\"path\":\"*cgreq.RequestType\",\"tag\":\"RequestType\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"mandatory\":true,\"path\":\"*cgreq.Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"mandatory\":true,\"path\":\"*cgreq.Category\",\"tag\":\"Category\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"mandatory\":true,\"path\":\"*cgreq.Account\",\"tag\":\"Account\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"mandatory\":true,\"path\":\"*cgreq.Subject\",\"tag\":\"Subject\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"mandatory\":true,\"path\":\"*cgreq.Destination\",\"tag\":\"Destination\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"mandatory\":true,\"path\":\"*cgreq.SetupTime\",\"tag\":\"SetupTime\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"mandatory\":true,\"path\":\"*cgreq.AnswerTime\",\"tag\":\"AnswerTime\",\"type\":\"*variable\",\"value\":\"~*req.12\"},{\"mandatory\":true,\"path\":\"*cgreq.Usage\",\"tag\":\"Usage\",\"type\":\"*variable\",\"value\":\"~*req.13\"}],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{\"csvFieldSeparator\":\",\",\"csvHeaderDefineChar\":\":\",\"csvRowLength\":0,\"natsSubject\":\"cgrates_cdrs\",\"partialCacheAction\":\"*none\",\"partialOrderField\":\"~*req.AnswerTime\",\"xmlRootPath\":\"\"},\"partial_commit_fields\":[],\"processed_path\":\"/var/spool/cgrates/ers/out\",\"run_delay\":\"0\",\"source_path\":\"/var/spool/cgrates/ers/in\",\"tenant\":\"\",\"timezone\":\"\",\"type\":\"*none\"}],\"sessions_conns\":[\"*internal\"]}}"
+// var rpl11 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.ERsJSON},
+// }, &rpl11); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl11 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl11))
+// }
+// cfgStr = "{\"ees\":{\"attributes_conns\":[],\"cache\":{\"*file_csv\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"5s\"}},\"enabled\":false,\"exporters\":[{\"attempts\":1,\"attribute_context\":\"\",\"attribute_ids\":[],\"concurrent_requests\":0,\"export_path\":\"/var/spool/cgrates/ees\",\"fields\":[],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{},\"synchronous\":false,\"timezone\":\"\",\"type\":\"*none\"}]}}"
+// var rpl12 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.EEsJSON},
+// }, &rpl12); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl12 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl12))
+// }
+// cfgStr = "{\"sessions\":{\"alterable_fields\":[],\"attributes_conns\":[\"*internal\"],\"cdrs_conns\":[\"*localhost\"],\"channel_sync_interval\":\"0\",\"chargers_conns\":[\"*internal\"],\"client_protocol\":1,\"debit_interval\":\"0\",\"default_usage\":{\"*any\":\"3h0m0s\",\"*data\":\"1048576\",\"*sms\":\"1\",\"*voice\":\"3h0m0s\"},\"enabled\":true,\"listen_bigob\":\"\",\"listen_bijson\":\"127.0.0.1:2014\",\"min_dur_low_balance\":\"0\",\"rals_conns\":[\"*internal\"],\"replication_conns\":[],\"resources_conns\":[\"*internal\"],\"routes_conns\":[\"*internal\"],\"scheduler_conns\":[],\"session_indexes\":[\"OriginID\"],\"session_ttl\":\"0\",\"stats_conns\":[],\"stir\":{\"allowed_attest\":[\"*any\"],\"default_attest\":\"A\",\"payload_maxduration\":\"-1\",\"privatekey_path\":\"\",\"publickey_path\":\"\"},\"store_session_costs\":false,\"terminate_attempts\":5,\"thresholds_conns\":[]}}"
+// var rpl13 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.SessionSJSON},
+// }, &rpl13); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl13 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl13))
+// }
+// cfgStr = "{\"asterisk_agent\":{\"asterisk_conns\":[{\"address\":\"127.0.0.1:8088\",\"alias\":\"\",\"connect_attempts\":3,\"password\":\"CGRateS.org\",\"reconnects\":5,\"user\":\"cgrates\"}],\"create_cdr\":false,\"enabled\":false,\"sessions_conns\":[\"*birpc_internal\"]}}"
+// var rpl14 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.AsteriskAgentJSON},
+// }, &rpl14); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl14 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl14))
+// }
+// cfgStr = "{\"freeswitch_agent\":{\"create_cdr\":false,\"empty_balance_ann_file\":\"\",\"empty_balance_context\":\"\",\"enabled\":false,\"event_socket_conns\":[{\"address\":\"127.0.0.1:8021\",\"alias\":\"127.0.0.1:8021\",\"password\":\"ClueCon\",\"reconnects\":5}],\"extra_fields\":\"\",\"low_balance_ann_file\":\"\",\"max_wait_connection\":\"2s\",\"sessions_conns\":[\"*birpc_internal\"],\"subscribe_park\":true}}"
+// var rpl15 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.FreeSWITCHAgentJSON},
+// }, &rpl15); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl15 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl15))
+// }
+// cfgStr = "{\"kamailio_agent\":{\"create_cdr\":false,\"enabled\":false,\"evapi_conns\":[{\"address\":\"127.0.0.1:8448\",\"alias\":\"\",\"reconnects\":5}],\"sessions_conns\":[\"*birpc_internal\"],\"timezone\":\"\"}}"
+// var rpl16 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.KamailioAgentJSON},
+// }, &rpl16); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl16 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl16))
+// }
+// cfgStr = "{\"diameter_agent\":{\"asr_template\":\"\",\"concurrent_requests\":-1,\"dictionaries_path\":\"/usr/share/cgrates/diameter/dict/\",\"enabled\":false,\"forced_disconnect\":\"*none\",\"listen\":\"127.0.0.1:3868\",\"listen_net\":\"tcp\",\"origin_host\":\"CGR-DA\",\"origin_realm\":\"cgrates.org\",\"product_name\":\"CGRateS\",\"rar_template\":\"\",\"request_processors\":[],\"sessions_conns\":[\"*birpc_internal\"],\"synced_conn_requests\":false,\"vendor_id\":0}}"
+// var rpl17 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.DiameterAgentJSON},
+// }, &rpl17); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl17 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl17))
+// }
- cfgStr = "{\"http_agent\":[]}"
- var rpl18 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.HTTPAgentJSON},
- }, &rpl18); err != nil {
- t.Error(err)
- } else if cfgStr != rpl18 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl18))
- }
+// cfgStr = "{\"http_agent\":[]}"
+// var rpl18 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.HTTPAgentJSON},
+// }, &rpl18); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl18 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl18))
+// }
- cfgStr = "{\"dns_agent\":{\"enabled\":false,\"listen\":\"127.0.0.1:2053\",\"listen_net\":\"udp\",\"request_processors\":[],\"sessions_conns\":[\"*internal\"],\"timezone\":\"\"}}"
- var rpl19 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.DNSAgentJSON},
- }, &rpl19); err != nil {
- t.Error(err)
- } else if cfgStr != rpl19 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl19))
- }
+// cfgStr = "{\"dns_agent\":{\"enabled\":false,\"listen\":\"127.0.0.1:2053\",\"listen_net\":\"udp\",\"request_processors\":[],\"sessions_conns\":[\"*internal\"],\"timezone\":\"\"}}"
+// var rpl19 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.DNSAgentJSON},
+// }, &rpl19); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl19 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl19))
+// }
- cfgStr = "{\"attributes\":{\"any_context\":true,\"accounts_conns\":[\"*localhost\"],\"opts\":{\"*processRuns\":2},\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"resources_conns\":[\"*localhost\"],\"stats_conns\":[\"*localhost\"],\"suffix_indexed_fields\":[]}}"
- var rpl20 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.AttributeSJSON},
- }, &rpl20); err != nil {
- t.Error(err)
- } else if cfgStr != rpl20 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl20))
- }
+// cfgStr = "{\"attributes\":{\"any_context\":true,\"accounts_conns\":[\"*localhost\"],\"opts\":{\"*processRuns\":2},\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"resources_conns\":[\"*localhost\"],\"stats_conns\":[\"*localhost\"],\"suffix_indexed_fields\":[]}}"
+// var rpl20 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.AttributeSJSON},
+// }, &rpl20); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl20 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl20))
+// }
- cfgStr = "{\"chargers\":{\"attributes_conns\":[\"*internal\"],\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"suffix_indexed_fields\":[]}}"
- var rpl21 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.ChargerSJSON},
- }, &rpl21); err != nil {
- t.Error(err)
- } else if cfgStr != rpl21 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl21))
- }
- cfgStr = "{\"resources\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"1s\",\"suffix_indexed_fields\":[],\"thresholds_conns\":[\"*internal\"]}}"
- var rpl22 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.ResourceSJSON},
- }, &rpl22); err != nil {
- t.Error(err)
- } else if cfgStr != rpl22 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl22))
- }
- cfgStr = "{\"stats\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"1s\",\"store_uncompressed_limit\":0,\"suffix_indexed_fields\":[],\"thresholds_conns\":[\"*internal\"]}}"
- var rpl23 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.StatSJSON},
- }, &rpl23); err != nil {
- t.Error(err)
- } else if cfgStr != rpl23 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl23))
- }
+// cfgStr = "{\"chargers\":{\"attributes_conns\":[\"*internal\"],\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"suffix_indexed_fields\":[]}}"
+// var rpl21 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.ChargerSJSON},
+// }, &rpl21); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl21 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl21))
+// }
+// cfgStr = "{\"resources\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"1s\",\"suffix_indexed_fields\":[],\"thresholds_conns\":[\"*internal\"]}}"
+// var rpl22 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.ResourceSJSON},
+// }, &rpl22); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl22 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl22))
+// }
+// cfgStr = "{\"stats\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"1s\",\"store_uncompressed_limit\":0,\"suffix_indexed_fields\":[],\"thresholds_conns\":[\"*internal\"]}}"
+// var rpl23 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.StatSJSON},
+// }, &rpl23); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl23 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl23))
+// }
- cfgStr = "{\"thresholds\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"1s\",\"suffix_indexed_fields\":[]}}"
- var rpl24 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.ThresholdSJSON},
- }, &rpl24); err != nil {
- t.Error(err)
- } else if cfgStr != rpl24 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl24))
- }
+// cfgStr = "{\"thresholds\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"1s\",\"suffix_indexed_fields\":[]}}"
+// var rpl24 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.ThresholdSJSON},
+// }, &rpl24); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl24 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl24))
+// }
- cfgStr = "{\"routes\":{\"attributes_conns\":[],\"default_ratio\":1,\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[\"*req.Destination\"],\"rals_conns\":[\"*internal\"],\"resources_conns\":[\"*internal\"],\"stats_conns\":[\"*internal\"],\"suffix_indexed_fields\":[]}}"
- var rpl25 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.RouteSJSON},
- }, &rpl25); err != nil {
- t.Error(err)
- } else if cfgStr != rpl25 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl25))
- }
+// cfgStr = "{\"routes\":{\"attributes_conns\":[],\"default_ratio\":1,\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[\"*req.Destination\"],\"rals_conns\":[\"*internal\"],\"resources_conns\":[\"*internal\"],\"stats_conns\":[\"*internal\"],\"suffix_indexed_fields\":[]}}"
+// var rpl25 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.RouteSJSON},
+// }, &rpl25); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl25 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl25))
+// }
- cfgStr = "{\"loaders\":[{\"caches_conns\":[\"*internal\"],\"data\":[{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"TenantID\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ProfileID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Contexts\",\"tag\":\"Contexts\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"AttributeFilterIDs\",\"tag\":\"AttributeFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"Path\",\"tag\":\"Path\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"Type\",\"tag\":\"Type\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"Value\",\"tag\":\"Value\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.10\"}],\"file_name\":\"Attributes.csv\",\"flags\":null,\"type\":\"*attributes\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Type\",\"tag\":\"Type\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"Element\",\"tag\":\"Element\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"Values\",\"tag\":\"Values\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.5\"}],\"file_name\":\"Filters.csv\",\"flags\":null,\"type\":\"*filters\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"UsageTTL\",\"tag\":\"TTL\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"Limit\",\"tag\":\"Limit\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"AllocationMessage\",\"tag\":\"AllocationMessage\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"Stored\",\"tag\":\"Stored\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"ThresholdIDs\",\"tag\":\"ThresholdIDs\",\"type\":\"*variable\",\"value\":\"~*req.10\"}],\"file_name\":\"Resources.csv\",\"flags\":null,\"type\":\"*resources\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"QueueLength\",\"tag\":\"QueueLength\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"TTL\",\"tag\":\"TTL\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"MinItems\",\"tag\":\"MinItems\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"MetricIDs\",\"tag\":\"MetricIDs\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"MetricFilterIDs\",\"tag\":\"MetricFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"Stored\",\"tag\":\"Stored\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"path\":\"ThresholdIDs\",\"tag\":\"ThresholdIDs\",\"type\":\"*variable\",\"value\":\"~*req.12\"}],\"file_name\":\"Stats.csv\",\"flags\":null,\"type\":\"*stats\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"MaxHits\",\"tag\":\"MaxHits\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"MinHits\",\"tag\":\"MinHits\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"MinSleep\",\"tag\":\"MinSleep\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"ActionIDs\",\"tag\":\"ActionIDs\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"Async\",\"tag\":\"Async\",\"type\":\"*variable\",\"value\":\"~*req.10\"}],\"file_name\":\"Thresholds.csv\",\"flags\":null,\"type\":\"*thresholds\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"Sorting\",\"tag\":\"Sorting\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"SortingParameters\",\"tag\":\"SortingParameters\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"RouteID\",\"tag\":\"RouteID\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"RouteFilterIDs\",\"tag\":\"RouteFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"RouteAccountIDs\",\"tag\":\"RouteAccountIDs\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"RouteRateProfileIDs\",\"tag\":\"RouteRateProfileIDs\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"RouteResourceIDs\",\"tag\":\"RouteResourceIDs\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"RouteStatIDs\",\"tag\":\"RouteStatIDs\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"path\":\"RouteWeight\",\"tag\":\"RouteWeight\",\"type\":\"*variable\",\"value\":\"~*req.12\"},{\"path\":\"RouteBlocker\",\"tag\":\"RouteBlocker\",\"type\":\"*variable\",\"value\":\"~*req.13\"},{\"path\":\"RouteParameters\",\"tag\":\"RouteParameters\",\"type\":\"*variable\",\"value\":\"~*req.14\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.15\"}],\"file_name\":\"Routes.csv\",\"flags\":null,\"type\":\"*routes\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"RunID\",\"tag\":\"RunID\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"AttributeIDs\",\"tag\":\"AttributeIDs\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.6\"}],\"file_name\":\"Chargers.csv\",\"flags\":null,\"type\":\"*chargers\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Contexts\",\"tag\":\"Contexts\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"Strategy\",\"tag\":\"Strategy\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"StrategyParameters\",\"tag\":\"StrategyParameters\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"ConnID\",\"tag\":\"ConnID\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"ConnFilterIDs\",\"tag\":\"ConnFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"ConnWeight\",\"tag\":\"ConnWeight\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"ConnBlocker\",\"tag\":\"ConnBlocker\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"ConnParameters\",\"tag\":\"ConnParameters\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.12\"}],\"file_name\":\"DispatcherProfiles.csv\",\"flags\":null,\"type\":\"*dispatchers\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Address\",\"tag\":\"Address\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"Transport\",\"tag\":\"Transport\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"ConnectAttempts\",\"tag\":\"ConnectAttempts\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"Reconnects\",\"tag\":\"Reconnects\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"ConnectTimeout\",\"tag\":\"ConnectTimeout\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"ReplyTimeout\",\"tag\":\"ReplyTimeout\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"TLS\",\"tag\":\"TLS\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"ClientKey\",\"tag\":\"ClientKey\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"ClientCertificate\",\"tag\":\"ClientCertificate\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"CaCertificate\",\"tag\":\"CaCertificate\",\"type\":\"*variable\",\"value\":\"~*req.11\"}],\"file_name\":\"DispatcherHosts.csv\",\"flags\":null,\"type\":\"*dispatcher_hosts\"}],\"dry_run\":false,\"enabled\":false,\"field_separator\":\",\",\"id\":\"*default\",\"lock_filename\":\".cgr.lck\",\"run_delay\":\"0\",\"tenant\":\"\",\"tp_in_dir\":\"/var/spool/cgrates/loader/in\",\"tp_out_dir\":\"/var/spool/cgrates/loader/out\"}]}"
- var rpl26 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.LoaderSJSON},
- }, &rpl26); err != nil {
- t.Error(err)
- } else if cfgStr != rpl26 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl26))
- }
+// cfgStr = "{\"loaders\":[{\"caches_conns\":[\"*internal\"],\"data\":[{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"TenantID\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ProfileID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Contexts\",\"tag\":\"Contexts\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"AttributeFilterIDs\",\"tag\":\"AttributeFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"Path\",\"tag\":\"Path\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"Type\",\"tag\":\"Type\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"Value\",\"tag\":\"Value\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.10\"}],\"file_name\":\"Attributes.csv\",\"flags\":null,\"type\":\"*attributes\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Type\",\"tag\":\"Type\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"Element\",\"tag\":\"Element\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"Values\",\"tag\":\"Values\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.5\"}],\"file_name\":\"Filters.csv\",\"flags\":null,\"type\":\"*filters\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"UsageTTL\",\"tag\":\"TTL\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"Limit\",\"tag\":\"Limit\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"AllocationMessage\",\"tag\":\"AllocationMessage\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"Stored\",\"tag\":\"Stored\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"ThresholdIDs\",\"tag\":\"ThresholdIDs\",\"type\":\"*variable\",\"value\":\"~*req.10\"}],\"file_name\":\"Resources.csv\",\"flags\":null,\"type\":\"*resources\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"QueueLength\",\"tag\":\"QueueLength\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"TTL\",\"tag\":\"TTL\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"MinItems\",\"tag\":\"MinItems\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"MetricIDs\",\"tag\":\"MetricIDs\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"MetricFilterIDs\",\"tag\":\"MetricFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"Stored\",\"tag\":\"Stored\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"path\":\"ThresholdIDs\",\"tag\":\"ThresholdIDs\",\"type\":\"*variable\",\"value\":\"~*req.12\"}],\"file_name\":\"Stats.csv\",\"flags\":null,\"type\":\"*stats\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"MaxHits\",\"tag\":\"MaxHits\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"MinHits\",\"tag\":\"MinHits\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"MinSleep\",\"tag\":\"MinSleep\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"ActionIDs\",\"tag\":\"ActionIDs\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"Async\",\"tag\":\"Async\",\"type\":\"*variable\",\"value\":\"~*req.10\"}],\"file_name\":\"Thresholds.csv\",\"flags\":null,\"type\":\"*thresholds\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"Sorting\",\"tag\":\"Sorting\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"SortingParameters\",\"tag\":\"SortingParameters\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"RouteID\",\"tag\":\"RouteID\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"RouteFilterIDs\",\"tag\":\"RouteFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"RouteAccountIDs\",\"tag\":\"RouteAccountIDs\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"RouteRateProfileIDs\",\"tag\":\"RouteRateProfileIDs\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"RouteResourceIDs\",\"tag\":\"RouteResourceIDs\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"RouteStatIDs\",\"tag\":\"RouteStatIDs\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"path\":\"RouteWeight\",\"tag\":\"RouteWeight\",\"type\":\"*variable\",\"value\":\"~*req.12\"},{\"path\":\"RouteBlocker\",\"tag\":\"RouteBlocker\",\"type\":\"*variable\",\"value\":\"~*req.13\"},{\"path\":\"RouteParameters\",\"tag\":\"RouteParameters\",\"type\":\"*variable\",\"value\":\"~*req.14\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.15\"}],\"file_name\":\"Routes.csv\",\"flags\":null,\"type\":\"*routes\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"RunID\",\"tag\":\"RunID\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"AttributeIDs\",\"tag\":\"AttributeIDs\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.6\"}],\"file_name\":\"Chargers.csv\",\"flags\":null,\"type\":\"*chargers\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Contexts\",\"tag\":\"Contexts\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"Strategy\",\"tag\":\"Strategy\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"StrategyParameters\",\"tag\":\"StrategyParameters\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"ConnID\",\"tag\":\"ConnID\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"ConnFilterIDs\",\"tag\":\"ConnFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"ConnWeight\",\"tag\":\"ConnWeight\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"ConnBlocker\",\"tag\":\"ConnBlocker\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"ConnParameters\",\"tag\":\"ConnParameters\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.12\"}],\"file_name\":\"DispatcherProfiles.csv\",\"flags\":null,\"type\":\"*dispatchers\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Address\",\"tag\":\"Address\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"Transport\",\"tag\":\"Transport\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"ConnectAttempts\",\"tag\":\"ConnectAttempts\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"Reconnects\",\"tag\":\"Reconnects\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"ConnectTimeout\",\"tag\":\"ConnectTimeout\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"ReplyTimeout\",\"tag\":\"ReplyTimeout\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"TLS\",\"tag\":\"TLS\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"ClientKey\",\"tag\":\"ClientKey\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"ClientCertificate\",\"tag\":\"ClientCertificate\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"CaCertificate\",\"tag\":\"CaCertificate\",\"type\":\"*variable\",\"value\":\"~*req.11\"}],\"file_name\":\"DispatcherHosts.csv\",\"flags\":null,\"type\":\"*dispatcher_hosts\"}],\"dry_run\":false,\"enabled\":false,\"field_separator\":\",\",\"id\":\"*default\",\"lock_filename\":\".cgr.lck\",\"run_delay\":\"0\",\"tenant\":\"\",\"tp_in_dir\":\"/var/spool/cgrates/loader/in\",\"tp_out_dir\":\"/var/spool/cgrates/loader/out\"}]}"
+// var rpl26 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.LoaderSJSON},
+// }, &rpl26); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl26 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl26))
+// }
- cfgStr = "{\"suretax\":{\"bill_to_number\":\"\",\"business_unit\":\"\",\"client_number\":\"\",\"client_tracking\":\"~*req.CGRID\",\"customer_number\":\"~*req.Subject\",\"include_local_cost\":false,\"orig_number\":\"~*req.Subject\",\"p2pplus4\":\"\",\"p2pzipcode\":\"\",\"plus4\":\"\",\"regulatory_code\":\"03\",\"response_group\":\"03\",\"response_type\":\"D4\",\"return_file_code\":\"0\",\"sales_type_code\":\"R\",\"tax_exemption_code_list\":\"\",\"tax_included\":\"0\",\"tax_situs_rule\":\"04\",\"term_number\":\"~*req.Destination\",\"timezone\":\"Local\",\"trans_type_code\":\"010101\",\"unit_type\":\"00\",\"units\":\"1\",\"url\":\"\",\"validation_key\":\"\",\"zipcode\":\"\"}}"
- var rpl28 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.SureTaxJSON},
- }, &rpl28); err != nil {
- t.Error(err)
- } else if cfgStr != rpl28 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl28))
- }
+// cfgStr = "{\"suretax\":{\"bill_to_number\":\"\",\"business_unit\":\"\",\"client_number\":\"\",\"client_tracking\":\"~*req.CGRID\",\"customer_number\":\"~*req.Subject\",\"include_local_cost\":false,\"orig_number\":\"~*req.Subject\",\"p2pplus4\":\"\",\"p2pzipcode\":\"\",\"plus4\":\"\",\"regulatory_code\":\"03\",\"response_group\":\"03\",\"response_type\":\"D4\",\"return_file_code\":\"0\",\"sales_type_code\":\"R\",\"tax_exemption_code_list\":\"\",\"tax_included\":\"0\",\"tax_situs_rule\":\"04\",\"term_number\":\"~*req.Destination\",\"timezone\":\"Local\",\"trans_type_code\":\"010101\",\"unit_type\":\"00\",\"units\":\"1\",\"url\":\"\",\"validation_key\":\"\",\"zipcode\":\"\"}}"
+// var rpl28 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.SureTaxJSON},
+// }, &rpl28); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl28 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl28))
+// }
- cfgStr = "{\"loader\":{\"caches_conns\":[\"*localhost\"],\"data_path\":\"./\",\"disable_reverse\":false,\"field_separator\":\",\",\"gapi_credentials\":\".gapi/credentials.json\",\"gapi_token\":\".gapi/token.json\",\"scheduler_conns\":[\"*localhost\"],\"tpid\":\"\"}}"
- var rpl29 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.LoaderJSON},
- }, &rpl29); err != nil {
- t.Error(err)
- } else if cfgStr != rpl29 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl29))
- }
+// cfgStr = "{\"loader\":{\"caches_conns\":[\"*localhost\"],\"data_path\":\"./\",\"disable_reverse\":false,\"field_separator\":\",\",\"gapi_credentials\":\".gapi/credentials.json\",\"gapi_token\":\".gapi/token.json\",\"scheduler_conns\":[\"*localhost\"],\"tpid\":\"\"}}"
+// var rpl29 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.LoaderJSON},
+// }, &rpl29); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl29 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl29))
+// }
- cfgStr = "{\"migrator\":{\"out_datadb_encoding\":\"msgpack\",\"out_datadb_host\":\"127.0.0.1\",\"out_datadb_name\":\"10\",\"out_datadb_opts\":{\"redisCACertificate\":\"\",\"redisClientCertificate\":\"\",\"redisClientKey\":\"\",\"redisCluster\":false,\"redisClusterOndownDelay\":\"0\",\"redisClusterSync\":\"5s\",\"redisSentinel\":\"\",\"redisTLS\":false},\"out_datadb_password\":\"\",\"out_datadb_port\":\"6379\",\"out_datadb_type\":\"redis\",\"out_datadb_user\":\"cgrates\",\"out_stordb_host\":\"127.0.0.1\",\"out_stordb_name\":\"cgrates\",\"out_stordb_opts\":{},\"out_stordb_password\":\"CGRateS.org\",\"out_stordb_port\":\"3306\",\"out_stordb_type\":\"mysql\",\"out_stordb_user\":\"cgrates\",\"users_filters\":[\"Account\"]}}"
- var rpl30 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.MigratorJSON},
- }, &rpl30); err != nil {
- t.Error(err)
- } else if cfgStr != rpl30 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl30))
- }
- cfgStr = "{\"dispatchers\":{\"any_subsystem\":true,\"attributes_conns\":[],\"enabled\":false,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"suffix_indexed_fields\":[]}}"
- var rpl31 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.DispatcherSJSON},
- }, &rpl31); err != nil {
- t.Error(err)
- } else if cfgStr != rpl31 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl31))
- }
+// cfgStr = "{\"migrator\":{\"out_datadb_encoding\":\"msgpack\",\"out_datadb_host\":\"127.0.0.1\",\"out_datadb_name\":\"10\",\"out_datadb_opts\":{\"redisCACertificate\":\"\",\"redisClientCertificate\":\"\",\"redisClientKey\":\"\",\"redisCluster\":false,\"redisClusterOndownDelay\":\"0\",\"redisClusterSync\":\"5s\",\"redisSentinel\":\"\",\"redisTLS\":false},\"out_datadb_password\":\"\",\"out_datadb_port\":\"6379\",\"out_datadb_type\":\"redis\",\"out_datadb_user\":\"cgrates\",\"out_stordb_host\":\"127.0.0.1\",\"out_stordb_name\":\"cgrates\",\"out_stordb_opts\":{},\"out_stordb_password\":\"CGRateS.org\",\"out_stordb_port\":\"3306\",\"out_stordb_type\":\"mysql\",\"out_stordb_user\":\"cgrates\",\"users_filters\":[\"Account\"]}}"
+// var rpl30 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.MigratorJSON},
+// }, &rpl30); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl30 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl30))
+// }
+// cfgStr = "{\"dispatchers\":{\"any_subsystem\":true,\"attributes_conns\":[],\"enabled\":false,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"suffix_indexed_fields\":[]}}"
+// var rpl31 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.DispatcherSJSON},
+// }, &rpl31); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl31 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl31))
+// }
- cfgStr = "{\"registrarc\":{\"dispatchers\":{\"hosts\":[],\"refresh_interval\":\"5m0s\",\"registrars_conns\":[]},\"rpc\":{\"hosts\":[],\"refresh_interval\":\"5m0s\",\"registrars_conns\":[]}}}"
- var rpl32 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.RegistrarCJSON},
- }, &rpl32); err != nil {
- t.Error(err)
- } else if cfgStr != rpl32 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl32))
- }
- cfgStr = "{\"analyzers\":{\"cleanup_interval\":\"1h0m0s\",\"db_path\":\"/var/spool/cgrates/analyzers\",\"enabled\":false,\"index_type\":\"*scorch\",\"ttl\":\"24h0m0s\"}}"
- var rpl33 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.AnalyzerSJSON},
- }, &rpl33); err != nil {
- t.Error(err)
- } else if cfgStr != rpl33 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl33))
- }
+// cfgStr = "{\"registrarc\":{\"dispatchers\":{\"hosts\":[],\"refresh_interval\":\"5m0s\",\"registrars_conns\":[]},\"rpc\":{\"hosts\":[],\"refresh_interval\":\"5m0s\",\"registrars_conns\":[]}}}"
+// var rpl32 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.RegistrarCJSON},
+// }, &rpl32); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl32 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl32))
+// }
+// cfgStr = "{\"analyzers\":{\"cleanup_interval\":\"1h0m0s\",\"db_path\":\"/var/spool/cgrates/analyzers\",\"enabled\":false,\"index_type\":\"*scorch\",\"ttl\":\"24h0m0s\"}}"
+// var rpl33 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.AnalyzerSJSON},
+// }, &rpl33); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl33 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl33))
+// }
- cfgStr = "{\"sip_agent\":{\"enabled\":false,\"listen\":\"127.0.0.1:5060\",\"listen_net\":\"udp\",\"request_processors\":[],\"retransmission_timer\":1000000000,\"sessions_conns\":[\"*internal\"],\"timezone\":\"\"}}"
- var rpl35 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.SIPAgentJSON},
- }, &rpl35); err != nil {
- t.Error(err)
- } else if cfgStr != rpl35 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToJSON(cfgStr), utils.ToJSON(rpl35))
- }
+// cfgStr = "{\"sip_agent\":{\"enabled\":false,\"listen\":\"127.0.0.1:5060\",\"listen_net\":\"udp\",\"request_processors\":[],\"retransmission_timer\":1000000000,\"sessions_conns\":[\"*internal\"],\"timezone\":\"\"}}"
+// var rpl35 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.SIPAgentJSON},
+// }, &rpl35); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl35 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToJSON(cfgStr), utils.ToJSON(rpl35))
+// }
- cfgStr = "{\"templates\":{\"*asr\":[{\"mandatory\":true,\"path\":\"*diamreq.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Realm\",\"tag\":\"DestinationRealm\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Host\",\"tag\":\"DestinationHost\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"}],\"*cca\":[{\"mandatory\":true,\"path\":\"*rep.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"path\":\"*rep.Result-Code\",\"tag\":\"ResultCode\",\"type\":\"*constant\",\"value\":\"2001\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*vars.OriginHost\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*vars.OriginRealm\"},{\"mandatory\":true,\"path\":\"*rep.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"},{\"mandatory\":true,\"path\":\"*rep.CC-Request-Type\",\"tag\":\"CCRequestType\",\"type\":\"*variable\",\"value\":\"~*req.CC-Request-Type\"},{\"mandatory\":true,\"path\":\"*rep.CC-Request-Number\",\"tag\":\"CCRequestNumber\",\"type\":\"*variable\",\"value\":\"~*req.CC-Request-Number\"}],\"*cdrLog\":[{\"mandatory\":true,\"path\":\"*cdr.ToR\",\"tag\":\"ToR\",\"type\":\"*variable\",\"value\":\"~*req.BalanceType\"},{\"mandatory\":true,\"path\":\"*cdr.OriginHost\",\"tag\":\"OriginHost\",\"type\":\"*constant\",\"value\":\"127.0.0.1\"},{\"mandatory\":true,\"path\":\"*cdr.RequestType\",\"tag\":\"RequestType\",\"type\":\"*constant\",\"value\":\"*none\"},{\"mandatory\":true,\"path\":\"*cdr.Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.Tenant\"},{\"mandatory\":true,\"path\":\"*cdr.Account\",\"tag\":\"Account\",\"type\":\"*variable\",\"value\":\"~*req.Account\"},{\"mandatory\":true,\"path\":\"*cdr.Subject\",\"tag\":\"Subject\",\"type\":\"*variable\",\"value\":\"~*req.Account\"},{\"mandatory\":true,\"path\":\"*cdr.Cost\",\"tag\":\"Cost\",\"type\":\"*variable\",\"value\":\"~*req.Cost\"},{\"mandatory\":true,\"path\":\"*cdr.Source\",\"tag\":\"Source\",\"type\":\"*constant\",\"value\":\"*cdrLog\"},{\"mandatory\":true,\"path\":\"*cdr.Usage\",\"tag\":\"Usage\",\"type\":\"*constant\",\"value\":\"1\"},{\"mandatory\":true,\"path\":\"*cdr.RunID\",\"tag\":\"RunID\",\"type\":\"*variable\",\"value\":\"~*req.ActionType\"},{\"mandatory\":true,\"path\":\"*cdr.SetupTime\",\"tag\":\"SetupTime\",\"type\":\"*constant\",\"value\":\"*now\"},{\"mandatory\":true,\"path\":\"*cdr.AnswerTime\",\"tag\":\"AnswerTime\",\"type\":\"*constant\",\"value\":\"*now\"},{\"mandatory\":true,\"path\":\"*cdr.PreRated\",\"tag\":\"PreRated\",\"type\":\"*constant\",\"value\":\"true\"}],\"*err\":[{\"mandatory\":true,\"path\":\"*rep.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*vars.OriginHost\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*vars.OriginRealm\"}],\"*errSip\":[{\"mandatory\":true,\"path\":\"*rep.Request\",\"tag\":\"Request\",\"type\":\"*constant\",\"value\":\"SIP/2.0 500 Internal Server Error\"}],\"*rar\":[{\"mandatory\":true,\"path\":\"*diamreq.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Realm\",\"tag\":\"DestinationRealm\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Host\",\"tag\":\"DestinationHost\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"},{\"path\":\"*diamreq.Re-Auth-Request-Type\",\"tag\":\"ReAuthRequestType\",\"type\":\"*constant\",\"value\":\"0\"}]}}"
- var rpl36 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.TemplatesJSON},
- }, &rpl36); err != nil {
- t.Error(err)
- } else if cfgStr != rpl36 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl36))
- }
- cfgStr = "{\"configs\":{\"enabled\":false,\"root_dir\":\"/var/spool/cgrates/configs\",\"url\":\"/configs/\"}}"
- var rpl37 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.ConfigSJSON},
- }, &rpl37); err != nil {
- t.Error(err)
- } else if cfgStr != rpl37 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl37))
- }
+// cfgStr = "{\"templates\":{\"*asr\":[{\"mandatory\":true,\"path\":\"*diamreq.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Realm\",\"tag\":\"DestinationRealm\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Host\",\"tag\":\"DestinationHost\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"}],\"*cca\":[{\"mandatory\":true,\"path\":\"*rep.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"path\":\"*rep.Result-Code\",\"tag\":\"ResultCode\",\"type\":\"*constant\",\"value\":\"2001\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*vars.OriginHost\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*vars.OriginRealm\"},{\"mandatory\":true,\"path\":\"*rep.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"},{\"mandatory\":true,\"path\":\"*rep.CC-Request-Type\",\"tag\":\"CCRequestType\",\"type\":\"*variable\",\"value\":\"~*req.CC-Request-Type\"},{\"mandatory\":true,\"path\":\"*rep.CC-Request-Number\",\"tag\":\"CCRequestNumber\",\"type\":\"*variable\",\"value\":\"~*req.CC-Request-Number\"}],\"*cdrLog\":[{\"mandatory\":true,\"path\":\"*cdr.ToR\",\"tag\":\"ToR\",\"type\":\"*variable\",\"value\":\"~*req.BalanceType\"},{\"mandatory\":true,\"path\":\"*cdr.OriginHost\",\"tag\":\"OriginHost\",\"type\":\"*constant\",\"value\":\"127.0.0.1\"},{\"mandatory\":true,\"path\":\"*cdr.RequestType\",\"tag\":\"RequestType\",\"type\":\"*constant\",\"value\":\"*none\"},{\"mandatory\":true,\"path\":\"*cdr.Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.Tenant\"},{\"mandatory\":true,\"path\":\"*cdr.Account\",\"tag\":\"Account\",\"type\":\"*variable\",\"value\":\"~*req.Account\"},{\"mandatory\":true,\"path\":\"*cdr.Subject\",\"tag\":\"Subject\",\"type\":\"*variable\",\"value\":\"~*req.Account\"},{\"mandatory\":true,\"path\":\"*cdr.Cost\",\"tag\":\"Cost\",\"type\":\"*variable\",\"value\":\"~*req.Cost\"},{\"mandatory\":true,\"path\":\"*cdr.Source\",\"tag\":\"Source\",\"type\":\"*constant\",\"value\":\"*cdrLog\"},{\"mandatory\":true,\"path\":\"*cdr.Usage\",\"tag\":\"Usage\",\"type\":\"*constant\",\"value\":\"1\"},{\"mandatory\":true,\"path\":\"*cdr.RunID\",\"tag\":\"RunID\",\"type\":\"*variable\",\"value\":\"~*req.ActionType\"},{\"mandatory\":true,\"path\":\"*cdr.SetupTime\",\"tag\":\"SetupTime\",\"type\":\"*constant\",\"value\":\"*now\"},{\"mandatory\":true,\"path\":\"*cdr.AnswerTime\",\"tag\":\"AnswerTime\",\"type\":\"*constant\",\"value\":\"*now\"},{\"mandatory\":true,\"path\":\"*cdr.PreRated\",\"tag\":\"PreRated\",\"type\":\"*constant\",\"value\":\"true\"}],\"*err\":[{\"mandatory\":true,\"path\":\"*rep.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*vars.OriginHost\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*vars.OriginRealm\"}],\"*errSip\":[{\"mandatory\":true,\"path\":\"*rep.Request\",\"tag\":\"Request\",\"type\":\"*constant\",\"value\":\"SIP/2.0 500 Internal Server Error\"}],\"*rar\":[{\"mandatory\":true,\"path\":\"*diamreq.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Realm\",\"tag\":\"DestinationRealm\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Host\",\"tag\":\"DestinationHost\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"},{\"path\":\"*diamreq.Re-Auth-Request-Type\",\"tag\":\"ReAuthRequestType\",\"type\":\"*constant\",\"value\":\"0\"}]}}"
+// var rpl36 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.TemplatesJSON},
+// }, &rpl36); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl36 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl36))
+// }
+// cfgStr = "{\"configs\":{\"enabled\":false,\"root_dir\":\"/var/spool/cgrates/configs\",\"url\":\"/configs/\"}}"
+// var rpl37 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.ConfigSJSON},
+// }, &rpl37); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl37 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl37))
+// }
- cfgStr = "{\"apiban\":{\"enabled\":false,\"keys\":[]}}"
- var rpl38 string
- if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.APIBanJSON},
- }, &rpl38); err != nil {
- t.Error(err)
- } else if cfgStr != rpl38 {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl38))
- }
-}
+// cfgStr = "{\"apiban\":{\"enabled\":false,\"keys\":[]}}"
+// var rpl38 string
+// if err := testRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.APIBanJSON},
+// }, &rpl38); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl38 {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl38))
+// }
+// }
-func testStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/all_sections_cfg_rld_it_test.go b/general_tests/all_sections_cfg_rld_it_test.go
index 12b03c340..282a394e4 100644
--- a/general_tests/all_sections_cfg_rld_it_test.go
+++ b/general_tests/all_sections_cfg_rld_it_test.go
@@ -20,1328 +20,1328 @@ along with this program. If not, see
*/
package general_tests
-import (
- "path"
- "testing"
-
- "github.com/cgrates/birpc"
- "github.com/cgrates/birpc/context"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
-
-var (
- testSectCfgDir string
- testSectCfgPath string
- testSectCfg *config.CGRConfig
- testSectRPC *birpc.Client
-
- testSectTests = []func(t *testing.T){
- testSectLoadConfig,
- testSectResetDataDB,
- testSectResetStorDb,
- testSectStartEngine,
- testSectRPCConn,
- //testSectConfigSReloadGeneral,
- testSectConfigSReloadCores,
- testSectConfigSReloadRPCConns,
- //testSectConfigSReloadDataDB,
- //testSectConfigSReloadStorDB,
- testSectConfigSReloadListen,
- testSectConfigSReloadTLS,
- testSectConfigSReloadHTTP,
- testSectConfigSReloadCaches,
- testSectConfigSReloadFilters,
- testSectConfigSReloadCDRS,
- testSectConfigSReloadERS,
- testSectConfigSReloadEES,
- testSectConfigSReloadSessions,
- testSectConfigSReloadAsteriskAgent,
- testSectConfigSReloadFreeswitchAgent,
- testSectConfigSReloadKamailioAgent,
- testSectConfigSReloadDiameterAgent,
- testSectConfigSReloadHTTPAgent,
- testSectConfigSReloadDNSAgent,
- testSectConfigSReloadAttributes,
- testSectConfigSReloadChargers,
- testSectConfigSReloadResources,
- testSectConfigSReloadStats,
- testSectConfigSReloadThresholds,
- testSectConfigSReloadRoutes,
- testSectConfigSReloadLoaders,
- testSectConfigSReloadSuretax,
- testSectConfigSReloadLoader,
- testSectConfigSReloadMigrator,
- testSectConfigSReloadDispatchers,
- testSectConfigSReloadRegistrarC,
- testSectConfigSReloadAnalyzer,
- testSectConfigSReloadApiers,
- testSectConfigSReloadSIPAgent,
- testSectConfigSReloadTemplates,
- testSectConfigSReloadConfigs,
- testSectConfigSReloadAPIBan,
- testSectStopCgrEngine,
- }
-)
-
-func TestSectChange(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- testSectCfgDir = "tutinternal"
- case utils.MetaMySQL:
- testSectCfgDir = "tutmysql"
- case utils.MetaMongo:
- testSectCfgDir = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, testSectest := range testSectTests {
- t.Run(testSectCfgDir, testSectest)
- }
-}
-
-func testSectLoadConfig(t *testing.T) {
- testSectCfgPath = path.Join(*dataDir, "conf", "samples", testSectCfgDir)
- if testSectCfg, err = config.NewCGRConfigFromPath(testSectCfgPath); err != nil {
- t.Error(err)
- }
-}
-
-func testSectResetDataDB(t *testing.T) {
- if err := engine.InitDataDB(testSectCfg); err != nil {
- t.Fatal(err)
- }
-}
-
-func testSectResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(testSectCfg); err != nil {
- t.Fatal(err)
- }
-}
-
-func testSectStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(testSectCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
-
-func testSectRPCConn(t *testing.T) {
- var err error
- testSectRPC, err = newRPCClient(testSectCfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
-
-func testSectConfigSReloadGeneral(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"general\":{\"connect_attempts\":5,\"connect_timeout\":\"1s\",\"dbdata_encoding\":\"*msgpack\",\"default_caching\":\"*reload\",\"default_category\":\"call\",\"default_request_type\":\"*rated\",\"default_tenant\":\"cgrates.org\",\"default_timezone\":\"Local\",\"digest_equal\":\":\",\"digest_separator\":\",\",\"failed_posts_dir\":\"/var/spool/cgrates/failed_posts\",\"failed_posts_ttl\":\"5s\",\"locking_timeout\":\"0\",\"log_level\":7,\"logger\":\"*syslog\",\"max_parallel_conns\":100,\"node_id\":\"98ead14\",\"poster_attempts\":3,\"reconnects\":-1,\"reply_timeout\":\"50s\",\"rounding_decimals\":5,\"rsr_separator\":\";\",\"tpexport_dir\":\"/var/spool/cgrates/tpe\"}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"general\":{\"connect_attempts\":5,\"connect_timeout\":\"1s\",\"dbdata_encoding\":\"*msgpack\",\"default_caching\":\"*reload\",\"default_category\":\"call\",\"default_request_type\":\"*rated\",\"default_tenant\":\"cgrates.org\",\"default_timezone\":\"Local\",\"digest_equal\":\":\",\"digest_separator\":\",\",\"failed_posts_dir\":\"/var/spool/cgrates/failed_posts\",\"failed_posts_ttl\":\"5s\",\"locking_timeout\":\"0\",\"log_level\":7,\"logger\":\"*syslog\",\"max_parallel_conns\":100,\"node_id\":\"98ead14\",\"poster_attempts\":3,\"reconnects\":-1,\"reply_timeout\":\"50s\",\"rounding_decimals\":5,\"rsr_separator\":\";\",\"tpexport_dir\":\"/var/spool/cgrates/tpe\"}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.GeneralJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadCores(t *testing.T) {
-
- var replyPingBf string
- if err := testSectRPC.Call(context.Background(), utils.CoreSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
- t.Error(err)
- } else if replyPingBf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingBf)
- }
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"cores\":{\"caps\":0,\"caps_stats_interval\":\"0\",\"caps_strategy\":\"*busy\",\"shutdown_timeout\":\"1s\"}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"cores\":{\"caps\":0,\"caps_stats_interval\":\"0\",\"caps_strategy\":\"*busy\",\"shutdown_timeout\":\"1s\"}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.CoreSJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-
- var replyPingAf string
- if err := testSectRPC.Call(context.Background(), utils.CoreSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
- t.Error(err)
- } else if replyPingAf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingAf)
- }
-}
-
-func testSectConfigSReloadRPCConns(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"rpc_conns\":{\"*bijson_localhost\":{\"conns\":[{\"address\":\"127.0.0.1:2014\",\"transport\":\"*birpc_json\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*birpc_internal\":{\"conns\":[{\"address\":\"*birpc_internal\",\"transport\":\"\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*internal\":{\"conns\":[{\"address\":\"*internal\",\"transport\":\"\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*localhost\":{\"conns\":[{\"address\":\"127.0.0.1:2012\",\"transport\":\"*json\"}],\"poolSize\":0,\"strategy\":\"*first\"}}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"rpc_conns\":{\"*bijson_localhost\":{\"conns\":[{\"address\":\"127.0.0.1:2014\",\"transport\":\"*birpc_json\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*birpc_internal\":{\"conns\":[{\"address\":\"*birpc_internal\",\"transport\":\"\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*internal\":{\"conns\":[{\"address\":\"*internal\",\"transport\":\"\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*localhost\":{\"conns\":[{\"address\":\"127.0.0.1:2012\",\"transport\":\"*json\"}],\"poolSize\":0,\"strategy\":\"*first\"}}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.RPCConnsJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadDataDB(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"data_db\":{\"db_host\":\"127.0.0.1\",\"db_name\":\"10\",\"db_password\":\"\",\"db_port\":6379,\"db_type\":\"*internal\",\"db_user\":\"cgrates\",\"items\":{\"*account_action_plans\":{\"remote\":false,\"replicate\":false},\"*accounts\":{\"remote\":false,\"replicate\":false},\"*action_plans\":{\"remote\":false,\"replicate\":false},\"*action_triggers\":{\"remote\":false,\"replicate\":false},\"*actions\":{\"remote\":false,\"replicate\":false},\"*attribute_profiles\":{\"remote\":false,\"replicate\":false},\"*charger_profiles\":{\"remote\":false,\"replicate\":false},\"*destinations\":{\"remote\":false,\"replicate\":false},\"*dispatcher_hosts\":{\"remote\":false,\"replicate\":false},\"*dispatcher_profiles\":{\"remote\":false,\"replicate\":false},\"*filters\":{\"remote\":false,\"replicate\":false},\"*indexes\":{\"remote\":false,\"replicate\":false},\"*load_ids\":{\"remote\":false,\"replicate\":false},\"*rating_plans\":{\"remote\":false,\"replicate\":false},\"*rating_profiles\":{\"remote\":false,\"replicate\":false},\"*resource_profiles\":{\"remote\":false,\"replicate\":false},\"*resources\":{\"remote\":false,\"replicate\":false},\"*reverse_destinations\":{\"remote\":false,\"replicate\":false},\"*route_profiles\":{\"remote\":false,\"replicate\":false},\"*shared_groups\":{\"remote\":false,\"replicate\":false},\"*statqueue_profiles\":{\"remote\":false,\"replicate\":false},\"*statqueues\":{\"remote\":false,\"replicate\":false},\"*threshold_profiles\":{\"remote\":false,\"replicate\":false},\"*thresholds\":{\"remote\":false,\"replicate\":false},\"*timings\":{\"remote\":false,\"replicate\":false}},\"opts\":{\"mongoQueryTimeout\":\"10s\",\"redisCACertificate\":\"\",\"redisClientCertificate\":\"\",\"redisClientKey\":\"\",\"redisCluster\":false,\"redisClusterOndownDelay\":\"0\",\"redisClusterSync\":\"5s\",\"redisSentinel\":\"\",\"redisTLS\":false},\"remote_conn_id\":\"\",\"remote_conns\":[],\"replication_cache\":\"\",\"replication_conns\":[],\"replication_filtered\":false}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"data_db\":{\"db_host\":\"127.0.0.1\",\"db_name\":\"10\",\"db_password\":\"\",\"db_port\":6379,\"db_type\":\"*internal\",\"db_user\":\"cgrates\",\"items\":{\"*account_action_plans\":{\"remote\":false,\"replicate\":false},\"*accounts\":{\"remote\":false,\"replicate\":false},\"*action_plans\":{\"remote\":false,\"replicate\":false},\"*action_triggers\":{\"remote\":false,\"replicate\":false},\"*actions\":{\"remote\":false,\"replicate\":false},\"*attribute_profiles\":{\"remote\":false,\"replicate\":false},\"*charger_profiles\":{\"remote\":false,\"replicate\":false},\"*destinations\":{\"remote\":false,\"replicate\":false},\"*dispatcher_hosts\":{\"remote\":false,\"replicate\":false},\"*dispatcher_profiles\":{\"remote\":false,\"replicate\":false},\"*filters\":{\"remote\":false,\"replicate\":false},\"*indexes\":{\"remote\":false,\"replicate\":false},\"*load_ids\":{\"remote\":false,\"replicate\":false},\"*rating_plans\":{\"remote\":false,\"replicate\":false},\"*rating_profiles\":{\"remote\":false,\"replicate\":false},\"*resource_profiles\":{\"remote\":false,\"replicate\":false},\"*resources\":{\"remote\":false,\"replicate\":false},\"*reverse_destinations\":{\"remote\":false,\"replicate\":false},\"*route_profiles\":{\"remote\":false,\"replicate\":false},\"*shared_groups\":{\"remote\":false,\"replicate\":false},\"*statqueue_profiles\":{\"remote\":false,\"replicate\":false},\"*statqueues\":{\"remote\":false,\"replicate\":false},\"*threshold_profiles\":{\"remote\":false,\"replicate\":false},\"*thresholds\":{\"remote\":false,\"replicate\":false},\"*timings\":{\"remote\":false,\"replicate\":false}},\"opts\":{\"mongoQueryTimeout\":\"10s\",\"redisCACertificate\":\"\",\"redisClientCertificate\":\"\",\"redisClientKey\":\"\",\"redisCluster\":false,\"redisClusterOndownDelay\":\"0\",\"redisClusterSync\":\"5s\",\"redisSentinel\":\"\",\"redisTLS\":false},\"remote_conn_id\":\"\",\"remote_conns\":[],\"replication_cache\":\"\",\"replication_conns\":[],\"replication_filtered\":false}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.DataDBJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadStorDB(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"stor_db\":{\"db_host\":\"127.0.0.1\",\"db_name\":\"cgrates\",\"db_password\":\"CGRateS.org\",\"db_port\":3306,\"db_type\":\"*internal\",\"db_user\":\"cgrates\",\"items\":{\"*cdrs\":{\"remote\":false,\"replicate\":false},\"*session_costs\":{\"remote\":false,\"replicate\":false},\"*tp_account_actions\":{\"remote\":false,\"replicate\":false},\"*tp_action_plans\":{\"remote\":false,\"replicate\":false},\"*tp_action_triggers\":{\"remote\":false,\"replicate\":false},\"*tp_actions\":{\"remote\":false,\"replicate\":false},\"*tp_attributes\":{\"remote\":false,\"replicate\":false},\"*tp_chargers\":{\"remote\":false,\"replicate\":false},\"*tp_destination_rates\":{\"remote\":false,\"replicate\":false},\"*tp_destinations\":{\"remote\":false,\"replicate\":false},\"*tp_dispatcher_hosts\":{\"remote\":false,\"replicate\":false},\"*tp_dispatcher_profiles\":{\"remote\":false,\"replicate\":false},\"*tp_filters\":{\"remote\":false,\"replicate\":false},\"*tp_rates\":{\"remote\":false,\"replicate\":false},\"*tp_rating_plans\":{\"remote\":false,\"replicate\":false},\"*tp_rating_profiles\":{\"remote\":false,\"replicate\":false},\"*tp_resources\":{\"remote\":false,\"replicate\":false},\"*tp_routes\":{\"remote\":false,\"replicate\":false},\"*tp_shared_groups\":{\"remote\":false,\"replicate\":false},\"*tp_stats\":{\"remote\":false,\"replicate\":false},\"*tp_thresholds\":{\"remote\":false,\"replicate\":false},\"*tp_timings\":{\"remote\":false,\"replicate\":false},\"*versions\":{\"remote\":false,\"replicate\":false}},\"opts\":{\"mongoQueryTimeout\":\"10s\",\"mysqlLocation\":\"Local\",\"postgresSSLMode\":\"disable\",\"sqlConnMaxLifetime\":0,\"sqlMaxIdleConns\":10,\"sqlMaxOpenConns\":100},\"prefix_indexed_fields\":[],\"remote_conns\":null,\"replication_conns\":null,\"string_indexed_fields\":[]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"stor_db\":{\"db_host\":\"127.0.0.1\",\"db_name\":\"cgrates\",\"db_password\":\"CGRateS.org\",\"db_port\":3306,\"db_type\":\"*internal\",\"db_user\":\"cgrates\",\"items\":{\"*cdrs\":{\"remote\":false,\"replicate\":false},\"*session_costs\":{\"remote\":false,\"replicate\":false},\"*tp_account_actions\":{\"remote\":false,\"replicate\":false},\"*tp_action_plans\":{\"remote\":false,\"replicate\":false},\"*tp_action_triggers\":{\"remote\":false,\"replicate\":false},\"*tp_actions\":{\"remote\":false,\"replicate\":false},\"*tp_attributes\":{\"remote\":false,\"replicate\":false},\"*tp_chargers\":{\"remote\":false,\"replicate\":false},\"*tp_destination_rates\":{\"remote\":false,\"replicate\":false},\"*tp_destinations\":{\"remote\":false,\"replicate\":false},\"*tp_dispatcher_hosts\":{\"remote\":false,\"replicate\":false},\"*tp_dispatcher_profiles\":{\"remote\":false,\"replicate\":false},\"*tp_filters\":{\"remote\":false,\"replicate\":false},\"*tp_rates\":{\"remote\":false,\"replicate\":false},\"*tp_rating_plans\":{\"remote\":false,\"replicate\":false},\"*tp_rating_profiles\":{\"remote\":false,\"replicate\":false},\"*tp_resources\":{\"remote\":false,\"replicate\":false},\"*tp_routes\":{\"remote\":false,\"replicate\":false},\"*tp_shared_groups\":{\"remote\":false,\"replicate\":false},\"*tp_stats\":{\"remote\":false,\"replicate\":false},\"*tp_thresholds\":{\"remote\":false,\"replicate\":false},\"*tp_timings\":{\"remote\":false,\"replicate\":false},\"*versions\":{\"remote\":false,\"replicate\":false}},\"opts\":{\"mongoQueryTimeout\":\"10s\",\"mysqlLocation\":\"Local\",\"postgresSSLMode\":\"disable\",\"sqlConnMaxLifetime\":0,\"sqlMaxIdleConns\":10,\"sqlMaxOpenConns\":100},\"prefix_indexed_fields\":[],\"remote_conns\":null,\"replication_conns\":null,\"string_indexed_fields\":[]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.StorDBJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadListen(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"listen\":{\"http\":\":2080\",\"http_tls\":\"127.0.0.1:2280\",\"rpc_gob\":\":2013\",\"rpc_gob_tls\":\"127.0.0.1:2023\",\"rpc_json\":\":2012\",\"rpc_json_tls\":\"127.0.0.1:2022\"}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"listen\":{\"http\":\":2080\",\"http_tls\":\"127.0.0.1:2280\",\"rpc_gob\":\":2013\",\"rpc_gob_tls\":\"127.0.0.1:2023\",\"rpc_json\":\":2012\",\"rpc_json_tls\":\"127.0.0.1:2022\"}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.ListenJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadTLS(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"tls\":{\"ca_certificate\":\"\",\"client_certificate\":\"\",\"client_key\":\"\",\"server_certificate\":\"\",\"server_key\":\"\",\"server_name\":\"\",\"server_policy\":4}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"tls\":{\"ca_certificate\":\"\",\"client_certificate\":\"\",\"client_key\":\"\",\"server_certificate\":\"\",\"server_key\":\"\",\"server_name\":\"\",\"server_policy\":4}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.TlsJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadHTTP(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"http\":{\"auth_users\":{},\"client_opts\":{\"dialFallbackDelay\":\"300ms\",\"dialKeepAlive\":\"30s\",\"dialTimeout\":\"30s\",\"disableCompression\":false,\"disableKeepAlives\":false,\"expectContinueTimeout\":\"0\",\"forceAttemptHttp2\":true,\"idleConnTimeout\":\"90s\",\"maxConnsPerHost\":0,\"maxIdleConns\":100,\"maxIdleConnsPerHost\":2,\"responseHeaderTimeout\":\"0\",\"skipTlsVerify\":false,\"tlsHandshakeTimeout\":\"10s\"},\"freeswitch_cdrs_url\":\"/freeswitch_json\",\"http_cdrs\":\"/cdr_http\",\"json_rpc_url\":\"/jsonrpc\",\"registrars_url\":\"/registrar\",\"use_basic_auth\":false,\"ws_url\":\"/ws\"}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"http\":{\"auth_users\":{},\"client_opts\":{\"dialFallbackDelay\":\"300ms\",\"dialKeepAlive\":\"30s\",\"dialTimeout\":\"30s\",\"disableCompression\":false,\"disableKeepAlives\":false,\"expectContinueTimeout\":\"0\",\"forceAttemptHttp2\":true,\"idleConnTimeout\":\"90s\",\"maxConnsPerHost\":0,\"maxIdleConns\":100,\"maxIdleConnsPerHost\":2,\"responseHeaderTimeout\":\"0\",\"skipTlsVerify\":false,\"tlsHandshakeTimeout\":\"10s\"},\"freeswitch_cdrs_url\":\"/freeswitch_json\",\"http_cdrs\":\"/cdr_http\",\"json_rpc_url\":\"/jsonrpc\",\"registrars_url\":\"/registrar\",\"use_basic_auth\":false,\"ws_url\":\"/ws\"}}"
-
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.HTTPAgentJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadCaches(t *testing.T) {
-
- var replyPingBf string
- if err := testSectRPC.Call(context.Background(), utils.CacheSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
- t.Error(err)
- } else if replyPingBf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingBf)
- }
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"caches\":{\"partitions\":{\"*account_action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*accounts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*action_triggers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*apiban\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"2m0s\"},\"*attribute_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*attribute_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*caps_events\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*cdr_ids\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10m0s\"},\"*cdrs\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*charger_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*charger_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*closed_sessions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10s\"},\"*destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*diameter_messages\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*dispatcher_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_hosts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_loads\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_routes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatchers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*event_charges\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10s\"},\"*event_resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*filters\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*load_ids\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rating_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*replication_hosts\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resource_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resource_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*reverse_destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*reverse_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*route_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*route_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rpc_connections\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rpc_responses\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"2s\"},\"*session_costs\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*shared_groups\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*stat_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*statqueue_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*statqueues\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*stir\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*threshold_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*threshold_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*thresholds\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*timings\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tmp_rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"1m0s\"},\"*tp_account_actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_action_triggers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_attributes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_chargers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_destination_rates\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_dispatcher_hosts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_dispatcher_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_filters\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rates\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rating_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_routes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_shared_groups\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_stats\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_thresholds\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_timings\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*uch\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*versions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"}},\"replication_conns\":[]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"caches\":{\"partitions\":{\"*account_action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*accounts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*action_triggers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*apiban\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"2m0s\"},\"*attribute_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*attribute_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*caps_events\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*cdr_ids\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10m0s\"},\"*cdrs\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*charger_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*charger_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*closed_sessions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10s\"},\"*destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*diameter_messages\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*dispatcher_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_hosts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_loads\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_routes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatchers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*event_charges\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10s\"},\"*event_resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*filters\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*load_ids\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rating_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*replication_hosts\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resource_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resource_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*reverse_destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*reverse_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*route_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*route_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rpc_connections\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rpc_responses\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"2s\"},\"*session_costs\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*shared_groups\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*stat_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*statqueue_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*statqueues\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*stir\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*threshold_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*threshold_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*thresholds\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*timings\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tmp_rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"1m0s\"},\"*tp_account_actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_action_triggers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_attributes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_chargers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_destination_rates\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_dispatcher_hosts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_dispatcher_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_filters\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rates\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rating_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_routes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_shared_groups\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_stats\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_thresholds\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_timings\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*uch\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*versions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"}},\"replication_conns\":[]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.CacheJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-
- var replyPingAf string
- if err := testSectRPC.Call(context.Background(), utils.CacheSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
- t.Error(err)
- } else if replyPingAf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingAf)
- }
-}
-
-func testSectConfigSReloadFilters(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"filters\":{\"apiers_conns\":[\"*internal\"],\"resources_conns\":[\"*internal\"],\"stats_conns\":[\"*localhost\"]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"filters\":{\"apiers_conns\":[\"*internal\"],\"resources_conns\":[\"*internal\"],\"stats_conns\":[\"*localhost\"]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.FilterSJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadCDRS(t *testing.T) {
-
- var replyPingBf string
- if err := testSectRPC.Call(context.Background(), utils.CDRsV1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
- t.Error(err)
- } else if replyPingBf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingBf)
- }
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"cdrs\":{\"attributes_conns\":[],\"chargers_conns\":[\"*internal\"],\"ees_conns\":[],\"enabled\":true,\"extra_fields\":[],\"online_cdr_exports\":[],\"rals_conns\":[\"*internal\"],\"scheduler_conns\":[],\"session_cost_retries\":5,\"stats_conns\":[],\"store_cdrs\":true,\"thresholds_conns\":[]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"cdrs\":{\"attributes_conns\":[],\"chargers_conns\":[\"*internal\"],\"ees_conns\":[],\"enabled\":true,\"extra_fields\":[],\"online_cdr_exports\":[],\"rals_conns\":[\"*internal\"],\"scheduler_conns\":[],\"session_cost_retries\":5,\"stats_conns\":[],\"store_cdrs\":true,\"thresholds_conns\":[]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.CDRsJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-
- var replyPingAf string
- if err := testSectRPC.Call(context.Background(), utils.CDRsV1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
- t.Error(err)
- } else if replyPingAf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingAf)
- }
-}
-
-func testSectConfigSReloadERS(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"ers\":{\"enabled\":true,\"partial_cache_ttl\":\"1s\",\"readers\":[{\"cache_dump_fields\":[],\"concurrent_requests\":1024,\"fields\":[{\"mandatory\":true,\"path\":\"*cgreq.ToR\",\"tag\":\"ToR\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"mandatory\":true,\"path\":\"*cgreq.OriginID\",\"tag\":\"OriginID\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"mandatory\":true,\"path\":\"*cgreq.RequestType\",\"tag\":\"RequestType\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"mandatory\":true,\"path\":\"*cgreq.Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"mandatory\":true,\"path\":\"*cgreq.Category\",\"tag\":\"Category\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"mandatory\":true,\"path\":\"*cgreq.Account\",\"tag\":\"Account\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"mandatory\":true,\"path\":\"*cgreq.Subject\",\"tag\":\"Subject\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"mandatory\":true,\"path\":\"*cgreq.Destination\",\"tag\":\"Destination\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"mandatory\":true,\"path\":\"*cgreq.SetupTime\",\"tag\":\"SetupTime\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"mandatory\":true,\"path\":\"*cgreq.AnswerTime\",\"tag\":\"AnswerTime\",\"type\":\"*variable\",\"value\":\"~*req.12\"},{\"mandatory\":true,\"path\":\"*cgreq.Usage\",\"tag\":\"Usage\",\"type\":\"*variable\",\"value\":\"~*req.13\"}],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{\"csvFieldSeparator\":\",\",\"csvHeaderDefineChar\":\":\",\"csvRowLength\":0,\"natsSubject\":\"cgrates_cdrs\",\"partialCacheAction\":\"*none\",\"partialOrderField\":\"~*req.AnswerTime\",\"xmlRootPath\":\"\"},\"partial_commit_fields\":[],\"processed_path\":\"/var/spool/cgrates/ers/out\",\"run_delay\":\"0\",\"source_path\":\"/var/spool/cgrates/ers/in\",\"tenant\":\"\",\"timezone\":\"\",\"type\":\"*none\"}],\"sessions_conns\":[\"*internal\"]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"ers\":{\"enabled\":true,\"partial_cache_ttl\":\"1s\",\"readers\":[{\"cache_dump_fields\":[],\"concurrent_requests\":1024,\"fields\":[{\"mandatory\":true,\"path\":\"*cgreq.ToR\",\"tag\":\"ToR\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"mandatory\":true,\"path\":\"*cgreq.OriginID\",\"tag\":\"OriginID\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"mandatory\":true,\"path\":\"*cgreq.RequestType\",\"tag\":\"RequestType\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"mandatory\":true,\"path\":\"*cgreq.Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"mandatory\":true,\"path\":\"*cgreq.Category\",\"tag\":\"Category\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"mandatory\":true,\"path\":\"*cgreq.Account\",\"tag\":\"Account\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"mandatory\":true,\"path\":\"*cgreq.Subject\",\"tag\":\"Subject\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"mandatory\":true,\"path\":\"*cgreq.Destination\",\"tag\":\"Destination\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"mandatory\":true,\"path\":\"*cgreq.SetupTime\",\"tag\":\"SetupTime\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"mandatory\":true,\"path\":\"*cgreq.AnswerTime\",\"tag\":\"AnswerTime\",\"type\":\"*variable\",\"value\":\"~*req.12\"},{\"mandatory\":true,\"path\":\"*cgreq.Usage\",\"tag\":\"Usage\",\"type\":\"*variable\",\"value\":\"~*req.13\"}],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{\"csvFieldSeparator\":\",\",\"csvHeaderDefineChar\":\":\",\"csvRowLength\":0,\"natsSubject\":\"cgrates_cdrs\",\"partialCacheAction\":\"*none\",\"partialOrderField\":\"~*req.AnswerTime\",\"xmlRootPath\":\"\"},\"partial_commit_fields\":[],\"processed_path\":\"/var/spool/cgrates/ers/out\",\"run_delay\":\"0\",\"source_path\":\"/var/spool/cgrates/ers/in\",\"tenant\":\"\",\"timezone\":\"\",\"type\":\"*none\"}],\"sessions_conns\":[\"*internal\"]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.ERsJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadEES(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"ees\":{\"attributes_conns\":[],\"cache\":{\"*file_csv\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"5s\"}},\"enabled\":true,\"exporters\":[{\"attempts\":1,\"attribute_context\":\"\",\"attribute_ids\":[],\"concurrent_requests\":0,\"export_path\":\"/var/spool/cgrates/ees\",\"fields\":[],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{},\"synchronous\":false,\"timezone\":\"\",\"type\":\"*none\"}]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"ees\":{\"attributes_conns\":[],\"cache\":{\"*file_csv\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"5s\"}},\"enabled\":true,\"exporters\":[{\"attempts\":1,\"attribute_context\":\"\",\"attribute_ids\":[],\"concurrent_requests\":0,\"export_path\":\"/var/spool/cgrates/ees\",\"failed_posts_dir\":\"/var/spool/cgrates/failed_posts\",\"fields\":[],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{},\"synchronous\":false,\"timezone\":\"\",\"type\":\"*none\"}]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.EEsJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadSessions(t *testing.T) {
-
- var replyPingBf string
- if err := testSectRPC.Call(context.Background(), utils.SessionSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
- t.Error(err)
- } else if replyPingBf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingBf)
- }
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"sessions\":{\"alterable_fields\":[],\"attributes_conns\":[\"*internal\"],\"cdrs_conns\":[\"*internal\"],\"channel_sync_interval\":\"0\",\"chargers_conns\":[\"*internal\"],\"client_protocol\":1,\"debit_interval\":\"0\",\"default_usage\":{\"*any\":\"3h0m0s\",\"*data\":\"1048576\",\"*sms\":\"1\",\"*voice\":\"3h0m0s\"},\"enabled\":true,\"listen_bigob\":\"\",\"listen_bijson\":\"127.0.0.1:2014\",\"min_dur_low_balance\":\"0\",\"rals_conns\":[\"*internal\"],\"replication_conns\":[],\"resources_conns\":[\"*internal\"],\"routes_conns\":[\"*internal\"],\"scheduler_conns\":[],\"session_indexes\":[\"OriginID\"],\"session_ttl\":\"0\",\"stats_conns\":[],\"stir\":{\"allowed_attest\":[\"*any\"],\"default_attest\":\"A\",\"payload_maxduration\":\"-1\",\"privatekey_path\":\"\",\"publickey_path\":\"\"},\"store_session_costs\":false,\"terminate_attempts\":5,\"thresholds_conns\":[]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"sessions\":{\"alterable_fields\":[],\"attributes_conns\":[\"*internal\"],\"cdrs_conns\":[\"*internal\"],\"channel_sync_interval\":\"0\",\"chargers_conns\":[\"*internal\"],\"client_protocol\":1,\"debit_interval\":\"0\",\"default_usage\":{\"*any\":\"3h0m0s\",\"*data\":\"1048576\",\"*sms\":\"1\",\"*voice\":\"3h0m0s\"},\"enabled\":true,\"listen_bigob\":\"\",\"listen_bijson\":\"127.0.0.1:2014\",\"min_dur_low_balance\":\"0\",\"rals_conns\":[\"*internal\"],\"replication_conns\":[],\"resources_conns\":[\"*internal\"],\"routes_conns\":[\"*internal\"],\"scheduler_conns\":[],\"session_indexes\":[\"OriginID\"],\"session_ttl\":\"0\",\"stats_conns\":[],\"stir\":{\"allowed_attest\":[\"*any\"],\"default_attest\":\"A\",\"payload_maxduration\":\"-1\",\"privatekey_path\":\"\",\"publickey_path\":\"\"},\"store_session_costs\":false,\"terminate_attempts\":5,\"thresholds_conns\":[]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.SessionSJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-
- var replyPingAf string
- if err := testSectRPC.Call(context.Background(), utils.SessionSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
- t.Error(err)
- } else if replyPingAf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingAf)
- }
-}
-
-func testSectConfigSReloadAsteriskAgent(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"asterisk_agent\":{\"asterisk_conns\":[{\"address\":\"127.0.0.1:8088\",\"alias\":\"\",\"connect_attempts\":3,\"password\":\"CGRateS.org\",\"reconnects\":5,\"user\":\"cgrates\"}],\"create_cdr\":false,\"enabled\":false,\"sessions_conns\":[\"*birpc_internal\"]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"asterisk_agent\":{\"asterisk_conns\":[{\"address\":\"127.0.0.1:8088\",\"alias\":\"\",\"connect_attempts\":3,\"password\":\"CGRateS.org\",\"reconnects\":5,\"user\":\"cgrates\"}],\"create_cdr\":false,\"enabled\":false,\"sessions_conns\":[\"*birpc_internal\"]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.AsteriskAgentJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadFreeswitchAgent(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"freeswitch_agent\":{\"create_cdr\":false,\"empty_balance_ann_file\":\"\",\"empty_balance_context\":\"\",\"enabled\":false,\"event_socket_conns\":[{\"address\":\"127.0.0.1:8021\",\"alias\":\"127.0.0.1:8021\",\"password\":\"ClueCon\",\"reconnects\":5}],\"extra_fields\":[],\"low_balance_ann_file\":\"\",\"max_wait_connection\":\"2s\",\"sessions_conns\":[\"*birpc_internal\"],\"subscribe_park\":true}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"freeswitch_agent\":{\"create_cdr\":false,\"empty_balance_ann_file\":\"\",\"empty_balance_context\":\"\",\"enabled\":false,\"event_socket_conns\":[{\"address\":\"127.0.0.1:8021\",\"alias\":\"127.0.0.1:8021\",\"password\":\"ClueCon\",\"reconnects\":5}],\"extra_fields\":\"\",\"low_balance_ann_file\":\"\",\"max_wait_connection\":\"2s\",\"sessions_conns\":[\"*birpc_internal\"],\"subscribe_park\":true}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.FreeSWITCHAgentJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadKamailioAgent(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"kamailio_agent\":{\"create_cdr\":false,\"enabled\":false,\"evapi_conns\":[{\"address\":\"127.0.0.1:8448\",\"alias\":\"\",\"reconnects\":5}],\"sessions_conns\":[\"*birpc_internal\"],\"timezone\":\"\"}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"kamailio_agent\":{\"create_cdr\":false,\"enabled\":false,\"evapi_conns\":[{\"address\":\"127.0.0.1:8448\",\"alias\":\"\",\"reconnects\":5}],\"sessions_conns\":[\"*birpc_internal\"],\"timezone\":\"\"}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.KamailioAgentJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadDiameterAgent(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"diameter_agent\":{\"asr_template\":\"\",\"concurrent_requests\":-1,\"dictionaries_path\":\"/usr/share/cgrates/diameter/dict/\",\"enabled\":true,\"forced_disconnect\":\"*none\",\"listen\":\"127.0.0.1:3868\",\"listen_net\":\"tcp\",\"origin_host\":\"CGR-DA\",\"origin_realm\":\"cgrates.org\",\"product_name\":\"CGRateS\",\"rar_template\":\"\",\"request_processors\":[],\"sessions_conns\":[\"*birpc_internal\"],\"synced_conn_requests\":false,\"vendor_id\":0}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"diameter_agent\":{\"asr_template\":\"\",\"concurrent_requests\":-1,\"dictionaries_path\":\"/usr/share/cgrates/diameter/dict/\",\"enabled\":true,\"forced_disconnect\":\"*none\",\"listen\":\"127.0.0.1:3868\",\"listen_net\":\"tcp\",\"origin_host\":\"CGR-DA\",\"origin_realm\":\"cgrates.org\",\"product_name\":\"CGRateS\",\"rar_template\":\"\",\"request_processors\":[],\"sessions_conns\":[\"*birpc_internal\"],\"synced_conn_requests\":false,\"vendor_id\":0}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.DiameterAgentJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadHTTPAgent(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"http_agent\":[]}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"http_agent\":[]}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.LoaderSJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadDNSAgent(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"dns_agent\":{\"enabled\":true,\"listen\":\"127.0.0.1:2053\",\"listen_net\":\"udp\",\"request_processors\":[],\"sessions_conns\":[\"*internal\"],\"timezone\":\"\"}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"dns_agent\":{\"enabled\":true,\"listen\":\"127.0.0.1:2053\",\"listen_net\":\"udp\",\"request_processors\":[],\"sessions_conns\":[\"*internal\"],\"timezone\":\"\"}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.DNSAgentJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadAttributes(t *testing.T) {
-
- var replyPingBf string
- if err := testSectRPC.Call(context.Background(), utils.AttributeSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
- t.Error(err)
- } else if replyPingBf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingBf)
- }
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"attributes\":{\"any_context\":true,\"accounts_conns\":[\"*localhost\"],\"opts\":{\"*processRuns\":2},\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"resources_conns\":[\"*localhost\"],\"stats_conns\":[\"*localhost\"],\"suffix_indexed_fields\":[]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"attributes\":{\"any_context\":true,\"accounts_conns\":[\"*localhost\"],\"opts\":{\"*processRuns\":2},\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"resources_conns\":[\"*localhost\"],\"stats_conns\":[\"*localhost\"],\"suffix_indexed_fields\":[]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.AttributeSJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-
- var replyPingAf string
- if err := testSectRPC.Call(context.Background(), utils.AttributeSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
- t.Error(err)
- } else if replyPingAf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingAf)
- }
-}
-
-func testSectConfigSReloadChargers(t *testing.T) {
-
- var replyPingBf string
- if err := testSectRPC.Call(context.Background(), utils.ChargerSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
- t.Error(err)
- } else if replyPingBf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingBf)
- }
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"chargers\":{\"attributes_conns\":[\"*internal\"],\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"suffix_indexed_fields\":[]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"chargers\":{\"attributes_conns\":[\"*internal\"],\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"suffix_indexed_fields\":[]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.ChargerSJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-
- var replyPingAf string
- if err := testSectRPC.Call(context.Background(), utils.ChargerSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
- t.Error(err)
- } else if replyPingAf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingAf)
- }
-}
-
-func testSectConfigSReloadResources(t *testing.T) {
-
- var replyPingBf string
- if err := testSectRPC.Call(context.Background(), utils.ResourceSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
- t.Error(err)
- } else if replyPingBf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingBf)
- }
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"resources\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"-1ns\",\"suffix_indexed_fields\":[],\"thresholds_conns\":[\"*internal\"]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"resources\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"-1ns\",\"suffix_indexed_fields\":[],\"thresholds_conns\":[\"*internal\"]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.ResourceSJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-
- var replyPingAf string
- if err := testSectRPC.Call(context.Background(), utils.ResourceSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
- t.Error(err)
- } else if replyPingAf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingAf)
- }
-}
-
-func testSectConfigSReloadStats(t *testing.T) {
-
- var replyPingBf string
- if err := testSectRPC.Call(context.Background(), utils.StatSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
- t.Error(err)
- } else if replyPingBf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingBf)
- }
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"stats\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"-1ns\",\"store_uncompressed_limit\":0,\"suffix_indexed_fields\":[],\"thresholds_conns\":[\"*internal\"]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"stats\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"-1ns\",\"store_uncompressed_limit\":0,\"suffix_indexed_fields\":[],\"thresholds_conns\":[\"*internal\"]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.StatSJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-
- var replyPingAf string
- if err := testSectRPC.Call(context.Background(), utils.StatSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
- t.Error(err)
- } else if replyPingAf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingAf)
- }
-}
-
-func testSectConfigSReloadThresholds(t *testing.T) {
-
- var replyPingBf string
- if err := testSectRPC.Call(context.Background(), utils.ThresholdSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
- t.Error(err)
- } else if replyPingBf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingBf)
- }
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"thresholds\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"-1ns\",\"suffix_indexed_fields\":[]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"thresholds\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"-1ns\",\"suffix_indexed_fields\":[]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.ThresholdSJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-
- var replyPingAf string
- if err := testSectRPC.Call(context.Background(), utils.ThresholdSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
- t.Error(err)
- } else if replyPingAf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingAf)
- }
-}
-
-func testSectConfigSReloadRoutes(t *testing.T) {
-
- var replyPingBf string
- if err := testSectRPC.Call(context.Background(), utils.RouteSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
- t.Error(err)
- } else if replyPingBf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingBf)
- }
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"routes\":{\"attributes_conns\":[],\"default_ratio\":1,\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[\"*req.Destination\"],\"rals_conns\":[\"*internal\"],\"resources_conns\":[\"*internal\"],\"stats_conns\":[\"*internal\"],\"suffix_indexed_fields\":[]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"routes\":{\"attributes_conns\":[],\"default_ratio\":1,\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[\"*req.Destination\"],\"rals_conns\":[\"*internal\"],\"resources_conns\":[\"*internal\"],\"stats_conns\":[\"*internal\"],\"suffix_indexed_fields\":[]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.RouteSJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-
- var replyPingAf string
- if err := testSectRPC.Call(context.Background(), utils.RouteSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
- t.Error(err)
- } else if replyPingAf != utils.Pong {
- t.Errorf("Expected OK received: %s", replyPingAf)
- }
-}
-
-func testSectConfigSReloadLoaders(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
- Tenant: "cgrates.org",
- Section: config.LoaderSJSON,
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"loaders\":[{\"caches_conns\":[\"*internal\"],\"data\":[{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"TenantID\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ProfileID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Contexts\",\"tag\":\"Contexts\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"AttributeFilterIDs\",\"tag\":\"AttributeFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"Path\",\"tag\":\"Path\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"Type\",\"tag\":\"Type\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"Value\",\"tag\":\"Value\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.10\"}],\"file_name\":\"Attributes.csv\",\"flags\":null,\"type\":\"*attributes\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Type\",\"tag\":\"Type\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"Element\",\"tag\":\"Element\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"Values\",\"tag\":\"Values\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.5\"}],\"file_name\":\"Filters.csv\",\"flags\":null,\"type\":\"*filters\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"UsageTTL\",\"tag\":\"TTL\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"Limit\",\"tag\":\"Limit\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"AllocationMessage\",\"tag\":\"AllocationMessage\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"Stored\",\"tag\":\"Stored\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"ThresholdIDs\",\"tag\":\"ThresholdIDs\",\"type\":\"*variable\",\"value\":\"~*req.10\"}],\"file_name\":\"Resources.csv\",\"flags\":null,\"type\":\"*resources\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"QueueLength\",\"tag\":\"QueueLength\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"TTL\",\"tag\":\"TTL\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"MinItems\",\"tag\":\"MinItems\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"MetricIDs\",\"tag\":\"MetricIDs\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"MetricFilterIDs\",\"tag\":\"MetricFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"Stored\",\"tag\":\"Stored\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"path\":\"ThresholdIDs\",\"tag\":\"ThresholdIDs\",\"type\":\"*variable\",\"value\":\"~*req.12\"}],\"file_name\":\"Stats.csv\",\"flags\":null,\"type\":\"*stats\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"MaxHits\",\"tag\":\"MaxHits\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"MinHits\",\"tag\":\"MinHits\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"MinSleep\",\"tag\":\"MinSleep\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"ActionIDs\",\"tag\":\"ActionIDs\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"Async\",\"tag\":\"Async\",\"type\":\"*variable\",\"value\":\"~*req.10\"}],\"file_name\":\"Thresholds.csv\",\"flags\":null,\"type\":\"*thresholds\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"Sorting\",\"tag\":\"Sorting\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"SortingParameters\",\"tag\":\"SortingParameters\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"RouteID\",\"tag\":\"RouteID\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"RouteFilterIDs\",\"tag\":\"RouteFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"RouteAccountIDs\",\"tag\":\"RouteAccountIDs\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"RouteRateProfileIDs\",\"tag\":\"RouteRateProfileIDs\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"RouteResourceIDs\",\"tag\":\"RouteResourceIDs\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"RouteStatIDs\",\"tag\":\"RouteStatIDs\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"path\":\"RouteWeight\",\"tag\":\"RouteWeight\",\"type\":\"*variable\",\"value\":\"~*req.12\"},{\"path\":\"RouteBlocker\",\"tag\":\"RouteBlocker\",\"type\":\"*variable\",\"value\":\"~*req.13\"},{\"path\":\"RouteParameters\",\"tag\":\"RouteParameters\",\"type\":\"*variable\",\"value\":\"~*req.14\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.15\"}],\"file_name\":\"Routes.csv\",\"flags\":null,\"type\":\"*routes\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"RunID\",\"tag\":\"RunID\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"AttributeIDs\",\"tag\":\"AttributeIDs\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.6\"}],\"file_name\":\"Chargers.csv\",\"flags\":null,\"type\":\"*chargers\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Contexts\",\"tag\":\"Contexts\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"Strategy\",\"tag\":\"Strategy\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"StrategyParameters\",\"tag\":\"StrategyParameters\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"ConnID\",\"tag\":\"ConnID\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"ConnFilterIDs\",\"tag\":\"ConnFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"ConnWeight\",\"tag\":\"ConnWeight\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"ConnBlocker\",\"tag\":\"ConnBlocker\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"ConnParameters\",\"tag\":\"ConnParameters\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.12\"}],\"file_name\":\"DispatcherProfiles.csv\",\"flags\":null,\"type\":\"*dispatchers\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Address\",\"tag\":\"Address\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"Transport\",\"tag\":\"Transport\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"ConnectAttempts\",\"tag\":\"ConnectAttempts\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"Reconnects\",\"tag\":\"Reconnects\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"ConnectTimeout\",\"tag\":\"ConnectTimeout\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"ReplyTimeout\",\"tag\":\"ReplyTimeout\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"TLS\",\"tag\":\"TLS\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"ClientKey\",\"tag\":\"ClientKey\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"ClientCertificate\",\"tag\":\"ClientCertificate\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"CaCertificate\",\"tag\":\"CaCertificate\",\"type\":\"*variable\",\"value\":\"~*req.11\"}],\"file_name\":\"DispatcherHosts.csv\",\"flags\":null,\"type\":\"*dispatcher_hosts\"}],\"dry_run\":false,\"enabled\":false,\"field_separator\":\",\",\"id\":\"*default\",\"lock_filename\":\".cgr.lck\",\"run_delay\":\"0\",\"tenant\":\"\",\"tp_in_dir\":\"/var/spool/cgrates/loader/in\",\"tp_out_dir\":\"/var/spool/cgrates/loader/out\"}]}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.LoaderSJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadSuretax(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"suretax\":{\"bill_to_number\":\"\",\"business_unit\":\"\",\"client_number\":\"\",\"client_tracking\":\"~*req.CGRID\",\"customer_number\":\"~*req.Subject\",\"include_local_cost\":false,\"orig_number\":\"~*req.Subject\",\"p2pplus4\":\"\",\"p2pzipcode\":\"\",\"plus4\":\"\",\"regulatory_code\":\"03\",\"response_group\":\"03\",\"response_type\":\"D4\",\"return_file_code\":\"0\",\"sales_type_code\":\"R\",\"tax_exemption_code_list\":\"\",\"tax_included\":\"0\",\"tax_situs_rule\":\"04\",\"term_number\":\"~*req.Destination\",\"timezone\":\"Local\",\"trans_type_code\":\"010101\",\"unit_type\":\"00\",\"units\":\"1\",\"url\":\"\",\"validation_key\":\"\",\"zipcode\":\"\"}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"suretax\":{\"bill_to_number\":\"\",\"business_unit\":\"\",\"client_number\":\"\",\"client_tracking\":\"~*req.CGRID\",\"customer_number\":\"~*req.Subject\",\"include_local_cost\":false,\"orig_number\":\"~*req.Subject\",\"p2pplus4\":\"\",\"p2pzipcode\":\"\",\"plus4\":\"\",\"regulatory_code\":\"03\",\"response_group\":\"03\",\"response_type\":\"D4\",\"return_file_code\":\"0\",\"sales_type_code\":\"R\",\"tax_exemption_code_list\":\"\",\"tax_included\":\"0\",\"tax_situs_rule\":\"04\",\"term_number\":\"~*req.Destination\",\"timezone\":\"Local\",\"trans_type_code\":\"010101\",\"unit_type\":\"00\",\"units\":\"1\",\"url\":\"\",\"validation_key\":\"\",\"zipcode\":\"\"}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.SureTaxJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadLoader(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"loader\":{\"caches_conns\":[\"*localhost\"],\"data_path\":\"./\",\"disable_reverse\":false,\"field_separator\":\",\",\"gapi_credentials\":\".gapi/credentials.json\",\"gapi_token\":\".gapi/token.json\",\"scheduler_conns\":[\"*localhost\"],\"tpid\":\"\"}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"loader\":{\"caches_conns\":[\"*localhost\"],\"data_path\":\"./\",\"disable_reverse\":false,\"field_separator\":\",\",\"gapi_credentials\":\".gapi/credentials.json\",\"gapi_token\":\".gapi/token.json\",\"scheduler_conns\":[\"*localhost\"],\"tpid\":\"\"}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.LoaderJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadMigrator(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"migrator\":{\"out_datadb_encoding\":\"msgpack\",\"out_datadb_host\":\"127.0.0.1\",\"out_datadb_name\":\"10\",\"out_datadb_opts\":{\"redisCACertificate\":\"\",\"redisClientCertificate\":\"\",\"redisClientKey\":\"\",\"redisCluster\":false,\"redisClusterOndownDelay\":\"0\",\"redisClusterSync\":\"5s\",\"redisSentinel\":\"\",\"redisTLS\":false},\"out_datadb_password\":\"\",\"out_datadb_port\":\"6379\",\"out_datadb_type\":\"redis\",\"out_datadb_user\":\"cgrates\",\"out_stordb_host\":\"127.0.0.1\",\"out_stordb_name\":\"cgrates\",\"out_stordb_opts\":{},\"out_stordb_password\":\"CGRateS.org\",\"out_stordb_port\":\"3306\",\"out_stordb_type\":\"mysql\",\"out_stordb_user\":\"cgrates\",\"users_filters\":[\"Account\"]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"migrator\":{\"out_datadb_encoding\":\"msgpack\",\"out_datadb_host\":\"127.0.0.1\",\"out_datadb_name\":\"10\",\"out_datadb_opts\":{\"redisCACertificate\":\"\",\"redisClientCertificate\":\"\",\"redisClientKey\":\"\",\"redisCluster\":false,\"redisClusterOndownDelay\":\"0\",\"redisClusterSync\":\"5s\",\"redisSentinel\":\"\",\"redisTLS\":false},\"out_datadb_password\":\"\",\"out_datadb_port\":\"6379\",\"out_datadb_type\":\"redis\",\"out_datadb_user\":\"cgrates\",\"out_stordb_host\":\"127.0.0.1\",\"out_stordb_name\":\"cgrates\",\"out_stordb_opts\":{},\"out_stordb_password\":\"CGRateS.org\",\"out_stordb_port\":\"3306\",\"out_stordb_type\":\"mysql\",\"out_stordb_user\":\"cgrates\",\"users_filters\":[\"Account\"]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.MigratorJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadDispatchers(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"dispatchers\":{\"any_subsystem\":true,\"attributes_conns\":[],\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"suffix_indexed_fields\":[]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"dispatchers\":{\"any_subsystem\":true,\"attributes_conns\":[],\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"suffix_indexed_fields\":[]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.DispatcherSJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadRegistrarC(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"registrarc\":{\"dispatchers\":{\"enabled\":true,\"hosts\":[],\"refresh_interval\":\"5m0s\",\"registrars_conns\":[]},\"rpc\":{\"enabled\":true,\"hosts\":[],\"refresh_interval\":\"5m0s\",\"registrars_conns\":[]}}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"registrarc\":{\"dispatchers\":{\"hosts\":[],\"refresh_interval\":\"5m0s\",\"registrars_conns\":[]},\"rpc\":{\"hosts\":[],\"refresh_interval\":\"5m0s\",\"registrars_conns\":[]}}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.RegistrarCJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadAnalyzer(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"analyzers\":{\"cleanup_interval\":\"1h0m0s\",\"db_path\":\"/var/spool/cgrates/analyzers\",\"enabled\":true,\"index_type\":\"*scorch\",\"ttl\":\"24h0m0s\"}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"analyzers\":{\"cleanup_interval\":\"1h0m0s\",\"db_path\":\"/var/spool/cgrates/analyzers\",\"enabled\":true,\"index_type\":\"*scorch\",\"ttl\":\"24h0m0s\"}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.AnalyzerSJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadApiers(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"apiers\":{\"attributes_conns\":[],\"caches_conns\":[\"*internal\"],\"ees_conns\":[],\"enabled\":true,\"scheduler_conns\":[\"*internal\"]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"apiers\":{\"attributes_conns\":[],\"caches_conns\":[\"*internal\"],\"ees_conns\":[],\"enabled\":true,\"scheduler_conns\":[\"*internal\"]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.TemplatesJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadSIPAgent(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"sip_agent\":{\"enabled\":true,\"listen\":\"127.0.0.1:5060\",\"listen_net\":\"udp\",\"request_processors\":[],\"retransmission_timer\":\"1000000000\",\"sessions_conns\":[\"*internal\"],\"timezone\":\"\"}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"sip_agent\":{\"enabled\":true,\"listen\":\"127.0.0.1:5060\",\"listen_net\":\"udp\",\"request_processors\":[],\"retransmission_timer\":1000000000,\"sessions_conns\":[\"*internal\"],\"timezone\":\"\"}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.SIPAgentJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", cfgStr, rpl)
- }
-}
-
-func testSectConfigSReloadTemplates(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: "{\"templates\":{\"*asr\":[{\"mandatory\":true,\"path\":\"*diamreq.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Realm\",\"tag\":\"DestinationRealm\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Host\",\"tag\":\"DestinationHost\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"}],\"*cca\":[{\"mandatory\":true,\"path\":\"*rep.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"path\":\"*rep.Result-Code\",\"tag\":\"ResultCode\",\"type\":\"*constant\",\"value\":\"2001\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*vars.OriginHost\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*vars.OriginRealm\"},{\"mandatory\":true,\"path\":\"*rep.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"},{\"mandatory\":true,\"path\":\"*rep.CC-Request-Type\",\"tag\":\"CCRequestType\",\"type\":\"*variable\",\"value\":\"~*req.CC-Request-Type\"},{\"mandatory\":true,\"path\":\"*rep.CC-Request-Number\",\"tag\":\"CCRequestNumber\",\"type\":\"*variable\",\"value\":\"~*req.CC-Request-Number\"}],\"*cdrLog\":[{\"mandatory\":true,\"path\":\"*cdr.ToR\",\"tag\":\"ToR\",\"type\":\"*variable\",\"value\":\"~*req.BalanceType\"},{\"mandatory\":true,\"path\":\"*cdr.OriginHost\",\"tag\":\"OriginHost\",\"type\":\"*constant\",\"value\":\"127.0.0.1\"},{\"mandatory\":true,\"path\":\"*cdr.RequestType\",\"tag\":\"RequestType\",\"type\":\"*constant\",\"value\":\"*none\"},{\"mandatory\":true,\"path\":\"*cdr.Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.Tenant\"},{\"mandatory\":true,\"path\":\"*cdr.Account\",\"tag\":\"Account\",\"type\":\"*variable\",\"value\":\"~*req.Account\"},{\"mandatory\":true,\"path\":\"*cdr.Subject\",\"tag\":\"Subject\",\"type\":\"*variable\",\"value\":\"~*req.Account\"},{\"mandatory\":true,\"path\":\"*cdr.Cost\",\"tag\":\"Cost\",\"type\":\"*variable\",\"value\":\"~*req.Cost\"},{\"mandatory\":true,\"path\":\"*cdr.Source\",\"tag\":\"Source\",\"type\":\"*constant\",\"value\":\"*cdrLog\"},{\"mandatory\":true,\"path\":\"*cdr.Usage\",\"tag\":\"Usage\",\"type\":\"*constant\",\"value\":\"1\"},{\"mandatory\":true,\"path\":\"*cdr.RunID\",\"tag\":\"RunID\",\"type\":\"*variable\",\"value\":\"~*req.ActionType\"},{\"mandatory\":true,\"path\":\"*cdr.SetupTime\",\"tag\":\"SetupTime\",\"type\":\"*constant\",\"value\":\"*now\"},{\"mandatory\":true,\"path\":\"*cdr.AnswerTime\",\"tag\":\"AnswerTime\",\"type\":\"*constant\",\"value\":\"*now\"},{\"mandatory\":true,\"path\":\"*cdr.PreRated\",\"tag\":\"PreRated\",\"type\":\"*constant\",\"value\":\"true\"}],\"*err\":[{\"mandatory\":true,\"path\":\"*rep.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*vars.OriginHost\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*vars.OriginRealm\"}],\"*errSip\":[{\"mandatory\":true,\"path\":\"*rep.Request\",\"tag\":\"Request\",\"type\":\"*constant\",\"value\":\"SIP/2.0 500 Internal Server Error\"}],\"*rar\":[{\"mandatory\":true,\"path\":\"*diamreq.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Realm\",\"tag\":\"DestinationRealm\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Host\",\"tag\":\"DestinationHost\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"},{\"path\":\"*diamreq.Re-Auth-Request-Type\",\"tag\":\"ReAuthRequestType\",\"type\":\"*constant\",\"value\":\"0\"}]}}",
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := "{\"templates\":{\"*asr\":[{\"mandatory\":true,\"path\":\"*diamreq.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Realm\",\"tag\":\"DestinationRealm\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Host\",\"tag\":\"DestinationHost\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"}],\"*cca\":[{\"mandatory\":true,\"path\":\"*rep.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"path\":\"*rep.Result-Code\",\"tag\":\"ResultCode\",\"type\":\"*constant\",\"value\":\"2001\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*vars.OriginHost\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*vars.OriginRealm\"},{\"mandatory\":true,\"path\":\"*rep.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"},{\"mandatory\":true,\"path\":\"*rep.CC-Request-Type\",\"tag\":\"CCRequestType\",\"type\":\"*variable\",\"value\":\"~*req.CC-Request-Type\"},{\"mandatory\":true,\"path\":\"*rep.CC-Request-Number\",\"tag\":\"CCRequestNumber\",\"type\":\"*variable\",\"value\":\"~*req.CC-Request-Number\"}],\"*cdrLog\":[{\"mandatory\":true,\"path\":\"*cdr.ToR\",\"tag\":\"ToR\",\"type\":\"*variable\",\"value\":\"~*req.BalanceType\"},{\"mandatory\":true,\"path\":\"*cdr.OriginHost\",\"tag\":\"OriginHost\",\"type\":\"*constant\",\"value\":\"127.0.0.1\"},{\"mandatory\":true,\"path\":\"*cdr.RequestType\",\"tag\":\"RequestType\",\"type\":\"*constant\",\"value\":\"*none\"},{\"mandatory\":true,\"path\":\"*cdr.Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.Tenant\"},{\"mandatory\":true,\"path\":\"*cdr.Account\",\"tag\":\"Account\",\"type\":\"*variable\",\"value\":\"~*req.Account\"},{\"mandatory\":true,\"path\":\"*cdr.Subject\",\"tag\":\"Subject\",\"type\":\"*variable\",\"value\":\"~*req.Account\"},{\"mandatory\":true,\"path\":\"*cdr.Cost\",\"tag\":\"Cost\",\"type\":\"*variable\",\"value\":\"~*req.Cost\"},{\"mandatory\":true,\"path\":\"*cdr.Source\",\"tag\":\"Source\",\"type\":\"*constant\",\"value\":\"*cdrLog\"},{\"mandatory\":true,\"path\":\"*cdr.Usage\",\"tag\":\"Usage\",\"type\":\"*constant\",\"value\":\"1\"},{\"mandatory\":true,\"path\":\"*cdr.RunID\",\"tag\":\"RunID\",\"type\":\"*variable\",\"value\":\"~*req.ActionType\"},{\"mandatory\":true,\"path\":\"*cdr.SetupTime\",\"tag\":\"SetupTime\",\"type\":\"*constant\",\"value\":\"*now\"},{\"mandatory\":true,\"path\":\"*cdr.AnswerTime\",\"tag\":\"AnswerTime\",\"type\":\"*constant\",\"value\":\"*now\"},{\"mandatory\":true,\"path\":\"*cdr.PreRated\",\"tag\":\"PreRated\",\"type\":\"*constant\",\"value\":\"true\"}],\"*err\":[{\"mandatory\":true,\"path\":\"*rep.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*vars.OriginHost\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*vars.OriginRealm\"}],\"*errSip\":[{\"mandatory\":true,\"path\":\"*rep.Request\",\"tag\":\"Request\",\"type\":\"*constant\",\"value\":\"SIP/2.0 500 Internal Server Error\"}],\"*rar\":[{\"mandatory\":true,\"path\":\"*diamreq.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Realm\",\"tag\":\"DestinationRealm\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Host\",\"tag\":\"DestinationHost\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"},{\"path\":\"*diamreq.Re-Auth-Request-Type\",\"tag\":\"ReAuthRequestType\",\"type\":\"*constant\",\"value\":\"0\"}]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.TemplatesJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadConfigs(t *testing.T) {
-
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: `{"configs":{"enabled":true,"root_dir":"/var/spool/cgrates/configs","url":"/configs/"}}`,
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %+v", reply)
- }
- cfgStr := `{"configs":{"enabled":true,"root_dir":"/var/spool/cgrates/configs","url":"/configs/"}}`
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.ConfigSJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadAPIBan(t *testing.T) {
- var replyRld string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
- Tenant: "cgrates.org",
- Section: config.APIBanJSON,
- }, &replyRld); err != nil {
- t.Error(err)
- } else if replyRld != utils.OK {
- t.Errorf("Expected OK received: %+v", replyRld)
- }
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: `{"apiban":{"enabled":true,"keys":["testKey"]}}`,
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %s", reply)
- }
- cfgStr := "{\"apiban\":{\"enabled\":true,\"keys\":[\"testKey\"]}}"
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.APIBanJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadActions(t *testing.T) {
- var replyRld string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
- Tenant: "cgrates.org",
- Section: config.ActionSJSON,
- }, &replyRld); err != nil {
- t.Error(err)
- } else if replyRld != utils.OK {
- t.Errorf("Expected OK received: %+v", replyRld)
- }
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: `"actions": {
- "enabled": false,
- "cdrs_conns": [],
- "ees_conns": [],
- "thresholds_conns": [],
- "stats_conns": [],
- "accounts_conns": [],
- "tenants": [],
- "indexed_selects": true,
- //"string_indexed_fields": [],
- "prefix_indexed_fields": [],
- "suffix_indexed_fields": [],
- "nested_fields": false,
- "dynaprepaid_actionprofile": [],
- },`,
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %s", reply)
- }
- cfgStr := `"actions": {
- "enabled": false,
- "cdrs_conns": [],
- "ees_conns": [],
- "thresholds_conns": [],
- "stats_conns": [],
- "accounts_conns": [],
- "tenants": [],
- "indexed_selects": true,
- //"string_indexed_fields": [],
- "prefix_indexed_fields": [],
- "suffix_indexed_fields": [],
- "nested_fields": false,
- "dynaprepaid_actionprofile": [],
- },`
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.APIBanJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadAccounts(t *testing.T) {
- var replyRld string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
- Tenant: "cgrates.org",
- Section: config.AccountSJSON,
- }, &replyRld); err != nil {
- t.Error(err)
- } else if replyRld != utils.OK {
- t.Errorf("Expected OK received: %+v", replyRld)
- }
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: `"accounts": {
- "enabled": false,
- "indexed_selects": true,
- "attributes_conns": [],
- "rates_conns": [],
- "thresholds_conns": [],
- //"string_indexed_fields": [],
- "prefix_indexed_fields": [],
- "suffix_indexed_fields": [],
- "nested_fields": false,
- "max_iterations": 1000,
- "max_usage": "72h",
- },`,
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %s", reply)
- }
- cfgStr := `"accounts": {
- "enabled": false,
- "indexed_selects": true,
- "attributes_conns": [],
- "rates_conns": [],
- "thresholds_conns": [],
- //"string_indexed_fields": [],
- "prefix_indexed_fields": [],
- "suffix_indexed_fields": [],
- "nested_fields": false,
- "max_iterations": 1000,
- "max_usage": "72h",
- },`
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.AccountSJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectConfigSReloadConfigDB(t *testing.T) {
- var replyRld string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
- Tenant: "cgrates.org",
- Section: config.ConfigDBJSON,
- }, &replyRld); err != nil {
- t.Error(err)
- } else if replyRld != utils.OK {
- t.Errorf("Expected OK received: %+v", replyRld)
- }
- var reply string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
- Tenant: "cgrates.org",
- Config: `"config_db": {
- "db_type": "*internal",
- "db_host": "",
- "db_port": 0,
- "db_name": "",
- "db_user": "",
- "db_password": "",
- "opts": {
- "redisSentinel": "",
- "redisCluster": false,
- "redisClusterSync": "5s",
- "redisClusterOndownDelay": "0",
- "mongoQueryTimeout": "10s",
- "redisTLS": false, tion
- "redisClientCertificate": "",
- "redisClientKey": "",
- "redisCACertificate": "",
- }
- },`,
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Expected OK received: %s", reply)
- }
- cfgStr := `"config_db": {
- "db_type": "*internal",
- "db_host": "",
- "db_port": 0,
- "db_name": "",
- "db_user": "",
- "db_password": "",
- "opts": {
- "redisSentinel": "",
- "redisCluster": false,
- "redisClusterSync": "5s",
- "redisClusterOndownDelay": "0",
- "mongoQueryTimeout": "10s",
- "redisTLS": false, tion
- "redisClientCertificate": "",
- "redisClientKey": "",
- "redisCACertificate": "",
- }
- },`
- var rpl string
- if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
- Tenant: "cgrates.org",
- Sections: []string{config.ConfigDBJSON},
- }, &rpl); err != nil {
- t.Error(err)
- } else if cfgStr != rpl {
- t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
- }
-}
-
-func testSectStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// import (
+// "path"
+// "testing"
+
+// "github.com/cgrates/birpc"
+// "github.com/cgrates/birpc/context"
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
+
+// var (
+// testSectCfgDir string
+// testSectCfgPath string
+// testSectCfg *config.CGRConfig
+// testSectRPC *birpc.Client
+
+// testSectTests = []func(t *testing.T){
+// testSectLoadConfig,
+// testSectResetDataDB,
+// testSectResetStorDb,
+// testSectStartEngine,
+// testSectRPCConn,
+// //testSectConfigSReloadGeneral,
+// testSectConfigSReloadCores,
+// testSectConfigSReloadRPCConns,
+// //testSectConfigSReloadDataDB,
+// //testSectConfigSReloadStorDB,
+// testSectConfigSReloadListen,
+// testSectConfigSReloadTLS,
+// testSectConfigSReloadHTTP,
+// testSectConfigSReloadCaches,
+// testSectConfigSReloadFilters,
+// testSectConfigSReloadCDRS,
+// testSectConfigSReloadERS,
+// testSectConfigSReloadEES,
+// testSectConfigSReloadSessions,
+// testSectConfigSReloadAsteriskAgent,
+// testSectConfigSReloadFreeswitchAgent,
+// testSectConfigSReloadKamailioAgent,
+// testSectConfigSReloadDiameterAgent,
+// testSectConfigSReloadHTTPAgent,
+// testSectConfigSReloadDNSAgent,
+// testSectConfigSReloadAttributes,
+// testSectConfigSReloadChargers,
+// testSectConfigSReloadResources,
+// testSectConfigSReloadStats,
+// testSectConfigSReloadThresholds,
+// testSectConfigSReloadRoutes,
+// testSectConfigSReloadLoaders,
+// testSectConfigSReloadSuretax,
+// testSectConfigSReloadLoader,
+// testSectConfigSReloadMigrator,
+// testSectConfigSReloadDispatchers,
+// testSectConfigSReloadRegistrarC,
+// testSectConfigSReloadAnalyzer,
+// testSectConfigSReloadApiers,
+// testSectConfigSReloadSIPAgent,
+// testSectConfigSReloadTemplates,
+// testSectConfigSReloadConfigs,
+// testSectConfigSReloadAPIBan,
+// testSectStopCgrEngine,
+// }
+// )
+
+// func TestSectChange(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// testSectCfgDir = "tutinternal"
+// case utils.MetaMySQL:
+// testSectCfgDir = "tutmysql"
+// case utils.MetaMongo:
+// testSectCfgDir = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, testSectest := range testSectTests {
+// t.Run(testSectCfgDir, testSectest)
+// }
+// }
+
+// func testSectLoadConfig(t *testing.T) {
+// testSectCfgPath = path.Join(*dataDir, "conf", "samples", testSectCfgDir)
+// if testSectCfg, err = config.NewCGRConfigFromPath(testSectCfgPath); err != nil {
+// t.Error(err)
+// }
+// }
+
+// func testSectResetDataDB(t *testing.T) {
+// if err := engine.InitDataDB(testSectCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
+
+// func testSectResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(testSectCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
+
+// func testSectStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(testSectCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
+
+// func testSectRPCConn(t *testing.T) {
+// var err error
+// testSectRPC, err = newRPCClient(testSectCfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
+
+// func testSectConfigSReloadGeneral(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"general\":{\"connect_attempts\":5,\"connect_timeout\":\"1s\",\"dbdata_encoding\":\"*msgpack\",\"default_caching\":\"*reload\",\"default_category\":\"call\",\"default_request_type\":\"*rated\",\"default_tenant\":\"cgrates.org\",\"default_timezone\":\"Local\",\"digest_equal\":\":\",\"digest_separator\":\",\",\"failed_posts_dir\":\"/var/spool/cgrates/failed_posts\",\"failed_posts_ttl\":\"5s\",\"locking_timeout\":\"0\",\"log_level\":7,\"logger\":\"*syslog\",\"max_parallel_conns\":100,\"node_id\":\"98ead14\",\"poster_attempts\":3,\"reconnects\":-1,\"reply_timeout\":\"50s\",\"rounding_decimals\":5,\"rsr_separator\":\";\",\"tpexport_dir\":\"/var/spool/cgrates/tpe\"}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"general\":{\"connect_attempts\":5,\"connect_timeout\":\"1s\",\"dbdata_encoding\":\"*msgpack\",\"default_caching\":\"*reload\",\"default_category\":\"call\",\"default_request_type\":\"*rated\",\"default_tenant\":\"cgrates.org\",\"default_timezone\":\"Local\",\"digest_equal\":\":\",\"digest_separator\":\",\",\"failed_posts_dir\":\"/var/spool/cgrates/failed_posts\",\"failed_posts_ttl\":\"5s\",\"locking_timeout\":\"0\",\"log_level\":7,\"logger\":\"*syslog\",\"max_parallel_conns\":100,\"node_id\":\"98ead14\",\"poster_attempts\":3,\"reconnects\":-1,\"reply_timeout\":\"50s\",\"rounding_decimals\":5,\"rsr_separator\":\";\",\"tpexport_dir\":\"/var/spool/cgrates/tpe\"}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.GeneralJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadCores(t *testing.T) {
+
+// var replyPingBf string
+// if err := testSectRPC.Call(context.Background(), utils.CoreSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
+// t.Error(err)
+// } else if replyPingBf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingBf)
+// }
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"cores\":{\"caps\":0,\"caps_stats_interval\":\"0\",\"caps_strategy\":\"*busy\",\"shutdown_timeout\":\"1s\"}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"cores\":{\"caps\":0,\"caps_stats_interval\":\"0\",\"caps_strategy\":\"*busy\",\"shutdown_timeout\":\"1s\"}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.CoreSJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+
+// var replyPingAf string
+// if err := testSectRPC.Call(context.Background(), utils.CoreSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+// t.Error(err)
+// } else if replyPingAf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingAf)
+// }
+// }
+
+// func testSectConfigSReloadRPCConns(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"rpc_conns\":{\"*bijson_localhost\":{\"conns\":[{\"address\":\"127.0.0.1:2014\",\"transport\":\"*birpc_json\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*birpc_internal\":{\"conns\":[{\"address\":\"*birpc_internal\",\"transport\":\"\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*internal\":{\"conns\":[{\"address\":\"*internal\",\"transport\":\"\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*localhost\":{\"conns\":[{\"address\":\"127.0.0.1:2012\",\"transport\":\"*json\"}],\"poolSize\":0,\"strategy\":\"*first\"}}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"rpc_conns\":{\"*bijson_localhost\":{\"conns\":[{\"address\":\"127.0.0.1:2014\",\"transport\":\"*birpc_json\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*birpc_internal\":{\"conns\":[{\"address\":\"*birpc_internal\",\"transport\":\"\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*internal\":{\"conns\":[{\"address\":\"*internal\",\"transport\":\"\"}],\"poolSize\":0,\"strategy\":\"*first\"},\"*localhost\":{\"conns\":[{\"address\":\"127.0.0.1:2012\",\"transport\":\"*json\"}],\"poolSize\":0,\"strategy\":\"*first\"}}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.RPCConnsJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadDataDB(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"data_db\":{\"db_host\":\"127.0.0.1\",\"db_name\":\"10\",\"db_password\":\"\",\"db_port\":6379,\"db_type\":\"*internal\",\"db_user\":\"cgrates\",\"items\":{\"*account_action_plans\":{\"remote\":false,\"replicate\":false},\"*accounts\":{\"remote\":false,\"replicate\":false},\"*action_plans\":{\"remote\":false,\"replicate\":false},\"*action_triggers\":{\"remote\":false,\"replicate\":false},\"*actions\":{\"remote\":false,\"replicate\":false},\"*attribute_profiles\":{\"remote\":false,\"replicate\":false},\"*charger_profiles\":{\"remote\":false,\"replicate\":false},\"*destinations\":{\"remote\":false,\"replicate\":false},\"*dispatcher_hosts\":{\"remote\":false,\"replicate\":false},\"*dispatcher_profiles\":{\"remote\":false,\"replicate\":false},\"*filters\":{\"remote\":false,\"replicate\":false},\"*indexes\":{\"remote\":false,\"replicate\":false},\"*load_ids\":{\"remote\":false,\"replicate\":false},\"*rating_plans\":{\"remote\":false,\"replicate\":false},\"*rating_profiles\":{\"remote\":false,\"replicate\":false},\"*resource_profiles\":{\"remote\":false,\"replicate\":false},\"*resources\":{\"remote\":false,\"replicate\":false},\"*reverse_destinations\":{\"remote\":false,\"replicate\":false},\"*route_profiles\":{\"remote\":false,\"replicate\":false},\"*shared_groups\":{\"remote\":false,\"replicate\":false},\"*statqueue_profiles\":{\"remote\":false,\"replicate\":false},\"*statqueues\":{\"remote\":false,\"replicate\":false},\"*threshold_profiles\":{\"remote\":false,\"replicate\":false},\"*thresholds\":{\"remote\":false,\"replicate\":false},\"*timings\":{\"remote\":false,\"replicate\":false}},\"opts\":{\"mongoQueryTimeout\":\"10s\",\"redisCACertificate\":\"\",\"redisClientCertificate\":\"\",\"redisClientKey\":\"\",\"redisCluster\":false,\"redisClusterOndownDelay\":\"0\",\"redisClusterSync\":\"5s\",\"redisSentinel\":\"\",\"redisTLS\":false},\"remote_conn_id\":\"\",\"remote_conns\":[],\"replication_cache\":\"\",\"replication_conns\":[],\"replication_filtered\":false}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"data_db\":{\"db_host\":\"127.0.0.1\",\"db_name\":\"10\",\"db_password\":\"\",\"db_port\":6379,\"db_type\":\"*internal\",\"db_user\":\"cgrates\",\"items\":{\"*account_action_plans\":{\"remote\":false,\"replicate\":false},\"*accounts\":{\"remote\":false,\"replicate\":false},\"*action_plans\":{\"remote\":false,\"replicate\":false},\"*action_triggers\":{\"remote\":false,\"replicate\":false},\"*actions\":{\"remote\":false,\"replicate\":false},\"*attribute_profiles\":{\"remote\":false,\"replicate\":false},\"*charger_profiles\":{\"remote\":false,\"replicate\":false},\"*destinations\":{\"remote\":false,\"replicate\":false},\"*dispatcher_hosts\":{\"remote\":false,\"replicate\":false},\"*dispatcher_profiles\":{\"remote\":false,\"replicate\":false},\"*filters\":{\"remote\":false,\"replicate\":false},\"*indexes\":{\"remote\":false,\"replicate\":false},\"*load_ids\":{\"remote\":false,\"replicate\":false},\"*rating_plans\":{\"remote\":false,\"replicate\":false},\"*rating_profiles\":{\"remote\":false,\"replicate\":false},\"*resource_profiles\":{\"remote\":false,\"replicate\":false},\"*resources\":{\"remote\":false,\"replicate\":false},\"*reverse_destinations\":{\"remote\":false,\"replicate\":false},\"*route_profiles\":{\"remote\":false,\"replicate\":false},\"*shared_groups\":{\"remote\":false,\"replicate\":false},\"*statqueue_profiles\":{\"remote\":false,\"replicate\":false},\"*statqueues\":{\"remote\":false,\"replicate\":false},\"*threshold_profiles\":{\"remote\":false,\"replicate\":false},\"*thresholds\":{\"remote\":false,\"replicate\":false},\"*timings\":{\"remote\":false,\"replicate\":false}},\"opts\":{\"mongoQueryTimeout\":\"10s\",\"redisCACertificate\":\"\",\"redisClientCertificate\":\"\",\"redisClientKey\":\"\",\"redisCluster\":false,\"redisClusterOndownDelay\":\"0\",\"redisClusterSync\":\"5s\",\"redisSentinel\":\"\",\"redisTLS\":false},\"remote_conn_id\":\"\",\"remote_conns\":[],\"replication_cache\":\"\",\"replication_conns\":[],\"replication_filtered\":false}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.DataDBJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadStorDB(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"stor_db\":{\"db_host\":\"127.0.0.1\",\"db_name\":\"cgrates\",\"db_password\":\"CGRateS.org\",\"db_port\":3306,\"db_type\":\"*internal\",\"db_user\":\"cgrates\",\"items\":{\"*cdrs\":{\"remote\":false,\"replicate\":false},\"*session_costs\":{\"remote\":false,\"replicate\":false},\"*tp_account_actions\":{\"remote\":false,\"replicate\":false},\"*tp_action_plans\":{\"remote\":false,\"replicate\":false},\"*tp_action_triggers\":{\"remote\":false,\"replicate\":false},\"*tp_actions\":{\"remote\":false,\"replicate\":false},\"*tp_attributes\":{\"remote\":false,\"replicate\":false},\"*tp_chargers\":{\"remote\":false,\"replicate\":false},\"*tp_destination_rates\":{\"remote\":false,\"replicate\":false},\"*tp_destinations\":{\"remote\":false,\"replicate\":false},\"*tp_dispatcher_hosts\":{\"remote\":false,\"replicate\":false},\"*tp_dispatcher_profiles\":{\"remote\":false,\"replicate\":false},\"*tp_filters\":{\"remote\":false,\"replicate\":false},\"*tp_rates\":{\"remote\":false,\"replicate\":false},\"*tp_rating_plans\":{\"remote\":false,\"replicate\":false},\"*tp_rating_profiles\":{\"remote\":false,\"replicate\":false},\"*tp_resources\":{\"remote\":false,\"replicate\":false},\"*tp_routes\":{\"remote\":false,\"replicate\":false},\"*tp_shared_groups\":{\"remote\":false,\"replicate\":false},\"*tp_stats\":{\"remote\":false,\"replicate\":false},\"*tp_thresholds\":{\"remote\":false,\"replicate\":false},\"*tp_timings\":{\"remote\":false,\"replicate\":false},\"*versions\":{\"remote\":false,\"replicate\":false}},\"opts\":{\"mongoQueryTimeout\":\"10s\",\"mysqlLocation\":\"Local\",\"postgresSSLMode\":\"disable\",\"sqlConnMaxLifetime\":0,\"sqlMaxIdleConns\":10,\"sqlMaxOpenConns\":100},\"prefix_indexed_fields\":[],\"remote_conns\":null,\"replication_conns\":null,\"string_indexed_fields\":[]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"stor_db\":{\"db_host\":\"127.0.0.1\",\"db_name\":\"cgrates\",\"db_password\":\"CGRateS.org\",\"db_port\":3306,\"db_type\":\"*internal\",\"db_user\":\"cgrates\",\"items\":{\"*cdrs\":{\"remote\":false,\"replicate\":false},\"*session_costs\":{\"remote\":false,\"replicate\":false},\"*tp_account_actions\":{\"remote\":false,\"replicate\":false},\"*tp_action_plans\":{\"remote\":false,\"replicate\":false},\"*tp_action_triggers\":{\"remote\":false,\"replicate\":false},\"*tp_actions\":{\"remote\":false,\"replicate\":false},\"*tp_attributes\":{\"remote\":false,\"replicate\":false},\"*tp_chargers\":{\"remote\":false,\"replicate\":false},\"*tp_destination_rates\":{\"remote\":false,\"replicate\":false},\"*tp_destinations\":{\"remote\":false,\"replicate\":false},\"*tp_dispatcher_hosts\":{\"remote\":false,\"replicate\":false},\"*tp_dispatcher_profiles\":{\"remote\":false,\"replicate\":false},\"*tp_filters\":{\"remote\":false,\"replicate\":false},\"*tp_rates\":{\"remote\":false,\"replicate\":false},\"*tp_rating_plans\":{\"remote\":false,\"replicate\":false},\"*tp_rating_profiles\":{\"remote\":false,\"replicate\":false},\"*tp_resources\":{\"remote\":false,\"replicate\":false},\"*tp_routes\":{\"remote\":false,\"replicate\":false},\"*tp_shared_groups\":{\"remote\":false,\"replicate\":false},\"*tp_stats\":{\"remote\":false,\"replicate\":false},\"*tp_thresholds\":{\"remote\":false,\"replicate\":false},\"*tp_timings\":{\"remote\":false,\"replicate\":false},\"*versions\":{\"remote\":false,\"replicate\":false}},\"opts\":{\"mongoQueryTimeout\":\"10s\",\"mysqlLocation\":\"Local\",\"postgresSSLMode\":\"disable\",\"sqlConnMaxLifetime\":0,\"sqlMaxIdleConns\":10,\"sqlMaxOpenConns\":100},\"prefix_indexed_fields\":[],\"remote_conns\":null,\"replication_conns\":null,\"string_indexed_fields\":[]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.StorDBJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadListen(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"listen\":{\"http\":\":2080\",\"http_tls\":\"127.0.0.1:2280\",\"rpc_gob\":\":2013\",\"rpc_gob_tls\":\"127.0.0.1:2023\",\"rpc_json\":\":2012\",\"rpc_json_tls\":\"127.0.0.1:2022\"}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"listen\":{\"http\":\":2080\",\"http_tls\":\"127.0.0.1:2280\",\"rpc_gob\":\":2013\",\"rpc_gob_tls\":\"127.0.0.1:2023\",\"rpc_json\":\":2012\",\"rpc_json_tls\":\"127.0.0.1:2022\"}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.ListenJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadTLS(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"tls\":{\"ca_certificate\":\"\",\"client_certificate\":\"\",\"client_key\":\"\",\"server_certificate\":\"\",\"server_key\":\"\",\"server_name\":\"\",\"server_policy\":4}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"tls\":{\"ca_certificate\":\"\",\"client_certificate\":\"\",\"client_key\":\"\",\"server_certificate\":\"\",\"server_key\":\"\",\"server_name\":\"\",\"server_policy\":4}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.TlsJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadHTTP(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"http\":{\"auth_users\":{},\"client_opts\":{\"dialFallbackDelay\":\"300ms\",\"dialKeepAlive\":\"30s\",\"dialTimeout\":\"30s\",\"disableCompression\":false,\"disableKeepAlives\":false,\"expectContinueTimeout\":\"0\",\"forceAttemptHttp2\":true,\"idleConnTimeout\":\"90s\",\"maxConnsPerHost\":0,\"maxIdleConns\":100,\"maxIdleConnsPerHost\":2,\"responseHeaderTimeout\":\"0\",\"skipTlsVerify\":false,\"tlsHandshakeTimeout\":\"10s\"},\"freeswitch_cdrs_url\":\"/freeswitch_json\",\"http_cdrs\":\"/cdr_http\",\"json_rpc_url\":\"/jsonrpc\",\"registrars_url\":\"/registrar\",\"use_basic_auth\":false,\"ws_url\":\"/ws\"}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"http\":{\"auth_users\":{},\"client_opts\":{\"dialFallbackDelay\":\"300ms\",\"dialKeepAlive\":\"30s\",\"dialTimeout\":\"30s\",\"disableCompression\":false,\"disableKeepAlives\":false,\"expectContinueTimeout\":\"0\",\"forceAttemptHttp2\":true,\"idleConnTimeout\":\"90s\",\"maxConnsPerHost\":0,\"maxIdleConns\":100,\"maxIdleConnsPerHost\":2,\"responseHeaderTimeout\":\"0\",\"skipTlsVerify\":false,\"tlsHandshakeTimeout\":\"10s\"},\"freeswitch_cdrs_url\":\"/freeswitch_json\",\"http_cdrs\":\"/cdr_http\",\"json_rpc_url\":\"/jsonrpc\",\"registrars_url\":\"/registrar\",\"use_basic_auth\":false,\"ws_url\":\"/ws\"}}"
+
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.HTTPAgentJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadCaches(t *testing.T) {
+
+// var replyPingBf string
+// if err := testSectRPC.Call(context.Background(), utils.CacheSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
+// t.Error(err)
+// } else if replyPingBf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingBf)
+// }
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"caches\":{\"partitions\":{\"*account_action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*accounts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*action_triggers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*apiban\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"2m0s\"},\"*attribute_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*attribute_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*caps_events\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*cdr_ids\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10m0s\"},\"*cdrs\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*charger_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*charger_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*closed_sessions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10s\"},\"*destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*diameter_messages\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*dispatcher_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_hosts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_loads\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_routes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatchers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*event_charges\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10s\"},\"*event_resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*filters\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*load_ids\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rating_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*replication_hosts\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resource_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resource_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*reverse_destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*reverse_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*route_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*route_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rpc_connections\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rpc_responses\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"2s\"},\"*session_costs\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*shared_groups\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*stat_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*statqueue_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*statqueues\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*stir\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*threshold_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*threshold_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*thresholds\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*timings\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tmp_rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"1m0s\"},\"*tp_account_actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_action_triggers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_attributes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_chargers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_destination_rates\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_dispatcher_hosts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_dispatcher_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_filters\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rates\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rating_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_routes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_shared_groups\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_stats\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_thresholds\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_timings\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*uch\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*versions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"}},\"replication_conns\":[]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"caches\":{\"partitions\":{\"*account_action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*accounts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*action_triggers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*apiban\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"2m0s\"},\"*attribute_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*attribute_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*caps_events\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*cdr_ids\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10m0s\"},\"*cdrs\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*charger_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*charger_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*closed_sessions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10s\"},\"*destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*diameter_messages\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*dispatcher_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_hosts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_loads\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatcher_routes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*dispatchers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*event_charges\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"10s\"},\"*event_resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*filters\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*load_ids\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rating_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*replication_hosts\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resource_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resource_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*reverse_destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*reverse_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*route_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*route_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rpc_connections\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*rpc_responses\":{\"limit\":0,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"2s\"},\"*session_costs\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*shared_groups\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*stat_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*statqueue_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*statqueues\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*stir\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*threshold_filter_indexes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*threshold_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*thresholds\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*timings\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tmp_rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"1m0s\"},\"*tp_account_actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_action_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_action_triggers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_actions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_attributes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_chargers\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_destination_rates\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_destinations\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_dispatcher_hosts\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_dispatcher_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_filters\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rates\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rating_plans\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_rating_profiles\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_resources\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_routes\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_shared_groups\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_stats\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_thresholds\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*tp_timings\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"},\"*uch\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"3h0m0s\"},\"*versions\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"\"}},\"replication_conns\":[]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.CacheJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+
+// var replyPingAf string
+// if err := testSectRPC.Call(context.Background(), utils.CacheSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+// t.Error(err)
+// } else if replyPingAf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingAf)
+// }
+// }
+
+// func testSectConfigSReloadFilters(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"filters\":{\"apiers_conns\":[\"*internal\"],\"resources_conns\":[\"*internal\"],\"stats_conns\":[\"*localhost\"]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"filters\":{\"apiers_conns\":[\"*internal\"],\"resources_conns\":[\"*internal\"],\"stats_conns\":[\"*localhost\"]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.FilterSJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadCDRS(t *testing.T) {
+
+// var replyPingBf string
+// if err := testSectRPC.Call(context.Background(), utils.CDRsV1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
+// t.Error(err)
+// } else if replyPingBf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingBf)
+// }
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"cdrs\":{\"attributes_conns\":[],\"chargers_conns\":[\"*internal\"],\"ees_conns\":[],\"enabled\":true,\"extra_fields\":[],\"online_cdr_exports\":[],\"rals_conns\":[\"*internal\"],\"scheduler_conns\":[],\"session_cost_retries\":5,\"stats_conns\":[],\"store_cdrs\":true,\"thresholds_conns\":[]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"cdrs\":{\"attributes_conns\":[],\"chargers_conns\":[\"*internal\"],\"ees_conns\":[],\"enabled\":true,\"extra_fields\":[],\"online_cdr_exports\":[],\"rals_conns\":[\"*internal\"],\"scheduler_conns\":[],\"session_cost_retries\":5,\"stats_conns\":[],\"store_cdrs\":true,\"thresholds_conns\":[]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.CDRsJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+
+// var replyPingAf string
+// if err := testSectRPC.Call(context.Background(), utils.CDRsV1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+// t.Error(err)
+// } else if replyPingAf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingAf)
+// }
+// }
+
+// func testSectConfigSReloadERS(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"ers\":{\"enabled\":true,\"partial_cache_ttl\":\"1s\",\"readers\":[{\"cache_dump_fields\":[],\"concurrent_requests\":1024,\"fields\":[{\"mandatory\":true,\"path\":\"*cgreq.ToR\",\"tag\":\"ToR\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"mandatory\":true,\"path\":\"*cgreq.OriginID\",\"tag\":\"OriginID\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"mandatory\":true,\"path\":\"*cgreq.RequestType\",\"tag\":\"RequestType\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"mandatory\":true,\"path\":\"*cgreq.Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"mandatory\":true,\"path\":\"*cgreq.Category\",\"tag\":\"Category\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"mandatory\":true,\"path\":\"*cgreq.Account\",\"tag\":\"Account\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"mandatory\":true,\"path\":\"*cgreq.Subject\",\"tag\":\"Subject\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"mandatory\":true,\"path\":\"*cgreq.Destination\",\"tag\":\"Destination\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"mandatory\":true,\"path\":\"*cgreq.SetupTime\",\"tag\":\"SetupTime\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"mandatory\":true,\"path\":\"*cgreq.AnswerTime\",\"tag\":\"AnswerTime\",\"type\":\"*variable\",\"value\":\"~*req.12\"},{\"mandatory\":true,\"path\":\"*cgreq.Usage\",\"tag\":\"Usage\",\"type\":\"*variable\",\"value\":\"~*req.13\"}],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{\"csvFieldSeparator\":\",\",\"csvHeaderDefineChar\":\":\",\"csvRowLength\":0,\"natsSubject\":\"cgrates_cdrs\",\"partialCacheAction\":\"*none\",\"partialOrderField\":\"~*req.AnswerTime\",\"xmlRootPath\":\"\"},\"partial_commit_fields\":[],\"processed_path\":\"/var/spool/cgrates/ers/out\",\"run_delay\":\"0\",\"source_path\":\"/var/spool/cgrates/ers/in\",\"tenant\":\"\",\"timezone\":\"\",\"type\":\"*none\"}],\"sessions_conns\":[\"*internal\"]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"ers\":{\"enabled\":true,\"partial_cache_ttl\":\"1s\",\"readers\":[{\"cache_dump_fields\":[],\"concurrent_requests\":1024,\"fields\":[{\"mandatory\":true,\"path\":\"*cgreq.ToR\",\"tag\":\"ToR\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"mandatory\":true,\"path\":\"*cgreq.OriginID\",\"tag\":\"OriginID\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"mandatory\":true,\"path\":\"*cgreq.RequestType\",\"tag\":\"RequestType\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"mandatory\":true,\"path\":\"*cgreq.Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"mandatory\":true,\"path\":\"*cgreq.Category\",\"tag\":\"Category\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"mandatory\":true,\"path\":\"*cgreq.Account\",\"tag\":\"Account\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"mandatory\":true,\"path\":\"*cgreq.Subject\",\"tag\":\"Subject\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"mandatory\":true,\"path\":\"*cgreq.Destination\",\"tag\":\"Destination\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"mandatory\":true,\"path\":\"*cgreq.SetupTime\",\"tag\":\"SetupTime\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"mandatory\":true,\"path\":\"*cgreq.AnswerTime\",\"tag\":\"AnswerTime\",\"type\":\"*variable\",\"value\":\"~*req.12\"},{\"mandatory\":true,\"path\":\"*cgreq.Usage\",\"tag\":\"Usage\",\"type\":\"*variable\",\"value\":\"~*req.13\"}],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{\"csvFieldSeparator\":\",\",\"csvHeaderDefineChar\":\":\",\"csvRowLength\":0,\"natsSubject\":\"cgrates_cdrs\",\"partialCacheAction\":\"*none\",\"partialOrderField\":\"~*req.AnswerTime\",\"xmlRootPath\":\"\"},\"partial_commit_fields\":[],\"processed_path\":\"/var/spool/cgrates/ers/out\",\"run_delay\":\"0\",\"source_path\":\"/var/spool/cgrates/ers/in\",\"tenant\":\"\",\"timezone\":\"\",\"type\":\"*none\"}],\"sessions_conns\":[\"*internal\"]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.ERsJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadEES(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"ees\":{\"attributes_conns\":[],\"cache\":{\"*file_csv\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"5s\"}},\"enabled\":true,\"exporters\":[{\"attempts\":1,\"attribute_context\":\"\",\"attribute_ids\":[],\"concurrent_requests\":0,\"export_path\":\"/var/spool/cgrates/ees\",\"fields\":[],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{},\"synchronous\":false,\"timezone\":\"\",\"type\":\"*none\"}]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"ees\":{\"attributes_conns\":[],\"cache\":{\"*file_csv\":{\"limit\":-1,\"precache\":false,\"replicate\":false,\"static_ttl\":false,\"ttl\":\"5s\"}},\"enabled\":true,\"exporters\":[{\"attempts\":1,\"attribute_context\":\"\",\"attribute_ids\":[],\"concurrent_requests\":0,\"export_path\":\"/var/spool/cgrates/ees\",\"failed_posts_dir\":\"/var/spool/cgrates/failed_posts\",\"fields\":[],\"filters\":[],\"flags\":[],\"id\":\"*default\",\"opts\":{},\"synchronous\":false,\"timezone\":\"\",\"type\":\"*none\"}]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.EEsJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadSessions(t *testing.T) {
+
+// var replyPingBf string
+// if err := testSectRPC.Call(context.Background(), utils.SessionSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
+// t.Error(err)
+// } else if replyPingBf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingBf)
+// }
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"sessions\":{\"alterable_fields\":[],\"attributes_conns\":[\"*internal\"],\"cdrs_conns\":[\"*internal\"],\"channel_sync_interval\":\"0\",\"chargers_conns\":[\"*internal\"],\"client_protocol\":1,\"debit_interval\":\"0\",\"default_usage\":{\"*any\":\"3h0m0s\",\"*data\":\"1048576\",\"*sms\":\"1\",\"*voice\":\"3h0m0s\"},\"enabled\":true,\"listen_bigob\":\"\",\"listen_bijson\":\"127.0.0.1:2014\",\"min_dur_low_balance\":\"0\",\"rals_conns\":[\"*internal\"],\"replication_conns\":[],\"resources_conns\":[\"*internal\"],\"routes_conns\":[\"*internal\"],\"scheduler_conns\":[],\"session_indexes\":[\"OriginID\"],\"session_ttl\":\"0\",\"stats_conns\":[],\"stir\":{\"allowed_attest\":[\"*any\"],\"default_attest\":\"A\",\"payload_maxduration\":\"-1\",\"privatekey_path\":\"\",\"publickey_path\":\"\"},\"store_session_costs\":false,\"terminate_attempts\":5,\"thresholds_conns\":[]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"sessions\":{\"alterable_fields\":[],\"attributes_conns\":[\"*internal\"],\"cdrs_conns\":[\"*internal\"],\"channel_sync_interval\":\"0\",\"chargers_conns\":[\"*internal\"],\"client_protocol\":1,\"debit_interval\":\"0\",\"default_usage\":{\"*any\":\"3h0m0s\",\"*data\":\"1048576\",\"*sms\":\"1\",\"*voice\":\"3h0m0s\"},\"enabled\":true,\"listen_bigob\":\"\",\"listen_bijson\":\"127.0.0.1:2014\",\"min_dur_low_balance\":\"0\",\"rals_conns\":[\"*internal\"],\"replication_conns\":[],\"resources_conns\":[\"*internal\"],\"routes_conns\":[\"*internal\"],\"scheduler_conns\":[],\"session_indexes\":[\"OriginID\"],\"session_ttl\":\"0\",\"stats_conns\":[],\"stir\":{\"allowed_attest\":[\"*any\"],\"default_attest\":\"A\",\"payload_maxduration\":\"-1\",\"privatekey_path\":\"\",\"publickey_path\":\"\"},\"store_session_costs\":false,\"terminate_attempts\":5,\"thresholds_conns\":[]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.SessionSJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+
+// var replyPingAf string
+// if err := testSectRPC.Call(context.Background(), utils.SessionSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+// t.Error(err)
+// } else if replyPingAf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingAf)
+// }
+// }
+
+// func testSectConfigSReloadAsteriskAgent(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"asterisk_agent\":{\"asterisk_conns\":[{\"address\":\"127.0.0.1:8088\",\"alias\":\"\",\"connect_attempts\":3,\"password\":\"CGRateS.org\",\"reconnects\":5,\"user\":\"cgrates\"}],\"create_cdr\":false,\"enabled\":false,\"sessions_conns\":[\"*birpc_internal\"]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"asterisk_agent\":{\"asterisk_conns\":[{\"address\":\"127.0.0.1:8088\",\"alias\":\"\",\"connect_attempts\":3,\"password\":\"CGRateS.org\",\"reconnects\":5,\"user\":\"cgrates\"}],\"create_cdr\":false,\"enabled\":false,\"sessions_conns\":[\"*birpc_internal\"]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.AsteriskAgentJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadFreeswitchAgent(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"freeswitch_agent\":{\"create_cdr\":false,\"empty_balance_ann_file\":\"\",\"empty_balance_context\":\"\",\"enabled\":false,\"event_socket_conns\":[{\"address\":\"127.0.0.1:8021\",\"alias\":\"127.0.0.1:8021\",\"password\":\"ClueCon\",\"reconnects\":5}],\"extra_fields\":[],\"low_balance_ann_file\":\"\",\"max_wait_connection\":\"2s\",\"sessions_conns\":[\"*birpc_internal\"],\"subscribe_park\":true}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"freeswitch_agent\":{\"create_cdr\":false,\"empty_balance_ann_file\":\"\",\"empty_balance_context\":\"\",\"enabled\":false,\"event_socket_conns\":[{\"address\":\"127.0.0.1:8021\",\"alias\":\"127.0.0.1:8021\",\"password\":\"ClueCon\",\"reconnects\":5}],\"extra_fields\":\"\",\"low_balance_ann_file\":\"\",\"max_wait_connection\":\"2s\",\"sessions_conns\":[\"*birpc_internal\"],\"subscribe_park\":true}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.FreeSWITCHAgentJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadKamailioAgent(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"kamailio_agent\":{\"create_cdr\":false,\"enabled\":false,\"evapi_conns\":[{\"address\":\"127.0.0.1:8448\",\"alias\":\"\",\"reconnects\":5}],\"sessions_conns\":[\"*birpc_internal\"],\"timezone\":\"\"}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"kamailio_agent\":{\"create_cdr\":false,\"enabled\":false,\"evapi_conns\":[{\"address\":\"127.0.0.1:8448\",\"alias\":\"\",\"reconnects\":5}],\"sessions_conns\":[\"*birpc_internal\"],\"timezone\":\"\"}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.KamailioAgentJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadDiameterAgent(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"diameter_agent\":{\"asr_template\":\"\",\"concurrent_requests\":-1,\"dictionaries_path\":\"/usr/share/cgrates/diameter/dict/\",\"enabled\":true,\"forced_disconnect\":\"*none\",\"listen\":\"127.0.0.1:3868\",\"listen_net\":\"tcp\",\"origin_host\":\"CGR-DA\",\"origin_realm\":\"cgrates.org\",\"product_name\":\"CGRateS\",\"rar_template\":\"\",\"request_processors\":[],\"sessions_conns\":[\"*birpc_internal\"],\"synced_conn_requests\":false,\"vendor_id\":0}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"diameter_agent\":{\"asr_template\":\"\",\"concurrent_requests\":-1,\"dictionaries_path\":\"/usr/share/cgrates/diameter/dict/\",\"enabled\":true,\"forced_disconnect\":\"*none\",\"listen\":\"127.0.0.1:3868\",\"listen_net\":\"tcp\",\"origin_host\":\"CGR-DA\",\"origin_realm\":\"cgrates.org\",\"product_name\":\"CGRateS\",\"rar_template\":\"\",\"request_processors\":[],\"sessions_conns\":[\"*birpc_internal\"],\"synced_conn_requests\":false,\"vendor_id\":0}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.DiameterAgentJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadHTTPAgent(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"http_agent\":[]}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"http_agent\":[]}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.LoaderSJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadDNSAgent(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"dns_agent\":{\"enabled\":true,\"listen\":\"127.0.0.1:2053\",\"listen_net\":\"udp\",\"request_processors\":[],\"sessions_conns\":[\"*internal\"],\"timezone\":\"\"}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"dns_agent\":{\"enabled\":true,\"listen\":\"127.0.0.1:2053\",\"listen_net\":\"udp\",\"request_processors\":[],\"sessions_conns\":[\"*internal\"],\"timezone\":\"\"}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.DNSAgentJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadAttributes(t *testing.T) {
+
+// var replyPingBf string
+// if err := testSectRPC.Call(context.Background(), utils.AttributeSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
+// t.Error(err)
+// } else if replyPingBf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingBf)
+// }
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"attributes\":{\"any_context\":true,\"accounts_conns\":[\"*localhost\"],\"opts\":{\"*processRuns\":2},\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"resources_conns\":[\"*localhost\"],\"stats_conns\":[\"*localhost\"],\"suffix_indexed_fields\":[]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"attributes\":{\"any_context\":true,\"accounts_conns\":[\"*localhost\"],\"opts\":{\"*processRuns\":2},\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"resources_conns\":[\"*localhost\"],\"stats_conns\":[\"*localhost\"],\"suffix_indexed_fields\":[]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.AttributeSJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+
+// var replyPingAf string
+// if err := testSectRPC.Call(context.Background(), utils.AttributeSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+// t.Error(err)
+// } else if replyPingAf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingAf)
+// }
+// }
+
+// func testSectConfigSReloadChargers(t *testing.T) {
+
+// var replyPingBf string
+// if err := testSectRPC.Call(context.Background(), utils.ChargerSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
+// t.Error(err)
+// } else if replyPingBf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingBf)
+// }
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"chargers\":{\"attributes_conns\":[\"*internal\"],\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"suffix_indexed_fields\":[]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"chargers\":{\"attributes_conns\":[\"*internal\"],\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"suffix_indexed_fields\":[]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.ChargerSJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+
+// var replyPingAf string
+// if err := testSectRPC.Call(context.Background(), utils.ChargerSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+// t.Error(err)
+// } else if replyPingAf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingAf)
+// }
+// }
+
+// func testSectConfigSReloadResources(t *testing.T) {
+
+// var replyPingBf string
+// if err := testSectRPC.Call(context.Background(), utils.ResourceSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
+// t.Error(err)
+// } else if replyPingBf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingBf)
+// }
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"resources\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"-1ns\",\"suffix_indexed_fields\":[],\"thresholds_conns\":[\"*internal\"]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"resources\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"-1ns\",\"suffix_indexed_fields\":[],\"thresholds_conns\":[\"*internal\"]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.ResourceSJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+
+// var replyPingAf string
+// if err := testSectRPC.Call(context.Background(), utils.ResourceSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+// t.Error(err)
+// } else if replyPingAf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingAf)
+// }
+// }
+
+// func testSectConfigSReloadStats(t *testing.T) {
+
+// var replyPingBf string
+// if err := testSectRPC.Call(context.Background(), utils.StatSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
+// t.Error(err)
+// } else if replyPingBf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingBf)
+// }
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"stats\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"-1ns\",\"store_uncompressed_limit\":0,\"suffix_indexed_fields\":[],\"thresholds_conns\":[\"*internal\"]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"stats\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"-1ns\",\"store_uncompressed_limit\":0,\"suffix_indexed_fields\":[],\"thresholds_conns\":[\"*internal\"]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.StatSJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+
+// var replyPingAf string
+// if err := testSectRPC.Call(context.Background(), utils.StatSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+// t.Error(err)
+// } else if replyPingAf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingAf)
+// }
+// }
+
+// func testSectConfigSReloadThresholds(t *testing.T) {
+
+// var replyPingBf string
+// if err := testSectRPC.Call(context.Background(), utils.ThresholdSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
+// t.Error(err)
+// } else if replyPingBf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingBf)
+// }
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"thresholds\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"-1ns\",\"suffix_indexed_fields\":[]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"thresholds\":{\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"store_interval\":\"-1ns\",\"suffix_indexed_fields\":[]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.ThresholdSJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+
+// var replyPingAf string
+// if err := testSectRPC.Call(context.Background(), utils.ThresholdSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+// t.Error(err)
+// } else if replyPingAf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingAf)
+// }
+// }
+
+// func testSectConfigSReloadRoutes(t *testing.T) {
+
+// var replyPingBf string
+// if err := testSectRPC.Call(context.Background(), utils.RouteSv1Ping, &utils.CGREvent{}, &replyPingBf); err != nil {
+// t.Error(err)
+// } else if replyPingBf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingBf)
+// }
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"routes\":{\"attributes_conns\":[],\"default_ratio\":1,\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[\"*req.Destination\"],\"rals_conns\":[\"*internal\"],\"resources_conns\":[\"*internal\"],\"stats_conns\":[\"*internal\"],\"suffix_indexed_fields\":[]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"routes\":{\"attributes_conns\":[],\"default_ratio\":1,\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[\"*req.Destination\"],\"rals_conns\":[\"*internal\"],\"resources_conns\":[\"*internal\"],\"stats_conns\":[\"*internal\"],\"suffix_indexed_fields\":[]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.RouteSJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+
+// var replyPingAf string
+// if err := testSectRPC.Call(context.Background(), utils.RouteSv1Ping, &utils.CGREvent{}, &replyPingAf); err != nil {
+// t.Error(err)
+// } else if replyPingAf != utils.Pong {
+// t.Errorf("Expected OK received: %s", replyPingAf)
+// }
+// }
+
+// func testSectConfigSReloadLoaders(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
+// Tenant: "cgrates.org",
+// Section: config.LoaderSJSON,
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"loaders\":[{\"caches_conns\":[\"*internal\"],\"data\":[{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"TenantID\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ProfileID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Contexts\",\"tag\":\"Contexts\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"AttributeFilterIDs\",\"tag\":\"AttributeFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"Path\",\"tag\":\"Path\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"Type\",\"tag\":\"Type\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"Value\",\"tag\":\"Value\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.10\"}],\"file_name\":\"Attributes.csv\",\"flags\":null,\"type\":\"*attributes\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Type\",\"tag\":\"Type\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"Element\",\"tag\":\"Element\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"Values\",\"tag\":\"Values\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.5\"}],\"file_name\":\"Filters.csv\",\"flags\":null,\"type\":\"*filters\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"UsageTTL\",\"tag\":\"TTL\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"Limit\",\"tag\":\"Limit\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"AllocationMessage\",\"tag\":\"AllocationMessage\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"Stored\",\"tag\":\"Stored\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"ThresholdIDs\",\"tag\":\"ThresholdIDs\",\"type\":\"*variable\",\"value\":\"~*req.10\"}],\"file_name\":\"Resources.csv\",\"flags\":null,\"type\":\"*resources\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"QueueLength\",\"tag\":\"QueueLength\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"TTL\",\"tag\":\"TTL\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"MinItems\",\"tag\":\"MinItems\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"MetricIDs\",\"tag\":\"MetricIDs\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"MetricFilterIDs\",\"tag\":\"MetricFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"Stored\",\"tag\":\"Stored\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"path\":\"ThresholdIDs\",\"tag\":\"ThresholdIDs\",\"type\":\"*variable\",\"value\":\"~*req.12\"}],\"file_name\":\"Stats.csv\",\"flags\":null,\"type\":\"*stats\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"MaxHits\",\"tag\":\"MaxHits\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"MinHits\",\"tag\":\"MinHits\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"MinSleep\",\"tag\":\"MinSleep\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"Blocker\",\"tag\":\"Blocker\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"ActionIDs\",\"tag\":\"ActionIDs\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"Async\",\"tag\":\"Async\",\"type\":\"*variable\",\"value\":\"~*req.10\"}],\"file_name\":\"Thresholds.csv\",\"flags\":null,\"type\":\"*thresholds\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"Sorting\",\"tag\":\"Sorting\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"SortingParameters\",\"tag\":\"SortingParameters\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"RouteID\",\"tag\":\"RouteID\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"RouteFilterIDs\",\"tag\":\"RouteFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"RouteAccountIDs\",\"tag\":\"RouteAccountIDs\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"RouteRateProfileIDs\",\"tag\":\"RouteRateProfileIDs\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"RouteResourceIDs\",\"tag\":\"RouteResourceIDs\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"RouteStatIDs\",\"tag\":\"RouteStatIDs\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"path\":\"RouteWeight\",\"tag\":\"RouteWeight\",\"type\":\"*variable\",\"value\":\"~*req.12\"},{\"path\":\"RouteBlocker\",\"tag\":\"RouteBlocker\",\"type\":\"*variable\",\"value\":\"~*req.13\"},{\"path\":\"RouteParameters\",\"tag\":\"RouteParameters\",\"type\":\"*variable\",\"value\":\"~*req.14\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.15\"}],\"file_name\":\"Routes.csv\",\"flags\":null,\"type\":\"*routes\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"RunID\",\"tag\":\"RunID\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"AttributeIDs\",\"tag\":\"AttributeIDs\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.6\"}],\"file_name\":\"Chargers.csv\",\"flags\":null,\"type\":\"*chargers\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Contexts\",\"tag\":\"Contexts\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"FilterIDs\",\"tag\":\"FilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"ActivationInterval\",\"tag\":\"ActivationInterval\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"Strategy\",\"tag\":\"Strategy\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"StrategyParameters\",\"tag\":\"StrategyParameters\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"ConnID\",\"tag\":\"ConnID\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"ConnFilterIDs\",\"tag\":\"ConnFilterIDs\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"ConnWeight\",\"tag\":\"ConnWeight\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"ConnBlocker\",\"tag\":\"ConnBlocker\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"ConnParameters\",\"tag\":\"ConnParameters\",\"type\":\"*variable\",\"value\":\"~*req.11\"},{\"path\":\"Weight\",\"tag\":\"Weight\",\"type\":\"*variable\",\"value\":\"~*req.12\"}],\"file_name\":\"DispatcherProfiles.csv\",\"flags\":null,\"type\":\"*dispatchers\"},{\"fields\":[{\"mandatory\":true,\"path\":\"Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.0\"},{\"mandatory\":true,\"path\":\"ID\",\"tag\":\"ID\",\"type\":\"*variable\",\"value\":\"~*req.1\"},{\"path\":\"Address\",\"tag\":\"Address\",\"type\":\"*variable\",\"value\":\"~*req.2\"},{\"path\":\"Transport\",\"tag\":\"Transport\",\"type\":\"*variable\",\"value\":\"~*req.3\"},{\"path\":\"ConnectAttempts\",\"tag\":\"ConnectAttempts\",\"type\":\"*variable\",\"value\":\"~*req.4\"},{\"path\":\"Reconnects\",\"tag\":\"Reconnects\",\"type\":\"*variable\",\"value\":\"~*req.5\"},{\"path\":\"ConnectTimeout\",\"tag\":\"ConnectTimeout\",\"type\":\"*variable\",\"value\":\"~*req.6\"},{\"path\":\"ReplyTimeout\",\"tag\":\"ReplyTimeout\",\"type\":\"*variable\",\"value\":\"~*req.7\"},{\"path\":\"TLS\",\"tag\":\"TLS\",\"type\":\"*variable\",\"value\":\"~*req.8\"},{\"path\":\"ClientKey\",\"tag\":\"ClientKey\",\"type\":\"*variable\",\"value\":\"~*req.9\"},{\"path\":\"ClientCertificate\",\"tag\":\"ClientCertificate\",\"type\":\"*variable\",\"value\":\"~*req.10\"},{\"path\":\"CaCertificate\",\"tag\":\"CaCertificate\",\"type\":\"*variable\",\"value\":\"~*req.11\"}],\"file_name\":\"DispatcherHosts.csv\",\"flags\":null,\"type\":\"*dispatcher_hosts\"}],\"dry_run\":false,\"enabled\":false,\"field_separator\":\",\",\"id\":\"*default\",\"lock_filename\":\".cgr.lck\",\"run_delay\":\"0\",\"tenant\":\"\",\"tp_in_dir\":\"/var/spool/cgrates/loader/in\",\"tp_out_dir\":\"/var/spool/cgrates/loader/out\"}]}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.LoaderSJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadSuretax(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"suretax\":{\"bill_to_number\":\"\",\"business_unit\":\"\",\"client_number\":\"\",\"client_tracking\":\"~*req.CGRID\",\"customer_number\":\"~*req.Subject\",\"include_local_cost\":false,\"orig_number\":\"~*req.Subject\",\"p2pplus4\":\"\",\"p2pzipcode\":\"\",\"plus4\":\"\",\"regulatory_code\":\"03\",\"response_group\":\"03\",\"response_type\":\"D4\",\"return_file_code\":\"0\",\"sales_type_code\":\"R\",\"tax_exemption_code_list\":\"\",\"tax_included\":\"0\",\"tax_situs_rule\":\"04\",\"term_number\":\"~*req.Destination\",\"timezone\":\"Local\",\"trans_type_code\":\"010101\",\"unit_type\":\"00\",\"units\":\"1\",\"url\":\"\",\"validation_key\":\"\",\"zipcode\":\"\"}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"suretax\":{\"bill_to_number\":\"\",\"business_unit\":\"\",\"client_number\":\"\",\"client_tracking\":\"~*req.CGRID\",\"customer_number\":\"~*req.Subject\",\"include_local_cost\":false,\"orig_number\":\"~*req.Subject\",\"p2pplus4\":\"\",\"p2pzipcode\":\"\",\"plus4\":\"\",\"regulatory_code\":\"03\",\"response_group\":\"03\",\"response_type\":\"D4\",\"return_file_code\":\"0\",\"sales_type_code\":\"R\",\"tax_exemption_code_list\":\"\",\"tax_included\":\"0\",\"tax_situs_rule\":\"04\",\"term_number\":\"~*req.Destination\",\"timezone\":\"Local\",\"trans_type_code\":\"010101\",\"unit_type\":\"00\",\"units\":\"1\",\"url\":\"\",\"validation_key\":\"\",\"zipcode\":\"\"}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.SureTaxJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadLoader(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"loader\":{\"caches_conns\":[\"*localhost\"],\"data_path\":\"./\",\"disable_reverse\":false,\"field_separator\":\",\",\"gapi_credentials\":\".gapi/credentials.json\",\"gapi_token\":\".gapi/token.json\",\"scheduler_conns\":[\"*localhost\"],\"tpid\":\"\"}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"loader\":{\"caches_conns\":[\"*localhost\"],\"data_path\":\"./\",\"disable_reverse\":false,\"field_separator\":\",\",\"gapi_credentials\":\".gapi/credentials.json\",\"gapi_token\":\".gapi/token.json\",\"scheduler_conns\":[\"*localhost\"],\"tpid\":\"\"}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.LoaderJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadMigrator(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"migrator\":{\"out_datadb_encoding\":\"msgpack\",\"out_datadb_host\":\"127.0.0.1\",\"out_datadb_name\":\"10\",\"out_datadb_opts\":{\"redisCACertificate\":\"\",\"redisClientCertificate\":\"\",\"redisClientKey\":\"\",\"redisCluster\":false,\"redisClusterOndownDelay\":\"0\",\"redisClusterSync\":\"5s\",\"redisSentinel\":\"\",\"redisTLS\":false},\"out_datadb_password\":\"\",\"out_datadb_port\":\"6379\",\"out_datadb_type\":\"redis\",\"out_datadb_user\":\"cgrates\",\"out_stordb_host\":\"127.0.0.1\",\"out_stordb_name\":\"cgrates\",\"out_stordb_opts\":{},\"out_stordb_password\":\"CGRateS.org\",\"out_stordb_port\":\"3306\",\"out_stordb_type\":\"mysql\",\"out_stordb_user\":\"cgrates\",\"users_filters\":[\"Account\"]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"migrator\":{\"out_datadb_encoding\":\"msgpack\",\"out_datadb_host\":\"127.0.0.1\",\"out_datadb_name\":\"10\",\"out_datadb_opts\":{\"redisCACertificate\":\"\",\"redisClientCertificate\":\"\",\"redisClientKey\":\"\",\"redisCluster\":false,\"redisClusterOndownDelay\":\"0\",\"redisClusterSync\":\"5s\",\"redisSentinel\":\"\",\"redisTLS\":false},\"out_datadb_password\":\"\",\"out_datadb_port\":\"6379\",\"out_datadb_type\":\"redis\",\"out_datadb_user\":\"cgrates\",\"out_stordb_host\":\"127.0.0.1\",\"out_stordb_name\":\"cgrates\",\"out_stordb_opts\":{},\"out_stordb_password\":\"CGRateS.org\",\"out_stordb_port\":\"3306\",\"out_stordb_type\":\"mysql\",\"out_stordb_user\":\"cgrates\",\"users_filters\":[\"Account\"]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.MigratorJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadDispatchers(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"dispatchers\":{\"any_subsystem\":true,\"attributes_conns\":[],\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"suffix_indexed_fields\":[]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"dispatchers\":{\"any_subsystem\":true,\"attributes_conns\":[],\"enabled\":true,\"indexed_selects\":true,\"nested_fields\":false,\"prefix_indexed_fields\":[],\"suffix_indexed_fields\":[]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.DispatcherSJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadRegistrarC(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"registrarc\":{\"dispatchers\":{\"enabled\":true,\"hosts\":[],\"refresh_interval\":\"5m0s\",\"registrars_conns\":[]},\"rpc\":{\"enabled\":true,\"hosts\":[],\"refresh_interval\":\"5m0s\",\"registrars_conns\":[]}}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"registrarc\":{\"dispatchers\":{\"hosts\":[],\"refresh_interval\":\"5m0s\",\"registrars_conns\":[]},\"rpc\":{\"hosts\":[],\"refresh_interval\":\"5m0s\",\"registrars_conns\":[]}}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.RegistrarCJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadAnalyzer(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"analyzers\":{\"cleanup_interval\":\"1h0m0s\",\"db_path\":\"/var/spool/cgrates/analyzers\",\"enabled\":true,\"index_type\":\"*scorch\",\"ttl\":\"24h0m0s\"}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"analyzers\":{\"cleanup_interval\":\"1h0m0s\",\"db_path\":\"/var/spool/cgrates/analyzers\",\"enabled\":true,\"index_type\":\"*scorch\",\"ttl\":\"24h0m0s\"}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.AnalyzerSJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadApiers(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"apiers\":{\"attributes_conns\":[],\"caches_conns\":[\"*internal\"],\"ees_conns\":[],\"enabled\":true,\"scheduler_conns\":[\"*internal\"]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"apiers\":{\"attributes_conns\":[],\"caches_conns\":[\"*internal\"],\"ees_conns\":[],\"enabled\":true,\"scheduler_conns\":[\"*internal\"]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.TemplatesJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadSIPAgent(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"sip_agent\":{\"enabled\":true,\"listen\":\"127.0.0.1:5060\",\"listen_net\":\"udp\",\"request_processors\":[],\"retransmission_timer\":\"1000000000\",\"sessions_conns\":[\"*internal\"],\"timezone\":\"\"}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"sip_agent\":{\"enabled\":true,\"listen\":\"127.0.0.1:5060\",\"listen_net\":\"udp\",\"request_processors\":[],\"retransmission_timer\":1000000000,\"sessions_conns\":[\"*internal\"],\"timezone\":\"\"}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.SIPAgentJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", cfgStr, rpl)
+// }
+// }
+
+// func testSectConfigSReloadTemplates(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: "{\"templates\":{\"*asr\":[{\"mandatory\":true,\"path\":\"*diamreq.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Realm\",\"tag\":\"DestinationRealm\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Host\",\"tag\":\"DestinationHost\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"}],\"*cca\":[{\"mandatory\":true,\"path\":\"*rep.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"path\":\"*rep.Result-Code\",\"tag\":\"ResultCode\",\"type\":\"*constant\",\"value\":\"2001\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*vars.OriginHost\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*vars.OriginRealm\"},{\"mandatory\":true,\"path\":\"*rep.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"},{\"mandatory\":true,\"path\":\"*rep.CC-Request-Type\",\"tag\":\"CCRequestType\",\"type\":\"*variable\",\"value\":\"~*req.CC-Request-Type\"},{\"mandatory\":true,\"path\":\"*rep.CC-Request-Number\",\"tag\":\"CCRequestNumber\",\"type\":\"*variable\",\"value\":\"~*req.CC-Request-Number\"}],\"*cdrLog\":[{\"mandatory\":true,\"path\":\"*cdr.ToR\",\"tag\":\"ToR\",\"type\":\"*variable\",\"value\":\"~*req.BalanceType\"},{\"mandatory\":true,\"path\":\"*cdr.OriginHost\",\"tag\":\"OriginHost\",\"type\":\"*constant\",\"value\":\"127.0.0.1\"},{\"mandatory\":true,\"path\":\"*cdr.RequestType\",\"tag\":\"RequestType\",\"type\":\"*constant\",\"value\":\"*none\"},{\"mandatory\":true,\"path\":\"*cdr.Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.Tenant\"},{\"mandatory\":true,\"path\":\"*cdr.Account\",\"tag\":\"Account\",\"type\":\"*variable\",\"value\":\"~*req.Account\"},{\"mandatory\":true,\"path\":\"*cdr.Subject\",\"tag\":\"Subject\",\"type\":\"*variable\",\"value\":\"~*req.Account\"},{\"mandatory\":true,\"path\":\"*cdr.Cost\",\"tag\":\"Cost\",\"type\":\"*variable\",\"value\":\"~*req.Cost\"},{\"mandatory\":true,\"path\":\"*cdr.Source\",\"tag\":\"Source\",\"type\":\"*constant\",\"value\":\"*cdrLog\"},{\"mandatory\":true,\"path\":\"*cdr.Usage\",\"tag\":\"Usage\",\"type\":\"*constant\",\"value\":\"1\"},{\"mandatory\":true,\"path\":\"*cdr.RunID\",\"tag\":\"RunID\",\"type\":\"*variable\",\"value\":\"~*req.ActionType\"},{\"mandatory\":true,\"path\":\"*cdr.SetupTime\",\"tag\":\"SetupTime\",\"type\":\"*constant\",\"value\":\"*now\"},{\"mandatory\":true,\"path\":\"*cdr.AnswerTime\",\"tag\":\"AnswerTime\",\"type\":\"*constant\",\"value\":\"*now\"},{\"mandatory\":true,\"path\":\"*cdr.PreRated\",\"tag\":\"PreRated\",\"type\":\"*constant\",\"value\":\"true\"}],\"*err\":[{\"mandatory\":true,\"path\":\"*rep.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*vars.OriginHost\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*vars.OriginRealm\"}],\"*errSip\":[{\"mandatory\":true,\"path\":\"*rep.Request\",\"tag\":\"Request\",\"type\":\"*constant\",\"value\":\"SIP/2.0 500 Internal Server Error\"}],\"*rar\":[{\"mandatory\":true,\"path\":\"*diamreq.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Realm\",\"tag\":\"DestinationRealm\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Host\",\"tag\":\"DestinationHost\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"},{\"path\":\"*diamreq.Re-Auth-Request-Type\",\"tag\":\"ReAuthRequestType\",\"type\":\"*constant\",\"value\":\"0\"}]}}",
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := "{\"templates\":{\"*asr\":[{\"mandatory\":true,\"path\":\"*diamreq.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Realm\",\"tag\":\"DestinationRealm\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Host\",\"tag\":\"DestinationHost\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"}],\"*cca\":[{\"mandatory\":true,\"path\":\"*rep.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"path\":\"*rep.Result-Code\",\"tag\":\"ResultCode\",\"type\":\"*constant\",\"value\":\"2001\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*vars.OriginHost\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*vars.OriginRealm\"},{\"mandatory\":true,\"path\":\"*rep.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"},{\"mandatory\":true,\"path\":\"*rep.CC-Request-Type\",\"tag\":\"CCRequestType\",\"type\":\"*variable\",\"value\":\"~*req.CC-Request-Type\"},{\"mandatory\":true,\"path\":\"*rep.CC-Request-Number\",\"tag\":\"CCRequestNumber\",\"type\":\"*variable\",\"value\":\"~*req.CC-Request-Number\"}],\"*cdrLog\":[{\"mandatory\":true,\"path\":\"*cdr.ToR\",\"tag\":\"ToR\",\"type\":\"*variable\",\"value\":\"~*req.BalanceType\"},{\"mandatory\":true,\"path\":\"*cdr.OriginHost\",\"tag\":\"OriginHost\",\"type\":\"*constant\",\"value\":\"127.0.0.1\"},{\"mandatory\":true,\"path\":\"*cdr.RequestType\",\"tag\":\"RequestType\",\"type\":\"*constant\",\"value\":\"*none\"},{\"mandatory\":true,\"path\":\"*cdr.Tenant\",\"tag\":\"Tenant\",\"type\":\"*variable\",\"value\":\"~*req.Tenant\"},{\"mandatory\":true,\"path\":\"*cdr.Account\",\"tag\":\"Account\",\"type\":\"*variable\",\"value\":\"~*req.Account\"},{\"mandatory\":true,\"path\":\"*cdr.Subject\",\"tag\":\"Subject\",\"type\":\"*variable\",\"value\":\"~*req.Account\"},{\"mandatory\":true,\"path\":\"*cdr.Cost\",\"tag\":\"Cost\",\"type\":\"*variable\",\"value\":\"~*req.Cost\"},{\"mandatory\":true,\"path\":\"*cdr.Source\",\"tag\":\"Source\",\"type\":\"*constant\",\"value\":\"*cdrLog\"},{\"mandatory\":true,\"path\":\"*cdr.Usage\",\"tag\":\"Usage\",\"type\":\"*constant\",\"value\":\"1\"},{\"mandatory\":true,\"path\":\"*cdr.RunID\",\"tag\":\"RunID\",\"type\":\"*variable\",\"value\":\"~*req.ActionType\"},{\"mandatory\":true,\"path\":\"*cdr.SetupTime\",\"tag\":\"SetupTime\",\"type\":\"*constant\",\"value\":\"*now\"},{\"mandatory\":true,\"path\":\"*cdr.AnswerTime\",\"tag\":\"AnswerTime\",\"type\":\"*constant\",\"value\":\"*now\"},{\"mandatory\":true,\"path\":\"*cdr.PreRated\",\"tag\":\"PreRated\",\"type\":\"*constant\",\"value\":\"true\"}],\"*err\":[{\"mandatory\":true,\"path\":\"*rep.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*vars.OriginHost\"},{\"mandatory\":true,\"path\":\"*rep.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*vars.OriginRealm\"}],\"*errSip\":[{\"mandatory\":true,\"path\":\"*rep.Request\",\"tag\":\"Request\",\"type\":\"*constant\",\"value\":\"SIP/2.0 500 Internal Server Error\"}],\"*rar\":[{\"mandatory\":true,\"path\":\"*diamreq.Session-Id\",\"tag\":\"SessionId\",\"type\":\"*variable\",\"value\":\"~*req.Session-Id\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Host\",\"tag\":\"OriginHost\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Origin-Realm\",\"tag\":\"OriginRealm\",\"type\":\"*variable\",\"value\":\"~*req.Destination-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Realm\",\"tag\":\"DestinationRealm\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Realm\"},{\"mandatory\":true,\"path\":\"*diamreq.Destination-Host\",\"tag\":\"DestinationHost\",\"type\":\"*variable\",\"value\":\"~*req.Origin-Host\"},{\"mandatory\":true,\"path\":\"*diamreq.Auth-Application-Id\",\"tag\":\"AuthApplicationId\",\"type\":\"*variable\",\"value\":\"~*vars.*appid\"},{\"path\":\"*diamreq.Re-Auth-Request-Type\",\"tag\":\"ReAuthRequestType\",\"type\":\"*constant\",\"value\":\"0\"}]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.TemplatesJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadConfigs(t *testing.T) {
+
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: `{"configs":{"enabled":true,"root_dir":"/var/spool/cgrates/configs","url":"/configs/"}}`,
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %+v", reply)
+// }
+// cfgStr := `{"configs":{"enabled":true,"root_dir":"/var/spool/cgrates/configs","url":"/configs/"}}`
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.ConfigSJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadAPIBan(t *testing.T) {
+// var replyRld string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
+// Tenant: "cgrates.org",
+// Section: config.APIBanJSON,
+// }, &replyRld); err != nil {
+// t.Error(err)
+// } else if replyRld != utils.OK {
+// t.Errorf("Expected OK received: %+v", replyRld)
+// }
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: `{"apiban":{"enabled":true,"keys":["testKey"]}}`,
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %s", reply)
+// }
+// cfgStr := "{\"apiban\":{\"enabled\":true,\"keys\":[\"testKey\"]}}"
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.APIBanJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadActions(t *testing.T) {
+// var replyRld string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
+// Tenant: "cgrates.org",
+// Section: config.ActionSJSON,
+// }, &replyRld); err != nil {
+// t.Error(err)
+// } else if replyRld != utils.OK {
+// t.Errorf("Expected OK received: %+v", replyRld)
+// }
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: `"actions": {
+// "enabled": false,
+// "cdrs_conns": [],
+// "ees_conns": [],
+// "thresholds_conns": [],
+// "stats_conns": [],
+// "accounts_conns": [],
+// "tenants": [],
+// "indexed_selects": true,
+// //"string_indexed_fields": [],
+// "prefix_indexed_fields": [],
+// "suffix_indexed_fields": [],
+// "nested_fields": false,
+// "dynaprepaid_actionprofile": [],
+// },`,
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %s", reply)
+// }
+// cfgStr := `"actions": {
+// "enabled": false,
+// "cdrs_conns": [],
+// "ees_conns": [],
+// "thresholds_conns": [],
+// "stats_conns": [],
+// "accounts_conns": [],
+// "tenants": [],
+// "indexed_selects": true,
+// //"string_indexed_fields": [],
+// "prefix_indexed_fields": [],
+// "suffix_indexed_fields": [],
+// "nested_fields": false,
+// "dynaprepaid_actionprofile": [],
+// },`
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.APIBanJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadAccounts(t *testing.T) {
+// var replyRld string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
+// Tenant: "cgrates.org",
+// Section: config.AccountSJSON,
+// }, &replyRld); err != nil {
+// t.Error(err)
+// } else if replyRld != utils.OK {
+// t.Errorf("Expected OK received: %+v", replyRld)
+// }
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: `"accounts": {
+// "enabled": false,
+// "indexed_selects": true,
+// "attributes_conns": [],
+// "rates_conns": [],
+// "thresholds_conns": [],
+// //"string_indexed_fields": [],
+// "prefix_indexed_fields": [],
+// "suffix_indexed_fields": [],
+// "nested_fields": false,
+// "max_iterations": 1000,
+// "max_usage": "72h",
+// },`,
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %s", reply)
+// }
+// cfgStr := `"accounts": {
+// "enabled": false,
+// "indexed_selects": true,
+// "attributes_conns": [],
+// "rates_conns": [],
+// "thresholds_conns": [],
+// //"string_indexed_fields": [],
+// "prefix_indexed_fields": [],
+// "suffix_indexed_fields": [],
+// "nested_fields": false,
+// "max_iterations": 1000,
+// "max_usage": "72h",
+// },`
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.AccountSJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectConfigSReloadConfigDB(t *testing.T) {
+// var replyRld string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1ReloadConfig, &config.ReloadArgs{
+// Tenant: "cgrates.org",
+// Section: config.ConfigDBJSON,
+// }, &replyRld); err != nil {
+// t.Error(err)
+// } else if replyRld != utils.OK {
+// t.Errorf("Expected OK received: %+v", replyRld)
+// }
+// var reply string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1SetConfigFromJSON, &config.SetConfigFromJSONArgs{
+// Tenant: "cgrates.org",
+// Config: `"config_db": {
+// "db_type": "*internal",
+// "db_host": "",
+// "db_port": 0,
+// "db_name": "",
+// "db_user": "",
+// "db_password": "",
+// "opts": {
+// "redisSentinel": "",
+// "redisCluster": false,
+// "redisClusterSync": "5s",
+// "redisClusterOndownDelay": "0",
+// "mongoQueryTimeout": "10s",
+// "redisTLS": false, tion
+// "redisClientCertificate": "",
+// "redisClientKey": "",
+// "redisCACertificate": "",
+// }
+// },`,
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Expected OK received: %s", reply)
+// }
+// cfgStr := `"config_db": {
+// "db_type": "*internal",
+// "db_host": "",
+// "db_port": 0,
+// "db_name": "",
+// "db_user": "",
+// "db_password": "",
+// "opts": {
+// "redisSentinel": "",
+// "redisCluster": false,
+// "redisClusterSync": "5s",
+// "redisClusterOndownDelay": "0",
+// "mongoQueryTimeout": "10s",
+// "redisTLS": false, tion
+// "redisClientCertificate": "",
+// "redisClientKey": "",
+// "redisCACertificate": "",
+// }
+// },`
+// var rpl string
+// if err := testSectRPC.Call(context.Background(), utils.ConfigSv1GetConfigAsJSON, &config.SectionWithAPIOpts{
+// Tenant: "cgrates.org",
+// Sections: []string{config.ConfigDBJSON},
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if cfgStr != rpl {
+// t.Errorf("\nExpected %+v ,\n received: %+v", utils.ToIJSON(cfgStr), utils.ToIJSON(rpl))
+// }
+// }
+
+// func testSectStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/attributes_filters_index_it_test.go b/general_tests/attributes_filters_index_it_test.go
index d192b2535..32c5d1e09 100644
--- a/general_tests/attributes_filters_index_it_test.go
+++ b/general_tests/attributes_filters_index_it_test.go
@@ -21,255 +21,255 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "path"
- "reflect"
- "testing"
+// import (
+// "net/rpc"
+// "path"
+// "reflect"
+// "testing"
- "github.com/cgrates/cgrates/apis"
- "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/apis"
+// "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- attrFltrCfgPath string
- attrFltrCfg *config.CGRConfig
- attrFltrRPC *rpc.Client
- alsPrfFltrConfigDIR string
- sTestsAlsFltrPrf = []func(t *testing.T){
- testAttributeFltrSInitCfg,
- testAttributeFltrSInitDataDb,
- testAttributeFltrSResetStorDb,
- testAttributeFltrSStartEngine,
- testAttributeFltrSRPCConn,
+// var (
+// attrFltrCfgPath string
+// attrFltrCfg *config.CGRConfig
+// attrFltrRPC *rpc.Client
+// alsPrfFltrConfigDIR string
+// sTestsAlsFltrPrf = []func(t *testing.T){
+// testAttributeFltrSInitCfg,
+// testAttributeFltrSInitDataDb,
+// testAttributeFltrSResetStorDb,
+// testAttributeFltrSStartEngine,
+// testAttributeFltrSRPCConn,
- testAttributeSetFltr1,
- testAttributeSetProfile,
- testAttributeSetFltr2,
- testAttributeRemoveFltr,
+// testAttributeSetFltr1,
+// testAttributeSetProfile,
+// testAttributeSetFltr2,
+// testAttributeRemoveFltr,
- testAttributeFltrSStopEngine,
- }
-)
+// testAttributeFltrSStopEngine,
+// }
+// )
-func TestAttributeFilterSIT(t *testing.T) {
- switch *dbType {
- case utils.MetaMySQL:
- alsPrfFltrConfigDIR = "attributesindexes_mysql"
- case utils.MetaMongo:
- alsPrfFltrConfigDIR = "attributesindexes_mongo"
- case utils.MetaPostgres, utils.MetaInternal:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sTestsAlsFltrPrf {
- t.Run(alsPrfFltrConfigDIR, stest)
- }
-}
+// func TestAttributeFilterSIT(t *testing.T) {
+// switch *dbType {
+// case utils.MetaMySQL:
+// alsPrfFltrConfigDIR = "attributesindexes_mysql"
+// case utils.MetaMongo:
+// alsPrfFltrConfigDIR = "attributesindexes_mongo"
+// case utils.MetaPostgres, utils.MetaInternal:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sTestsAlsFltrPrf {
+// t.Run(alsPrfFltrConfigDIR, stest)
+// }
+// }
-func testAttributeFltrSInitCfg(t *testing.T) {
- var err error
- attrFltrCfgPath = path.Join(*dataDir, "conf", "samples", alsPrfFltrConfigDIR)
- attrFltrCfg, err = config.NewCGRConfigFromPath(attrFltrCfgPath)
- if err != nil {
- t.Error(err)
- }
-}
+// func testAttributeFltrSInitCfg(t *testing.T) {
+// var err error
+// attrFltrCfgPath = path.Join(*dataDir, "conf", "samples", alsPrfFltrConfigDIR)
+// attrFltrCfg, err = config.NewCGRConfigFromPath(attrFltrCfgPath)
+// if err != nil {
+// t.Error(err)
+// }
+// }
-func testAttributeFltrSInitDataDb(t *testing.T) {
- if err := engine.InitDataDB(attrFltrCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testAttributeFltrSInitDataDb(t *testing.T) {
+// if err := engine.InitDataDB(attrFltrCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Wipe out the cdr database
-func testAttributeFltrSResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(attrFltrCfg); err != nil {
- t.Fatal(err)
- }
-}
+// // Wipe out the cdr database
+// func testAttributeFltrSResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(attrFltrCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Start CGR Engine
-func testAttributeFltrSStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(attrFltrCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// // Start CGR Engine
+// func testAttributeFltrSStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(attrFltrCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Connect rpc client to rater
-func testAttributeFltrSRPCConn(t *testing.T) {
- var err error
- attrFltrRPC, err = newRPCClient(attrFltrCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal(err)
- }
-}
+// // Connect rpc client to rater
+// func testAttributeFltrSRPCConn(t *testing.T) {
+// var err error
+// attrFltrRPC, err = newRPCClient(attrFltrCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testAttributeSetFltr1(t *testing.T) {
- filter := &engine.FilterWithAPIOpts{
- Filter: &engine.Filter{
- Tenant: "cgrates.org",
- ID: "FLTR_1",
- Rules: []*engine.FilterRule{{
- Element: "~*req.Subject",
- Type: "*prefix",
- Values: []string{"48"},
- }},
- },
- }
- var result string
- if err := attrFltrRPC.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
+// func testAttributeSetFltr1(t *testing.T) {
+// filter := &engine.FilterWithAPIOpts{
+// Filter: &engine.Filter{
+// Tenant: "cgrates.org",
+// ID: "FLTR_1",
+// Rules: []*engine.FilterRule{{
+// Element: "~*req.Subject",
+// Type: "*prefix",
+// Values: []string{"48"},
+// }},
+// },
+// }
+// var result string
+// if err := attrFltrRPC.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
- var indexes []string
- if err := attrFltrRPC.Call(utils.AdminSv1GetFilterIndexes, &apis.AttrGetFilterIndexes{
- ItemType: utils.MetaAttributes, Tenant: "cgrates.org", FilterType: utils.MetaPrefix},
- &indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
-}
+// var indexes []string
+// if err := attrFltrRPC.Call(utils.AdminSv1GetFilterIndexes, &apis.AttrGetFilterIndexes{
+// ItemType: utils.MetaAttributes, Tenant: "cgrates.org", FilterType: utils.MetaPrefix},
+// &indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// }
-func testAttributeSetProfile(t *testing.T) {
- var result string
- alsPrf := &engine.APIAttributeProfileWithAPIOpts{
- APIAttributeProfile: &engine.APIAttributeProfile{
- Tenant: "cgrates.org",
- ID: "ApierTest",
- FilterIDs: []string{"FLTR_1"},
- Attributes: []*engine.ExternalAttribute{{
- Path: "*req.FL1",
- Value: "Al1",
- }},
- Weight: 20,
- },
- }
- if err := attrFltrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
+// func testAttributeSetProfile(t *testing.T) {
+// var result string
+// alsPrf := &engine.APIAttributeProfileWithAPIOpts{
+// APIAttributeProfile: &engine.APIAttributeProfile{
+// Tenant: "cgrates.org",
+// ID: "ApierTest",
+// FilterIDs: []string{"FLTR_1"},
+// Attributes: []*engine.ExternalAttribute{{
+// Path: "*req.FL1",
+// Value: "Al1",
+// }},
+// Weight: 20,
+// },
+// }
+// if err := attrFltrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
- ev := &utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- "Subject": "44",
- },
- APIOpts: map[string]interface{}{},
- }
- var rplyEv engine.AttrSProcessEventReply
- if err := attrFltrRPC.Call(utils.AttributeSv1ProcessEvent,
- ev, &rplyEv); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Errorf("Expected %+v, received %+v", utils.ErrNotFound, err)
- }
+// ev := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// "Subject": "44",
+// },
+// APIOpts: map[string]interface{}{},
+// }
+// var rplyEv engine.AttrSProcessEventReply
+// if err := attrFltrRPC.Call(utils.AttributeSv1ProcessEvent,
+// ev, &rplyEv); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Errorf("Expected %+v, received %+v", utils.ErrNotFound, err)
+// }
- var indexes []string
- expIdx := []string{
- "*prefix:*req.Subject:48:ApierTest",
- }
- if err := attrFltrRPC.Call(utils.AdminSv1GetFilterIndexes, &apis.AttrGetFilterIndexes{
- ItemType: utils.MetaAttributes, Tenant: "cgrates.org", FilterType: utils.MetaPrefix},
- &indexes); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(indexes, expIdx) {
- t.Errorf("Expecting: %+v, received: %+v",
- utils.ToJSON(expIdx), utils.ToJSON(indexes))
- }
-}
+// var indexes []string
+// expIdx := []string{
+// "*prefix:*req.Subject:48:ApierTest",
+// }
+// if err := attrFltrRPC.Call(utils.AdminSv1GetFilterIndexes, &apis.AttrGetFilterIndexes{
+// ItemType: utils.MetaAttributes, Tenant: "cgrates.org", FilterType: utils.MetaPrefix},
+// &indexes); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(indexes, expIdx) {
+// t.Errorf("Expecting: %+v, received: %+v",
+// utils.ToJSON(expIdx), utils.ToJSON(indexes))
+// }
+// }
-func testAttributeSetFltr2(t *testing.T) {
- var result string
- filter := &engine.FilterWithAPIOpts{
- Filter: &engine.Filter{
- Tenant: "cgrates.org",
- ID: "FLTR_1",
- Rules: []*engine.FilterRule{{
- Element: "~*req.Subject",
- Type: "*prefix",
- Values: []string{"44"},
- }},
- },
- }
- if err := attrFltrRPC.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
+// func testAttributeSetFltr2(t *testing.T) {
+// var result string
+// filter := &engine.FilterWithAPIOpts{
+// Filter: &engine.Filter{
+// Tenant: "cgrates.org",
+// ID: "FLTR_1",
+// Rules: []*engine.FilterRule{{
+// Element: "~*req.Subject",
+// Type: "*prefix",
+// Values: []string{"44"},
+// }},
+// },
+// }
+// if err := attrFltrRPC.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
- //same event for process
- ev := &utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- "Subject": "4444",
- },
- APIOpts: map[string]interface{}{},
- }
- exp := engine.AttrSProcessEventReply{
- MatchedProfiles: []string{"cgrates.org:ApierTest"},
- AlteredFields: []string{"*req.FL1"},
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- "Subject": "4444",
- "FL1": "Al1",
- },
- APIOpts: map[string]interface{}{},
- },
- }
- var rplyEv engine.AttrSProcessEventReply
- if err := attrFltrRPC.Call(utils.AttributeSv1ProcessEvent,
- ev, &rplyEv); err != nil {
- t.Fatal(err)
- } else if !reflect.DeepEqual(exp, rplyEv) {
- t.Errorf("Expected %s, received %s", utils.ToJSON(exp), utils.ToJSON(rplyEv))
- }
+// //same event for process
+// ev := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// "Subject": "4444",
+// },
+// APIOpts: map[string]interface{}{},
+// }
+// exp := engine.AttrSProcessEventReply{
+// MatchedProfiles: []string{"cgrates.org:ApierTest"},
+// AlteredFields: []string{"*req.FL1"},
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// "Subject": "4444",
+// "FL1": "Al1",
+// },
+// APIOpts: map[string]interface{}{},
+// },
+// }
+// var rplyEv engine.AttrSProcessEventReply
+// if err := attrFltrRPC.Call(utils.AttributeSv1ProcessEvent,
+// ev, &rplyEv); err != nil {
+// t.Fatal(err)
+// } else if !reflect.DeepEqual(exp, rplyEv) {
+// t.Errorf("Expected %s, received %s", utils.ToJSON(exp), utils.ToJSON(rplyEv))
+// }
- var indexes []string
- expIdx := []string{
- "*prefix:*req.Subject:44:ApierTest",
- }
- if err := attrFltrRPC.Call(utils.AdminSv1GetFilterIndexes, &apis.AttrGetFilterIndexes{
- ItemType: utils.MetaAttributes, Tenant: "cgrates.org", FilterType: utils.MetaPrefix},
- &indexes); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(indexes, expIdx) {
- t.Errorf("Expecting: %+v, received: %+v",
- utils.ToJSON(expIdx), utils.ToJSON(indexes))
- }
-}
+// var indexes []string
+// expIdx := []string{
+// "*prefix:*req.Subject:44:ApierTest",
+// }
+// if err := attrFltrRPC.Call(utils.AdminSv1GetFilterIndexes, &apis.AttrGetFilterIndexes{
+// ItemType: utils.MetaAttributes, Tenant: "cgrates.org", FilterType: utils.MetaPrefix},
+// &indexes); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(indexes, expIdx) {
+// t.Errorf("Expecting: %+v, received: %+v",
+// utils.ToJSON(expIdx), utils.ToJSON(indexes))
+// }
+// }
-func testAttributeRemoveFltr(t *testing.T) {
- var result string
- if err := attrFltrRPC.Call(utils.AdminSv1RemoveAttributeProfile, &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
+// func testAttributeRemoveFltr(t *testing.T) {
+// var result string
+// if err := attrFltrRPC.Call(utils.AdminSv1RemoveAttributeProfile, &utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
- if err := attrFltrRPC.Call(utils.AdminSv1RemoveFilter, &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_1"}}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
+// if err := attrFltrRPC.Call(utils.AdminSv1RemoveFilter, &utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_1"}}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
- var indexes []string
- if err := attrFltrRPC.Call(utils.AdminSv1GetFilterIndexes, &apis.AttrGetFilterIndexes{
- ItemType: utils.MetaAttributes, Tenant: "cgrates.org", FilterType: utils.MetaPrefix},
- &indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
-}
+// var indexes []string
+// if err := attrFltrRPC.Call(utils.AdminSv1GetFilterIndexes, &apis.AttrGetFilterIndexes{
+// ItemType: utils.MetaAttributes, Tenant: "cgrates.org", FilterType: utils.MetaPrefix},
+// &indexes); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// }
-func testAttributeFltrSStopEngine(t *testing.T) {
- if err := engine.KillEngine(*waitRater); err != nil {
- t.Error(err)
- }
-}
+// func testAttributeFltrSStopEngine(t *testing.T) {
+// if err := engine.KillEngine(*waitRater); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/attributes_it_test.go b/general_tests/attributes_it_test.go
index 7ef54cc4f..3c5155a6c 100644
--- a/general_tests/attributes_it_test.go
+++ b/general_tests/attributes_it_test.go
@@ -20,979 +20,979 @@ along with this program. If not, see
*/
package general_tests
-import (
- "net/rpc"
- "path"
- "reflect"
- "sort"
- "strings"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "reflect"
+// "sort"
+// "strings"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- attrCfgPath string
- attrCfg *config.CGRConfig
- attrRPC *rpc.Client
- alsPrfConfigDIR string
- sTestsAlsPrf = []func(t *testing.T){
- testAttributeSInitCfg,
- testAttributeSInitDataDb,
- testAttributeSResetStorDb,
- testAttributeSStartEngine,
- testAttributeSRPCConn,
- testAttributeSLoadFromFolder,
- testAttributeSProcessEvent,
- testAttributeSProcessEventWithAccount,
- testAttributeSProcessEventWithAccountFull,
- testAttributeSProcessEventWithStat,
- testAttributeSProcessEventWithStatFull,
- testAttributeSProcessEventWithResource,
- testAttributeSProcessEventWithResourceFull,
- testAttributeSProcessEventWithLibPhoneNumber,
- testAttributeSProcessEventWithLibPhoneNumberComposed,
- testAttributeSProcessEventWithLibPhoneNumberFull,
- testAttributeSStopEngine,
- }
-)
+// var (
+// attrCfgPath string
+// attrCfg *config.CGRConfig
+// attrRPC *rpc.Client
+// alsPrfConfigDIR string
+// sTestsAlsPrf = []func(t *testing.T){
+// testAttributeSInitCfg,
+// testAttributeSInitDataDb,
+// testAttributeSResetStorDb,
+// testAttributeSStartEngine,
+// testAttributeSRPCConn,
+// testAttributeSLoadFromFolder,
+// testAttributeSProcessEvent,
+// testAttributeSProcessEventWithAccount,
+// testAttributeSProcessEventWithAccountFull,
+// testAttributeSProcessEventWithStat,
+// testAttributeSProcessEventWithStatFull,
+// testAttributeSProcessEventWithResource,
+// testAttributeSProcessEventWithResourceFull,
+// testAttributeSProcessEventWithLibPhoneNumber,
+// testAttributeSProcessEventWithLibPhoneNumberComposed,
+// testAttributeSProcessEventWithLibPhoneNumberFull,
+// testAttributeSStopEngine,
+// }
+// )
-func TestAttributeSIT(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- alsPrfConfigDIR = "tutinternal"
- case utils.MetaMySQL:
- alsPrfConfigDIR = "tutmysql"
- case utils.MetaMongo:
- alsPrfConfigDIR = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sTestsAlsPrf {
- t.Run(alsPrfConfigDIR, stest)
- }
-}
+// func TestAttributeSIT(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// alsPrfConfigDIR = "tutinternal"
+// case utils.MetaMySQL:
+// alsPrfConfigDIR = "tutmysql"
+// case utils.MetaMongo:
+// alsPrfConfigDIR = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sTestsAlsPrf {
+// t.Run(alsPrfConfigDIR, stest)
+// }
+// }
-func testAttributeSInitCfg(t *testing.T) {
- var err error
- attrCfgPath = path.Join(*dataDir, "conf", "samples", alsPrfConfigDIR)
- attrCfg, err = config.NewCGRConfigFromPath(attrCfgPath)
- if err != nil {
- t.Error(err)
- }
- attrCfg.DataFolderPath = *dataDir // Share DataFolderPath through config towards StoreDb for Flush()
-}
+// func testAttributeSInitCfg(t *testing.T) {
+// var err error
+// attrCfgPath = path.Join(*dataDir, "conf", "samples", alsPrfConfigDIR)
+// attrCfg, err = config.NewCGRConfigFromPath(attrCfgPath)
+// if err != nil {
+// t.Error(err)
+// }
+// attrCfg.DataFolderPath = *dataDir // Share DataFolderPath through config towards StoreDb for Flush()
+// }
-func testAttributeSInitDataDb(t *testing.T) {
- if err := engine.InitDataDB(attrCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testAttributeSInitDataDb(t *testing.T) {
+// if err := engine.InitDataDB(attrCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Wipe out the cdr database
-func testAttributeSResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(attrCfg); err != nil {
- t.Fatal(err)
- }
-}
+// // Wipe out the cdr database
+// func testAttributeSResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(attrCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Start CGR Engine
-func testAttributeSStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(attrCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// // Start CGR Engine
+// func testAttributeSStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(attrCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Connect rpc client to rater
-func testAttributeSRPCConn(t *testing.T) {
- var err error
- attrRPC, err = newRPCClient(attrCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal(err)
- }
-}
+// // Connect rpc client to rater
+// func testAttributeSRPCConn(t *testing.T) {
+// var err error
+// attrRPC, err = newRPCClient(attrCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testAttributeSLoadFromFolder(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := attrRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- }
- time.Sleep(200 * time.Millisecond)
-}
+// func testAttributeSLoadFromFolder(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
+// if err := attrRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(200 * time.Millisecond)
+// }
-func testAttributeSProcessEvent(t *testing.T) {
- ev := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEvent",
- Event: map[string]interface{}{
- utils.EventName: "VariableTest",
- utils.ToR: utils.MetaVoice,
- },
- APIOpts: map[string]interface{}{
- utils.OptsContext: utils.MetaSessionS,
- },
- }
- eRply := engine.AttrSProcessEventReply{
- MatchedProfiles: []string{"cgrates.org:ATTR_VARIABLE"},
- AlteredFields: []string{utils.MetaReq + utils.NestingSep + utils.Category},
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEvent",
- Event: map[string]interface{}{
- utils.EventName: "VariableTest",
- utils.Category: utils.MetaVoice,
- utils.ToR: utils.MetaVoice,
- },
- APIOpts: map[string]interface{}{},
- },
- }
- sort.Strings(eRply.AlteredFields)
- var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
- ev, &rplyEv); err != nil {
- t.Fatal(err)
- }
- sort.Strings(rplyEv.AlteredFields)
- if !reflect.DeepEqual(eRply, rplyEv) {
- t.Errorf("Expecting: %s, received: %s",
- utils.ToJSON(eRply), utils.ToJSON(rplyEv))
- }
-}
+// func testAttributeSProcessEvent(t *testing.T) {
+// ev := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEvent",
+// Event: map[string]interface{}{
+// utils.EventName: "VariableTest",
+// utils.ToR: utils.MetaVoice,
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsContext: utils.MetaSessionS,
+// },
+// }
+// eRply := engine.AttrSProcessEventReply{
+// MatchedProfiles: []string{"cgrates.org:ATTR_VARIABLE"},
+// AlteredFields: []string{utils.MetaReq + utils.NestingSep + utils.Category},
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEvent",
+// Event: map[string]interface{}{
+// utils.EventName: "VariableTest",
+// utils.Category: utils.MetaVoice,
+// utils.ToR: utils.MetaVoice,
+// },
+// APIOpts: map[string]interface{}{},
+// },
+// }
+// sort.Strings(eRply.AlteredFields)
+// var rplyEv engine.AttrSProcessEventReply
+// if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+// ev, &rplyEv); err != nil {
+// t.Fatal(err)
+// }
+// sort.Strings(rplyEv.AlteredFields)
+// if !reflect.DeepEqual(eRply, rplyEv) {
+// t.Errorf("Expecting: %s, received: %s",
+// utils.ToJSON(eRply), utils.ToJSON(rplyEv))
+// }
+// }
-func testAttributeSProcessEventWithAccount(t *testing.T) {
- // add new attribute profile
- var result string
- alsPrf := &engine.AttributeProfileWithAPIOpts{
- AttributeProfile: &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: "ATTR_ACCOUNT",
- FilterIDs: []string{"*string:~*req.EventName:AddAccountInfo", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
- Attributes: []*engine.Attribute{
- {
- Path: utils.MetaReq + utils.NestingSep + "Balance",
- Type: utils.MetaVariable,
- Value: config.RSRParsers{
- &config.RSRParser{
- Rules: "~*accounts.1001.BalanceMap.*monetary[0].Value",
- },
- },
- },
- },
- Blocker: false,
- Weight: 10,
- },
- }
- alsPrf.Compile()
- if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_ACCOUNT"}}, &replyAttr); err != nil {
- t.Fatal(err)
- }
- replyAttr.Compile()
- if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
- t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
- }
+// func testAttributeSProcessEventWithAccount(t *testing.T) {
+// // add new attribute profile
+// var result string
+// alsPrf := &engine.AttributeProfileWithAPIOpts{
+// AttributeProfile: &engine.AttributeProfile{
+// Tenant: "cgrates.org",
+// ID: "ATTR_ACCOUNT",
+// FilterIDs: []string{"*string:~*req.EventName:AddAccountInfo", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
+// Attributes: []*engine.Attribute{
+// {
+// Path: utils.MetaReq + utils.NestingSep + "Balance",
+// Type: utils.MetaVariable,
+// Value: config.RSRParsers{
+// &config.RSRParser{
+// Rules: "~*accounts.1001.BalanceMap.*monetary[0].Value",
+// },
+// },
+// },
+// },
+// Blocker: false,
+// Weight: 10,
+// },
+// }
+// alsPrf.Compile()
+// if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// var replyAttr *engine.AttributeProfile
+// if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_ACCOUNT"}}, &replyAttr); err != nil {
+// t.Fatal(err)
+// }
+// replyAttr.Compile()
+// if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
+// t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
+// }
- ev := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithAccount",
- Event: map[string]interface{}{
- "EventName": "AddAccountInfo",
- },
- APIOpts: map[string]interface{}{
- utils.OptsContext: utils.MetaSessionS,
- },
- }
+// ev := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithAccount",
+// Event: map[string]interface{}{
+// "EventName": "AddAccountInfo",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsContext: utils.MetaSessionS,
+// },
+// }
- eRply := engine.AttrSProcessEventReply{
- MatchedProfiles: []string{"cgrates.org:ATTR_ACCOUNT"},
- AlteredFields: []string{utils.MetaReq + utils.NestingSep + "Balance"},
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithAccount",
- Event: map[string]interface{}{
- "EventName": "AddAccountInfo",
- "Balance": "10",
- },
- APIOpts: map[string]interface{}{},
- },
- }
- sort.Strings(eRply.AlteredFields)
- var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
- ev, &rplyEv); err != nil {
- t.Fatal(err)
- }
- sort.Strings(rplyEv.AlteredFields)
- if !reflect.DeepEqual(eRply, rplyEv) {
- t.Errorf("Expecting: %s, received: %s",
- utils.ToJSON(eRply), utils.ToJSON(rplyEv))
- }
-}
+// eRply := engine.AttrSProcessEventReply{
+// MatchedProfiles: []string{"cgrates.org:ATTR_ACCOUNT"},
+// AlteredFields: []string{utils.MetaReq + utils.NestingSep + "Balance"},
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithAccount",
+// Event: map[string]interface{}{
+// "EventName": "AddAccountInfo",
+// "Balance": "10",
+// },
+// APIOpts: map[string]interface{}{},
+// },
+// }
+// sort.Strings(eRply.AlteredFields)
+// var rplyEv engine.AttrSProcessEventReply
+// if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+// ev, &rplyEv); err != nil {
+// t.Fatal(err)
+// }
+// sort.Strings(rplyEv.AlteredFields)
+// if !reflect.DeepEqual(eRply, rplyEv) {
+// t.Errorf("Expecting: %s, received: %s",
+// utils.ToJSON(eRply), utils.ToJSON(rplyEv))
+// }
+// }
-func testAttributeSProcessEventWithAccountFull(t *testing.T) {
- // add new attribute profile
- var result string
- alsPrf := &engine.AttributeProfileWithAPIOpts{
- AttributeProfile: &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: "ATTR_ACCOUNT2",
- FilterIDs: []string{"*string:~*req.EventName:AddFullAccount", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
- Attributes: []*engine.Attribute{
- {
- Path: utils.MetaReq + utils.NestingSep + "FullAccount",
- Type: utils.MetaVariable,
- Value: config.RSRParsers{
- &config.RSRParser{
- Rules: "~*accounts.1001",
- },
- },
- },
- },
- Blocker: false,
- Weight: 10,
- },
- }
- alsPrf.Compile()
- if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_ACCOUNT2"}}, &replyAttr); err != nil {
- t.Fatal(err)
- }
- replyAttr.Compile()
- if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
- t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
- }
+// func testAttributeSProcessEventWithAccountFull(t *testing.T) {
+// // add new attribute profile
+// var result string
+// alsPrf := &engine.AttributeProfileWithAPIOpts{
+// AttributeProfile: &engine.AttributeProfile{
+// Tenant: "cgrates.org",
+// ID: "ATTR_ACCOUNT2",
+// FilterIDs: []string{"*string:~*req.EventName:AddFullAccount", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
+// Attributes: []*engine.Attribute{
+// {
+// Path: utils.MetaReq + utils.NestingSep + "FullAccount",
+// Type: utils.MetaVariable,
+// Value: config.RSRParsers{
+// &config.RSRParser{
+// Rules: "~*accounts.1001",
+// },
+// },
+// },
+// },
+// Blocker: false,
+// Weight: 10,
+// },
+// }
+// alsPrf.Compile()
+// if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// var replyAttr *engine.AttributeProfile
+// if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_ACCOUNT2"}}, &replyAttr); err != nil {
+// t.Fatal(err)
+// }
+// replyAttr.Compile()
+// if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
+// t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
+// }
- ev := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithAccount2",
- Event: map[string]interface{}{
- "EventName": "AddFullAccount",
- },
- APIOpts: map[string]interface{}{
- utils.OptsContext: utils.MetaSessionS,
- },
- }
+// ev := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithAccount2",
+// Event: map[string]interface{}{
+// "EventName": "AddFullAccount",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsContext: utils.MetaSessionS,
+// },
+// }
- eRply := engine.AttrSProcessEventReply{
- MatchedProfiles: []string{"cgrates.org:ATTR_ACCOUNT2"},
- AlteredFields: []string{utils.MetaReq + utils.NestingSep + "FullAccount"},
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithAccount2",
- Event: map[string]interface{}{
- "EventName": "AddFullAccount",
- "FullAccount": "{\"ID\":\"cgrates.org:1001\",\"BalanceMap\":{\"*monetary\":[{\"Uuid\":\"18160631-a4ae-4078-8048-b4c6b87a36c6\",\"ID\":\"\",\"Value\":10,\"ExpirationDate\":\"0001-01-01T00:00:00Z\",\"Weight\":10,\"DestinationIDs\":{},\"RatingSubject\":\"\",\"Categories\":{},\"SharedGroups\":{},\"Disabled\":false,\"Factor\":null,\"Blocker\":false}]},\"UnitCounters\":null,\"ActionTriggers\":null,\"AllowNegative\":false,\"Disabled\":false,\"UpdateTime\":\"2020-10-06T12:43:51.805Z\"}",
- },
- APIOpts: map[string]interface{}{},
- },
- }
- sort.Strings(eRply.AlteredFields)
- var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
- ev, &rplyEv); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(rplyEv.MatchedProfiles, eRply.MatchedProfiles) {
- t.Errorf("Expecting: %s, received: %s",
- utils.ToJSON(eRply.MatchedProfiles), utils.ToJSON(rplyEv.MatchedProfiles))
- } else if !reflect.DeepEqual(rplyEv.AlteredFields, eRply.AlteredFields) {
- t.Errorf("Expecting: %s, received: %s",
- utils.ToJSON(eRply.AlteredFields), utils.ToJSON(rplyEv.AlteredFields))
- }
- // some fields are generated(e.g. BalanceID) and compare only some part of the string
- strAcc := utils.IfaceAsString(rplyEv.CGREvent.Event["FullAccount"])
- if !strings.Contains(strAcc, "\"ID\":\"cgrates.org:1001\"") {
- t.Errorf("Expecting: %s, received: %s",
- "\"ID\":\"cgrates.org:1001\"", strAcc)
- } else if !strings.Contains(strAcc, "\"UnitCounters\":null,\"ActionTriggers\":null,\"AllowNegative\":false,\"Disabled\":false") {
- t.Errorf("Expecting: %s, received: %s",
- "\"UnitCounters\":null,\"ActionTriggers\":null,\"AllowNegative\":false,\"Disabled\":false", strAcc)
- }
-}
+// eRply := engine.AttrSProcessEventReply{
+// MatchedProfiles: []string{"cgrates.org:ATTR_ACCOUNT2"},
+// AlteredFields: []string{utils.MetaReq + utils.NestingSep + "FullAccount"},
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithAccount2",
+// Event: map[string]interface{}{
+// "EventName": "AddFullAccount",
+// "FullAccount": "{\"ID\":\"cgrates.org:1001\",\"BalanceMap\":{\"*monetary\":[{\"Uuid\":\"18160631-a4ae-4078-8048-b4c6b87a36c6\",\"ID\":\"\",\"Value\":10,\"ExpirationDate\":\"0001-01-01T00:00:00Z\",\"Weight\":10,\"DestinationIDs\":{},\"RatingSubject\":\"\",\"Categories\":{},\"SharedGroups\":{},\"Disabled\":false,\"Factor\":null,\"Blocker\":false}]},\"UnitCounters\":null,\"ActionTriggers\":null,\"AllowNegative\":false,\"Disabled\":false,\"UpdateTime\":\"2020-10-06T12:43:51.805Z\"}",
+// },
+// APIOpts: map[string]interface{}{},
+// },
+// }
+// sort.Strings(eRply.AlteredFields)
+// var rplyEv engine.AttrSProcessEventReply
+// if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+// ev, &rplyEv); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(rplyEv.MatchedProfiles, eRply.MatchedProfiles) {
+// t.Errorf("Expecting: %s, received: %s",
+// utils.ToJSON(eRply.MatchedProfiles), utils.ToJSON(rplyEv.MatchedProfiles))
+// } else if !reflect.DeepEqual(rplyEv.AlteredFields, eRply.AlteredFields) {
+// t.Errorf("Expecting: %s, received: %s",
+// utils.ToJSON(eRply.AlteredFields), utils.ToJSON(rplyEv.AlteredFields))
+// }
+// // some fields are generated(e.g. BalanceID) and compare only some part of the string
+// strAcc := utils.IfaceAsString(rplyEv.CGREvent.Event["FullAccount"])
+// if !strings.Contains(strAcc, "\"ID\":\"cgrates.org:1001\"") {
+// t.Errorf("Expecting: %s, received: %s",
+// "\"ID\":\"cgrates.org:1001\"", strAcc)
+// } else if !strings.Contains(strAcc, "\"UnitCounters\":null,\"ActionTriggers\":null,\"AllowNegative\":false,\"Disabled\":false") {
+// t.Errorf("Expecting: %s, received: %s",
+// "\"UnitCounters\":null,\"ActionTriggers\":null,\"AllowNegative\":false,\"Disabled\":false", strAcc)
+// }
+// }
-func testAttributeSProcessEventWithStat(t *testing.T) {
- // simulate some stat event
- var reply []string
- expected := []string{"Stat_1"}
- ev1 := &engine.StatsArgsProcessEvent{
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event1",
- Event: map[string]interface{}{
- utils.AccountField: "1001",
- utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
- utils.Usage: 11 * time.Second,
- utils.Cost: 10.0,
- },
- },
- }
- if err := attrRPC.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, expected) {
- t.Errorf("Expecting: %+v, received: %+v", expected, reply)
- }
+// func testAttributeSProcessEventWithStat(t *testing.T) {
+// // simulate some stat event
+// var reply []string
+// expected := []string{"Stat_1"}
+// ev1 := &engine.StatsArgsProcessEvent{
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event1",
+// Event: map[string]interface{}{
+// utils.AccountField: "1001",
+// utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
+// utils.Usage: 11 * time.Second,
+// utils.Cost: 10.0,
+// },
+// },
+// }
+// if err := attrRPC.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, expected) {
+// t.Errorf("Expecting: %+v, received: %+v", expected, reply)
+// }
- expected = []string{"Stat_1"}
- ev1.CGREvent = &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event2",
- Event: map[string]interface{}{
- utils.AccountField: "1001",
- utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
- utils.Usage: 11 * time.Second,
- utils.Cost: 10.5,
- },
- }
- if err := attrRPC.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, expected) {
- t.Errorf("Expecting: %+v, received: %+v", expected, reply)
- }
+// expected = []string{"Stat_1"}
+// ev1.CGREvent = &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event2",
+// Event: map[string]interface{}{
+// utils.AccountField: "1001",
+// utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
+// utils.Usage: 11 * time.Second,
+// utils.Cost: 10.5,
+// },
+// }
+// if err := attrRPC.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, expected) {
+// t.Errorf("Expecting: %+v, received: %+v", expected, reply)
+// }
- // add new attribute profile
- alsPrf := &engine.AttributeProfileWithAPIOpts{
- AttributeProfile: &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: "ATTR_STATS",
- FilterIDs: []string{"*string:~*req.EventName:AddStatEvent", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
- Attributes: []*engine.Attribute{
- {
- Path: utils.MetaReq + utils.NestingSep + "AcdMetric",
- Type: utils.MetaVariable,
- Value: config.RSRParsers{
- &config.RSRParser{
- Rules: "~*stats.Stat_1.*acd",
- },
- },
- },
- },
- Blocker: false,
- Weight: 10,
- },
- }
- alsPrf.Compile()
- var result string
- if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_STATS"}}, &replyAttr); err != nil {
- t.Fatal(err)
- }
- replyAttr.Compile()
- if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
- t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
- }
+// // add new attribute profile
+// alsPrf := &engine.AttributeProfileWithAPIOpts{
+// AttributeProfile: &engine.AttributeProfile{
+// Tenant: "cgrates.org",
+// ID: "ATTR_STATS",
+// FilterIDs: []string{"*string:~*req.EventName:AddStatEvent", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
+// Attributes: []*engine.Attribute{
+// {
+// Path: utils.MetaReq + utils.NestingSep + "AcdMetric",
+// Type: utils.MetaVariable,
+// Value: config.RSRParsers{
+// &config.RSRParser{
+// Rules: "~*stats.Stat_1.*acd",
+// },
+// },
+// },
+// },
+// Blocker: false,
+// Weight: 10,
+// },
+// }
+// alsPrf.Compile()
+// var result string
+// if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// var replyAttr *engine.AttributeProfile
+// if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_STATS"}}, &replyAttr); err != nil {
+// t.Fatal(err)
+// }
+// replyAttr.Compile()
+// if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
+// t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
+// }
- ev := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithStat",
- Event: map[string]interface{}{
- "EventName": "AddStatEvent",
- },
- APIOpts: map[string]interface{}{
- utils.OptsContext: utils.MetaSessionS,
- },
- }
+// ev := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithStat",
+// Event: map[string]interface{}{
+// "EventName": "AddStatEvent",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsContext: utils.MetaSessionS,
+// },
+// }
- eRply := engine.AttrSProcessEventReply{
- MatchedProfiles: []string{"cgrates.org:ATTR_STATS"},
- AlteredFields: []string{utils.MetaReq + utils.NestingSep + "AcdMetric"},
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithStat",
- Event: map[string]interface{}{
- "EventName": "AddStatEvent",
- "AcdMetric": "11000000000",
- },
- APIOpts: map[string]interface{}{},
- },
- }
- sort.Strings(eRply.AlteredFields)
- var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
- ev, &rplyEv); err != nil {
- t.Fatal(err)
- }
- sort.Strings(rplyEv.AlteredFields)
- if !reflect.DeepEqual(eRply, rplyEv) {
- t.Errorf("Expecting: %s, received: %s",
- utils.ToJSON(eRply), utils.ToJSON(rplyEv))
- }
-}
+// eRply := engine.AttrSProcessEventReply{
+// MatchedProfiles: []string{"cgrates.org:ATTR_STATS"},
+// AlteredFields: []string{utils.MetaReq + utils.NestingSep + "AcdMetric"},
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithStat",
+// Event: map[string]interface{}{
+// "EventName": "AddStatEvent",
+// "AcdMetric": "11000000000",
+// },
+// APIOpts: map[string]interface{}{},
+// },
+// }
+// sort.Strings(eRply.AlteredFields)
+// var rplyEv engine.AttrSProcessEventReply
+// if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+// ev, &rplyEv); err != nil {
+// t.Fatal(err)
+// }
+// sort.Strings(rplyEv.AlteredFields)
+// if !reflect.DeepEqual(eRply, rplyEv) {
+// t.Errorf("Expecting: %s, received: %s",
+// utils.ToJSON(eRply), utils.ToJSON(rplyEv))
+// }
+// }
-func testAttributeSProcessEventWithStatFull(t *testing.T) {
- // add new attribute profile
- alsPrf := &engine.AttributeProfileWithAPIOpts{
- AttributeProfile: &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: "ATTR_STATS2",
- FilterIDs: []string{"*string:~*req.EventName:AddFullStats", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
- Attributes: []*engine.Attribute{
- {
- Path: utils.MetaReq + utils.NestingSep + "AllMetrics",
- Type: utils.MetaVariable,
- Value: config.RSRParsers{
- &config.RSRParser{
- Rules: "~*stats.Stat_1",
- },
- },
- },
- },
- Blocker: false,
- Weight: 10,
- },
- }
- alsPrf.Compile()
- var result string
- if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_STATS2"}}, &replyAttr); err != nil {
- t.Fatal(err)
- }
- replyAttr.Compile()
- if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
- t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
- }
+// func testAttributeSProcessEventWithStatFull(t *testing.T) {
+// // add new attribute profile
+// alsPrf := &engine.AttributeProfileWithAPIOpts{
+// AttributeProfile: &engine.AttributeProfile{
+// Tenant: "cgrates.org",
+// ID: "ATTR_STATS2",
+// FilterIDs: []string{"*string:~*req.EventName:AddFullStats", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
+// Attributes: []*engine.Attribute{
+// {
+// Path: utils.MetaReq + utils.NestingSep + "AllMetrics",
+// Type: utils.MetaVariable,
+// Value: config.RSRParsers{
+// &config.RSRParser{
+// Rules: "~*stats.Stat_1",
+// },
+// },
+// },
+// },
+// Blocker: false,
+// Weight: 10,
+// },
+// }
+// alsPrf.Compile()
+// var result string
+// if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// var replyAttr *engine.AttributeProfile
+// if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_STATS2"}}, &replyAttr); err != nil {
+// t.Fatal(err)
+// }
+// replyAttr.Compile()
+// if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
+// t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
+// }
- ev := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithStat",
- Event: map[string]interface{}{
- "EventName": "AddFullStats",
- },
- APIOpts: map[string]interface{}{
- utils.OptsContext: utils.MetaSessionS,
- },
- }
+// ev := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithStat",
+// Event: map[string]interface{}{
+// "EventName": "AddFullStats",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsContext: utils.MetaSessionS,
+// },
+// }
- eRply := engine.AttrSProcessEventReply{
- MatchedProfiles: []string{"cgrates.org:ATTR_STATS2"},
- AlteredFields: []string{utils.MetaReq + utils.NestingSep + "AllMetrics"},
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithStat",
- Event: map[string]interface{}{
- "EventName": "AddFullStats",
- "AllMetrics": "{\"*acd\":11000000000,\"*asr\":100,\"*tcd\":22000000000}",
- },
- APIOpts: map[string]interface{}{},
- },
- }
- sort.Strings(eRply.AlteredFields)
- var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
- ev, &rplyEv); err != nil {
- t.Fatal(err)
- }
- sort.Strings(rplyEv.AlteredFields)
- if !reflect.DeepEqual(eRply, rplyEv) {
- t.Errorf("Expecting: %s, received: %s",
- utils.ToJSON(eRply), utils.ToJSON(rplyEv))
- }
-}
+// eRply := engine.AttrSProcessEventReply{
+// MatchedProfiles: []string{"cgrates.org:ATTR_STATS2"},
+// AlteredFields: []string{utils.MetaReq + utils.NestingSep + "AllMetrics"},
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithStat",
+// Event: map[string]interface{}{
+// "EventName": "AddFullStats",
+// "AllMetrics": "{\"*acd\":11000000000,\"*asr\":100,\"*tcd\":22000000000}",
+// },
+// APIOpts: map[string]interface{}{},
+// },
+// }
+// sort.Strings(eRply.AlteredFields)
+// var rplyEv engine.AttrSProcessEventReply
+// if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+// ev, &rplyEv); err != nil {
+// t.Fatal(err)
+// }
+// sort.Strings(rplyEv.AlteredFields)
+// if !reflect.DeepEqual(eRply, rplyEv) {
+// t.Errorf("Expecting: %s, received: %s",
+// utils.ToJSON(eRply), utils.ToJSON(rplyEv))
+// }
+// }
-func testAttributeSProcessEventWithResource(t *testing.T) {
- //create a resourceProfile
- rlsConfig := &engine.ResourceProfile{
- Tenant: "cgrates.org",
- ID: "ResTest",
- UsageTTL: time.Minute,
- Limit: 10,
- AllocationMessage: "MessageAllocation",
- Stored: true,
- Weight: 20,
- ThresholdIDs: []string{utils.MetaNone},
- }
+// func testAttributeSProcessEventWithResource(t *testing.T) {
+// //create a resourceProfile
+// rlsConfig := &engine.ResourceProfile{
+// Tenant: "cgrates.org",
+// ID: "ResTest",
+// UsageTTL: time.Minute,
+// Limit: 10,
+// AllocationMessage: "MessageAllocation",
+// Stored: true,
+// Weight: 20,
+// ThresholdIDs: []string{utils.MetaNone},
+// }
- var result string
- if err := attrRPC.Call(utils.APIerSv1SetResourceProfile, &engine.ResourceProfileWithAPIOpts{ResourceProfile: rlsConfig}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
+// var result string
+// if err := attrRPC.Call(utils.APIerSv1SetResourceProfile, &engine.ResourceProfileWithAPIOpts{ResourceProfile: rlsConfig}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
- var reply *engine.ResourceProfile
- if err := attrRPC.Call(utils.APIerSv1GetResourceProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: rlsConfig.ID}, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, rlsConfig) {
- t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(rlsConfig), utils.ToJSON(reply))
- }
+// var reply *engine.ResourceProfile
+// if err := attrRPC.Call(utils.APIerSv1GetResourceProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: rlsConfig.ID}, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, rlsConfig) {
+// t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(rlsConfig), utils.ToJSON(reply))
+// }
- // Allocate 3 units for resource ResTest
- argsRU := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: utils.UUIDSha1Prefix(),
- Event: map[string]interface{}{
- "Account": "3001",
- "Destination": "3002"},
- APIOpts: map[string]interface{}{
- utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e21",
- utils.OptsResourcesUnits: 3,
- },
- }
- if err := attrRPC.Call(utils.ResourceSv1AllocateResources,
- argsRU, &result); err != nil {
- t.Error(err)
- }
- // Allocate 2 units for resource ResTest
- argsRU2 := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: utils.UUIDSha1Prefix(),
- Event: map[string]interface{}{
- "Account": "3001",
- "Destination": "3002"},
- APIOpts: map[string]interface{}{
- utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e22",
- utils.OptsResourcesUnits: 2,
- },
- }
- if err := attrRPC.Call(utils.ResourceSv1AllocateResources,
- argsRU2, &result); err != nil {
- t.Error(err)
- }
+// // Allocate 3 units for resource ResTest
+// argsRU := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: utils.UUIDSha1Prefix(),
+// Event: map[string]interface{}{
+// "Account": "3001",
+// "Destination": "3002"},
+// APIOpts: map[string]interface{}{
+// utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e21",
+// utils.OptsResourcesUnits: 3,
+// },
+// }
+// if err := attrRPC.Call(utils.ResourceSv1AllocateResources,
+// argsRU, &result); err != nil {
+// t.Error(err)
+// }
+// // Allocate 2 units for resource ResTest
+// argsRU2 := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: utils.UUIDSha1Prefix(),
+// Event: map[string]interface{}{
+// "Account": "3001",
+// "Destination": "3002"},
+// APIOpts: map[string]interface{}{
+// utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e22",
+// utils.OptsResourcesUnits: 2,
+// },
+// }
+// if err := attrRPC.Call(utils.ResourceSv1AllocateResources,
+// argsRU2, &result); err != nil {
+// t.Error(err)
+// }
- // add new attribute profile
- alsPrf := &engine.AttributeProfileWithAPIOpts{
- AttributeProfile: &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: "ATTR_RESOURCE",
- FilterIDs: []string{"*string:~*req.EventName:AddResourceUsages", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
- Attributes: []*engine.Attribute{
- {
- Path: utils.MetaReq + utils.NestingSep + "ResourceTotalUsages",
- Type: utils.MetaVariable,
- Value: config.RSRParsers{
- &config.RSRParser{
- Rules: "~*resources.ResTest.TotalUsage",
- },
- },
- },
- },
- Blocker: false,
- Weight: 10,
- },
- }
- alsPrf.Compile()
- if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_RESOURCE"}}, &replyAttr); err != nil {
- t.Fatal(err)
- }
- replyAttr.Compile()
- if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
- t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
- }
+// // add new attribute profile
+// alsPrf := &engine.AttributeProfileWithAPIOpts{
+// AttributeProfile: &engine.AttributeProfile{
+// Tenant: "cgrates.org",
+// ID: "ATTR_RESOURCE",
+// FilterIDs: []string{"*string:~*req.EventName:AddResourceUsages", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
+// Attributes: []*engine.Attribute{
+// {
+// Path: utils.MetaReq + utils.NestingSep + "ResourceTotalUsages",
+// Type: utils.MetaVariable,
+// Value: config.RSRParsers{
+// &config.RSRParser{
+// Rules: "~*resources.ResTest.TotalUsage",
+// },
+// },
+// },
+// },
+// Blocker: false,
+// Weight: 10,
+// },
+// }
+// alsPrf.Compile()
+// if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// var replyAttr *engine.AttributeProfile
+// if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_RESOURCE"}}, &replyAttr); err != nil {
+// t.Fatal(err)
+// }
+// replyAttr.Compile()
+// if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
+// t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
+// }
- ev := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithResource",
- Event: map[string]interface{}{
- "EventName": "AddResourceUsages",
- },
- APIOpts: map[string]interface{}{
- utils.OptsContext: utils.MetaSessionS,
- },
- }
+// ev := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithResource",
+// Event: map[string]interface{}{
+// "EventName": "AddResourceUsages",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsContext: utils.MetaSessionS,
+// },
+// }
- eRply := engine.AttrSProcessEventReply{
- MatchedProfiles: []string{"cgrates.org:ATTR_RESOURCE"},
- AlteredFields: []string{utils.MetaReq + utils.NestingSep + "ResourceTotalUsages"},
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithResource",
- Event: map[string]interface{}{
- "EventName": "AddResourceUsages",
- "ResourceTotalUsages": "5",
- },
- APIOpts: map[string]interface{}{},
- },
- }
- sort.Strings(eRply.AlteredFields)
- var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
- ev, &rplyEv); err != nil {
- t.Fatal(err)
- }
- sort.Strings(rplyEv.AlteredFields)
- if !reflect.DeepEqual(eRply, rplyEv) {
- t.Errorf("Expecting: %s, received: %s",
- utils.ToJSON(eRply), utils.ToJSON(rplyEv))
- }
-}
+// eRply := engine.AttrSProcessEventReply{
+// MatchedProfiles: []string{"cgrates.org:ATTR_RESOURCE"},
+// AlteredFields: []string{utils.MetaReq + utils.NestingSep + "ResourceTotalUsages"},
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithResource",
+// Event: map[string]interface{}{
+// "EventName": "AddResourceUsages",
+// "ResourceTotalUsages": "5",
+// },
+// APIOpts: map[string]interface{}{},
+// },
+// }
+// sort.Strings(eRply.AlteredFields)
+// var rplyEv engine.AttrSProcessEventReply
+// if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+// ev, &rplyEv); err != nil {
+// t.Fatal(err)
+// }
+// sort.Strings(rplyEv.AlteredFields)
+// if !reflect.DeepEqual(eRply, rplyEv) {
+// t.Errorf("Expecting: %s, received: %s",
+// utils.ToJSON(eRply), utils.ToJSON(rplyEv))
+// }
+// }
-func testAttributeSProcessEventWithResourceFull(t *testing.T) {
- // add new attribute profile
- var result string
- alsPrf := &engine.AttributeProfileWithAPIOpts{
- AttributeProfile: &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: "ATTR_RESOURCE2",
- FilterIDs: []string{"*string:~*req.EventName:AddFullResource", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
- Attributes: []*engine.Attribute{
- {
- Path: utils.MetaReq + utils.NestingSep + "FullResource",
- Type: utils.MetaVariable,
- Value: config.RSRParsers{
- &config.RSRParser{
- Rules: "~*resources.ResTest",
- },
- },
- },
- },
- Blocker: false,
- Weight: 10,
- },
- }
- alsPrf.Compile()
- if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_RESOURCE2"}}, &replyAttr); err != nil {
- t.Fatal(err)
- }
- replyAttr.Compile()
- if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
- t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
- }
+// func testAttributeSProcessEventWithResourceFull(t *testing.T) {
+// // add new attribute profile
+// var result string
+// alsPrf := &engine.AttributeProfileWithAPIOpts{
+// AttributeProfile: &engine.AttributeProfile{
+// Tenant: "cgrates.org",
+// ID: "ATTR_RESOURCE2",
+// FilterIDs: []string{"*string:~*req.EventName:AddFullResource", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
+// Attributes: []*engine.Attribute{
+// {
+// Path: utils.MetaReq + utils.NestingSep + "FullResource",
+// Type: utils.MetaVariable,
+// Value: config.RSRParsers{
+// &config.RSRParser{
+// Rules: "~*resources.ResTest",
+// },
+// },
+// },
+// },
+// Blocker: false,
+// Weight: 10,
+// },
+// }
+// alsPrf.Compile()
+// if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// var replyAttr *engine.AttributeProfile
+// if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_RESOURCE2"}}, &replyAttr); err != nil {
+// t.Fatal(err)
+// }
+// replyAttr.Compile()
+// if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
+// t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
+// }
- ev := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithResource2",
- Event: map[string]interface{}{
- "EventName": "AddFullResource",
- },
- APIOpts: map[string]interface{}{
- utils.OptsContext: utils.MetaSessionS,
- },
- }
+// ev := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithResource2",
+// Event: map[string]interface{}{
+// "EventName": "AddFullResource",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsContext: utils.MetaSessionS,
+// },
+// }
- eRply := engine.AttrSProcessEventReply{
- MatchedProfiles: []string{"cgrates.org:ATTR_RESOURCE2"},
- AlteredFields: []string{utils.MetaReq + utils.NestingSep + "FullResource"},
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithResource2",
- Event: map[string]interface{}{
- "EventName": "AddFullResource",
- "FullResource": "{\"Tenant\":\"cgrates.org\",\"ID\":\"ResTest\",\"Usages\":{\"651a8db2-4f67-4cf8-b622-169e8a482e21\":{\"Tenant\":\"cgrates.org\",\"ID\":\"651a8db2-4f67-4cf8-b622-169e8a482e21\",\"ExpiryTime\":\"2020-10-06T16:12:52.450804203+03:00\",\"Units\":3},\"651a8db2-4f67-4cf8-b622-169e8a482e22\":{\"Tenant\":\"cgrates.org\",\"ID\":\"651a8db2-4f67-4cf8-b622-169e8a482e22\",\"ExpiryTime\":\"2020-10-06T16:12:52.451034151+03:00\",\"Units\":2}},\"TTLIdx\":[\"651a8db2-4f67-4cf8-b622-169e8a482e21\",\"651a8db2-4f67-4cf8-b622-169e8a482e22\"]}",
- },
- },
- }
- sort.Strings(eRply.AlteredFields)
- var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
- ev, &rplyEv); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(rplyEv.MatchedProfiles, eRply.MatchedProfiles) {
- t.Errorf("Expecting: %s, received: %s",
- utils.ToJSON(eRply.MatchedProfiles), utils.ToJSON(rplyEv.MatchedProfiles))
- } else if !reflect.DeepEqual(rplyEv.AlteredFields, eRply.AlteredFields) {
- t.Errorf("Expecting: %s, received: %s",
- utils.ToJSON(eRply.AlteredFields), utils.ToJSON(rplyEv.AlteredFields))
- }
- // some fields are generated(e.g. Time) and compare only some part of the string
- strRes := utils.IfaceAsString(rplyEv.CGREvent.Event["FullResource"])
- if !strings.Contains(strRes, "{\"Tenant\":\"cgrates.org\",\"ID\":\"ResTest\",\"Usages\":{") {
- t.Errorf("Expecting: %s, received: %s",
- "{\"Tenant\":\"cgrates.org\",\"ID\":\"ResTest\",\"Usages\":{", strRes)
- } else if !strings.Contains(strRes, ",\"TTLIdx\":[") {
- t.Errorf("Expecting: %s, received: %s",
- ",\"TTLIdx\":[", strRes)
- }
-}
+// eRply := engine.AttrSProcessEventReply{
+// MatchedProfiles: []string{"cgrates.org:ATTR_RESOURCE2"},
+// AlteredFields: []string{utils.MetaReq + utils.NestingSep + "FullResource"},
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithResource2",
+// Event: map[string]interface{}{
+// "EventName": "AddFullResource",
+// "FullResource": "{\"Tenant\":\"cgrates.org\",\"ID\":\"ResTest\",\"Usages\":{\"651a8db2-4f67-4cf8-b622-169e8a482e21\":{\"Tenant\":\"cgrates.org\",\"ID\":\"651a8db2-4f67-4cf8-b622-169e8a482e21\",\"ExpiryTime\":\"2020-10-06T16:12:52.450804203+03:00\",\"Units\":3},\"651a8db2-4f67-4cf8-b622-169e8a482e22\":{\"Tenant\":\"cgrates.org\",\"ID\":\"651a8db2-4f67-4cf8-b622-169e8a482e22\",\"ExpiryTime\":\"2020-10-06T16:12:52.451034151+03:00\",\"Units\":2}},\"TTLIdx\":[\"651a8db2-4f67-4cf8-b622-169e8a482e21\",\"651a8db2-4f67-4cf8-b622-169e8a482e22\"]}",
+// },
+// },
+// }
+// sort.Strings(eRply.AlteredFields)
+// var rplyEv engine.AttrSProcessEventReply
+// if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+// ev, &rplyEv); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(rplyEv.MatchedProfiles, eRply.MatchedProfiles) {
+// t.Errorf("Expecting: %s, received: %s",
+// utils.ToJSON(eRply.MatchedProfiles), utils.ToJSON(rplyEv.MatchedProfiles))
+// } else if !reflect.DeepEqual(rplyEv.AlteredFields, eRply.AlteredFields) {
+// t.Errorf("Expecting: %s, received: %s",
+// utils.ToJSON(eRply.AlteredFields), utils.ToJSON(rplyEv.AlteredFields))
+// }
+// // some fields are generated(e.g. Time) and compare only some part of the string
+// strRes := utils.IfaceAsString(rplyEv.CGREvent.Event["FullResource"])
+// if !strings.Contains(strRes, "{\"Tenant\":\"cgrates.org\",\"ID\":\"ResTest\",\"Usages\":{") {
+// t.Errorf("Expecting: %s, received: %s",
+// "{\"Tenant\":\"cgrates.org\",\"ID\":\"ResTest\",\"Usages\":{", strRes)
+// } else if !strings.Contains(strRes, ",\"TTLIdx\":[") {
+// t.Errorf("Expecting: %s, received: %s",
+// ",\"TTLIdx\":[", strRes)
+// }
+// }
-func testAttributeSProcessEventWithLibPhoneNumber(t *testing.T) {
- // add new attribute profile
- var result string
- alsPrf := &engine.AttributeProfileWithAPIOpts{
- AttributeProfile: &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: "ATTR_LIBPHONENUMBER2",
- FilterIDs: []string{"*string:~*req.EventName:AddDestinationCarrier", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
- Attributes: []*engine.Attribute{
- {
- Path: utils.MetaReq + utils.NestingSep + "DestinationCarrier",
- Type: utils.MetaVariable,
- Value: config.RSRParsers{
- &config.RSRParser{
- Rules: "~*libphonenumber.<~*req.Destination>.Carrier",
- },
- },
- },
- },
- Blocker: false,
- Weight: 10,
- },
- }
- alsPrf.Compile()
- if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_LIBPHONENUMBER2"}}, &replyAttr); err != nil {
- t.Fatal(err)
- }
- replyAttr.Compile()
- if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
- t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
- }
+// func testAttributeSProcessEventWithLibPhoneNumber(t *testing.T) {
+// // add new attribute profile
+// var result string
+// alsPrf := &engine.AttributeProfileWithAPIOpts{
+// AttributeProfile: &engine.AttributeProfile{
+// Tenant: "cgrates.org",
+// ID: "ATTR_LIBPHONENUMBER2",
+// FilterIDs: []string{"*string:~*req.EventName:AddDestinationCarrier", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
+// Attributes: []*engine.Attribute{
+// {
+// Path: utils.MetaReq + utils.NestingSep + "DestinationCarrier",
+// Type: utils.MetaVariable,
+// Value: config.RSRParsers{
+// &config.RSRParser{
+// Rules: "~*libphonenumber.<~*req.Destination>.Carrier",
+// },
+// },
+// },
+// },
+// Blocker: false,
+// Weight: 10,
+// },
+// }
+// alsPrf.Compile()
+// if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// var replyAttr *engine.AttributeProfile
+// if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_LIBPHONENUMBER2"}}, &replyAttr); err != nil {
+// t.Fatal(err)
+// }
+// replyAttr.Compile()
+// if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
+// t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
+// }
- ev := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithLibPhoneNumber2",
- Event: map[string]interface{}{
- "EventName": "AddDestinationCarrier",
- "Destination": "+447779330921",
- },
- APIOpts: map[string]interface{}{
- utils.OptsContext: utils.MetaSessionS,
- },
- }
+// ev := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithLibPhoneNumber2",
+// Event: map[string]interface{}{
+// "EventName": "AddDestinationCarrier",
+// "Destination": "+447779330921",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsContext: utils.MetaSessionS,
+// },
+// }
- eRply := engine.AttrSProcessEventReply{
- MatchedProfiles: []string{"cgrates.org:ATTR_LIBPHONENUMBER2"},
- AlteredFields: []string{utils.MetaReq + utils.NestingSep + "DestinationCarrier"},
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithLibPhoneNumber2",
- Event: map[string]interface{}{
- "EventName": "AddDestinationCarrier",
- "Destination": "+447779330921",
- "DestinationCarrier": "Orange",
- },
- APIOpts: map[string]interface{}{},
- },
- }
- sort.Strings(eRply.AlteredFields)
- var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
- ev, &rplyEv); err != nil {
- t.Fatal(err)
- }
- sort.Strings(rplyEv.AlteredFields)
- if !reflect.DeepEqual(eRply, rplyEv) {
- t.Errorf("Expecting: %+v, received: %+v",
- utils.ToJSON(eRply), utils.ToJSON(rplyEv))
- }
-}
+// eRply := engine.AttrSProcessEventReply{
+// MatchedProfiles: []string{"cgrates.org:ATTR_LIBPHONENUMBER2"},
+// AlteredFields: []string{utils.MetaReq + utils.NestingSep + "DestinationCarrier"},
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithLibPhoneNumber2",
+// Event: map[string]interface{}{
+// "EventName": "AddDestinationCarrier",
+// "Destination": "+447779330921",
+// "DestinationCarrier": "Orange",
+// },
+// APIOpts: map[string]interface{}{},
+// },
+// }
+// sort.Strings(eRply.AlteredFields)
+// var rplyEv engine.AttrSProcessEventReply
+// if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+// ev, &rplyEv); err != nil {
+// t.Fatal(err)
+// }
+// sort.Strings(rplyEv.AlteredFields)
+// if !reflect.DeepEqual(eRply, rplyEv) {
+// t.Errorf("Expecting: %+v, received: %+v",
+// utils.ToJSON(eRply), utils.ToJSON(rplyEv))
+// }
+// }
-func testAttributeSProcessEventWithLibPhoneNumberComposed(t *testing.T) {
- // add new attribute profile
- var result string
- alsPrf := &engine.AttributeProfileWithAPIOpts{
- AttributeProfile: &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: "ATTR_LIBPHONENUMBER_COMPOSED",
- FilterIDs: []string{"*string:~*req.EventName:AddComposedInfo", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
- Attributes: []*engine.Attribute{
- {
- Path: utils.MetaReq + utils.NestingSep + "DestinationCarrier",
- Type: utils.MetaComposed,
- Value: config.RSRParsers{
- &config.RSRParser{
- Rules: "~*libphonenumber.<~*req.Destination>.Carrier",
- },
- },
- },
- {
- Path: utils.MetaReq + utils.NestingSep + "DestinationCarrier",
- Type: utils.MetaComposed,
- Value: config.RSRParsers{
- &config.RSRParser{
- Rules: ";",
- },
- },
- },
- {
- Path: utils.MetaReq + utils.NestingSep + "DestinationCarrier",
- Type: utils.MetaComposed,
- Value: config.RSRParsers{
- &config.RSRParser{
- Rules: "~*libphonenumber.<~*req.Destination>.CountryCode",
- },
- },
- },
- },
- Blocker: false,
- Weight: 10,
- },
- }
- alsPrf.Compile()
- if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_LIBPHONENUMBER_COMPOSED"}}, &replyAttr); err != nil {
- t.Fatal(err)
- }
- replyAttr.Compile()
- if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
- t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
- }
+// func testAttributeSProcessEventWithLibPhoneNumberComposed(t *testing.T) {
+// // add new attribute profile
+// var result string
+// alsPrf := &engine.AttributeProfileWithAPIOpts{
+// AttributeProfile: &engine.AttributeProfile{
+// Tenant: "cgrates.org",
+// ID: "ATTR_LIBPHONENUMBER_COMPOSED",
+// FilterIDs: []string{"*string:~*req.EventName:AddComposedInfo", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
+// Attributes: []*engine.Attribute{
+// {
+// Path: utils.MetaReq + utils.NestingSep + "DestinationCarrier",
+// Type: utils.MetaComposed,
+// Value: config.RSRParsers{
+// &config.RSRParser{
+// Rules: "~*libphonenumber.<~*req.Destination>.Carrier",
+// },
+// },
+// },
+// {
+// Path: utils.MetaReq + utils.NestingSep + "DestinationCarrier",
+// Type: utils.MetaComposed,
+// Value: config.RSRParsers{
+// &config.RSRParser{
+// Rules: ";",
+// },
+// },
+// },
+// {
+// Path: utils.MetaReq + utils.NestingSep + "DestinationCarrier",
+// Type: utils.MetaComposed,
+// Value: config.RSRParsers{
+// &config.RSRParser{
+// Rules: "~*libphonenumber.<~*req.Destination>.CountryCode",
+// },
+// },
+// },
+// },
+// Blocker: false,
+// Weight: 10,
+// },
+// }
+// alsPrf.Compile()
+// if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// var replyAttr *engine.AttributeProfile
+// if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_LIBPHONENUMBER_COMPOSED"}}, &replyAttr); err != nil {
+// t.Fatal(err)
+// }
+// replyAttr.Compile()
+// if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
+// t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
+// }
- ev := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithLibPhoneNumberComposed",
- Event: map[string]interface{}{
- "EventName": "AddComposedInfo",
- "Destination": "+447779330921",
- },
- APIOpts: map[string]interface{}{
- utils.OptsContext: utils.MetaSessionS,
- },
- }
+// ev := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithLibPhoneNumberComposed",
+// Event: map[string]interface{}{
+// "EventName": "AddComposedInfo",
+// "Destination": "+447779330921",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsContext: utils.MetaSessionS,
+// },
+// }
- eRply := engine.AttrSProcessEventReply{
- MatchedProfiles: []string{"cgrates.org:ATTR_LIBPHONENUMBER_COMPOSED"},
- AlteredFields: []string{utils.MetaReq + utils.NestingSep + "DestinationCarrier"},
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithLibPhoneNumberComposed",
- Event: map[string]interface{}{
- "EventName": "AddComposedInfo",
- "Destination": "+447779330921",
- "DestinationCarrier": "Orange;44",
- },
- APIOpts: map[string]interface{}{},
- },
- }
- sort.Strings(eRply.AlteredFields)
- var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
- ev, &rplyEv); err != nil {
- t.Fatal(err)
- }
- sort.Strings(rplyEv.AlteredFields)
- if !reflect.DeepEqual(eRply, rplyEv) {
- t.Errorf("Expecting: %+v, received: %+v",
- utils.ToJSON(eRply), utils.ToJSON(rplyEv))
- }
-}
+// eRply := engine.AttrSProcessEventReply{
+// MatchedProfiles: []string{"cgrates.org:ATTR_LIBPHONENUMBER_COMPOSED"},
+// AlteredFields: []string{utils.MetaReq + utils.NestingSep + "DestinationCarrier"},
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithLibPhoneNumberComposed",
+// Event: map[string]interface{}{
+// "EventName": "AddComposedInfo",
+// "Destination": "+447779330921",
+// "DestinationCarrier": "Orange;44",
+// },
+// APIOpts: map[string]interface{}{},
+// },
+// }
+// sort.Strings(eRply.AlteredFields)
+// var rplyEv engine.AttrSProcessEventReply
+// if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+// ev, &rplyEv); err != nil {
+// t.Fatal(err)
+// }
+// sort.Strings(rplyEv.AlteredFields)
+// if !reflect.DeepEqual(eRply, rplyEv) {
+// t.Errorf("Expecting: %+v, received: %+v",
+// utils.ToJSON(eRply), utils.ToJSON(rplyEv))
+// }
+// }
-func testAttributeSProcessEventWithLibPhoneNumberFull(t *testing.T) {
- // add new attribute profile
- var result string
- alsPrf := &engine.AttributeProfileWithAPIOpts{
- AttributeProfile: &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: "ATTR_LIBPHONENUMBER",
- FilterIDs: []string{"*string:~*req.EventName:AddDestinationDetails", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
- Attributes: []*engine.Attribute{
- {
- Path: utils.MetaReq + utils.NestingSep + "DestinationDetails",
- Type: utils.MetaVariable,
- Value: config.RSRParsers{
- &config.RSRParser{
- Rules: "~*libphonenumber.<~*req.Destination>",
- },
- },
- },
- },
- Blocker: false,
- Weight: 10,
- },
- }
- alsPrf.Compile()
- if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- var replyAttr *engine.AttributeProfile
- if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_LIBPHONENUMBER"}}, &replyAttr); err != nil {
- t.Fatal(err)
- }
- replyAttr.Compile()
- if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
- t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
- }
+// func testAttributeSProcessEventWithLibPhoneNumberFull(t *testing.T) {
+// // add new attribute profile
+// var result string
+// alsPrf := &engine.AttributeProfileWithAPIOpts{
+// AttributeProfile: &engine.AttributeProfile{
+// Tenant: "cgrates.org",
+// ID: "ATTR_LIBPHONENUMBER",
+// FilterIDs: []string{"*string:~*req.EventName:AddDestinationDetails", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
+// Attributes: []*engine.Attribute{
+// {
+// Path: utils.MetaReq + utils.NestingSep + "DestinationDetails",
+// Type: utils.MetaVariable,
+// Value: config.RSRParsers{
+// &config.RSRParser{
+// Rules: "~*libphonenumber.<~*req.Destination>",
+// },
+// },
+// },
+// },
+// Blocker: false,
+// Weight: 10,
+// },
+// }
+// alsPrf.Compile()
+// if err := attrRPC.Call(utils.AdminSv1SetAttributeProfile, alsPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// var replyAttr *engine.AttributeProfile
+// if err := attrRPC.Call(utils.AdminSv1GetAttributeProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_LIBPHONENUMBER"}}, &replyAttr); err != nil {
+// t.Fatal(err)
+// }
+// replyAttr.Compile()
+// if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAttr) {
+// t.Errorf("Expecting : %+v, received: %+v", alsPrf.AttributeProfile, replyAttr)
+// }
- ev := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithLibPhoneNumber",
- Event: map[string]interface{}{
- "EventName": "AddDestinationDetails",
- "Destination": "+447779330921",
- },
- APIOpts: map[string]interface{}{
- utils.OptsContext: utils.MetaSessionS,
- },
- }
+// ev := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithLibPhoneNumber",
+// Event: map[string]interface{}{
+// "EventName": "AddDestinationDetails",
+// "Destination": "+447779330921",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsContext: utils.MetaSessionS,
+// },
+// }
- eRply := engine.AttrSProcessEventReply{
- MatchedProfiles: []string{"cgrates.org:ATTR_LIBPHONENUMBER"},
- AlteredFields: []string{utils.MetaReq + utils.NestingSep + "DestinationDetails"},
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testAttributeSProcessEventWithLibPhoneNumber",
- Event: map[string]interface{}{
- "EventName": "AddDestinationDetails",
- "Destination": "+447779330921",
- "DestinationDetails": "{\"Carrier\":\"Orange\",\"CountryCode\":44,\"CountryCodeSource\":1,\"Extension\":\"\",\"GeoLocation\":\"\",\"ItalianLeadingZero\":false,\"LengthOfNationalDestinationCode\":0,\"NationalNumber\":7779330921,\"NumberOfLeadingZeros\":1,\"NumberType\":1,\"PreferredDomesticCarrierCode\":\"\",\"RawInput\":\"+447779330921\",\"Region\":\"GB\"}",
- },
- APIOpts: map[string]interface{}{},
- },
- }
- sort.Strings(eRply.AlteredFields)
- var rplyEv engine.AttrSProcessEventReply
- if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
- ev, &rplyEv); err != nil {
- t.Fatal(err)
- }
- sort.Strings(rplyEv.AlteredFields)
- if !reflect.DeepEqual(eRply, rplyEv) {
- t.Errorf("Expecting: %+v, received: %+v",
- utils.ToJSON(eRply), utils.ToJSON(rplyEv))
- }
-}
+// eRply := engine.AttrSProcessEventReply{
+// MatchedProfiles: []string{"cgrates.org:ATTR_LIBPHONENUMBER"},
+// AlteredFields: []string{utils.MetaReq + utils.NestingSep + "DestinationDetails"},
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testAttributeSProcessEventWithLibPhoneNumber",
+// Event: map[string]interface{}{
+// "EventName": "AddDestinationDetails",
+// "Destination": "+447779330921",
+// "DestinationDetails": "{\"Carrier\":\"Orange\",\"CountryCode\":44,\"CountryCodeSource\":1,\"Extension\":\"\",\"GeoLocation\":\"\",\"ItalianLeadingZero\":false,\"LengthOfNationalDestinationCode\":0,\"NationalNumber\":7779330921,\"NumberOfLeadingZeros\":1,\"NumberType\":1,\"PreferredDomesticCarrierCode\":\"\",\"RawInput\":\"+447779330921\",\"Region\":\"GB\"}",
+// },
+// APIOpts: map[string]interface{}{},
+// },
+// }
+// sort.Strings(eRply.AlteredFields)
+// var rplyEv engine.AttrSProcessEventReply
+// if err := attrRPC.Call(utils.AttributeSv1ProcessEvent,
+// ev, &rplyEv); err != nil {
+// t.Fatal(err)
+// }
+// sort.Strings(rplyEv.AlteredFields)
+// if !reflect.DeepEqual(eRply, rplyEv) {
+// t.Errorf("Expecting: %+v, received: %+v",
+// utils.ToJSON(eRply), utils.ToJSON(rplyEv))
+// }
+// }
-func testAttributeSStopEngine(t *testing.T) {
- if err := engine.KillEngine(accDelay); err != nil {
- t.Error(err)
- }
-}
+// func testAttributeSStopEngine(t *testing.T) {
+// if err := engine.KillEngine(accDelay); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/broadcast_client_it_test.go b/general_tests/broadcast_client_it_test.go
index 821e60572..3552fd14a 100644
--- a/general_tests/broadcast_client_it_test.go
+++ b/general_tests/broadcast_client_it_test.go
@@ -20,198 +20,198 @@ along with this program. If not, see
*/
package general_tests
-import (
- "net/rpc"
- "path"
- "reflect"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "reflect"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- brodcastCfgPath string
- brodcastInternalCfgPath string
- brodcastInternalCfgDIR string
- brodcastCfg *config.CGRConfig
- brodcastInternalCfg *config.CGRConfig
- brodcastRPC *rpc.Client
- brodcastInternalRPC *rpc.Client
+// var (
+// brodcastCfgPath string
+// brodcastInternalCfgPath string
+// brodcastInternalCfgDIR string
+// brodcastCfg *config.CGRConfig
+// brodcastInternalCfg *config.CGRConfig
+// brodcastRPC *rpc.Client
+// brodcastInternalRPC *rpc.Client
- sTestBrodcastIt = []func(t *testing.T){
- testbrodcastItLoadConfig,
- testbrodcastItResetDataDB,
- testbrodcastItResetStorDb,
- testbrodcastItStartEngine,
- testbrodcastItRPCConn,
- testbrodcastItLoadFromFolder,
+// sTestBrodcastIt = []func(t *testing.T){
+// testbrodcastItLoadConfig,
+// testbrodcastItResetDataDB,
+// testbrodcastItResetStorDb,
+// testbrodcastItStartEngine,
+// testbrodcastItRPCConn,
+// testbrodcastItLoadFromFolder,
- testbrodcastItProccessEvent,
- testbrodcastItGetCDRs,
+// testbrodcastItProccessEvent,
+// testbrodcastItGetCDRs,
- testbrodcastItStopCgrEngine,
- }
-)
+// testbrodcastItStopCgrEngine,
+// }
+// )
-func TestBrodcastRPC(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- brodcastInternalCfgDIR = "tutinternal"
- case utils.MetaMySQL:
- brodcastInternalCfgDIR = "tutmysql"
- case utils.MetaMongo:
- brodcastInternalCfgDIR = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
+// func TestBrodcastRPC(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// brodcastInternalCfgDIR = "tutinternal"
+// case utils.MetaMySQL:
+// brodcastInternalCfgDIR = "tutmysql"
+// case utils.MetaMongo:
+// brodcastInternalCfgDIR = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
- for _, stest := range sTestBrodcastIt {
- t.Run(brodcastInternalCfgDIR, stest)
- }
-}
+// for _, stest := range sTestBrodcastIt {
+// t.Run(brodcastInternalCfgDIR, stest)
+// }
+// }
-// test for 0 balance with session terminate with 1s usage
-func testbrodcastItLoadConfig(t *testing.T) {
- var err error
- brodcastCfgPath = path.Join(*dataDir, "conf", "samples", "internal_broadcast_replication")
- if brodcastCfg, err = config.NewCGRConfigFromPath(brodcastCfgPath); err != nil {
- t.Error(err)
- }
- brodcastInternalCfgPath = path.Join(*dataDir, "conf", "samples", brodcastInternalCfgDIR)
- if brodcastInternalCfg, err = config.NewCGRConfigFromPath(brodcastInternalCfgPath); err != nil {
- t.Error(err)
- }
-}
+// // test for 0 balance with session terminate with 1s usage
+// func testbrodcastItLoadConfig(t *testing.T) {
+// var err error
+// brodcastCfgPath = path.Join(*dataDir, "conf", "samples", "internal_broadcast_replication")
+// if brodcastCfg, err = config.NewCGRConfigFromPath(brodcastCfgPath); err != nil {
+// t.Error(err)
+// }
+// brodcastInternalCfgPath = path.Join(*dataDir, "conf", "samples", brodcastInternalCfgDIR)
+// if brodcastInternalCfg, err = config.NewCGRConfigFromPath(brodcastInternalCfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testbrodcastItResetDataDB(t *testing.T) {
- if err := engine.InitDataDB(brodcastInternalCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testbrodcastItResetDataDB(t *testing.T) {
+// if err := engine.InitDataDB(brodcastInternalCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testbrodcastItResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(brodcastInternalCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testbrodcastItResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(brodcastInternalCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testbrodcastItStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(brodcastCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
- if _, err := engine.StartEngine(brodcastInternalCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testbrodcastItStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(brodcastCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// if _, err := engine.StartEngine(brodcastInternalCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testbrodcastItRPCConn(t *testing.T) {
- var err error
- brodcastRPC, err = newRPCClient(brodcastCfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
- brodcastInternalRPC, err = newRPCClient(brodcastInternalCfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testbrodcastItRPCConn(t *testing.T) {
+// var err error
+// brodcastRPC, err = newRPCClient(brodcastCfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// brodcastInternalRPC, err = newRPCClient(brodcastInternalCfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testbrodcastItLoadFromFolder(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := brodcastRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- }
- if err := brodcastInternalRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- }
- time.Sleep(200 * time.Millisecond)
-}
+// func testbrodcastItLoadFromFolder(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
+// if err := brodcastRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// }
+// if err := brodcastInternalRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(200 * time.Millisecond)
+// }
-func testbrodcastItProccessEvent(t *testing.T) {
- args := utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestSSv1ItProcessCDR",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.Category: utils.Call,
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestSSv1It1Brodcast",
- utils.RequestType: utils.MetaPostpaid,
- utils.AccountField: "1001",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 10 * time.Minute,
- },
- }
+// func testbrodcastItProccessEvent(t *testing.T) {
+// args := utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestSSv1ItProcessCDR",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.Category: utils.Call,
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestSSv1It1Brodcast",
+// utils.RequestType: utils.MetaPostpaid,
+// utils.AccountField: "1001",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 10 * time.Minute,
+// },
+// }
- var rply string
- if err := brodcastRPC.Call(utils.SessionSv1ProcessCDR, args, &rply); err != nil {
- t.Fatal(err)
- }
- if rply != utils.OK {
- t.Errorf("Unexpected reply: %s", rply)
- }
- time.Sleep(50 * time.Millisecond)
-}
-func testbrodcastItGetCDRs(t *testing.T) {
- eCDR := &engine.CDR{
- CGRID: "ad6cb338dea6eaf2e81507623fbd6b00f60c374f",
- RunID: "*default",
- OrderID: 0,
- OriginHost: "",
- Source: "*sessions",
- OriginID: "TestSSv1It1Brodcast",
- ToR: "*voice",
- RequestType: "*postpaid",
- Tenant: "cgrates.org",
- Category: "call",
- Account: "1001",
- Subject: "1001",
- Destination: "1002",
- SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- Usage: 600000000000,
- ExtraFields: make(map[string]string),
- ExtraInfo: "NOT_CONNECTED: RALs",
- Partial: false,
- PreRated: false,
- CostSource: "",
- Cost: -1,
- }
- var cdrs []*engine.CDR
- args := utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}}}
- if err := brodcastRPC.Call(utils.CDRsV1GetCDRs, &args, &cdrs); err != nil {
- t.Fatal("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Fatal("Unexpected number of CDRs returned: ", len(cdrs))
- }
- cdrs[0].OrderID = 0 // reset the OrderID
- if !reflect.DeepEqual(eCDR, cdrs[0]) {
- t.Errorf("Expected: %s ,received: %s", utils.ToJSON(eCDR), utils.ToJSON(cdrs[0]))
- }
+// var rply string
+// if err := brodcastRPC.Call(utils.SessionSv1ProcessCDR, args, &rply); err != nil {
+// t.Fatal(err)
+// }
+// if rply != utils.OK {
+// t.Errorf("Unexpected reply: %s", rply)
+// }
+// time.Sleep(50 * time.Millisecond)
+// }
+// func testbrodcastItGetCDRs(t *testing.T) {
+// eCDR := &engine.CDR{
+// CGRID: "ad6cb338dea6eaf2e81507623fbd6b00f60c374f",
+// RunID: "*default",
+// OrderID: 0,
+// OriginHost: "",
+// Source: "*sessions",
+// OriginID: "TestSSv1It1Brodcast",
+// ToR: "*voice",
+// RequestType: "*postpaid",
+// Tenant: "cgrates.org",
+// Category: "call",
+// Account: "1001",
+// Subject: "1001",
+// Destination: "1002",
+// SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// Usage: 600000000000,
+// ExtraFields: make(map[string]string),
+// ExtraInfo: "NOT_CONNECTED: RALs",
+// Partial: false,
+// PreRated: false,
+// CostSource: "",
+// Cost: -1,
+// }
+// var cdrs []*engine.CDR
+// args := utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}}}
+// if err := brodcastRPC.Call(utils.CDRsV1GetCDRs, &args, &cdrs); err != nil {
+// t.Fatal("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Fatal("Unexpected number of CDRs returned: ", len(cdrs))
+// }
+// cdrs[0].OrderID = 0 // reset the OrderID
+// if !reflect.DeepEqual(eCDR, cdrs[0]) {
+// t.Errorf("Expected: %s ,received: %s", utils.ToJSON(eCDR), utils.ToJSON(cdrs[0]))
+// }
- if err := brodcastInternalRPC.Call(utils.CDRsV1GetCDRs, &args, &cdrs); err != nil {
- t.Fatal("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Error("Unexpected number of CDRs returned: ", len(cdrs))
- }
- cdrs[0].OrderID = 0 // reset the OrderID
- cdrs[0].SetupTime = cdrs[0].SetupTime.UTC() // uniform time
- cdrs[0].AnswerTime = cdrs[0].AnswerTime.UTC() // uniform time
- if !reflect.DeepEqual(eCDR, cdrs[0]) {
- t.Errorf("Expected: %s ,received: %s", utils.ToJSON(eCDR), utils.ToJSON(cdrs[0]))
- }
-}
+// if err := brodcastInternalRPC.Call(utils.CDRsV1GetCDRs, &args, &cdrs); err != nil {
+// t.Fatal("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
+// }
+// cdrs[0].OrderID = 0 // reset the OrderID
+// cdrs[0].SetupTime = cdrs[0].SetupTime.UTC() // uniform time
+// cdrs[0].AnswerTime = cdrs[0].AnswerTime.UTC() // uniform time
+// if !reflect.DeepEqual(eCDR, cdrs[0]) {
+// t.Errorf("Expected: %s ,received: %s", utils.ToJSON(eCDR), utils.ToJSON(cdrs[0]))
+// }
+// }
-func testbrodcastItStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testbrodcastItStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/cacherpl_it_test.go b/general_tests/cacherpl_it_test.go
index 7901c5c15..75425e5d1 100644
--- a/general_tests/cacherpl_it_test.go
+++ b/general_tests/cacherpl_it_test.go
@@ -20,616 +20,616 @@ along with this program. If not, see
*/
package general_tests
-import (
- "net/rpc"
- "os/exec"
- "path"
- "reflect"
- "sort"
- "sync"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "os/exec"
+// "path"
+// "reflect"
+// "sort"
+// "sync"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- dspEngine1Cfg *config.CGRConfig
- dspEngine1CfgPath string
- dspEngine1RPC *rpc.Client
- dspEngine2Cfg *config.CGRConfig
- dspEngine2CfgPath string
- dspEngine2RPC *rpc.Client
- engine1Cfg *config.CGRConfig
- engine1CfgPath string
- engine1RPC *rpc.Client
+// var (
+// dspEngine1Cfg *config.CGRConfig
+// dspEngine1CfgPath string
+// dspEngine1RPC *rpc.Client
+// dspEngine2Cfg *config.CGRConfig
+// dspEngine2CfgPath string
+// dspEngine2RPC *rpc.Client
+// engine1Cfg *config.CGRConfig
+// engine1CfgPath string
+// engine1RPC *rpc.Client
- sTestsCacheRpl = []func(t *testing.T){
- testCacheRplInitCfg,
- testCacheRplInitDataDb,
- testCacheRplStartEngine,
- testCacheRplRpcConn,
- testCacheRplAddData,
- testCacheRplPing,
- testCacheRplCheckReplication,
- testCacheRplCheckLoadReplication,
+// sTestsCacheRpl = []func(t *testing.T){
+// testCacheRplInitCfg,
+// testCacheRplInitDataDb,
+// testCacheRplStartEngine,
+// testCacheRplRpcConn,
+// testCacheRplAddData,
+// testCacheRplPing,
+// testCacheRplCheckReplication,
+// testCacheRplCheckLoadReplication,
- testCacheRplStopEngine,
- }
+// testCacheRplStopEngine,
+// }
- sTestsCacheRplAA = []func(t *testing.T){
- testCacheRplAAInitCfg,
- testCacheRplInitDataDb,
- testCacheRplStartEngine,
- testCacheRplRpcConn,
- testCacheRplAAAddData,
- testCacheRplAACheckReplication,
- testCacheRplAACheckLoadReplication,
+// sTestsCacheRplAA = []func(t *testing.T){
+// testCacheRplAAInitCfg,
+// testCacheRplInitDataDb,
+// testCacheRplStartEngine,
+// testCacheRplRpcConn,
+// testCacheRplAAAddData,
+// testCacheRplAACheckReplication,
+// testCacheRplAACheckLoadReplication,
- testCacheRplStopEngine,
- }
-)
+// testCacheRplStopEngine,
+// }
+// )
-func TestCacheReplications(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- t.SkipNow()
- case utils.MetaMySQL:
- for _, stest := range sTestsCacheRpl {
- t.Run("TestCacheReplications", stest)
- }
- case utils.MetaMongo:
- t.SkipNow()
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
+// func TestCacheReplications(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// t.SkipNow()
+// case utils.MetaMySQL:
+// for _, stest := range sTestsCacheRpl {
+// t.Run("TestCacheReplications", stest)
+// }
+// case utils.MetaMongo:
+// t.SkipNow()
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
-}
+// }
-func TestCacheReplicationActiveActive(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- t.SkipNow()
- case utils.MetaMySQL:
- for _, stest := range sTestsCacheRplAA {
- t.Run("TestCacheReplicationActiveActive", stest)
- }
- case utils.MetaMongo:
- t.SkipNow()
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
-}
+// func TestCacheReplicationActiveActive(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// t.SkipNow()
+// case utils.MetaMySQL:
+// for _, stest := range sTestsCacheRplAA {
+// t.Run("TestCacheReplicationActiveActive", stest)
+// }
+// case utils.MetaMongo:
+// t.SkipNow()
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// }
-func testCacheRplInitCfg(t *testing.T) {
- var err error
- dspEngine1CfgPath = path.Join(*dataDir, "conf", "samples", "cache_replicate", "dispatcher_engine")
- dspEngine1Cfg, err = config.NewCGRConfigFromPath(dspEngine1CfgPath)
- if err != nil {
- t.Error(err)
- }
+// func testCacheRplInitCfg(t *testing.T) {
+// var err error
+// dspEngine1CfgPath = path.Join(*dataDir, "conf", "samples", "cache_replicate", "dispatcher_engine")
+// dspEngine1Cfg, err = config.NewCGRConfigFromPath(dspEngine1CfgPath)
+// if err != nil {
+// t.Error(err)
+// }
- dspEngine2CfgPath = path.Join(*dataDir, "conf", "samples", "cache_replicate", "dispatcher_engine2")
- dspEngine2Cfg, err = config.NewCGRConfigFromPath(dspEngine2CfgPath)
- if err != nil {
- t.Error(err)
- }
+// dspEngine2CfgPath = path.Join(*dataDir, "conf", "samples", "cache_replicate", "dispatcher_engine2")
+// dspEngine2Cfg, err = config.NewCGRConfigFromPath(dspEngine2CfgPath)
+// if err != nil {
+// t.Error(err)
+// }
- engine1CfgPath = path.Join(*dataDir, "conf", "samples", "cache_replicate", "engine1")
- engine1Cfg, err = config.NewCGRConfigFromPath(engine1CfgPath)
- if err != nil {
- t.Error(err)
- }
-}
+// engine1CfgPath = path.Join(*dataDir, "conf", "samples", "cache_replicate", "engine1")
+// engine1Cfg, err = config.NewCGRConfigFromPath(engine1CfgPath)
+// if err != nil {
+// t.Error(err)
+// }
+// }
-func testCacheRplAAInitCfg(t *testing.T) {
- var err error
- dspEngine1CfgPath = path.Join(*dataDir, "conf", "samples", "cache_rpl_active_active", "dispatcher_engine")
- dspEngine1Cfg, err = config.NewCGRConfigFromPath(dspEngine1CfgPath)
- if err != nil {
- t.Error(err)
- }
+// func testCacheRplAAInitCfg(t *testing.T) {
+// var err error
+// dspEngine1CfgPath = path.Join(*dataDir, "conf", "samples", "cache_rpl_active_active", "dispatcher_engine")
+// dspEngine1Cfg, err = config.NewCGRConfigFromPath(dspEngine1CfgPath)
+// if err != nil {
+// t.Error(err)
+// }
- dspEngine2CfgPath = path.Join(*dataDir, "conf", "samples", "cache_rpl_active_active", "dispatcher_engine2")
- dspEngine2Cfg, err = config.NewCGRConfigFromPath(dspEngine2CfgPath)
- if err != nil {
- t.Error(err)
- }
+// dspEngine2CfgPath = path.Join(*dataDir, "conf", "samples", "cache_rpl_active_active", "dispatcher_engine2")
+// dspEngine2Cfg, err = config.NewCGRConfigFromPath(dspEngine2CfgPath)
+// if err != nil {
+// t.Error(err)
+// }
- engine1CfgPath = path.Join(*dataDir, "conf", "samples", "cache_rpl_active_active", "engine1")
- engine1Cfg, err = config.NewCGRConfigFromPath(engine1CfgPath)
- if err != nil {
- t.Error(err)
- }
-}
+// engine1CfgPath = path.Join(*dataDir, "conf", "samples", "cache_rpl_active_active", "engine1")
+// engine1Cfg, err = config.NewCGRConfigFromPath(engine1CfgPath)
+// if err != nil {
+// t.Error(err)
+// }
+// }
-func testCacheRplInitDataDb(t *testing.T) {
- if err := engine.InitDataDB(dspEngine1Cfg); err != nil {
- t.Fatal(err)
- }
- if err := engine.InitDataDB(dspEngine2Cfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testCacheRplInitDataDb(t *testing.T) {
+// if err := engine.InitDataDB(dspEngine1Cfg); err != nil {
+// t.Fatal(err)
+// }
+// if err := engine.InitDataDB(dspEngine2Cfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testCacheRplStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(dspEngine1CfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
- if _, err := engine.StartEngine(dspEngine2CfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
- if _, err := engine.StartEngine(engine1CfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testCacheRplStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(dspEngine1CfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// if _, err := engine.StartEngine(dspEngine2CfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// if _, err := engine.StartEngine(engine1CfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testCacheRplRpcConn(t *testing.T) {
- var err error
- dspEngine1RPC, err = newRPCClient(dspEngine1Cfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
- dspEngine2RPC, err = newRPCClient(dspEngine2Cfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
- engine1RPC, err = newRPCClient(engine1Cfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testCacheRplRpcConn(t *testing.T) {
+// var err error
+// dspEngine1RPC, err = newRPCClient(dspEngine1Cfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// dspEngine2RPC, err = newRPCClient(dspEngine2Cfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// engine1RPC, err = newRPCClient(engine1Cfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testCacheRplAddData(t *testing.T) {
- wchan := make(chan struct{}, 1)
- go func() {
- loaderPath, err := exec.LookPath("cgr-loader")
- if err != nil {
- t.Error(err)
- }
- loader := exec.Command(loaderPath, "-config_path", dspEngine1CfgPath, "-path",
- path.Join(*dataDir, "tariffplans", "cache_replications", "dispatcher_engine"))
+// func testCacheRplAddData(t *testing.T) {
+// wchan := make(chan struct{}, 1)
+// go func() {
+// loaderPath, err := exec.LookPath("cgr-loader")
+// if err != nil {
+// t.Error(err)
+// }
+// loader := exec.Command(loaderPath, "-config_path", dspEngine1CfgPath, "-path",
+// path.Join(*dataDir, "tariffplans", "cache_replications", "dispatcher_engine"))
- if err := loader.Start(); err != nil {
- t.Error(err)
- }
- loader.Wait()
- wchan <- struct{}{}
- }()
- select {
- case <-wchan:
- case <-time.After(2 * time.Second):
- t.Errorf("cgr-loader failed: ")
- }
+// if err := loader.Start(); err != nil {
+// t.Error(err)
+// }
+// loader.Wait()
+// wchan <- struct{}{}
+// }()
+// select {
+// case <-wchan:
+// case <-time.After(2 * time.Second):
+// t.Errorf("cgr-loader failed: ")
+// }
- go func() {
- loaderPath, err := exec.LookPath("cgr-loader")
- if err != nil {
- t.Error(err)
- }
- loader := exec.Command(loaderPath, "-config_path", dspEngine2CfgPath, "-path",
- path.Join(*dataDir, "tariffplans", "cache_replications", "dispatcher_engine2"))
+// go func() {
+// loaderPath, err := exec.LookPath("cgr-loader")
+// if err != nil {
+// t.Error(err)
+// }
+// loader := exec.Command(loaderPath, "-config_path", dspEngine2CfgPath, "-path",
+// path.Join(*dataDir, "tariffplans", "cache_replications", "dispatcher_engine2"))
- if err := loader.Start(); err != nil {
- t.Error(err)
- }
- loader.Wait()
- wchan <- struct{}{}
- }()
- select {
- case <-wchan:
- case <-time.After(2 * time.Second):
- t.Errorf("cgr-loader failed: ")
- }
+// if err := loader.Start(); err != nil {
+// t.Error(err)
+// }
+// loader.Wait()
+// wchan <- struct{}{}
+// }()
+// select {
+// case <-wchan:
+// case <-time.After(2 * time.Second):
+// t.Errorf("cgr-loader failed: ")
+// }
- chargerProfile := &v1.ChargerWithAPIOpts{
- ChargerProfile: &engine.ChargerProfile{
- Tenant: "cgrates.org",
- ID: "DefaultCharger",
- RunID: utils.MetaDefault,
- AttributeIDs: []string{utils.MetaNone},
- Weight: 20,
- },
- }
- var result string
- if err := engine1RPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-}
+// chargerProfile := &v1.ChargerWithAPIOpts{
+// ChargerProfile: &engine.ChargerProfile{
+// Tenant: "cgrates.org",
+// ID: "DefaultCharger",
+// RunID: utils.MetaDefault,
+// AttributeIDs: []string{utils.MetaNone},
+// Weight: 20,
+// },
+// }
+// var result string
+// if err := engine1RPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// }
-func testCacheRplAAAddData(t *testing.T) {
- wchan := make(chan struct{}, 1)
- go func() {
- loaderPath, err := exec.LookPath("cgr-loader")
- if err != nil {
- t.Error(err)
- }
- loader := exec.Command(loaderPath, "-config_path", dspEngine1CfgPath, "-path",
- path.Join(*dataDir, "tariffplans", "cache_rpl_active_active", "dispatcher_engine"))
+// func testCacheRplAAAddData(t *testing.T) {
+// wchan := make(chan struct{}, 1)
+// go func() {
+// loaderPath, err := exec.LookPath("cgr-loader")
+// if err != nil {
+// t.Error(err)
+// }
+// loader := exec.Command(loaderPath, "-config_path", dspEngine1CfgPath, "-path",
+// path.Join(*dataDir, "tariffplans", "cache_rpl_active_active", "dispatcher_engine"))
- if err := loader.Start(); err != nil {
- t.Error(err)
- }
- loader.Wait()
- wchan <- struct{}{}
- }()
- select {
- case <-wchan:
- case <-time.After(2 * time.Second):
- t.Errorf("cgr-loader failed: ")
- }
+// if err := loader.Start(); err != nil {
+// t.Error(err)
+// }
+// loader.Wait()
+// wchan <- struct{}{}
+// }()
+// select {
+// case <-wchan:
+// case <-time.After(2 * time.Second):
+// t.Errorf("cgr-loader failed: ")
+// }
- go func() {
- loaderPath, err := exec.LookPath("cgr-loader")
- if err != nil {
- t.Error(err)
- }
- loader := exec.Command(loaderPath, "-config_path", dspEngine2CfgPath, "-path",
- path.Join(*dataDir, "tariffplans", "cache_rpl_active_active", "dispatcher_engine2"))
+// go func() {
+// loaderPath, err := exec.LookPath("cgr-loader")
+// if err != nil {
+// t.Error(err)
+// }
+// loader := exec.Command(loaderPath, "-config_path", dspEngine2CfgPath, "-path",
+// path.Join(*dataDir, "tariffplans", "cache_rpl_active_active", "dispatcher_engine2"))
- if err := loader.Start(); err != nil {
- t.Error(err)
- }
- loader.Wait()
- wchan <- struct{}{}
- }()
- select {
- case <-wchan:
- case <-time.After(2 * time.Second):
- t.Errorf("cgr-loader failed: ")
- }
+// if err := loader.Start(); err != nil {
+// t.Error(err)
+// }
+// loader.Wait()
+// wchan <- struct{}{}
+// }()
+// select {
+// case <-wchan:
+// case <-time.After(2 * time.Second):
+// t.Errorf("cgr-loader failed: ")
+// }
- chargerProfile := &v1.ChargerWithAPIOpts{
- ChargerProfile: &engine.ChargerProfile{
- Tenant: "cgrates.org",
- ID: "DefaultCharger",
- RunID: utils.MetaDefault,
- AttributeIDs: []string{utils.MetaNone},
- Weight: 20,
- },
- }
- var result string
- if err := engine1RPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-}
+// chargerProfile := &v1.ChargerWithAPIOpts{
+// ChargerProfile: &engine.ChargerProfile{
+// Tenant: "cgrates.org",
+// ID: "DefaultCharger",
+// RunID: utils.MetaDefault,
+// AttributeIDs: []string{utils.MetaNone},
+// Weight: 20,
+// },
+// }
+// var result string
+// if err := engine1RPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// }
-func testCacheRplPing(t *testing.T) {
- var reply map[string]interface{}
- ev := utils.TenantWithAPIOpts{
- Tenant: "cgrates.org",
- APIOpts: map[string]interface{}{
- utils.OptsRouteID: "testRoute123",
- },
- }
- if err := dspEngine1RPC.Call(utils.CoreSv1Status, &ev, &reply); err != nil {
- t.Error(err)
- } else if reply[utils.NodeID] != "Engine1" {
- t.Errorf("Received: %s", utils.ToJSON(reply))
- }
+// func testCacheRplPing(t *testing.T) {
+// var reply map[string]interface{}
+// ev := utils.TenantWithAPIOpts{
+// Tenant: "cgrates.org",
+// APIOpts: map[string]interface{}{
+// utils.OptsRouteID: "testRoute123",
+// },
+// }
+// if err := dspEngine1RPC.Call(utils.CoreSv1Status, &ev, &reply); err != nil {
+// t.Error(err)
+// } else if reply[utils.NodeID] != "Engine1" {
+// t.Errorf("Received: %s", utils.ToJSON(reply))
+// }
- var rpl string
- if err := dspEngine1RPC.Call(utils.AttributeSv1Ping, &utils.CGREvent{
- Tenant: "cgrates.org",
+// var rpl string
+// if err := dspEngine1RPC.Call(utils.AttributeSv1Ping, &utils.CGREvent{
+// Tenant: "cgrates.org",
- APIOpts: map[string]interface{}{
- utils.OptsRouteID: "testRoute123",
- },
- }, &rpl); err != nil {
- t.Error(err)
- } else if rpl != utils.Pong {
- t.Errorf("Received: %s", rpl)
- }
-}
+// APIOpts: map[string]interface{}{
+// utils.OptsRouteID: "testRoute123",
+// },
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if rpl != utils.Pong {
+// t.Errorf("Received: %s", rpl)
+// }
+// }
-func testCacheRplCheckReplication(t *testing.T) {
- var reply map[string]interface{}
- ev := utils.TenantWithAPIOpts{
- Tenant: "cgrates.org",
- }
- if err := dspEngine2RPC.Call(utils.CoreSv1Status, &ev, &reply); err != nil {
- t.Error(err)
- } else if reply[utils.NodeID] != "DispatcherEngine2" {
- t.Errorf("Received: %s", utils.ToJSON(reply))
- }
- var rcvKeys []string
- expKeys := []string{"testRoute123:*core", "testRoute123:*attributes"}
- argsAPI := utils.ArgsGetCacheItemIDsWithAPIOpts{
- Tenant: "cgrates.org",
- ArgsGetCacheItemIDs: utils.ArgsGetCacheItemIDs{
- CacheID: utils.CacheDispatcherRoutes,
- },
- }
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
- t.Error(err.Error())
- }
- sort.Strings(rcvKeys)
- sort.Strings(expKeys)
- if !reflect.DeepEqual(expKeys, rcvKeys) {
- t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
- }
+// func testCacheRplCheckReplication(t *testing.T) {
+// var reply map[string]interface{}
+// ev := utils.TenantWithAPIOpts{
+// Tenant: "cgrates.org",
+// }
+// if err := dspEngine2RPC.Call(utils.CoreSv1Status, &ev, &reply); err != nil {
+// t.Error(err)
+// } else if reply[utils.NodeID] != "DispatcherEngine2" {
+// t.Errorf("Received: %s", utils.ToJSON(reply))
+// }
+// var rcvKeys []string
+// expKeys := []string{"testRoute123:*core", "testRoute123:*attributes"}
+// argsAPI := utils.ArgsGetCacheItemIDsWithAPIOpts{
+// Tenant: "cgrates.org",
+// ArgsGetCacheItemIDs: utils.ArgsGetCacheItemIDs{
+// CacheID: utils.CacheDispatcherRoutes,
+// },
+// }
+// if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+// t.Error(err.Error())
+// }
+// sort.Strings(rcvKeys)
+// sort.Strings(expKeys)
+// if !reflect.DeepEqual(expKeys, rcvKeys) {
+// t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
+// }
- var rpl string
- if err := dspEngine2RPC.Call(utils.AttributeSv1Ping, &utils.CGREvent{
- Tenant: "cgrates.org",
+// var rpl string
+// if err := dspEngine2RPC.Call(utils.AttributeSv1Ping, &utils.CGREvent{
+// Tenant: "cgrates.org",
- APIOpts: map[string]interface{}{
- utils.OptsRouteID: "testRoute123",
- },
- }, &rpl); err != nil {
- t.Error(err)
- } else if rpl != utils.Pong {
- t.Errorf("Received: %s", rpl)
- }
-}
+// APIOpts: map[string]interface{}{
+// utils.OptsRouteID: "testRoute123",
+// },
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if rpl != utils.Pong {
+// t.Errorf("Received: %s", rpl)
+// }
+// }
-func testCacheRplAACheckReplication(t *testing.T) {
- var rcvKeys []string
- argsAPI := utils.ArgsGetCacheItemIDsWithAPIOpts{
- Tenant: "cgrates.org",
- ArgsGetCacheItemIDs: utils.ArgsGetCacheItemIDs{
- CacheID: utils.CacheDispatcherRoutes,
- },
- }
- if err := dspEngine1RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
+// func testCacheRplAACheckReplication(t *testing.T) {
+// var rcvKeys []string
+// argsAPI := utils.ArgsGetCacheItemIDsWithAPIOpts{
+// Tenant: "cgrates.org",
+// ArgsGetCacheItemIDs: utils.ArgsGetCacheItemIDs{
+// CacheID: utils.CacheDispatcherRoutes,
+// },
+// }
+// if err := dspEngine1RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
- var rpl string
- if err := dspEngine2RPC.Call(utils.AttributeSv1Ping, &utils.CGREvent{
- Tenant: "cgrates.org",
+// var rpl string
+// if err := dspEngine2RPC.Call(utils.AttributeSv1Ping, &utils.CGREvent{
+// Tenant: "cgrates.org",
- APIOpts: map[string]interface{}{
- utils.OptsRouteID: "testRouteFromDispatcher2",
- },
- }, &rpl); err != nil {
- t.Error(err)
- } else if rpl != utils.Pong {
- t.Errorf("Received: %s", rpl)
- }
+// APIOpts: map[string]interface{}{
+// utils.OptsRouteID: "testRouteFromDispatcher2",
+// },
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if rpl != utils.Pong {
+// t.Errorf("Received: %s", rpl)
+// }
- if err := dspEngine1RPC.Call(utils.AttributeSv1Ping, &utils.CGREvent{
- Tenant: "cgrates.org",
- APIOpts: map[string]interface{}{
- utils.OptsRouteID: "testRouteFromDispatcher1",
- },
- }, &rpl); err != nil {
- t.Error(err)
- } else if rpl != utils.Pong {
- t.Errorf("Received: %s", rpl)
- }
+// if err := dspEngine1RPC.Call(utils.AttributeSv1Ping, &utils.CGREvent{
+// Tenant: "cgrates.org",
+// APIOpts: map[string]interface{}{
+// utils.OptsRouteID: "testRouteFromDispatcher1",
+// },
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if rpl != utils.Pong {
+// t.Errorf("Received: %s", rpl)
+// }
- expKeys := []string{"testRouteFromDispatcher2:*attributes", "testRouteFromDispatcher1:*attributes"}
+// expKeys := []string{"testRouteFromDispatcher2:*attributes", "testRouteFromDispatcher1:*attributes"}
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
- t.Error(err.Error())
- }
- sort.Strings(rcvKeys)
- sort.Strings(expKeys)
- if !reflect.DeepEqual(expKeys, rcvKeys) {
- t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
- }
+// if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+// t.Error(err.Error())
+// }
+// sort.Strings(rcvKeys)
+// sort.Strings(expKeys)
+// if !reflect.DeepEqual(expKeys, rcvKeys) {
+// t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
+// }
- if err := dspEngine1RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
- t.Error(err.Error())
- }
- sort.Strings(rcvKeys)
- sort.Strings(expKeys)
- if !reflect.DeepEqual(expKeys, rcvKeys) {
- t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
- }
+// if err := dspEngine1RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+// t.Error(err.Error())
+// }
+// sort.Strings(rcvKeys)
+// sort.Strings(expKeys)
+// if !reflect.DeepEqual(expKeys, rcvKeys) {
+// t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
+// }
-}
+// }
-func testCacheRplAACheckLoadReplication(t *testing.T) {
- var rcvKeys []string
- argsAPI := utils.ArgsGetCacheItemIDsWithAPIOpts{
- Tenant: "cgrates.org",
- ArgsGetCacheItemIDs: utils.ArgsGetCacheItemIDs{
- CacheID: utils.CacheDispatcherLoads,
- },
- }
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
- if err := dspEngine1RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
+// func testCacheRplAACheckLoadReplication(t *testing.T) {
+// var rcvKeys []string
+// argsAPI := utils.ArgsGetCacheItemIDsWithAPIOpts{
+// Tenant: "cgrates.org",
+// ArgsGetCacheItemIDs: utils.ArgsGetCacheItemIDs{
+// CacheID: utils.CacheDispatcherLoads,
+// },
+// }
+// if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// if err := dspEngine1RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
- var wgDisp1 sync.WaitGroup
- var wgDisp2 sync.WaitGroup
- for i := 0; i < 10; i++ {
- wgDisp1.Add(1)
- wgDisp2.Add(1)
- go func() {
- var rpl []*engine.ChrgSProcessEventReply
- if err := dspEngine1RPC.Call(utils.ChargerSv1ProcessEvent, &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testCacheRplAACheckLoadReplication",
- Event: map[string]interface{}{
- utils.AccountField: "1007",
- utils.Destination: "+491511231234",
- "EventName": "TestLoad",
- },
+// var wgDisp1 sync.WaitGroup
+// var wgDisp2 sync.WaitGroup
+// for i := 0; i < 10; i++ {
+// wgDisp1.Add(1)
+// wgDisp2.Add(1)
+// go func() {
+// var rpl []*engine.ChrgSProcessEventReply
+// if err := dspEngine1RPC.Call(utils.ChargerSv1ProcessEvent, &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testCacheRplAACheckLoadReplication",
+// Event: map[string]interface{}{
+// utils.AccountField: "1007",
+// utils.Destination: "+491511231234",
+// "EventName": "TestLoad",
+// },
- APIOpts: map[string]interface{}{
- utils.OptsRouteID: "testRouteFromDispatcher1",
- },
- }, &rpl); err != nil {
- t.Error(err)
- } else if rpl[0].ChargerSProfile != "DefaultCharger" {
- t.Errorf("Received: %+v", utils.ToJSON(rpl))
- }
- wgDisp1.Done()
- }()
- go func() {
- var rpl []*engine.ChrgSProcessEventReply
- if err := dspEngine2RPC.Call(utils.ChargerSv1ProcessEvent, &utils.CGREvent{
+// APIOpts: map[string]interface{}{
+// utils.OptsRouteID: "testRouteFromDispatcher1",
+// },
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if rpl[0].ChargerSProfile != "DefaultCharger" {
+// t.Errorf("Received: %+v", utils.ToJSON(rpl))
+// }
+// wgDisp1.Done()
+// }()
+// go func() {
+// var rpl []*engine.ChrgSProcessEventReply
+// if err := dspEngine2RPC.Call(utils.ChargerSv1ProcessEvent, &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testCacheRplAACheckLoadReplication",
- Event: map[string]interface{}{
- utils.AccountField: "1007",
- utils.Destination: "+491511231234",
- "EventName": "TestLoad",
- },
+// Tenant: "cgrates.org",
+// ID: "testCacheRplAACheckLoadReplication",
+// Event: map[string]interface{}{
+// utils.AccountField: "1007",
+// utils.Destination: "+491511231234",
+// "EventName": "TestLoad",
+// },
- APIOpts: map[string]interface{}{
- utils.OptsRouteID: "testRouteFromDispatcher2",
- },
- }, &rpl); err != nil {
- t.Error(err)
- } else if rpl[0].ChargerSProfile != "DefaultCharger" {
- t.Errorf("Received: %+v", utils.ToJSON(rpl))
- }
- wgDisp2.Done()
- }()
- }
- wgDisp1.Wait()
- wgDisp2.Wait()
- expKeys := []string{"testRouteFromDispatcher1:*attributes",
- "testRouteFromDispatcher1:*chargers", "testRouteFromDispatcher2:*attributes",
- "testRouteFromDispatcher2:*chargers"}
- argsAPI = utils.ArgsGetCacheItemIDsWithAPIOpts{
- Tenant: "cgrates.org",
- ArgsGetCacheItemIDs: utils.ArgsGetCacheItemIDs{
- CacheID: utils.CacheDispatcherRoutes,
- },
- }
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
- t.Error(err.Error())
- }
- sort.Strings(rcvKeys)
- sort.Strings(expKeys)
- if !reflect.DeepEqual(expKeys, rcvKeys) {
- t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
- }
- if err := dspEngine1RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
- t.Error(err.Error())
- }
- sort.Strings(rcvKeys)
- sort.Strings(expKeys)
- if !reflect.DeepEqual(expKeys, rcvKeys) {
- t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
- }
+// APIOpts: map[string]interface{}{
+// utils.OptsRouteID: "testRouteFromDispatcher2",
+// },
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if rpl[0].ChargerSProfile != "DefaultCharger" {
+// t.Errorf("Received: %+v", utils.ToJSON(rpl))
+// }
+// wgDisp2.Done()
+// }()
+// }
+// wgDisp1.Wait()
+// wgDisp2.Wait()
+// expKeys := []string{"testRouteFromDispatcher1:*attributes",
+// "testRouteFromDispatcher1:*chargers", "testRouteFromDispatcher2:*attributes",
+// "testRouteFromDispatcher2:*chargers"}
+// argsAPI = utils.ArgsGetCacheItemIDsWithAPIOpts{
+// Tenant: "cgrates.org",
+// ArgsGetCacheItemIDs: utils.ArgsGetCacheItemIDs{
+// CacheID: utils.CacheDispatcherRoutes,
+// },
+// }
+// if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+// t.Error(err.Error())
+// }
+// sort.Strings(rcvKeys)
+// sort.Strings(expKeys)
+// if !reflect.DeepEqual(expKeys, rcvKeys) {
+// t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
+// }
+// if err := dspEngine1RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+// t.Error(err.Error())
+// }
+// sort.Strings(rcvKeys)
+// sort.Strings(expKeys)
+// if !reflect.DeepEqual(expKeys, rcvKeys) {
+// t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
+// }
- expKeys = []string{"cgrates.org:Engine2"}
- argsAPI = utils.ArgsGetCacheItemIDsWithAPIOpts{
- Tenant: "cgrates.org",
- ArgsGetCacheItemIDs: utils.ArgsGetCacheItemIDs{
- CacheID: utils.CacheDispatcherLoads,
- },
- }
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
- t.Error(err.Error())
- }
- sort.Strings(rcvKeys)
- sort.Strings(expKeys)
- if !reflect.DeepEqual(expKeys, rcvKeys) {
- t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
- }
- if err := dspEngine1RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
- t.Error(err.Error())
- }
- sort.Strings(rcvKeys)
- sort.Strings(expKeys)
- if !reflect.DeepEqual(expKeys, rcvKeys) {
- t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
- }
-}
+// expKeys = []string{"cgrates.org:Engine2"}
+// argsAPI = utils.ArgsGetCacheItemIDsWithAPIOpts{
+// Tenant: "cgrates.org",
+// ArgsGetCacheItemIDs: utils.ArgsGetCacheItemIDs{
+// CacheID: utils.CacheDispatcherLoads,
+// },
+// }
+// if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+// t.Error(err.Error())
+// }
+// sort.Strings(rcvKeys)
+// sort.Strings(expKeys)
+// if !reflect.DeepEqual(expKeys, rcvKeys) {
+// t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
+// }
+// if err := dspEngine1RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+// t.Error(err.Error())
+// }
+// sort.Strings(rcvKeys)
+// sort.Strings(expKeys)
+// if !reflect.DeepEqual(expKeys, rcvKeys) {
+// t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
+// }
+// }
-func testCacheRplCheckLoadReplication(t *testing.T) {
- var rcvKeys []string
- argsAPI := utils.ArgsGetCacheItemIDsWithAPIOpts{
- Tenant: "cgrates.org",
- ArgsGetCacheItemIDs: utils.ArgsGetCacheItemIDs{
- CacheID: utils.CacheDispatcherLoads,
- },
- }
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
+// func testCacheRplCheckLoadReplication(t *testing.T) {
+// var rcvKeys []string
+// argsAPI := utils.ArgsGetCacheItemIDsWithAPIOpts{
+// Tenant: "cgrates.org",
+// ArgsGetCacheItemIDs: utils.ArgsGetCacheItemIDs{
+// CacheID: utils.CacheDispatcherLoads,
+// },
+// }
+// if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
- var rpl []*engine.ChrgSProcessEventReply
- var wg sync.WaitGroup
- for i := 0; i < 10; i++ {
- wg.Add(1)
- go func() {
- if err := dspEngine1RPC.Call(utils.ChargerSv1ProcessEvent, &utils.CGREvent{
+// var rpl []*engine.ChrgSProcessEventReply
+// var wg sync.WaitGroup
+// for i := 0; i < 10; i++ {
+// wg.Add(1)
+// go func() {
+// if err := dspEngine1RPC.Call(utils.ChargerSv1ProcessEvent, &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testCacheRplCheckLoadReplication",
- Event: map[string]interface{}{
- utils.AccountField: "1007",
- utils.Destination: "+491511231234",
- "EventName": "TestLoad",
- },
+// Tenant: "cgrates.org",
+// ID: "testCacheRplCheckLoadReplication",
+// Event: map[string]interface{}{
+// utils.AccountField: "1007",
+// utils.Destination: "+491511231234",
+// "EventName": "TestLoad",
+// },
- APIOpts: map[string]interface{}{
- utils.OptsRouteID: "testRoute123",
- },
- }, &rpl); err != nil {
- t.Error(err)
- } else if rpl[0].ChargerSProfile != "DefaultCharger" {
- t.Errorf("Received: %+v", utils.ToJSON(rpl))
- }
- wg.Done()
- }()
- }
- wg.Wait()
- expKeys := []string{"testRoute123:*core", "testRoute123:*attributes", "testRoute123:*chargers"}
- argsAPI = utils.ArgsGetCacheItemIDsWithAPIOpts{
- Tenant: "cgrates.org",
- ArgsGetCacheItemIDs: utils.ArgsGetCacheItemIDs{
- CacheID: utils.CacheDispatcherRoutes,
- },
- }
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
- t.Error(err.Error())
- }
- sort.Strings(rcvKeys)
- sort.Strings(expKeys)
- if !reflect.DeepEqual(expKeys, rcvKeys) {
- t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
- }
+// APIOpts: map[string]interface{}{
+// utils.OptsRouteID: "testRoute123",
+// },
+// }, &rpl); err != nil {
+// t.Error(err)
+// } else if rpl[0].ChargerSProfile != "DefaultCharger" {
+// t.Errorf("Received: %+v", utils.ToJSON(rpl))
+// }
+// wg.Done()
+// }()
+// }
+// wg.Wait()
+// expKeys := []string{"testRoute123:*core", "testRoute123:*attributes", "testRoute123:*chargers"}
+// argsAPI = utils.ArgsGetCacheItemIDsWithAPIOpts{
+// Tenant: "cgrates.org",
+// ArgsGetCacheItemIDs: utils.ArgsGetCacheItemIDs{
+// CacheID: utils.CacheDispatcherRoutes,
+// },
+// }
+// if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+// t.Error(err.Error())
+// }
+// sort.Strings(rcvKeys)
+// sort.Strings(expKeys)
+// if !reflect.DeepEqual(expKeys, rcvKeys) {
+// t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
+// }
- expKeys = []string{"cgrates.org:Engine2"}
- argsAPI = utils.ArgsGetCacheItemIDsWithAPIOpts{
- Tenant: "cgrates.org",
- ArgsGetCacheItemIDs: utils.ArgsGetCacheItemIDs{
- CacheID: utils.CacheDispatcherLoads,
- },
- }
- if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
- t.Error(err.Error())
- }
- sort.Strings(rcvKeys)
- sort.Strings(expKeys)
- if !reflect.DeepEqual(expKeys, rcvKeys) {
- t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
- }
+// expKeys = []string{"cgrates.org:Engine2"}
+// argsAPI = utils.ArgsGetCacheItemIDsWithAPIOpts{
+// Tenant: "cgrates.org",
+// ArgsGetCacheItemIDs: utils.ArgsGetCacheItemIDs{
+// CacheID: utils.CacheDispatcherLoads,
+// },
+// }
+// if err := dspEngine2RPC.Call(utils.CacheSv1GetItemIDs, argsAPI, &rcvKeys); err != nil {
+// t.Error(err.Error())
+// }
+// sort.Strings(rcvKeys)
+// sort.Strings(expKeys)
+// if !reflect.DeepEqual(expKeys, rcvKeys) {
+// t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
+// }
-}
+// }
-func testCacheRplStopEngine(t *testing.T) {
- if err := engine.KillEngine(*waitRater); err != nil {
- t.Error(err)
- }
-}
+// func testCacheRplStopEngine(t *testing.T) {
+// if err := engine.KillEngine(*waitRater); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/cdrs_internal_it_test.go b/general_tests/cdrs_internal_it_test.go
index 64032da47..46c09ae2d 100644
--- a/general_tests/cdrs_internal_it_test.go
+++ b/general_tests/cdrs_internal_it_test.go
@@ -21,115 +21,115 @@ along with this program. If not, see
package general_tests
-import (
- "path"
- "testing"
- "time"
+// import (
+// "path"
+// "testing"
+// "time"
- "github.com/cgrates/birpc"
- "github.com/cgrates/birpc/context"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/birpc"
+// "github.com/cgrates/birpc/context"
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- cdrsIntCfgPath string
- cdrsIntCfgDIR string
- cdrsIntCfg *config.CGRConfig
- cdrsIntRPC *birpc.Client
+// var (
+// cdrsIntCfgPath string
+// cdrsIntCfgDIR string
+// cdrsIntCfg *config.CGRConfig
+// cdrsIntRPC *birpc.Client
- sTestsCdrsInt = []func(t *testing.T){
- testCdrsIntInitCfg,
- testCdrsIntStartEngine,
- testCdrsIntRpcConn,
- testCdrsIntTestTTL,
- testCdrsIntStopEngine,
- }
-)
+// sTestsCdrsInt = []func(t *testing.T){
+// testCdrsIntInitCfg,
+// testCdrsIntStartEngine,
+// testCdrsIntRpcConn,
+// testCdrsIntTestTTL,
+// testCdrsIntStopEngine,
+// }
+// )
-// This test is valid only for internal
-// to test the ttl for cdrs
-func TestCdrsIntIT(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- cdrsIntCfgDIR = "internal_ttl_internal"
- case utils.MetaMySQL:
- t.SkipNow()
- case utils.MetaMongo:
- t.SkipNow()
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sTestsCdrsInt {
- t.Run(cdrsIntCfgDIR, stest)
- }
-}
+// // This test is valid only for internal
+// // to test the ttl for cdrs
+// func TestCdrsIntIT(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// cdrsIntCfgDIR = "internal_ttl_internal"
+// case utils.MetaMySQL:
+// t.SkipNow()
+// case utils.MetaMongo:
+// t.SkipNow()
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sTestsCdrsInt {
+// t.Run(cdrsIntCfgDIR, stest)
+// }
+// }
-func testCdrsIntInitCfg(t *testing.T) {
- var err error
- cdrsIntCfgPath = path.Join(*dataDir, "conf", "samples", cdrsIntCfgDIR)
- cdrsIntCfg, err = config.NewCGRConfigFromPath(context.Background(), cdrsIntCfgPath)
- if err != nil {
- t.Error(err)
- }
-}
+// func testCdrsIntInitCfg(t *testing.T) {
+// var err error
+// cdrsIntCfgPath = path.Join(*dataDir, "conf", "samples", cdrsIntCfgDIR)
+// cdrsIntCfg, err = config.NewCGRConfigFromPath(context.Background(), cdrsIntCfgPath)
+// if err != nil {
+// t.Error(err)
+// }
+// }
-func testCdrsIntStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(cdrsIntCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testCdrsIntStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(cdrsIntCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testCdrsIntRpcConn(t *testing.T) {
- var err error
- cdrsIntRPC, err = newRPCClient(cdrsIntCfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testCdrsIntRpcConn(t *testing.T) {
+// var err error
+// cdrsIntRPC, err = newRPCClient(cdrsIntCfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testCdrsIntTestTTL(t *testing.T) {
- args := &utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.OriginID: "testCdrsIntTestTTL",
- utils.OriginHost: "192.168.1.1",
- utils.Source: "testCdrsIntTestTTL",
- utils.RequestType: utils.MetaNone,
- utils.Category: "call",
- utils.AccountField: "testCdrsIntTestTTL",
- utils.Subject: "ANY2CNT2",
- utils.Destination: "+4986517174963",
- utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
- utils.Usage: time.Minute,
- },
- APIOpts: map[string]interface{}{utils.OptsCDRsStore: true},
- }
+// func testCdrsIntTestTTL(t *testing.T) {
+// args := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.OriginID: "testCdrsIntTestTTL",
+// utils.OriginHost: "192.168.1.1",
+// utils.Source: "testCdrsIntTestTTL",
+// utils.RequestType: utils.MetaNone,
+// utils.Category: "call",
+// utils.AccountField: "testCdrsIntTestTTL",
+// utils.Subject: "ANY2CNT2",
+// utils.Destination: "+4986517174963",
+// utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
+// utils.Usage: time.Minute,
+// },
+// APIOpts: map[string]interface{}{utils.OptsCDRsStore: true},
+// }
- var reply string
- if err := cdrsIntRPC.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
- var cdrs []*engine.ExternalCDR
- if err := cdrsIntRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{}, &cdrs); err != nil {
- t.Fatal("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Errorf("Expected 1 result received %v ", len(cdrs))
- }
- time.Sleep(time.Second + 50*time.Millisecond)
- if err := cdrsIntRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{}, &cdrs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatal("Unexpected error: ", err)
- }
-}
+// var reply string
+// if err := cdrsIntRPC.Call(context.Background(), utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// var cdrs []*engine.ExternalCDR
+// if err := cdrsIntRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{}, &cdrs); err != nil {
+// t.Fatal("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Errorf("Expected 1 result received %v ", len(cdrs))
+// }
+// time.Sleep(time.Second + 50*time.Millisecond)
+// if err := cdrsIntRPC.Call(utils.APIerSv2GetCDRs, &utils.RPCCDRsFilter{}, &cdrs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatal("Unexpected error: ", err)
+// }
+// }
-func testCdrsIntStopEngine(t *testing.T) {
- if err := engine.KillEngine(*waitRater); err != nil {
- t.Error(err)
- }
-}
+// func testCdrsIntStopEngine(t *testing.T) {
+// if err := engine.KillEngine(*waitRater); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/cdrs_it_test.go b/general_tests/cdrs_it_test.go
index dac8a0e1f..a88e7a0bd 100644
--- a/general_tests/cdrs_it_test.go
+++ b/general_tests/cdrs_it_test.go
@@ -21,722 +21,722 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "path"
- "reflect"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "reflect"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- cdrsCfgPath string
- cdrsCfg *config.CGRConfig
- cdrsRpc *rpc.Client
- cdrsConfDIR string // run the tests for specific configuration
+// var (
+// cdrsCfgPath string
+// cdrsCfg *config.CGRConfig
+// cdrsRpc *rpc.Client
+// cdrsConfDIR string // run the tests for specific configuration
- // subtests to be executed for each confDIR
- sTestsCDRsIT = []func(t *testing.T){
- testV2CDRsInitConfig,
- testV2CDRsInitDataDb,
- testV2CDRsInitCdrDb,
- testV2CDRsStartEngine,
- testV2CDRsRpcConn,
- testV2CDRsLoadTariffPlanFromFolder,
- //default process
- testV2CDRsProcessCDR,
- testV2CDRsGetCdrs,
- //custom process
- testV2CDRsProcessCDR2,
- testV2CDRsGetCdrs2,
- testV2CDRsProcessCDR3,
- testV2CDRsGetCdrs3,
+// // subtests to be executed for each confDIR
+// sTestsCDRsIT = []func(t *testing.T){
+// testV2CDRsInitConfig,
+// testV2CDRsInitDataDb,
+// testV2CDRsInitCdrDb,
+// testV2CDRsStartEngine,
+// testV2CDRsRpcConn,
+// testV2CDRsLoadTariffPlanFromFolder,
+// //default process
+// testV2CDRsProcessCDR,
+// testV2CDRsGetCdrs,
+// //custom process
+// testV2CDRsProcessCDR2,
+// testV2CDRsGetCdrs2,
+// testV2CDRsProcessCDR3,
+// testV2CDRsGetCdrs3,
- testV2CDRsProcessCDR4,
- testV2CDRsGetCdrs4,
+// testV2CDRsProcessCDR4,
+// testV2CDRsGetCdrs4,
- testV2CDRsSetStats,
- testV2CDRsSetThresholdProfile,
+// testV2CDRsSetStats,
+// testV2CDRsSetThresholdProfile,
- testV2CDRsProcessCDR5,
- testV2CDRsGetCdrs5,
- testV2CDRsGetStats1,
- testV2CDRsGetThreshold1,
- testV2CDRsProcessCDR6,
- testV2CDRsGetCdrs5,
- testV2CDRsGetStats2,
- testV2CDRsGetThreshold2,
- testV2CDRsProcessCDR7,
- testV2CDRsGetCdrs7,
+// testV2CDRsProcessCDR5,
+// testV2CDRsGetCdrs5,
+// testV2CDRsGetStats1,
+// testV2CDRsGetThreshold1,
+// testV2CDRsProcessCDR6,
+// testV2CDRsGetCdrs5,
+// testV2CDRsGetStats2,
+// testV2CDRsGetThreshold2,
+// testV2CDRsProcessCDR7,
+// testV2CDRsGetCdrs7,
- testV2CDRsKillEngine,
- }
-)
+// testV2CDRsKillEngine,
+// }
+// )
-// Tests starting here
-func TestCDRsIT(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- cdrsConfDIR = "cdrsv2internal"
- case utils.MetaMySQL:
- cdrsConfDIR = "cdrsv2mysql"
- case utils.MetaMongo:
- cdrsConfDIR = "cdrsv2mongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
+// // Tests starting here
+// func TestCDRsIT(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// cdrsConfDIR = "cdrsv2internal"
+// case utils.MetaMySQL:
+// cdrsConfDIR = "cdrsv2mysql"
+// case utils.MetaMongo:
+// cdrsConfDIR = "cdrsv2mongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
- for _, stest := range sTestsCDRsIT {
- t.Run(cdrsConfDIR, stest)
- }
-}
+// for _, stest := range sTestsCDRsIT {
+// t.Run(cdrsConfDIR, stest)
+// }
+// }
-func testV2CDRsInitConfig(t *testing.T) {
- var err error
- cdrsCfgPath = path.Join(*dataDir, "conf", "samples", cdrsConfDIR)
- if *encoding == utils.MetaGOB {
- cdrsCfgPath = path.Join(*dataDir, "conf", "samples", cdrsConfDIR+"_gob")
- }
- if cdrsCfg, err = config.NewCGRConfigFromPath(cdrsCfgPath); err != nil {
- t.Fatal("Got config error: ", err.Error())
- }
-}
+// func testV2CDRsInitConfig(t *testing.T) {
+// var err error
+// cdrsCfgPath = path.Join(*dataDir, "conf", "samples", cdrsConfDIR)
+// if *encoding == utils.MetaGOB {
+// cdrsCfgPath = path.Join(*dataDir, "conf", "samples", cdrsConfDIR+"_gob")
+// }
+// if cdrsCfg, err = config.NewCGRConfigFromPath(cdrsCfgPath); err != nil {
+// t.Fatal("Got config error: ", err.Error())
+// }
+// }
-func testV2CDRsInitDataDb(t *testing.T) {
- if err := engine.InitDataDB(cdrsCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testV2CDRsInitDataDb(t *testing.T) {
+// if err := engine.InitDataDB(cdrsCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-// InitDb so we can rely on count
-func testV2CDRsInitCdrDb(t *testing.T) {
- if err := engine.InitStorDB(cdrsCfg); err != nil {
- t.Fatal(err)
- }
-}
+// // InitDb so we can rely on count
+// func testV2CDRsInitCdrDb(t *testing.T) {
+// if err := engine.InitStorDB(cdrsCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testV2CDRsStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(cdrsCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testV2CDRsStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(cdrsCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Connect rpc client to rater
-func testV2CDRsRpcConn(t *testing.T) {
- cdrsRpc, err = newRPCClient(cdrsCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal("Could not connect to rater: ", err.Error())
- }
-}
+// // Connect rpc client to rater
+// func testV2CDRsRpcConn(t *testing.T) {
+// cdrsRpc, err = newRPCClient(cdrsCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal("Could not connect to rater: ", err.Error())
+// }
+// }
-func testV2CDRsLoadTariffPlanFromFolder(t *testing.T) {
- var loadInst utils.LoadInstance
- if err := cdrsRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder,
- &utils.AttrLoadTpFromFolder{FolderPath: path.Join(
- *dataDir, "tariffplans", "testit")}, &loadInst); err != nil {
- t.Error(err)
- }
- time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
- var resp string
- if err := cdrsRpc.Call(utils.APIerSv1RemoveChargerProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "SupplierCharges"}, &resp); err != nil {
- t.Error(err)
- } else if resp != utils.OK {
- t.Error("Unexpected reply returned", resp)
- }
- var reply *engine.ChargerProfile
- if err := cdrsRpc.Call(utils.APIerSv1GetChargerProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "SupplierCharges"},
- &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
-}
+// func testV2CDRsLoadTariffPlanFromFolder(t *testing.T) {
+// var loadInst utils.LoadInstance
+// if err := cdrsRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder,
+// &utils.AttrLoadTpFromFolder{FolderPath: path.Join(
+// *dataDir, "tariffplans", "testit")}, &loadInst); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
+// var resp string
+// if err := cdrsRpc.Call(utils.APIerSv1RemoveChargerProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "SupplierCharges"}, &resp); err != nil {
+// t.Error(err)
+// } else if resp != utils.OK {
+// t.Error("Unexpected reply returned", resp)
+// }
+// var reply *engine.ChargerProfile
+// if err := cdrsRpc.Call(utils.APIerSv1GetChargerProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "SupplierCharges"},
+// &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// }
-func testV2CDRsProcessCDR(t *testing.T) {
- args := &utils.CGREvent{
- Flags: []string{utils.MetaRALs},
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.OriginID: "testV2CDRsProcessCDR1",
- utils.OriginHost: "192.168.1.1",
- utils.Source: "testV2CDRsProcessCDR",
- utils.RequestType: utils.MetaRated,
- utils.Category: "call",
- utils.AccountField: "testV2CDRsProcessCDR",
- utils.Subject: "ANY2CNT",
- utils.Destination: "+4986517174963",
- utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
- utils.Usage: time.Minute,
- "field_extr1": "val_extr1",
- "fieldextr2": "valextr2",
- },
- }
+// func testV2CDRsProcessCDR(t *testing.T) {
+// args := &utils.CGREvent{
+// Flags: []string{utils.MetaRALs},
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.OriginID: "testV2CDRsProcessCDR1",
+// utils.OriginHost: "192.168.1.1",
+// utils.Source: "testV2CDRsProcessCDR",
+// utils.RequestType: utils.MetaRated,
+// utils.Category: "call",
+// utils.AccountField: "testV2CDRsProcessCDR",
+// utils.Subject: "ANY2CNT",
+// utils.Destination: "+4986517174963",
+// utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
+// utils.Usage: time.Minute,
+// "field_extr1": "val_extr1",
+// "fieldextr2": "valextr2",
+// },
+// }
- var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
-}
+// var reply string
+// if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// }
-func testV2CDRsGetCdrs(t *testing.T) {
- var cdrCnt int64
- req := utils.AttrGetCdrs{}
- if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if cdrCnt != 2 {
- t.Error("Unexpected number of CDRs returned: ", cdrCnt)
- }
- var cdrs []*engine.ExternalCDR
- args := utils.RPCCDRsFilter{RunIDs: []string{"raw"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Error("Unexpected number of CDRs returned: ", len(cdrs))
- } else {
- if cdrs[0].Cost != -1.0 {
- t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
- }
- if cdrs[0].ExtraFields["PayPalAccount"] != "paypal@cgrates.org" {
- t.Errorf("PayPalAccount should be added by AttributeS, have: %s",
- cdrs[0].ExtraFields["PayPalAccount"])
- }
- }
- args = utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Error("Unexpected number of CDRs returned: ", len(cdrs))
- } else {
- if cdrs[0].Cost != 0.0198 {
- t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
- }
- if cdrs[0].ExtraFields["PayPalAccount"] != "paypal@cgrates.org" {
- t.Errorf("PayPalAccount should be added by AttributeS, have: %s",
- cdrs[0].ExtraFields["PayPalAccount"])
- }
- }
-}
+// func testV2CDRsGetCdrs(t *testing.T) {
+// var cdrCnt int64
+// req := utils.AttrGetCdrs{}
+// if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if cdrCnt != 2 {
+// t.Error("Unexpected number of CDRs returned: ", cdrCnt)
+// }
+// var cdrs []*engine.ExternalCDR
+// args := utils.RPCCDRsFilter{RunIDs: []string{"raw"}}
+// if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
+// } else {
+// if cdrs[0].Cost != -1.0 {
+// t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
+// }
+// if cdrs[0].ExtraFields["PayPalAccount"] != "paypal@cgrates.org" {
+// t.Errorf("PayPalAccount should be added by AttributeS, have: %s",
+// cdrs[0].ExtraFields["PayPalAccount"])
+// }
+// }
+// args = utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"}}
+// if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
+// } else {
+// if cdrs[0].Cost != 0.0198 {
+// t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
+// }
+// if cdrs[0].ExtraFields["PayPalAccount"] != "paypal@cgrates.org" {
+// t.Errorf("PayPalAccount should be added by AttributeS, have: %s",
+// cdrs[0].ExtraFields["PayPalAccount"])
+// }
+// }
+// }
-//Disable Attributes process
-func testV2CDRsProcessCDR2(t *testing.T) {
- args := &utils.CGREvent{
- Flags: []string{"*attributes:false", utils.MetaRALs},
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.OriginID: "testV2CDRsProcessCDR2",
- utils.OriginHost: "192.168.1.1",
- utils.Source: "testV2CDRsProcessCDR2",
- utils.RequestType: utils.MetaRated,
- utils.Category: "call",
- utils.AccountField: "testV2CDRsProcessCDR2",
- utils.Subject: "ANY2CNT",
- utils.Destination: "+4986517174963",
- utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
- utils.Usage: time.Minute,
- "field_extr1": "val_extr1",
- "fieldextr2": "valextr2",
- },
- }
+// //Disable Attributes process
+// func testV2CDRsProcessCDR2(t *testing.T) {
+// args := &utils.CGREvent{
+// Flags: []string{"*attributes:false", utils.MetaRALs},
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.OriginID: "testV2CDRsProcessCDR2",
+// utils.OriginHost: "192.168.1.1",
+// utils.Source: "testV2CDRsProcessCDR2",
+// utils.RequestType: utils.MetaRated,
+// utils.Category: "call",
+// utils.AccountField: "testV2CDRsProcessCDR2",
+// utils.Subject: "ANY2CNT",
+// utils.Destination: "+4986517174963",
+// utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
+// utils.Usage: time.Minute,
+// "field_extr1": "val_extr1",
+// "fieldextr2": "valextr2",
+// },
+// }
- var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
-}
+// var reply string
+// if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// }
-func testV2CDRsGetCdrs2(t *testing.T) {
- var cdrCnt int64
- req := utils.AttrGetCdrs{Accounts: []string{"testV2CDRsProcessCDR2"}}
- if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if cdrCnt != 2 {
- t.Error("Unexpected number of CDRs returned: ", cdrCnt)
- }
- var cdrs []*engine.ExternalCDR
- args := utils.RPCCDRsFilter{RunIDs: []string{"raw"}, OriginIDs: []string{"testV2CDRsProcessCDR2"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Error("Unexpected number of CDRs returned: ", len(cdrs))
- } else {
- if cdrs[0].Cost != -1.0 {
- t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
- }
- //we disable the connection to AttributeS and PayPalAccount shouldn't be present
- if _, has := cdrs[0].ExtraFields["PayPalAccount"]; has {
- t.Errorf("PayPalAccount should NOT be added by AttributeS, have: %s",
- cdrs[0].ExtraFields["PayPalAccount"])
- }
- }
- args = utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"}, OriginIDs: []string{"testV2CDRsProcessCDR2"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Error("Unexpected number of CDRs returned: ", len(cdrs))
- } else {
- if cdrs[0].Cost != 0.0198 {
- t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
- }
- //we disable the connection to AttributeS and PayPalAccount shouldn't be present
- if _, has := cdrs[0].ExtraFields["PayPalAccount"]; has {
- t.Errorf("PayPalAccount should NOT be added by AttributeS, have: %s",
- cdrs[0].ExtraFields["PayPalAccount"])
- }
- }
-}
+// func testV2CDRsGetCdrs2(t *testing.T) {
+// var cdrCnt int64
+// req := utils.AttrGetCdrs{Accounts: []string{"testV2CDRsProcessCDR2"}}
+// if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if cdrCnt != 2 {
+// t.Error("Unexpected number of CDRs returned: ", cdrCnt)
+// }
+// var cdrs []*engine.ExternalCDR
+// args := utils.RPCCDRsFilter{RunIDs: []string{"raw"}, OriginIDs: []string{"testV2CDRsProcessCDR2"}}
+// if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
+// } else {
+// if cdrs[0].Cost != -1.0 {
+// t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
+// }
+// //we disable the connection to AttributeS and PayPalAccount shouldn't be present
+// if _, has := cdrs[0].ExtraFields["PayPalAccount"]; has {
+// t.Errorf("PayPalAccount should NOT be added by AttributeS, have: %s",
+// cdrs[0].ExtraFields["PayPalAccount"])
+// }
+// }
+// args = utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"}, OriginIDs: []string{"testV2CDRsProcessCDR2"}}
+// if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
+// } else {
+// if cdrs[0].Cost != 0.0198 {
+// t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
+// }
+// //we disable the connection to AttributeS and PayPalAccount shouldn't be present
+// if _, has := cdrs[0].ExtraFields["PayPalAccount"]; has {
+// t.Errorf("PayPalAccount should NOT be added by AttributeS, have: %s",
+// cdrs[0].ExtraFields["PayPalAccount"])
+// }
+// }
+// }
-//Disable Attributes and Charger process
-func testV2CDRsProcessCDR3(t *testing.T) {
- args := &utils.CGREvent{
- Flags: []string{"*attributes:false", "*chargers:false"},
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.OriginID: "testV2CDRsProcessCDR3",
- utils.OriginHost: "192.168.1.1",
- utils.Source: "testV2CDRsProcessCDR3",
- utils.RequestType: utils.MetaRated,
- utils.Category: "call",
- utils.AccountField: "testV2CDRsProcessCDR3",
- utils.Subject: "ANY2CNT",
- utils.Destination: "+4986517174963",
- utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
- utils.Usage: time.Minute,
- "field_extr1": "val_extr1",
- "fieldextr2": "valextr2",
- },
- }
+// //Disable Attributes and Charger process
+// func testV2CDRsProcessCDR3(t *testing.T) {
+// args := &utils.CGREvent{
+// Flags: []string{"*attributes:false", "*chargers:false"},
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.OriginID: "testV2CDRsProcessCDR3",
+// utils.OriginHost: "192.168.1.1",
+// utils.Source: "testV2CDRsProcessCDR3",
+// utils.RequestType: utils.MetaRated,
+// utils.Category: "call",
+// utils.AccountField: "testV2CDRsProcessCDR3",
+// utils.Subject: "ANY2CNT",
+// utils.Destination: "+4986517174963",
+// utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
+// utils.Usage: time.Minute,
+// "field_extr1": "val_extr1",
+// "fieldextr2": "valextr2",
+// },
+// }
- var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
-}
+// var reply string
+// if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// }
-func testV2CDRsGetCdrs3(t *testing.T) {
- var cdrCnt int64
- req := utils.AttrGetCdrs{Accounts: []string{"testV2CDRsProcessCDR3"}}
- if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if cdrCnt != 1 {
- t.Error("Unexpected number of CDRs returned: ", cdrCnt)
- }
- var cdrs []*engine.ExternalCDR
- args := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}, OriginIDs: []string{"testV2CDRsProcessCDR3"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Error("Unexpected number of CDRs returned: ", len(cdrs))
- } else {
- if cdrs[0].Cost != -1.0 {
- t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
- }
- //we disable the connection to AttributeS and PayPalAccount shouldn't be present
- if _, has := cdrs[0].ExtraFields["PayPalAccount"]; has {
- t.Errorf("PayPalAccount should NOT be added by AttributeS, have: %s",
- cdrs[0].ExtraFields["PayPalAccount"])
- }
- }
- args = utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"}, OriginIDs: []string{"testV2CDRsProcessCDR3"}}
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Error("Unexpected error: ", err)
- }
-}
+// func testV2CDRsGetCdrs3(t *testing.T) {
+// var cdrCnt int64
+// req := utils.AttrGetCdrs{Accounts: []string{"testV2CDRsProcessCDR3"}}
+// if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if cdrCnt != 1 {
+// t.Error("Unexpected number of CDRs returned: ", cdrCnt)
+// }
+// var cdrs []*engine.ExternalCDR
+// args := utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}, OriginIDs: []string{"testV2CDRsProcessCDR3"}}
+// if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
+// } else {
+// if cdrs[0].Cost != -1.0 {
+// t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
+// }
+// //we disable the connection to AttributeS and PayPalAccount shouldn't be present
+// if _, has := cdrs[0].ExtraFields["PayPalAccount"]; has {
+// t.Errorf("PayPalAccount should NOT be added by AttributeS, have: %s",
+// cdrs[0].ExtraFields["PayPalAccount"])
+// }
+// }
+// args = utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"}, OriginIDs: []string{"testV2CDRsProcessCDR3"}}
+// if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Error("Unexpected error: ", err)
+// }
+// }
-// Enable Attributes process
-func testV2CDRsProcessCDR4(t *testing.T) {
- args := &utils.CGREvent{
- Flags: []string{utils.MetaAttributes, utils.MetaRALs},
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.OriginID: "testV2CDRsProcessCDR4",
- utils.OriginHost: "192.168.1.1",
- utils.Source: "testV2CDRsProcessCDR4",
- utils.RequestType: utils.MetaRated,
- utils.Category: "call",
- utils.AccountField: "testV2CDRsProcessCDR4",
- utils.Subject: "ANY2CNT",
- utils.Destination: "+4986517174963",
- utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
- utils.Usage: time.Minute,
- "field_extr1": "val_extr1",
- "fieldextr2": "valextr2",
- },
- }
+// // Enable Attributes process
+// func testV2CDRsProcessCDR4(t *testing.T) {
+// args := &utils.CGREvent{
+// Flags: []string{utils.MetaAttributes, utils.MetaRALs},
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.OriginID: "testV2CDRsProcessCDR4",
+// utils.OriginHost: "192.168.1.1",
+// utils.Source: "testV2CDRsProcessCDR4",
+// utils.RequestType: utils.MetaRated,
+// utils.Category: "call",
+// utils.AccountField: "testV2CDRsProcessCDR4",
+// utils.Subject: "ANY2CNT",
+// utils.Destination: "+4986517174963",
+// utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
+// utils.Usage: time.Minute,
+// "field_extr1": "val_extr1",
+// "fieldextr2": "valextr2",
+// },
+// }
- var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
-}
+// var reply string
+// if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// }
-func testV2CDRsGetCdrs4(t *testing.T) {
- var cdrCnt int64
- req := utils.AttrGetCdrs{Accounts: []string{"testV2CDRsProcessCDR4"}}
- if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if cdrCnt != 2 {
- t.Error("Unexpected number of CDRs returned: ", cdrCnt)
- }
- var cdrs []*engine.ExternalCDR
- args := utils.RPCCDRsFilter{
- RunIDs: []string{"raw"},
- OriginIDs: []string{"testV2CDRsProcessCDR4"},
- }
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
- t.Fatal("Unexpected error: ", err.Error())
- }
- if len(cdrs) != 1 {
- t.Fatal("Unexpected number of CDRs returned: ", len(cdrs))
- }
- if cdrs[0].Cost != -1.0 {
- t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
- }
- if rply, has := cdrs[0].ExtraFields["PayPalAccount"]; !has || rply != "paypal@cgrates.org" {
- t.Errorf("PayPalAccount should be added by AttributeS as: paypal@cgrates.org, have: %s",
- cdrs[0].ExtraFields["PayPalAccount"])
- }
- args = utils.RPCCDRsFilter{
- RunIDs: []string{"CustomerCharges"},
- OriginIDs: []string{"testV2CDRsProcessCDR4"},
- }
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
- t.Fatal("Unexpected error: ", err.Error())
- }
- if len(cdrs) != 1 {
- t.Fatal("Unexpected number of CDRs returned: ", len(cdrs))
- }
- if cdrs[0].Cost != 0.0198 {
- t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
- }
- if rply, has := cdrs[0].ExtraFields["PayPalAccount"]; !has || rply != "paypal@cgrates.org" {
- t.Errorf("PayPalAccount should be added by AttributeS as: paypal@cgrates.org, have: %s",
- cdrs[0].ExtraFields["PayPalAccount"])
- }
-}
+// func testV2CDRsGetCdrs4(t *testing.T) {
+// var cdrCnt int64
+// req := utils.AttrGetCdrs{Accounts: []string{"testV2CDRsProcessCDR4"}}
+// if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if cdrCnt != 2 {
+// t.Error("Unexpected number of CDRs returned: ", cdrCnt)
+// }
+// var cdrs []*engine.ExternalCDR
+// args := utils.RPCCDRsFilter{
+// RunIDs: []string{"raw"},
+// OriginIDs: []string{"testV2CDRsProcessCDR4"},
+// }
+// if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+// t.Fatal("Unexpected error: ", err.Error())
+// }
+// if len(cdrs) != 1 {
+// t.Fatal("Unexpected number of CDRs returned: ", len(cdrs))
+// }
+// if cdrs[0].Cost != -1.0 {
+// t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
+// }
+// if rply, has := cdrs[0].ExtraFields["PayPalAccount"]; !has || rply != "paypal@cgrates.org" {
+// t.Errorf("PayPalAccount should be added by AttributeS as: paypal@cgrates.org, have: %s",
+// cdrs[0].ExtraFields["PayPalAccount"])
+// }
+// args = utils.RPCCDRsFilter{
+// RunIDs: []string{"CustomerCharges"},
+// OriginIDs: []string{"testV2CDRsProcessCDR4"},
+// }
+// if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+// t.Fatal("Unexpected error: ", err.Error())
+// }
+// if len(cdrs) != 1 {
+// t.Fatal("Unexpected number of CDRs returned: ", len(cdrs))
+// }
+// if cdrs[0].Cost != 0.0198 {
+// t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
+// }
+// if rply, has := cdrs[0].ExtraFields["PayPalAccount"]; !has || rply != "paypal@cgrates.org" {
+// t.Errorf("PayPalAccount should be added by AttributeS as: paypal@cgrates.org, have: %s",
+// cdrs[0].ExtraFields["PayPalAccount"])
+// }
+// }
-func testV2CDRsGetCdrs5(t *testing.T) {
- var cdrCnt int64
- req := utils.RPCCDRsFilter{Accounts: []string{"testV2CDRsProcessCDR5"}}
- if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if cdrCnt != 0 {
- t.Error("Unexpected number of CDRs returned: ", cdrCnt)
- }
- var cdrs []*engine.ExternalCDR
- args := utils.RPCCDRsFilter{
- RunIDs: []string{"raw"},
- OriginIDs: []string{"testV2CDRsProcessCDR5"},
- }
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Fatal("Unexpected error: ", err)
- }
- args = utils.RPCCDRsFilter{
- RunIDs: []string{"CustomerCharges"},
- OriginIDs: []string{"testV2CDRsProcessCDR5"},
- }
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Fatal("Unexpected error: ", err.Error())
- }
-}
+// func testV2CDRsGetCdrs5(t *testing.T) {
+// var cdrCnt int64
+// req := utils.RPCCDRsFilter{Accounts: []string{"testV2CDRsProcessCDR5"}}
+// if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if cdrCnt != 0 {
+// t.Error("Unexpected number of CDRs returned: ", cdrCnt)
+// }
+// var cdrs []*engine.ExternalCDR
+// args := utils.RPCCDRsFilter{
+// RunIDs: []string{"raw"},
+// OriginIDs: []string{"testV2CDRsProcessCDR5"},
+// }
+// if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Fatal("Unexpected error: ", err)
+// }
+// args = utils.RPCCDRsFilter{
+// RunIDs: []string{"CustomerCharges"},
+// OriginIDs: []string{"testV2CDRsProcessCDR5"},
+// }
+// if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Fatal("Unexpected error: ", err.Error())
+// }
+// }
-func testV2CDRsSetStats(t *testing.T) {
- var reply *engine.StatQueueProfile
- if err := cdrsRpc.Call(utils.AdminSv1GetStatQueueProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "STS_PoccessCDR"}, &reply); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
- statConfig := &engine.StatQueueProfileWithAPIOpts{
- StatQueueProfile: &engine.StatQueueProfile{
- Tenant: "cgrates.org",
- ID: "STS_PoccessCDR",
- FilterIDs: []string{"*string:~*req.OriginID:testV2CDRsProcessCDR5"},
- // QueueLength: 10,
- Metrics: []*engine.MetricWithFilters{{
- MetricID: "*sum#~*req.Usage",
- }},
- ThresholdIDs: []string{utils.MetaNone},
- Blocker: true,
- Stored: true,
- Weight: 20,
- MinItems: 0,
- },
- }
- var result string
- if err := cdrsRpc.Call(utils.AdminSv1SetStatQueueProfile, statConfig, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := cdrsRpc.Call(utils.AdminSv1GetStatQueueProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "STS_PoccessCDR"}, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
- t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(statConfig.StatQueueProfile), utils.ToJSON(reply))
- }
-}
+// func testV2CDRsSetStats(t *testing.T) {
+// var reply *engine.StatQueueProfile
+// if err := cdrsRpc.Call(utils.AdminSv1GetStatQueueProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "STS_PoccessCDR"}, &reply); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// statConfig := &engine.StatQueueProfileWithAPIOpts{
+// StatQueueProfile: &engine.StatQueueProfile{
+// Tenant: "cgrates.org",
+// ID: "STS_PoccessCDR",
+// FilterIDs: []string{"*string:~*req.OriginID:testV2CDRsProcessCDR5"},
+// // QueueLength: 10,
+// Metrics: []*engine.MetricWithFilters{{
+// MetricID: "*sum#~*req.Usage",
+// }},
+// ThresholdIDs: []string{utils.MetaNone},
+// Blocker: true,
+// Stored: true,
+// Weight: 20,
+// MinItems: 0,
+// },
+// }
+// var result string
+// if err := cdrsRpc.Call(utils.AdminSv1SetStatQueueProfile, statConfig, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := cdrsRpc.Call(utils.AdminSv1GetStatQueueProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "STS_PoccessCDR"}, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
+// t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(statConfig.StatQueueProfile), utils.ToJSON(reply))
+// }
+// }
-func testV2CDRsSetThresholdProfile(t *testing.T) {
- var actreply string
+// func testV2CDRsSetThresholdProfile(t *testing.T) {
+// var actreply string
- // Set Action
- attrsAA := &utils.AttrSetActions{ActionsId: "ACT_THD_PoccessCDR", Actions: []*utils.TPAction{{Identifier: utils.MetaLog}}}
- if err := cdrsRpc.Call(utils.APIerSv2SetActions, attrsAA, &actreply); err != nil && err.Error() != utils.ErrExists.Error() {
- t.Error("Got error on APIerSv2.SetActions: ", err.Error())
- } else if actreply != utils.OK {
- t.Errorf("Calling APIerSv2.SetActions received: %s", actreply)
- }
+// // Set Action
+// attrsAA := &utils.AttrSetActions{ActionsId: "ACT_THD_PoccessCDR", Actions: []*utils.TPAction{{Identifier: utils.MetaLog}}}
+// if err := cdrsRpc.Call(utils.APIerSv2SetActions, attrsAA, &actreply); err != nil && err.Error() != utils.ErrExists.Error() {
+// t.Error("Got error on APIerSv2.SetActions: ", err.Error())
+// } else if actreply != utils.OK {
+// t.Errorf("Calling APIerSv2.SetActions received: %s", actreply)
+// }
- // Set Account
- attrsSetAccount := &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "testV2CDRsProcessCDR5"}
- if err := cdrsRpc.Call(utils.APIerSv1SetAccount, attrsSetAccount, &actreply); err != nil {
- t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
- } else if actreply != utils.OK {
- t.Errorf("Calling APIerSv1.SetAccount received: %s", actreply)
- }
+// // Set Account
+// attrsSetAccount := &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "testV2CDRsProcessCDR5"}
+// if err := cdrsRpc.Call(utils.APIerSv1SetAccount, attrsSetAccount, &actreply); err != nil {
+// t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
+// } else if actreply != utils.OK {
+// t.Errorf("Calling APIerSv1.SetAccount received: %s", actreply)
+// }
- // Set Threshold
- var reply *engine.ThresholdProfile
- var result string
- if err := cdrsRpc.Call(utils.APIerSv1GetThresholdProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "THD_PoccessCDR"}, &reply); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
- tPrfl := &engine.ThresholdProfileWithAPIOpts{
- ThresholdProfile: &engine.ThresholdProfile{
- Tenant: "cgrates.org",
- ID: "THD_PoccessCDR",
- FilterIDs: []string{"*string:~*req.OriginID:testV2CDRsProcessCDR5"},
- MaxHits: -1,
- Blocker: false,
- Weight: 20.0,
- ActionProfileIDs: []string{"ACT_THD_PoccessCDR"},
- Async: false,
- },
- }
- if err := cdrsRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := cdrsRpc.Call(utils.APIerSv1GetThresholdProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "THD_PoccessCDR"}, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
- t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, reply)
- }
-}
+// // Set Threshold
+// var reply *engine.ThresholdProfile
+// var result string
+// if err := cdrsRpc.Call(utils.APIerSv1GetThresholdProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "THD_PoccessCDR"}, &reply); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// tPrfl := &engine.ThresholdProfileWithAPIOpts{
+// ThresholdProfile: &engine.ThresholdProfile{
+// Tenant: "cgrates.org",
+// ID: "THD_PoccessCDR",
+// FilterIDs: []string{"*string:~*req.OriginID:testV2CDRsProcessCDR5"},
+// MaxHits: -1,
+// Blocker: false,
+// Weight: 20.0,
+// ActionProfileIDs: []string{"ACT_THD_PoccessCDR"},
+// Async: false,
+// },
+// }
+// if err := cdrsRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := cdrsRpc.Call(utils.APIerSv1GetThresholdProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "THD_PoccessCDR"}, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
+// t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, reply)
+// }
+// }
-func testV2CDRsProcessCDR5(t *testing.T) {
- args := &utils.CGREvent{
- Flags: []string{"*store:false", "*stats:false", "*thresholds:false"},
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.OriginID: "testV2CDRsProcessCDR5",
- utils.OriginHost: "192.168.1.1",
- utils.Source: "testV2CDRsProcessCDR5",
- utils.RequestType: utils.MetaRated,
- utils.Category: "call",
- utils.AccountField: "testV2CDRsProcessCDR5",
- utils.Subject: "ANY2CNT2",
- utils.Destination: "+4986517174963",
- utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
- utils.Usage: time.Minute,
- "field_extr1": "val_extr1",
- "fieldextr2": "valextr2",
- },
- }
+// func testV2CDRsProcessCDR5(t *testing.T) {
+// args := &utils.CGREvent{
+// Flags: []string{"*store:false", "*stats:false", "*thresholds:false"},
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.OriginID: "testV2CDRsProcessCDR5",
+// utils.OriginHost: "192.168.1.1",
+// utils.Source: "testV2CDRsProcessCDR5",
+// utils.RequestType: utils.MetaRated,
+// utils.Category: "call",
+// utils.AccountField: "testV2CDRsProcessCDR5",
+// utils.Subject: "ANY2CNT2",
+// utils.Destination: "+4986517174963",
+// utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
+// utils.Usage: time.Minute,
+// "field_extr1": "val_extr1",
+// "fieldextr2": "valextr2",
+// },
+// }
- var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
-}
+// var reply string
+// if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// }
-func testV2CDRsGetStats1(t *testing.T) {
- expectedIDs := []string{"STS_PoccessCDR"}
- var metrics map[string]string
- expectedMetrics := map[string]string{
- utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Usage: utils.NotAvailable,
- }
- if err := cdrsRpc.Call(utils.StatSv1GetQueueStringMetrics,
- &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]},
- }, &metrics); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(expectedMetrics, metrics) {
- t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
- }
-}
+// func testV2CDRsGetStats1(t *testing.T) {
+// expectedIDs := []string{"STS_PoccessCDR"}
+// var metrics map[string]string
+// expectedMetrics := map[string]string{
+// utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Usage: utils.NotAvailable,
+// }
+// if err := cdrsRpc.Call(utils.StatSv1GetQueueStringMetrics,
+// &utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]},
+// }, &metrics); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(expectedMetrics, metrics) {
+// t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
+// }
+// }
-func testV2CDRsGetThreshold1(t *testing.T) {
- expected := []string{"THD_ACNT_1001", "THD_PoccessCDR"}
- var result []string
- if err := cdrsRpc.Call(utils.APIerSv1GetThresholdProfileIDs,
- &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
- t.Error(err)
- } else if len(expected) != len(result) {
- t.Errorf("Expecting : %+v, received: %+v", expected, result)
- }
- var td engine.Threshold
- if err := cdrsRpc.Call(utils.ThresholdSv1GetThreshold,
- &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_PoccessCDR"},
- }, &td); err != nil {
- t.Error(err)
- } else if td.Hits != 0 {
- t.Errorf("received: %+v", td)
- }
-}
+// func testV2CDRsGetThreshold1(t *testing.T) {
+// expected := []string{"THD_ACNT_1001", "THD_PoccessCDR"}
+// var result []string
+// if err := cdrsRpc.Call(utils.APIerSv1GetThresholdProfileIDs,
+// &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
+// t.Error(err)
+// } else if len(expected) != len(result) {
+// t.Errorf("Expecting : %+v, received: %+v", expected, result)
+// }
+// var td engine.Threshold
+// if err := cdrsRpc.Call(utils.ThresholdSv1GetThreshold,
+// &utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_PoccessCDR"},
+// }, &td); err != nil {
+// t.Error(err)
+// } else if td.Hits != 0 {
+// t.Errorf("received: %+v", td)
+// }
+// }
-func testV2CDRsProcessCDR6(t *testing.T) {
- args := &utils.CGREvent{
- Flags: []string{"*store:false", "*stats:true", "*thresholds:true"},
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.OriginID: "testV2CDRsProcessCDR5",
- utils.OriginHost: "192.168.1.2",
- utils.Source: "testV2CDRsProcessCDR6",
- utils.RequestType: utils.MetaRated,
- utils.Category: "call",
- utils.AccountField: "testV2CDRsProcessCDR6",
- utils.Subject: "ANY2CNT",
- utils.Destination: "+4986517174963",
- utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
- utils.Usage: time.Minute,
- "field_extr1": "val_extr1",
- "fieldextr2": "valextr2",
- },
- }
+// func testV2CDRsProcessCDR6(t *testing.T) {
+// args := &utils.CGREvent{
+// Flags: []string{"*store:false", "*stats:true", "*thresholds:true"},
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.OriginID: "testV2CDRsProcessCDR5",
+// utils.OriginHost: "192.168.1.2",
+// utils.Source: "testV2CDRsProcessCDR6",
+// utils.RequestType: utils.MetaRated,
+// utils.Category: "call",
+// utils.AccountField: "testV2CDRsProcessCDR6",
+// utils.Subject: "ANY2CNT",
+// utils.Destination: "+4986517174963",
+// utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
+// utils.Usage: time.Minute,
+// "field_extr1": "val_extr1",
+// "fieldextr2": "valextr2",
+// },
+// }
- var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
-}
+// var reply string
+// if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// }
-func testV2CDRsGetStats2(t *testing.T) {
- expectedIDs := []string{"STS_PoccessCDR"}
- var metrics map[string]string
- expectedMetrics := map[string]string{
- utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Usage: "120000000000",
- }
- if err := cdrsRpc.Call(utils.StatSv1GetQueueStringMetrics,
- &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]},
- }, &metrics); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(expectedMetrics, metrics) {
- t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
- }
-}
+// func testV2CDRsGetStats2(t *testing.T) {
+// expectedIDs := []string{"STS_PoccessCDR"}
+// var metrics map[string]string
+// expectedMetrics := map[string]string{
+// utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + utils.Usage: "120000000000",
+// }
+// if err := cdrsRpc.Call(utils.StatSv1GetQueueStringMetrics,
+// &utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: expectedIDs[0]},
+// }, &metrics); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(expectedMetrics, metrics) {
+// t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
+// }
+// }
-func testV2CDRsGetThreshold2(t *testing.T) {
- var td engine.Threshold
- if err := cdrsRpc.Call(utils.ThresholdSv1GetThreshold,
- &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_PoccessCDR"},
- }, &td); err != nil {
- t.Error(err)
- } else if td.Hits != 2 { // 2 Chargers
- t.Errorf("received: %+v", td)
- }
-}
+// func testV2CDRsGetThreshold2(t *testing.T) {
+// var td engine.Threshold
+// if err := cdrsRpc.Call(utils.ThresholdSv1GetThreshold,
+// &utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_PoccessCDR"},
+// }, &td); err != nil {
+// t.Error(err)
+// } else if td.Hits != 2 { // 2 Chargers
+// t.Errorf("received: %+v", td)
+// }
+// }
-func testV2CDRsProcessCDR7(t *testing.T) {
- args := &utils.CGREvent{
- Flags: []string{utils.MetaStore, utils.MetaRALs},
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.OriginID: "testV2CDRsProcessCDR7",
- utils.OriginHost: "192.168.1.1",
- utils.Source: "testV2CDRsProcessCDR7",
- utils.RequestType: utils.MetaRated,
- utils.Category: "call",
- utils.AccountField: "testV2CDRsProcessCDR7",
- utils.Subject: "ANY2CNT",
- utils.Destination: "+4986517174963",
- utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
- utils.Usage: time.Minute,
- "field_extr1": "val_extr1",
- "fieldextr2": "valextr2",
- },
- }
+// func testV2CDRsProcessCDR7(t *testing.T) {
+// args := &utils.CGREvent{
+// Flags: []string{utils.MetaStore, utils.MetaRALs},
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.OriginID: "testV2CDRsProcessCDR7",
+// utils.OriginHost: "192.168.1.1",
+// utils.Source: "testV2CDRsProcessCDR7",
+// utils.RequestType: utils.MetaRated,
+// utils.Category: "call",
+// utils.AccountField: "testV2CDRsProcessCDR7",
+// utils.Subject: "ANY2CNT",
+// utils.Destination: "+4986517174963",
+// utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
+// utils.Usage: time.Minute,
+// "field_extr1": "val_extr1",
+// "fieldextr2": "valextr2",
+// },
+// }
- var reply string
- if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
-}
+// var reply string
+// if err := cdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// }
-func testV2CDRsGetCdrs7(t *testing.T) {
- var cdrCnt int64
- req := utils.AttrGetCdrs{Accounts: []string{"testV2CDRsProcessCDR7"}}
- if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if cdrCnt != 2 {
- t.Error("Unexpected number of CDRs returned: ", cdrCnt)
- }
- var cdrs []*engine.ExternalCDR
- args := utils.RPCCDRsFilter{
- RunIDs: []string{"raw"},
- OriginIDs: []string{"testV2CDRsProcessCDR7"},
- }
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
- t.Fatal("Unexpected error: ", err.Error())
- }
- if len(cdrs) != 1 {
- t.Fatal("Unexpected number of CDRs returned: ", len(cdrs))
- }
- if cdrs[0].Cost != -1 {
- t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
- }
- if rply, has := cdrs[0].ExtraFields["PayPalAccount"]; !has || rply != "paypal@cgrates.org" {
- t.Errorf("PayPalAccount should be added by AttributeS as: paypal@cgrates.org, have: %s",
- cdrs[0].ExtraFields["PayPalAccount"])
- }
- args = utils.RPCCDRsFilter{
- RunIDs: []string{"CustomerCharges"},
- OriginIDs: []string{"testV2CDRsProcessCDR7"},
- }
- if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
- t.Fatal("Unexpected error: ", err.Error())
- }
- if len(cdrs) != 1 {
- t.Fatal("Unexpected number of CDRs returned: ", len(cdrs))
- }
- if cdrs[0].Cost != 0.0198 {
- t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
- }
- if rply, has := cdrs[0].ExtraFields["PayPalAccount"]; !has || rply != "paypal@cgrates.org" {
- t.Errorf("PayPalAccount should be added by AttributeS as: paypal@cgrates.org, have: %s",
- cdrs[0].ExtraFields["PayPalAccount"])
- }
-}
+// func testV2CDRsGetCdrs7(t *testing.T) {
+// var cdrCnt int64
+// req := utils.AttrGetCdrs{Accounts: []string{"testV2CDRsProcessCDR7"}}
+// if err := cdrsRpc.Call(utils.APIerSv2CountCDRs, &req, &cdrCnt); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if cdrCnt != 2 {
+// t.Error("Unexpected number of CDRs returned: ", cdrCnt)
+// }
+// var cdrs []*engine.ExternalCDR
+// args := utils.RPCCDRsFilter{
+// RunIDs: []string{"raw"},
+// OriginIDs: []string{"testV2CDRsProcessCDR7"},
+// }
+// if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+// t.Fatal("Unexpected error: ", err.Error())
+// }
+// if len(cdrs) != 1 {
+// t.Fatal("Unexpected number of CDRs returned: ", len(cdrs))
+// }
+// if cdrs[0].Cost != -1 {
+// t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
+// }
+// if rply, has := cdrs[0].ExtraFields["PayPalAccount"]; !has || rply != "paypal@cgrates.org" {
+// t.Errorf("PayPalAccount should be added by AttributeS as: paypal@cgrates.org, have: %s",
+// cdrs[0].ExtraFields["PayPalAccount"])
+// }
+// args = utils.RPCCDRsFilter{
+// RunIDs: []string{"CustomerCharges"},
+// OriginIDs: []string{"testV2CDRsProcessCDR7"},
+// }
+// if err := cdrsRpc.Call(utils.APIerSv2GetCDRs, &args, &cdrs); err != nil {
+// t.Fatal("Unexpected error: ", err.Error())
+// }
+// if len(cdrs) != 1 {
+// t.Fatal("Unexpected number of CDRs returned: ", len(cdrs))
+// }
+// if cdrs[0].Cost != 0.0198 {
+// t.Errorf("Unexpected cost for CDR: %f", cdrs[0].Cost)
+// }
+// if rply, has := cdrs[0].ExtraFields["PayPalAccount"]; !has || rply != "paypal@cgrates.org" {
+// t.Errorf("PayPalAccount should be added by AttributeS as: paypal@cgrates.org, have: %s",
+// cdrs[0].ExtraFields["PayPalAccount"])
+// }
+// }
-func testV2CDRsKillEngine(t *testing.T) {
- if err := engine.KillEngine(*waitRater); err != nil {
- t.Error(err)
- }
-}
+// func testV2CDRsKillEngine(t *testing.T) {
+// if err := engine.KillEngine(*waitRater); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/cdrs_onlexp_it_test.go b/general_tests/cdrs_onlexp_it_test.go
index 343c9006d..172d556e1 100644
--- a/general_tests/cdrs_onlexp_it_test.go
+++ b/general_tests/cdrs_onlexp_it_test.go
@@ -21,503 +21,503 @@ along with this program. If not, see
package general_tests
-import (
- "encoding/json"
- "fmt"
- "net/http"
- "net/url"
- "os"
- "os/exec"
- "path"
- "reflect"
- "testing"
- "time"
+// import (
+// "encoding/json"
+// "fmt"
+// "net/http"
+// "net/url"
+// "os"
+// "os/exec"
+// "path"
+// "reflect"
+// "testing"
+// "time"
- "github.com/cgrates/birpc/context"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/ees"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
- kafka "github.com/segmentio/kafka-go"
- "github.com/streadway/amqp"
-)
+// "github.com/cgrates/birpc/context"
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/ees"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// "github.com/cgrates/rpcclient"
+// kafka "github.com/segmentio/kafka-go"
+// "github.com/streadway/amqp"
+// )
-var (
- cdrsMasterCfgPath, cdrsSlaveCfgPath string
- cdrsMasterCfgDIR, cdrsSlaveCfgDIR string
- cdrsMasterCfg, cdrsSlaveCfg *config.CGRConfig
- cdrsMasterRpc *rpcclient.RPCClient
- httpCGRID = utils.UUIDSha1Prefix()
- amqpCGRID = utils.UUIDSha1Prefix()
- failoverContent = [][]byte{[]byte(fmt.Sprintf(`{"CGRID":"%s"}`, httpCGRID)), []byte(fmt.Sprintf(`{"CGRID":"%s"}`, amqpCGRID))}
+// var (
+// cdrsMasterCfgPath, cdrsSlaveCfgPath string
+// cdrsMasterCfgDIR, cdrsSlaveCfgDIR string
+// cdrsMasterCfg, cdrsSlaveCfg *config.CGRConfig
+// cdrsMasterRpc *rpcclient.RPCClient
+// httpCGRID = utils.UUIDSha1Prefix()
+// amqpCGRID = utils.UUIDSha1Prefix()
+// failoverContent = [][]byte{[]byte(fmt.Sprintf(`{"CGRID":"%s"}`, httpCGRID)), []byte(fmt.Sprintf(`{"CGRID":"%s"}`, amqpCGRID))}
- sTestsCDRsOnExp = []func(t *testing.T){
- testCDRsOnExpInitConfig,
- testCDRsOnExpInitCdrDb,
- testCDRsOnExpStartMasterEngine,
- testCDRsOnExpStartSlaveEngine,
- testCDRsOnExpAMQPQueuesCreation,
- testCDRsOnExpInitMasterRPC,
- testCDRsOnExpLoadDefaultCharger,
- testCDRsOnExpDisableOnlineExport,
- testCDRsOnExpHttpCdrReplication,
- testCDRsOnExpAMQPReplication,
- testCDRsOnExpFileFailover,
- testCDRsOnExpKafkaPosterFileFailover,
- testCDRsOnExpStopEngine,
- }
-)
+// sTestsCDRsOnExp = []func(t *testing.T){
+// testCDRsOnExpInitConfig,
+// testCDRsOnExpInitCdrDb,
+// testCDRsOnExpStartMasterEngine,
+// testCDRsOnExpStartSlaveEngine,
+// testCDRsOnExpAMQPQueuesCreation,
+// testCDRsOnExpInitMasterRPC,
+// testCDRsOnExpLoadDefaultCharger,
+// testCDRsOnExpDisableOnlineExport,
+// testCDRsOnExpHttpCdrReplication,
+// testCDRsOnExpAMQPReplication,
+// testCDRsOnExpFileFailover,
+// testCDRsOnExpKafkaPosterFileFailover,
+// testCDRsOnExpStopEngine,
+// }
+// )
-func TestCDRsOnExp(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal, utils.MetaPostgres:
- t.SkipNow()
- case utils.MetaMySQL:
- cdrsMasterCfgDIR = "cdrsonexpmaster_mysql"
- cdrsSlaveCfgDIR = "cdrsonexpslave_mysql"
- case utils.MetaMongo:
- cdrsMasterCfgDIR = "cdrsonexpmaster_mongo"
- cdrsSlaveCfgDIR = "cdrsonexpslave_mongo"
- default:
- t.Fatal("Unknown Database type")
- }
+// func TestCDRsOnExp(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal, utils.MetaPostgres:
+// t.SkipNow()
+// case utils.MetaMySQL:
+// cdrsMasterCfgDIR = "cdrsonexpmaster_mysql"
+// cdrsSlaveCfgDIR = "cdrsonexpslave_mysql"
+// case utils.MetaMongo:
+// cdrsMasterCfgDIR = "cdrsonexpmaster_mongo"
+// cdrsSlaveCfgDIR = "cdrsonexpslave_mongo"
+// default:
+// t.Fatal("Unknown Database type")
+// }
- for _, stest := range sTestsCDRsOnExp {
- t.Run(*dbType, stest)
- }
-}
+// for _, stest := range sTestsCDRsOnExp {
+// t.Run(*dbType, stest)
+// }
+// }
-func testCDRsOnExpInitConfig(t *testing.T) {
- var err error
- cdrsMasterCfgPath = path.Join(*dataDir, "conf", "samples", cdrsMasterCfgDIR)
- if cdrsMasterCfg, err = config.NewCGRConfigFromPath(context.Background(), cdrsMasterCfgPath); err != nil {
- t.Fatal("Got config error: ", err.Error())
- }
- cdrsSlaveCfgPath = path.Join(*dataDir, "conf", "samples", cdrsSlaveCfgDIR)
- if cdrsSlaveCfg, err = config.NewCGRConfigFromPath(context.Background(), cdrsSlaveCfgPath); err != nil {
- t.Fatal("Got config error: ", err.Error())
- }
-}
+// func testCDRsOnExpInitConfig(t *testing.T) {
+// var err error
+// cdrsMasterCfgPath = path.Join(*dataDir, "conf", "samples", cdrsMasterCfgDIR)
+// if cdrsMasterCfg, err = config.NewCGRConfigFromPath(context.Background(), cdrsMasterCfgPath); err != nil {
+// t.Fatal("Got config error: ", err.Error())
+// }
+// cdrsSlaveCfgPath = path.Join(*dataDir, "conf", "samples", cdrsSlaveCfgDIR)
+// if cdrsSlaveCfg, err = config.NewCGRConfigFromPath(context.Background(), cdrsSlaveCfgPath); err != nil {
+// t.Fatal("Got config error: ", err.Error())
+// }
+// }
-// InitDb so we can rely on count
-func testCDRsOnExpInitCdrDb(t *testing.T) {
- if err := engine.InitDataDB(cdrsMasterCfg); err != nil {
- t.Fatal(err)
- }
- if err := engine.InitDataDB(cdrsSlaveCfg); err != nil {
- t.Fatal(err)
- }
- if err := engine.InitStorDB(cdrsMasterCfg); err != nil {
- t.Fatal(err)
- }
- if err := engine.InitStorDB(cdrsSlaveCfg); err != nil {
- t.Fatal(err)
- }
- if err := os.RemoveAll(cdrsMasterCfg.GeneralCfg().FailedPostsDir); err != nil {
- t.Fatal("Error removing folder: ", cdrsMasterCfg.GeneralCfg().FailedPostsDir, err)
- }
+// // InitDb so we can rely on count
+// func testCDRsOnExpInitCdrDb(t *testing.T) {
+// if err := engine.InitDataDB(cdrsMasterCfg); err != nil {
+// t.Fatal(err)
+// }
+// if err := engine.InitDataDB(cdrsSlaveCfg); err != nil {
+// t.Fatal(err)
+// }
+// if err := engine.InitStorDB(cdrsMasterCfg); err != nil {
+// t.Fatal(err)
+// }
+// if err := engine.InitStorDB(cdrsSlaveCfg); err != nil {
+// t.Fatal(err)
+// }
+// if err := os.RemoveAll(cdrsMasterCfg.GeneralCfg().FailedPostsDir); err != nil {
+// t.Fatal("Error removing folder: ", cdrsMasterCfg.GeneralCfg().FailedPostsDir, err)
+// }
- if err := os.MkdirAll(cdrsMasterCfg.GeneralCfg().FailedPostsDir, 0700); err != nil {
- t.Error(err)
- }
+// if err := os.MkdirAll(cdrsMasterCfg.GeneralCfg().FailedPostsDir, 0700); err != nil {
+// t.Error(err)
+// }
-}
+// }
-func testCDRsOnExpStartMasterEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(cdrsMasterCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testCDRsOnExpStartMasterEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(cdrsMasterCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testCDRsOnExpStartSlaveEngine(t *testing.T) {
- if _, err := engine.StartEngine(cdrsSlaveCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testCDRsOnExpStartSlaveEngine(t *testing.T) {
+// if _, err := engine.StartEngine(cdrsSlaveCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Create Queues dor amq
+// // Create Queues dor amq
-func testCDRsOnExpAMQPQueuesCreation(t *testing.T) {
- conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
- if err != nil {
- t.Fatal(err)
- }
+// func testCDRsOnExpAMQPQueuesCreation(t *testing.T) {
+// conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
+// if err != nil {
+// t.Fatal(err)
+// }
- ch, err := conn.Channel()
- if err != nil {
- t.Fatal(err)
- }
- defer ch.Close()
+// ch, err := conn.Channel()
+// if err != nil {
+// t.Fatal(err)
+// }
+// defer ch.Close()
- if err = ch.ExchangeDeclare("exchangename", "fanout", true, false, false, false, nil); err != nil {
- return
- }
- q1, err := ch.QueueDeclare("queue1", true, false, false, false, nil)
- if err != nil {
- t.Fatal(err)
- }
- if err = ch.QueueBind(q1.Name, "cgr_cdrs", "exchangename", false, nil); err != nil {
- t.Fatal(err)
- }
- if err = ch.Close(); err != nil {
- t.Error(err)
- }
- if err = conn.Close(); err != nil {
- t.Error(err)
- }
- v, err := kafka.Dial("tcp", "localhost:9092")
- if err != nil {
- t.Fatal(err)
- }
- if err := v.CreateTopics(kafka.TopicConfig{
- Topic: "cgrates_cdrs",
- NumPartitions: 1,
- ReplicationFactor: 1,
- }); err != nil {
- t.Fatal(err)
- }
- if err = v.Close(); err != nil {
- t.Fatal(err)
- }
-}
+// if err = ch.ExchangeDeclare("exchangename", "fanout", true, false, false, false, nil); err != nil {
+// return
+// }
+// q1, err := ch.QueueDeclare("queue1", true, false, false, false, nil)
+// if err != nil {
+// t.Fatal(err)
+// }
+// if err = ch.QueueBind(q1.Name, "cgr_cdrs", "exchangename", false, nil); err != nil {
+// t.Fatal(err)
+// }
+// if err = ch.Close(); err != nil {
+// t.Error(err)
+// }
+// if err = conn.Close(); err != nil {
+// t.Error(err)
+// }
+// v, err := kafka.Dial("tcp", "localhost:9092")
+// if err != nil {
+// t.Fatal(err)
+// }
+// if err := v.CreateTopics(kafka.TopicConfig{
+// Topic: "cgrates_cdrs",
+// NumPartitions: 1,
+// ReplicationFactor: 1,
+// }); err != nil {
+// t.Fatal(err)
+// }
+// if err = v.Close(); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Connect rpc client to rater
-func testCDRsOnExpInitMasterRPC(t *testing.T) {
- var err error
- cdrsMasterRpc, err = rpcclient.NewRPCClient(context.Background(), utils.TCP, cdrsMasterCfg.ListenCfg().RPCJSONListen, false, "", "", "", 1, 1,
- time.Second, 5*time.Second, rpcclient.JSONrpc, nil, false, nil)
- if err != nil {
- t.Fatal("Could not connect to rater: ", err.Error())
- }
-}
+// // Connect rpc client to rater
+// func testCDRsOnExpInitMasterRPC(t *testing.T) {
+// var err error
+// cdrsMasterRpc, err = rpcclient.NewRPCClient(context.Background(), utils.TCP, cdrsMasterCfg.ListenCfg().RPCJSONListen, false, "", "", "", 1, 1,
+// time.Second, 5*time.Second, rpcclient.JSONrpc, nil, false, nil)
+// if err != nil {
+// t.Fatal("Could not connect to rater: ", err.Error())
+// }
+// }
-func testCDRsOnExpLoadDefaultCharger(t *testing.T) {
- // //add a default charger
- chargerProfile := &engine.ChargerProfile{
- Tenant: "cgrates.org",
- ID: "Default",
- RunID: utils.MetaDefault,
- AttributeIDs: []string{"*none"},
- Weight: 20,
- }
- var result string
- if err := cdrsMasterRpc.Call(context.Background(), utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-}
+// func testCDRsOnExpLoadDefaultCharger(t *testing.T) {
+// // //add a default charger
+// chargerProfile := &engine.ChargerProfile{
+// Tenant: "cgrates.org",
+// ID: "Default",
+// RunID: utils.MetaDefault,
+// AttributeIDs: []string{"*none"},
+// Weight: 20,
+// }
+// var result string
+// if err := cdrsMasterRpc.Call(context.Background(), utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// }
-// Disable ExportCDR
-func testCDRsOnExpDisableOnlineExport(t *testing.T) {
- testCdr := &engine.CDR{
- CGRID: utils.Sha1("NoOnlineExport", time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC).String()),
- ToR: utils.MetaVoice,
- OriginID: "TestCDRsOnExpDisableOnlineExport",
- OriginHost: "192.168.1.0",
- Source: "UNKNOWN",
- RequestType: utils.MetaPseudoPrepaid,
- Tenant: "cgrates.org",
- Category: "call",
- Account: "1001",
- Subject: "1001",
- Destination: "1002",
- SetupTime: time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC),
- AnswerTime: time.Date(2013, 12, 7, 8, 42, 26, 0, time.UTC),
- Usage: 10 * time.Second,
- ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"},
- RunID: utils.MetaDefault,
- Cost: 1.201,
- PreRated: true,
- // CostDetails: &engine.EventCost{
- // Cost: utils.Float64Pointer(10),
- // },
- }
- testEv := testCdr.AsCGREvent()
- testEv.APIOpts[utils.OptsCDRsExport] = false
- testEv.APIOpts[utils.OptsChargerS] = false
- var reply string
- if err := cdrsMasterRpc.Call(context.Background(), utils.CDRsV1ProcessEvent,
- testEv, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
- time.Sleep(time.Duration(*waitRater) * time.Millisecond)
- filesInDir, _ := os.ReadDir(cdrsMasterCfg.GeneralCfg().FailedPostsDir)
- if len(filesInDir) != 0 {
- t.Fatalf("Should be no files in directory: %s", cdrsMasterCfg.GeneralCfg().FailedPostsDir)
- }
-}
+// // Disable ExportCDR
+// func testCDRsOnExpDisableOnlineExport(t *testing.T) {
+// testCdr := &engine.CDR{
+// CGRID: utils.Sha1("NoOnlineExport", time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC).String()),
+// ToR: utils.MetaVoice,
+// OriginID: "TestCDRsOnExpDisableOnlineExport",
+// OriginHost: "192.168.1.0",
+// Source: "UNKNOWN",
+// RequestType: utils.MetaPseudoPrepaid,
+// Tenant: "cgrates.org",
+// Category: "call",
+// Account: "1001",
+// Subject: "1001",
+// Destination: "1002",
+// SetupTime: time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC),
+// AnswerTime: time.Date(2013, 12, 7, 8, 42, 26, 0, time.UTC),
+// Usage: 10 * time.Second,
+// ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"},
+// RunID: utils.MetaDefault,
+// Cost: 1.201,
+// PreRated: true,
+// // CostDetails: &engine.EventCost{
+// // Cost: utils.Float64Pointer(10),
+// // },
+// }
+// testEv := testCdr.AsCGREvent()
+// testEv.APIOpts[utils.OptsCDRsExport] = false
+// testEv.APIOpts[utils.OptsChargerS] = false
+// var reply string
+// if err := cdrsMasterRpc.Call(context.Background(), utils.CDRsV1ProcessEvent,
+// testEv, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// time.Sleep(time.Duration(*waitRater) * time.Millisecond)
+// filesInDir, _ := os.ReadDir(cdrsMasterCfg.GeneralCfg().FailedPostsDir)
+// if len(filesInDir) != 0 {
+// t.Fatalf("Should be no files in directory: %s", cdrsMasterCfg.GeneralCfg().FailedPostsDir)
+// }
+// }
-func testCDRsOnExpHttpCdrReplication(t *testing.T) {
- testCdr1 := &engine.CDR{
- CGRID: httpCGRID,
- ToR: utils.MetaVoice,
- OriginID: "httpjsonrpc1",
- OriginHost: "192.168.1.1",
- Source: "UNKNOWN",
- RequestType: utils.MetaNone,
- Tenant: "cgrates.org",
- Category: "call",
- Account: "1001",
- Subject: "1001",
- Destination: "1002",
- SetupTime: time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC),
- AnswerTime: time.Date(2013, 12, 7, 8, 42, 26, 0, time.UTC),
- Usage: 10 * time.Second,
- ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"},
- RunID: utils.MetaDefault,
- Cost: 1.201,
- PreRated: true,
- // CostDetails: &engine.EventCost{
- // Cost: utils.Float64Pointer(10),
- // },
- }
- var reply string
- arg := testCdr1.AsCGREvent()
- arg.APIOpts = map[string]interface{}{"ExporterID": "http_localhost"}
+// func testCDRsOnExpHttpCdrReplication(t *testing.T) {
+// testCdr1 := &engine.CDR{
+// CGRID: httpCGRID,
+// ToR: utils.MetaVoice,
+// OriginID: "httpjsonrpc1",
+// OriginHost: "192.168.1.1",
+// Source: "UNKNOWN",
+// RequestType: utils.MetaNone,
+// Tenant: "cgrates.org",
+// Category: "call",
+// Account: "1001",
+// Subject: "1001",
+// Destination: "1002",
+// SetupTime: time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC),
+// AnswerTime: time.Date(2013, 12, 7, 8, 42, 26, 0, time.UTC),
+// Usage: 10 * time.Second,
+// ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"},
+// RunID: utils.MetaDefault,
+// Cost: 1.201,
+// PreRated: true,
+// // CostDetails: &engine.EventCost{
+// // Cost: utils.Float64Pointer(10),
+// // },
+// }
+// var reply string
+// arg := testCdr1.AsCGREvent()
+// arg.APIOpts = map[string]interface{}{"ExporterID": "http_localhost"}
- // we expect that the cdr export to fail and go into the failed post directory
- if err := cdrsMasterRpc.Call(context.Background(), utils.CDRsV1ProcessEvent,
- arg, &reply); err == nil || err.Error() != utils.ErrPartiallyExecuted.Error() {
- t.Error("Unexpected error: ", err)
- }
- time.Sleep(time.Duration(*waitRater) * time.Millisecond)
- cdrsSlaveRpc, err := rpcclient.NewRPCClient(context.Background(), utils.TCP, "127.0.0.1:12012", false, "", "", "", 1, 1,
- time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
- if err != nil {
- t.Fatal("Could not connect to rater: ", err.Error())
- }
- // ToDo: Fix cdr_http to be compatible with rest of processCdr methods
- var rcvedCdrs []*engine.ExternalCDR
- if err := cdrsSlaveRpc.Call(utils.APIerSv2GetCDRs,
- &utils.RPCCDRsFilter{CGRIDs: []string{testCdr1.CGRID}, RunIDs: []string{utils.MetaDefault}}, &rcvedCdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if len(rcvedCdrs) != 1 {
- t.Error("Unexpected number of CDRs returned: ", len(rcvedCdrs))
- } else {
- rcvSetupTime, _ := utils.ParseTimeDetectLayout(rcvedCdrs[0].SetupTime, "")
- rcvAnswerTime, _ := utils.ParseTimeDetectLayout(rcvedCdrs[0].AnswerTime, "")
- if rcvedCdrs[0].CGRID != testCdr1.CGRID ||
- rcvedCdrs[0].RunID != testCdr1.RunID ||
- rcvedCdrs[0].ToR != testCdr1.ToR ||
- rcvedCdrs[0].OriginID != testCdr1.OriginID ||
- rcvedCdrs[0].RequestType != testCdr1.RequestType ||
- rcvedCdrs[0].Tenant != testCdr1.Tenant ||
- rcvedCdrs[0].Category != testCdr1.Category ||
- rcvedCdrs[0].Account != testCdr1.Account ||
- rcvedCdrs[0].Subject != testCdr1.Subject ||
- rcvedCdrs[0].Destination != testCdr1.Destination ||
- !rcvSetupTime.Equal(testCdr1.SetupTime) ||
- !rcvAnswerTime.Equal(testCdr1.AnswerTime) ||
- rcvedCdrs[0].Usage != testCdr1.Usage.String() ||
- rcvedCdrs[0].Cost != testCdr1.Cost {
- t.Errorf("Expected: %+v, received: %+v", utils.ToJSON(testCdr1), utils.ToJSON(rcvedCdrs[0]))
- }
- }
-}
+// // we expect that the cdr export to fail and go into the failed post directory
+// if err := cdrsMasterRpc.Call(context.Background(), utils.CDRsV1ProcessEvent,
+// arg, &reply); err == nil || err.Error() != utils.ErrPartiallyExecuted.Error() {
+// t.Error("Unexpected error: ", err)
+// }
+// time.Sleep(time.Duration(*waitRater) * time.Millisecond)
+// cdrsSlaveRpc, err := rpcclient.NewRPCClient(context.Background(), utils.TCP, "127.0.0.1:12012", false, "", "", "", 1, 1,
+// time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
+// if err != nil {
+// t.Fatal("Could not connect to rater: ", err.Error())
+// }
+// // ToDo: Fix cdr_http to be compatible with rest of processCdr methods
+// var rcvedCdrs []*engine.ExternalCDR
+// if err := cdrsSlaveRpc.Call(utils.APIerSv2GetCDRs,
+// &utils.RPCCDRsFilter{CGRIDs: []string{testCdr1.CGRID}, RunIDs: []string{utils.MetaDefault}}, &rcvedCdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if len(rcvedCdrs) != 1 {
+// t.Error("Unexpected number of CDRs returned: ", len(rcvedCdrs))
+// } else {
+// rcvSetupTime, _ := utils.ParseTimeDetectLayout(rcvedCdrs[0].SetupTime, "")
+// rcvAnswerTime, _ := utils.ParseTimeDetectLayout(rcvedCdrs[0].AnswerTime, "")
+// if rcvedCdrs[0].CGRID != testCdr1.CGRID ||
+// rcvedCdrs[0].RunID != testCdr1.RunID ||
+// rcvedCdrs[0].ToR != testCdr1.ToR ||
+// rcvedCdrs[0].OriginID != testCdr1.OriginID ||
+// rcvedCdrs[0].RequestType != testCdr1.RequestType ||
+// rcvedCdrs[0].Tenant != testCdr1.Tenant ||
+// rcvedCdrs[0].Category != testCdr1.Category ||
+// rcvedCdrs[0].Account != testCdr1.Account ||
+// rcvedCdrs[0].Subject != testCdr1.Subject ||
+// rcvedCdrs[0].Destination != testCdr1.Destination ||
+// !rcvSetupTime.Equal(testCdr1.SetupTime) ||
+// !rcvAnswerTime.Equal(testCdr1.AnswerTime) ||
+// rcvedCdrs[0].Usage != testCdr1.Usage.String() ||
+// rcvedCdrs[0].Cost != testCdr1.Cost {
+// t.Errorf("Expected: %+v, received: %+v", utils.ToJSON(testCdr1), utils.ToJSON(rcvedCdrs[0]))
+// }
+// }
+// }
-func testCDRsOnExpAMQPReplication(t *testing.T) {
- conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
- if err != nil {
- t.Fatal(err)
- }
+// func testCDRsOnExpAMQPReplication(t *testing.T) {
+// conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
+// if err != nil {
+// t.Fatal(err)
+// }
- ch, err := conn.Channel()
- if err != nil {
- t.Fatal(err)
- }
- defer ch.Close()
+// ch, err := conn.Channel()
+// if err != nil {
+// t.Fatal(err)
+// }
+// defer ch.Close()
- msgs, err := ch.Consume("cgrates_cdrs", "", true, false, false, false, nil)
- if err != nil {
- conn.Close()
- t.Fatal(err)
- }
- select {
- case d := <-msgs:
- var rcvCDR map[string]string
- if err := json.Unmarshal(d.Body, &rcvCDR); err != nil {
- t.Error(err)
- }
- if rcvCDR[utils.CGRID] != httpCGRID {
- t.Errorf("Unexpected CDR received: %+v", rcvCDR)
- }
- case <-time.After(100 * time.Millisecond):
- t.Error("No message received from RabbitMQ")
- }
- if msgs, err = ch.Consume("queue1", "consumer", true, false, false, false, nil); err != nil {
- conn.Close()
- t.Fatal(err)
- }
- select {
- case d := <-msgs:
- var rcvCDR map[string]string
- if err := json.Unmarshal(d.Body, &rcvCDR); err != nil {
- t.Error(err)
- }
- if rcvCDR[utils.CGRID] != httpCGRID {
- t.Errorf("Unexpected CDR received: %+v", rcvCDR)
- }
- case <-time.After(100 * time.Millisecond):
- t.Error("No message received from RabbitMQ")
- }
- conn.Close()
- // restart RabbitMQ server so we can test reconnects
- if err := exec.Command("service", "rabbitmq-server", "restart").Run(); err != nil {
- t.Error(err)
- }
- time.Sleep(2 * time.Second)
- testCdr := &engine.CDR{
- CGRID: amqpCGRID,
- ToR: utils.MetaVoice,
- OriginID: "amqpreconnect",
- OriginHost: "192.168.1.1",
- Source: "UNKNOWN",
- RequestType: utils.MetaPseudoPrepaid,
- Tenant: "cgrates.org",
- Category: "call",
- Account: "1001",
- Subject: "1001",
- Destination: "1002",
- SetupTime: time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC),
- AnswerTime: time.Date(2013, 12, 7, 8, 42, 26, 0, time.UTC),
- Usage: 10 * time.Second,
- ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"},
- RunID: utils.MetaDefault,
- Cost: 1.201,
- PreRated: true,
- // CostDetails: &engine.EventCost{
- // Cost: utils.Float64Pointer(10),
- // },
- }
- testEv := testCdr.AsCGREvent()
- testEv.APIOpts[utils.OptsCDRsExport] = true
- var reply string
- if err := cdrsMasterRpc.Call(context.Background(), utils.CDRsV1ProcessEvent,
- testEv, &reply); err == nil || err.Error() != utils.ErrPartiallyExecuted.Error() {
- t.Error("Unexpected error: ", err)
- }
- time.Sleep(time.Duration(*waitRater) * time.Millisecond)
- if conn, err = amqp.Dial("amqp://guest:guest@localhost:5672/"); err != nil {
- t.Fatal(err)
- }
- defer conn.Close()
+// msgs, err := ch.Consume("cgrates_cdrs", "", true, false, false, false, nil)
+// if err != nil {
+// conn.Close()
+// t.Fatal(err)
+// }
+// select {
+// case d := <-msgs:
+// var rcvCDR map[string]string
+// if err := json.Unmarshal(d.Body, &rcvCDR); err != nil {
+// t.Error(err)
+// }
+// if rcvCDR[utils.CGRID] != httpCGRID {
+// t.Errorf("Unexpected CDR received: %+v", rcvCDR)
+// }
+// case <-time.After(100 * time.Millisecond):
+// t.Error("No message received from RabbitMQ")
+// }
+// if msgs, err = ch.Consume("queue1", "consumer", true, false, false, false, nil); err != nil {
+// conn.Close()
+// t.Fatal(err)
+// }
+// select {
+// case d := <-msgs:
+// var rcvCDR map[string]string
+// if err := json.Unmarshal(d.Body, &rcvCDR); err != nil {
+// t.Error(err)
+// }
+// if rcvCDR[utils.CGRID] != httpCGRID {
+// t.Errorf("Unexpected CDR received: %+v", rcvCDR)
+// }
+// case <-time.After(100 * time.Millisecond):
+// t.Error("No message received from RabbitMQ")
+// }
+// conn.Close()
+// // restart RabbitMQ server so we can test reconnects
+// if err := exec.Command("service", "rabbitmq-server", "restart").Run(); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(2 * time.Second)
+// testCdr := &engine.CDR{
+// CGRID: amqpCGRID,
+// ToR: utils.MetaVoice,
+// OriginID: "amqpreconnect",
+// OriginHost: "192.168.1.1",
+// Source: "UNKNOWN",
+// RequestType: utils.MetaPseudoPrepaid,
+// Tenant: "cgrates.org",
+// Category: "call",
+// Account: "1001",
+// Subject: "1001",
+// Destination: "1002",
+// SetupTime: time.Date(2013, 12, 7, 8, 42, 24, 0, time.UTC),
+// AnswerTime: time.Date(2013, 12, 7, 8, 42, 26, 0, time.UTC),
+// Usage: 10 * time.Second,
+// ExtraFields: map[string]string{"field_extr1": "val_extr1", "fieldextr2": "valextr2"},
+// RunID: utils.MetaDefault,
+// Cost: 1.201,
+// PreRated: true,
+// // CostDetails: &engine.EventCost{
+// // Cost: utils.Float64Pointer(10),
+// // },
+// }
+// testEv := testCdr.AsCGREvent()
+// testEv.APIOpts[utils.OptsCDRsExport] = true
+// var reply string
+// if err := cdrsMasterRpc.Call(context.Background(), utils.CDRsV1ProcessEvent,
+// testEv, &reply); err == nil || err.Error() != utils.ErrPartiallyExecuted.Error() {
+// t.Error("Unexpected error: ", err)
+// }
+// time.Sleep(time.Duration(*waitRater) * time.Millisecond)
+// if conn, err = amqp.Dial("amqp://guest:guest@localhost:5672/"); err != nil {
+// t.Fatal(err)
+// }
+// defer conn.Close()
- if ch, err = conn.Channel(); err != nil {
- t.Fatal(err)
- }
- defer ch.Close()
+// if ch, err = conn.Channel(); err != nil {
+// t.Fatal(err)
+// }
+// defer ch.Close()
- if msgs, err = ch.Consume("cgrates_cdrs", "", true, false, false, false, nil); err != nil {
- t.Fatal(err)
- }
- select {
- case d := <-msgs:
- var rcvCDR map[string]string
- if err := json.Unmarshal(d.Body, &rcvCDR); err != nil {
- t.Error(err)
- }
- if rcvCDR[utils.CGRID] != testCdr.CGRID {
- t.Errorf("Unexpected CDR received: %+v", rcvCDR)
- }
- case <-time.After(150 * time.Millisecond):
- t.Error("No message received from RabbitMQ")
- }
+// if msgs, err = ch.Consume("cgrates_cdrs", "", true, false, false, false, nil); err != nil {
+// t.Fatal(err)
+// }
+// select {
+// case d := <-msgs:
+// var rcvCDR map[string]string
+// if err := json.Unmarshal(d.Body, &rcvCDR); err != nil {
+// t.Error(err)
+// }
+// if rcvCDR[utils.CGRID] != testCdr.CGRID {
+// t.Errorf("Unexpected CDR received: %+v", rcvCDR)
+// }
+// case <-time.After(150 * time.Millisecond):
+// t.Error("No message received from RabbitMQ")
+// }
- if msgs, err = ch.Consume("queue1", "", true, false, false, false, nil); err != nil {
- t.Fatal(err)
- }
- select {
- case d := <-msgs:
- var rcvCDR map[string]string
- if err := json.Unmarshal(d.Body, &rcvCDR); err != nil {
- t.Error(err)
- }
- if rcvCDR[utils.CGRID] != testCdr.CGRID {
- t.Errorf("Unexpected CDR received: %s expeced: %s", utils.ToJSON(rcvCDR), utils.ToJSON(testCdr))
- }
- case <-time.After(150 * time.Millisecond):
- t.Error("No message received from RabbitMQ")
- }
+// if msgs, err = ch.Consume("queue1", "", true, false, false, false, nil); err != nil {
+// t.Fatal(err)
+// }
+// select {
+// case d := <-msgs:
+// var rcvCDR map[string]string
+// if err := json.Unmarshal(d.Body, &rcvCDR); err != nil {
+// t.Error(err)
+// }
+// if rcvCDR[utils.CGRID] != testCdr.CGRID {
+// t.Errorf("Unexpected CDR received: %s expeced: %s", utils.ToJSON(rcvCDR), utils.ToJSON(testCdr))
+// }
+// case <-time.After(150 * time.Millisecond):
+// t.Error("No message received from RabbitMQ")
+// }
-}
+// }
-func testCDRsOnExpFileFailover(t *testing.T) {
- v1 := url.Values{}
- v2 := url.Values{}
- v1.Set("OriginID", "httpjsonrpc1")
- v2.Set("OriginID", "amqpreconnect")
- httpContent := []interface{}{&ees.HTTPPosterRequest{Body: v1, Header: http.Header{"Content-Type": []string{"application/x-www-form-urlencoded"}}},
- &ees.HTTPPosterRequest{Body: v2, Header: http.Header{"Content-Type": []string{"application/x-www-form-urlencoded"}}}}
- filesInDir, _ := os.ReadDir(cdrsMasterCfg.GeneralCfg().FailedPostsDir)
- if len(filesInDir) == 0 {
- t.Fatalf("No files in directory: %s", cdrsMasterCfg.GeneralCfg().FailedPostsDir)
- }
- for _, file := range filesInDir { // First file in directory is the one we need, harder to find it's name out of config
- fileName := file.Name()
- filePath := path.Join(cdrsMasterCfg.GeneralCfg().FailedPostsDir, fileName)
+// func testCDRsOnExpFileFailover(t *testing.T) {
+// v1 := url.Values{}
+// v2 := url.Values{}
+// v1.Set("OriginID", "httpjsonrpc1")
+// v2.Set("OriginID", "amqpreconnect")
+// httpContent := []interface{}{&ees.HTTPPosterRequest{Body: v1, Header: http.Header{"Content-Type": []string{"application/x-www-form-urlencoded"}}},
+// &ees.HTTPPosterRequest{Body: v2, Header: http.Header{"Content-Type": []string{"application/x-www-form-urlencoded"}}}}
+// filesInDir, _ := os.ReadDir(cdrsMasterCfg.GeneralCfg().FailedPostsDir)
+// if len(filesInDir) == 0 {
+// t.Fatalf("No files in directory: %s", cdrsMasterCfg.GeneralCfg().FailedPostsDir)
+// }
+// for _, file := range filesInDir { // First file in directory is the one we need, harder to find it's name out of config
+// fileName := file.Name()
+// filePath := path.Join(cdrsMasterCfg.GeneralCfg().FailedPostsDir, fileName)
- ev, err := ees.NewExportEventsFromFile(filePath)
- if err != nil {
- t.Errorf("<%s> for file <%s>", err, fileName)
- continue
- } else if len(ev.Events) == 0 {
- t.Error("Expected at least one event")
- continue
- }
- if ev.Format != utils.MetaHTTPPost {
- t.Errorf("Expected %s to be only failed exporter,received <%s>", utils.MetaHTTPPost, ev.Format)
- }
- if err := checkContent(ev, httpContent); err != nil {
- t.Errorf("For file <%s> and event <%s> received %s", filePath, utils.ToJSON(ev), err)
- }
- }
-}
+// ev, err := ees.NewExportEventsFromFile(filePath)
+// if err != nil {
+// t.Errorf("<%s> for file <%s>", err, fileName)
+// continue
+// } else if len(ev.Events) == 0 {
+// t.Error("Expected at least one event")
+// continue
+// }
+// if ev.Format != utils.MetaHTTPPost {
+// t.Errorf("Expected %s to be only failed exporter,received <%s>", utils.MetaHTTPPost, ev.Format)
+// }
+// if err := checkContent(ev, httpContent); err != nil {
+// t.Errorf("For file <%s> and event <%s> received %s", filePath, utils.ToJSON(ev), err)
+// }
+// }
+// }
-func testCDRsOnExpKafkaPosterFileFailover(t *testing.T) {
- reader := kafka.NewReader(kafka.ReaderConfig{
- Brokers: []string{"localhost:9092"},
- Topic: "cgrates_cdrs",
- GroupID: "tmp",
- MaxWait: time.Millisecond,
- })
+// func testCDRsOnExpKafkaPosterFileFailover(t *testing.T) {
+// reader := kafka.NewReader(kafka.ReaderConfig{
+// Brokers: []string{"localhost:9092"},
+// Topic: "cgrates_cdrs",
+// GroupID: "tmp",
+// MaxWait: time.Millisecond,
+// })
- defer reader.Close()
+// defer reader.Close()
- for i := 0; i < 2; i++ { // no raw CDR
- ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
- if m, err := reader.ReadMessage(ctx); err != nil {
- t.Fatal(err)
- } else if !reflect.DeepEqual(failoverContent[0], m.Value) && !reflect.DeepEqual(failoverContent[1], m.Value) { // Checking just the prefix should do since some content is dynamic
- t.Errorf("Expecting: %v or %v, received: %v", string(failoverContent[0]), string(failoverContent[1]), string(m.Value))
- }
- cancel()
- }
-}
+// for i := 0; i < 2; i++ { // no raw CDR
+// ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
+// if m, err := reader.ReadMessage(ctx); err != nil {
+// t.Fatal(err)
+// } else if !reflect.DeepEqual(failoverContent[0], m.Value) && !reflect.DeepEqual(failoverContent[1], m.Value) { // Checking just the prefix should do since some content is dynamic
+// t.Errorf("Expecting: %v or %v, received: %v", string(failoverContent[0]), string(failoverContent[1]), string(m.Value))
+// }
+// cancel()
+// }
+// }
-func testCDRsOnExpStopEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
- conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
- if err != nil {
- t.Fatal(err)
- }
+// func testCDRsOnExpStopEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// conn, err := amqp.Dial("amqp://guest:guest@localhost:5672/")
+// if err != nil {
+// t.Fatal(err)
+// }
- ch, err := conn.Channel()
- if err != nil {
- t.Fatal(err)
- }
- defer ch.Close()
+// ch, err := conn.Channel()
+// if err != nil {
+// t.Fatal(err)
+// }
+// defer ch.Close()
- if _, err = ch.QueueDelete("cgrates_cdrs", false, false, true); err != nil {
- t.Fatal(err)
- }
+// if _, err = ch.QueueDelete("cgrates_cdrs", false, false, true); err != nil {
+// t.Fatal(err)
+// }
- if _, err = ch.QueueDelete("queue1", false, false, true); err != nil {
- t.Fatal(err)
- }
-}
+// if _, err = ch.QueueDelete("queue1", false, false, true); err != nil {
+// t.Fatal(err)
+// }
+// }
diff --git a/general_tests/cdrs_post_failover_it_test.go b/general_tests/cdrs_post_failover_it_test.go
index ef185167e..ea1ec8c25 100644
--- a/general_tests/cdrs_post_failover_it_test.go
+++ b/general_tests/cdrs_post_failover_it_test.go
@@ -21,206 +21,206 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "os"
- "path"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "os"
+// "path"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/ees"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/ees"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- cdrsPostFailCfgPath string
- cdrsPostFailCfg *config.CGRConfig
- cdrsPostFailRpc *rpc.Client
- cdrsPostFailConfDIR string // run the tests for specific configuration
+// var (
+// cdrsPostFailCfgPath string
+// cdrsPostFailCfg *config.CGRConfig
+// cdrsPostFailRpc *rpc.Client
+// cdrsPostFailConfDIR string // run the tests for specific configuration
- // subtests to be executed for each confDIR
- sTestsCDRsPostFailIT = []func(t *testing.T){
- testCDRsPostFailoverInitConfig,
- testCDRsPostFailoverInitDataDb,
- testCDRsPostFailoverInitCdrDb,
- testCDRsPostFailoverStartEngine,
- testCDRsPostFailoverRpcConn,
- testCDRsPostFailoverLoadTariffPlanFromFolder,
- testCDRsPostFailoverProcessCDR,
- testCDRsPostFailoverToFile,
- testCDRsPostFailoverKillEngine,
- }
-)
+// // subtests to be executed for each confDIR
+// sTestsCDRsPostFailIT = []func(t *testing.T){
+// testCDRsPostFailoverInitConfig,
+// testCDRsPostFailoverInitDataDb,
+// testCDRsPostFailoverInitCdrDb,
+// testCDRsPostFailoverStartEngine,
+// testCDRsPostFailoverRpcConn,
+// testCDRsPostFailoverLoadTariffPlanFromFolder,
+// testCDRsPostFailoverProcessCDR,
+// testCDRsPostFailoverToFile,
+// testCDRsPostFailoverKillEngine,
+// }
+// )
-// Tests starting here
-func TestCDRsPostFailoverIT(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- cdrsPostFailConfDIR = "cdrsv_failover_internal"
- case utils.MetaMySQL:
- cdrsPostFailConfDIR = "cdrsv_failover_mysql"
- case utils.MetaMongo:
- cdrsPostFailConfDIR = "cdrsv_failover_mongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
+// // Tests starting here
+// func TestCDRsPostFailoverIT(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// cdrsPostFailConfDIR = "cdrsv_failover_internal"
+// case utils.MetaMySQL:
+// cdrsPostFailConfDIR = "cdrsv_failover_mysql"
+// case utils.MetaMongo:
+// cdrsPostFailConfDIR = "cdrsv_failover_mongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
- for _, stest := range sTestsCDRsPostFailIT {
- t.Run(cdrsPostFailConfDIR, stest)
- }
-}
+// for _, stest := range sTestsCDRsPostFailIT {
+// t.Run(cdrsPostFailConfDIR, stest)
+// }
+// }
-func testCDRsPostFailoverInitConfig(t *testing.T) {
- var err error
- cdrsPostFailCfgPath = path.Join(*dataDir, "conf", "samples", cdrsPostFailConfDIR)
- if cdrsPostFailCfg, err = config.NewCGRConfigFromPath(cdrsPostFailCfgPath); err != nil {
- t.Fatal("Got config error: ", err.Error())
- }
- if err = os.RemoveAll(cdrsPostFailCfg.GeneralCfg().FailedPostsDir); err != nil {
- t.Error(err)
- }
- if err = os.MkdirAll(cdrsPostFailCfg.GeneralCfg().FailedPostsDir, 0755); err != nil {
- t.Error(err)
- }
-}
+// func testCDRsPostFailoverInitConfig(t *testing.T) {
+// var err error
+// cdrsPostFailCfgPath = path.Join(*dataDir, "conf", "samples", cdrsPostFailConfDIR)
+// if cdrsPostFailCfg, err = config.NewCGRConfigFromPath(cdrsPostFailCfgPath); err != nil {
+// t.Fatal("Got config error: ", err.Error())
+// }
+// if err = os.RemoveAll(cdrsPostFailCfg.GeneralCfg().FailedPostsDir); err != nil {
+// t.Error(err)
+// }
+// if err = os.MkdirAll(cdrsPostFailCfg.GeneralCfg().FailedPostsDir, 0755); err != nil {
+// t.Error(err)
+// }
+// }
-func testCDRsPostFailoverInitDataDb(t *testing.T) {
- if err := engine.InitDataDB(cdrsPostFailCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testCDRsPostFailoverInitDataDb(t *testing.T) {
+// if err := engine.InitDataDB(cdrsPostFailCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-// InitDb so we can rely on count
-func testCDRsPostFailoverInitCdrDb(t *testing.T) {
- if err := engine.InitStorDB(cdrsPostFailCfg); err != nil {
- t.Fatal(err)
- }
-}
+// // InitDb so we can rely on count
+// func testCDRsPostFailoverInitCdrDb(t *testing.T) {
+// if err := engine.InitStorDB(cdrsPostFailCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testCDRsPostFailoverStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(cdrsPostFailCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testCDRsPostFailoverStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(cdrsPostFailCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Connect rpc client to rater
-func testCDRsPostFailoverRpcConn(t *testing.T) {
- cdrsPostFailRpc, err = newRPCClient(cdrsPostFailCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal("Could not connect to rater: ", err.Error())
- }
-}
+// // Connect rpc client to rater
+// func testCDRsPostFailoverRpcConn(t *testing.T) {
+// cdrsPostFailRpc, err = newRPCClient(cdrsPostFailCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal("Could not connect to rater: ", err.Error())
+// }
+// }
-func testCDRsPostFailoverLoadTariffPlanFromFolder(t *testing.T) {
- var loadInst utils.LoadInstance
- if err := cdrsPostFailRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder,
- &utils.AttrLoadTpFromFolder{FolderPath: path.Join(
- *dataDir, "tariffplans", "testit")}, &loadInst); err != nil {
- t.Error(err)
- }
- time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
- var resp string
- if err := cdrsPostFailRpc.Call(utils.APIerSv1RemoveChargerProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "SupplierCharges"}, &resp); err != nil {
- t.Error(err)
- } else if resp != utils.OK {
- t.Error("Unexpected reply returned", resp)
- }
- var reply *engine.ChargerProfile
- if err := cdrsPostFailRpc.Call(utils.APIerSv1GetChargerProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "SupplierCharges"},
- &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
-}
+// func testCDRsPostFailoverLoadTariffPlanFromFolder(t *testing.T) {
+// var loadInst utils.LoadInstance
+// if err := cdrsPostFailRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder,
+// &utils.AttrLoadTpFromFolder{FolderPath: path.Join(
+// *dataDir, "tariffplans", "testit")}, &loadInst); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
+// var resp string
+// if err := cdrsPostFailRpc.Call(utils.APIerSv1RemoveChargerProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "SupplierCharges"}, &resp); err != nil {
+// t.Error(err)
+// } else if resp != utils.OK {
+// t.Error("Unexpected reply returned", resp)
+// }
+// var reply *engine.ChargerProfile
+// if err := cdrsPostFailRpc.Call(utils.APIerSv1GetChargerProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "SupplierCharges"},
+// &reply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// }
-func testCDRsPostFailoverProcessCDR(t *testing.T) {
- args := &utils.CGREvent{
- ID: "1",
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.OriginID: "testCDRsPostFailoverProcessCDR",
- utils.OriginHost: "192.168.1.1",
- utils.Source: "testCDRsPostFailoverProcessCDR",
- utils.RequestType: utils.MetaRated,
- utils.Category: "call",
- utils.AccountField: "testCDRsPostFailoverProcessCDR",
- utils.Subject: "ANY2CNT",
- utils.Destination: "+4986517174963",
- utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
- utils.Usage: time.Minute,
- "field_extr1": "val_extr1",
- "fieldextr2": "valextr2",
- },
- APIOpts: map[string]interface{}{
- utils.OptsCDRsExport: true,
- utils.OptsAttributeS: false,
- // utils.MetaRalS:false,
- utils.OptsChargerS: false,
- utils.OptsCDRsStore: false,
- utils.OptsThresholdS: false,
- utils.OptsStatS: false,
- },
- }
+// func testCDRsPostFailoverProcessCDR(t *testing.T) {
+// args := &utils.CGREvent{
+// ID: "1",
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.OriginID: "testCDRsPostFailoverProcessCDR",
+// utils.OriginHost: "192.168.1.1",
+// utils.Source: "testCDRsPostFailoverProcessCDR",
+// utils.RequestType: utils.MetaRated,
+// utils.Category: "call",
+// utils.AccountField: "testCDRsPostFailoverProcessCDR",
+// utils.Subject: "ANY2CNT",
+// utils.Destination: "+4986517174963",
+// utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
+// utils.Usage: time.Minute,
+// "field_extr1": "val_extr1",
+// "fieldextr2": "valextr2",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsCDRsExport: true,
+// utils.OptsAttributeS: false,
+// // utils.MetaRalS:false,
+// utils.OptsChargerS: false,
+// utils.OptsCDRsStore: false,
+// utils.OptsThresholdS: false,
+// utils.OptsStatS: false,
+// },
+// }
- var reply string
- if err := cdrsPostFailRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
- args.ID = "2"
- args.Event[utils.OriginID] = "2"
- if err := cdrsPostFailRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
- args.ID = "3"
- args.Event[utils.OriginID] = "3"
- if err := cdrsPostFailRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
-}
+// var reply string
+// if err := cdrsPostFailRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// args.ID = "2"
+// args.Event[utils.OriginID] = "2"
+// if err := cdrsPostFailRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// args.ID = "3"
+// args.Event[utils.OriginID] = "3"
+// if err := cdrsPostFailRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// }
-func testCDRsPostFailoverToFile(t *testing.T) {
- time.Sleep(2 * time.Second)
- filesInDir, _ := os.ReadDir(cdrsPostFailCfg.GeneralCfg().FailedPostsDir)
- if len(filesInDir) == 0 {
- t.Fatalf("No files in directory: %s", cdrsPostFailCfg.GeneralCfg().FailedPostsDir)
- }
- for _, file := range filesInDir { // First file in directory is the one we need, harder to find it's name out of config
- fileName := file.Name()
- filePath := path.Join(cdrsPostFailCfg.GeneralCfg().FailedPostsDir, fileName)
+// func testCDRsPostFailoverToFile(t *testing.T) {
+// time.Sleep(2 * time.Second)
+// filesInDir, _ := os.ReadDir(cdrsPostFailCfg.GeneralCfg().FailedPostsDir)
+// if len(filesInDir) == 0 {
+// t.Fatalf("No files in directory: %s", cdrsPostFailCfg.GeneralCfg().FailedPostsDir)
+// }
+// for _, file := range filesInDir { // First file in directory is the one we need, harder to find it's name out of config
+// fileName := file.Name()
+// filePath := path.Join(cdrsPostFailCfg.GeneralCfg().FailedPostsDir, fileName)
- ev, err := ees.NewExportEventsFromFile(filePath)
- if err != nil {
- t.Errorf("<%s> for file <%s>", err, fileName)
- continue
- } else if len(ev.Events) == 0 {
- t.Error("Expected at least one event")
- continue
- }
- if ev.Format != utils.MetaS3jsonMap {
- t.Errorf("Expected event to use %q received: %q", utils.MetaS3jsonMap, ev.Format)
- }
- if len(ev.Events) != 3 {
- t.Errorf("Expected all the events to be saved in the same file, ony %v saved in this file.", len(ev.Events))
- }
- }
-}
+// ev, err := ees.NewExportEventsFromFile(filePath)
+// if err != nil {
+// t.Errorf("<%s> for file <%s>", err, fileName)
+// continue
+// } else if len(ev.Events) == 0 {
+// t.Error("Expected at least one event")
+// continue
+// }
+// if ev.Format != utils.MetaS3jsonMap {
+// t.Errorf("Expected event to use %q received: %q", utils.MetaS3jsonMap, ev.Format)
+// }
+// if len(ev.Events) != 3 {
+// t.Errorf("Expected all the events to be saved in the same file, ony %v saved in this file.", len(ev.Events))
+// }
+// }
+// }
-func testCDRsPostFailoverKillEngine(t *testing.T) {
- if err = os.RemoveAll(cdrsPostFailCfg.GeneralCfg().FailedPostsDir); err != nil {
- t.Error(err)
- }
- if err := engine.KillEngine(*waitRater); err != nil {
- t.Error(err)
- }
-}
+// func testCDRsPostFailoverKillEngine(t *testing.T) {
+// if err = os.RemoveAll(cdrsPostFailCfg.GeneralCfg().FailedPostsDir); err != nil {
+// t.Error(err)
+// }
+// if err := engine.KillEngine(*waitRater); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/cdrs_processevent_it_test.go b/general_tests/cdrs_processevent_it_test.go
index f3bca55b0..2c77cae5d 100644
--- a/general_tests/cdrs_processevent_it_test.go
+++ b/general_tests/cdrs_processevent_it_test.go
@@ -20,680 +20,680 @@ along with this program. If not, see
*/
package general_tests
-import (
- "fmt"
- "net/rpc"
- "os"
- "path"
- "reflect"
- "sort"
- "strings"
- "testing"
- "time"
+// import (
+// "fmt"
+// "net/rpc"
+// "os"
+// "path"
+// "reflect"
+// "sort"
+// "strings"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/ees"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/ees"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- pecdrsCfgPath string
- pecdrsConfDIR string
- pecdrsCfg *config.CGRConfig
- pecdrsRpc *rpc.Client
+// var (
+// pecdrsCfgPath string
+// pecdrsConfDIR string
+// pecdrsCfg *config.CGRConfig
+// pecdrsRpc *rpc.Client
- sTestsCDRsIT_ProcessEvent = []func(t *testing.T){
- testV1CDRsInitConfig,
- testV1CDRsInitDataDb,
- testV1CDRsInitCdrDb,
- testV1CDRsStartEngine,
- testV1CDRsRpcConn,
- testV1CDRsLoadTariffPlanFromFolder,
- testV1CDRsProcessEventExport,
- testV1CDRsProcessEventAttrS,
- testV1CDRsProcessEventChrgS,
- testV1CDRsProcessEventRalS,
- testV1CDRsProcessEventSts,
- testV1CDRsProcessEventStore,
- testV1CDRsProcessEventThreshold,
- testV1CDRsProcessEventExportCheck,
+// sTestsCDRsIT_ProcessEvent = []func(t *testing.T){
+// testV1CDRsInitConfig,
+// testV1CDRsInitDataDb,
+// testV1CDRsInitCdrDb,
+// testV1CDRsStartEngine,
+// testV1CDRsRpcConn,
+// testV1CDRsLoadTariffPlanFromFolder,
+// testV1CDRsProcessEventExport,
+// testV1CDRsProcessEventAttrS,
+// testV1CDRsProcessEventChrgS,
+// testV1CDRsProcessEventRalS,
+// testV1CDRsProcessEventSts,
+// testV1CDRsProcessEventStore,
+// testV1CDRsProcessEventThreshold,
+// testV1CDRsProcessEventExportCheck,
- testV1CDRsV2ProcessEventRalS,
+// testV1CDRsV2ProcessEventRalS,
- testV1CDRsKillEngine,
- }
-)
+// testV1CDRsKillEngine,
+// }
+// )
-func TestCDRsITPE(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- pecdrsConfDIR = "cdrsv1processevent"
- case utils.MetaMySQL:
- pecdrsConfDIR = "cdrsv1processeventmysql"
- case utils.MetaMongo:
- pecdrsConfDIR = "cdrsv1processeventmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sTestsCDRsIT_ProcessEvent {
- t.Run(pecdrsConfDIR, stest)
- }
-}
+// func TestCDRsITPE(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// pecdrsConfDIR = "cdrsv1processevent"
+// case utils.MetaMySQL:
+// pecdrsConfDIR = "cdrsv1processeventmysql"
+// case utils.MetaMongo:
+// pecdrsConfDIR = "cdrsv1processeventmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sTestsCDRsIT_ProcessEvent {
+// t.Run(pecdrsConfDIR, stest)
+// }
+// }
-func testV1CDRsInitConfig(t *testing.T) {
- var err error
- pecdrsCfgPath = path.Join(*dataDir, "conf", "samples", pecdrsConfDIR)
- if pecdrsCfg, err = config.NewCGRConfigFromPath(pecdrsCfgPath); err != nil {
- t.Fatal("Got config error: ", err.Error())
- }
-}
+// func testV1CDRsInitConfig(t *testing.T) {
+// var err error
+// pecdrsCfgPath = path.Join(*dataDir, "conf", "samples", pecdrsConfDIR)
+// if pecdrsCfg, err = config.NewCGRConfigFromPath(pecdrsCfgPath); err != nil {
+// t.Fatal("Got config error: ", err.Error())
+// }
+// }
-func testV1CDRsInitDataDb(t *testing.T) {
- if err := engine.InitDataDB(pecdrsCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testV1CDRsInitDataDb(t *testing.T) {
+// if err := engine.InitDataDB(pecdrsCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testV1CDRsInitCdrDb(t *testing.T) {
- if err := engine.InitStorDB(pecdrsCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testV1CDRsInitCdrDb(t *testing.T) {
+// if err := engine.InitStorDB(pecdrsCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testV1CDRsStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(pecdrsCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testV1CDRsStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(pecdrsCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testV1CDRsRpcConn(t *testing.T) {
- var err error
- pecdrsRpc, err = newRPCClient(pecdrsCfg.ListenCfg())
- if err != nil {
- t.Fatal("Could not connect to rater: ", err.Error())
- }
-}
+// func testV1CDRsRpcConn(t *testing.T) {
+// var err error
+// pecdrsRpc, err = newRPCClient(pecdrsCfg.ListenCfg())
+// if err != nil {
+// t.Fatal("Could not connect to rater: ", err.Error())
+// }
+// }
-func testV1CDRsLoadTariffPlanFromFolder(t *testing.T) {
- var loadInst string
- if err := pecdrsRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder,
- &utils.AttrLoadTpFromFolder{FolderPath: path.Join(
- *dataDir, "tariffplans", "testit")}, &loadInst); err != nil {
- t.Error(err)
- }
- time.Sleep(time.Duration(*waitRater) * time.Millisecond)
-}
+// func testV1CDRsLoadTariffPlanFromFolder(t *testing.T) {
+// var loadInst string
+// if err := pecdrsRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder,
+// &utils.AttrLoadTpFromFolder{FolderPath: path.Join(
+// *dataDir, "tariffplans", "testit")}, &loadInst); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(time.Duration(*waitRater) * time.Millisecond)
+// }
-func testV1CDRsProcessEventAttrS(t *testing.T) {
- var acnt *engine.Account
- acntAttrs := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "test1_processEvent"}
- attrSetBalance := utils.AttrSetBalance{
- Tenant: acntAttrs.Tenant,
- Account: acntAttrs.Account,
- BalanceType: utils.MetaVoice,
- Value: 120000000000,
- Balance: map[string]interface{}{
- utils.ID: "BALANCE1",
- utils.Weight: 20,
- },
- }
- var reply string
- if err := pecdrsRpc.Call(utils.APIerSv1SetBalance, attrSetBalance, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("received: %s", reply)
- }
- expectedVoice := 120000000000.0
- if err := pecdrsRpc.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
- t.Error(err)
- } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != expectedVoice {
- t.Errorf("Expecting: %v, received: %v", expectedVoice, rply)
- }
- argsEv := &utils.CGREvent{
- Flags: []string{utils.MetaAttributes, utils.MetaStore, "*chargers:false", "*export:false"},
- Tenant: "cgrates.org",
- ID: "test1",
- Event: map[string]interface{}{
- utils.RunID: "testv1",
- utils.OriginID: "test1_processEvent",
- utils.OriginHost: "OriginHost1",
- utils.RequestType: utils.MetaPseudoPrepaid,
- utils.AccountField: "1001",
- utils.Destination: "+4986517174963",
- utils.AnswerTime: time.Date(2019, 11, 27, 12, 21, 26, 0, time.UTC),
- utils.Usage: 2 * time.Minute,
- },
- }
- var cdrs []*engine.CDR
- alsPrf := &engine.AttributeProfileWithAPIOpts{
- AttributeProfile: &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: "ApierTest",
- FilterIDs: []string{"*string:~*req.Account:1001"},
- Attributes: []*engine.Attribute{
- {
- Path: utils.MetaReq + utils.NestingSep + utils.Subject,
- Value: config.NewRSRParsersMustCompile("1001", utils.InfieldSep),
- },
- },
- Weight: 20,
- },
- }
- alsPrf.Compile()
- var result string
- if err := pecdrsRpc.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- var replyAt *engine.AttributeProfile
- if err := pecdrsRpc.Call(utils.APIerSv1GetAttributeProfile, &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}}, &replyAt); err != nil {
- t.Fatal(err)
- }
- replyAt.Compile()
- if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAt) {
- t.Errorf("Expecting : %+v, received: %+v", utils.ToJSON(alsPrf.AttributeProfile), utils.ToJSON(replyAt))
- }
- if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
- // check if the CDR was correctly processed
- if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
- RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost1"}}}, &cdrs); err != nil {
- t.Fatal("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Errorf("Expecting: 1, received: %+v", len(cdrs))
- } else if !reflect.DeepEqual(argsEv.Event["Account"], cdrs[0].Account) {
- t.Errorf("Expecting: %+v, received: %+v", argsEv.Event["Account"], cdrs[0].Account)
- }
- cdrs[0].AnswerTime = cdrs[0].AnswerTime.UTC()
- if !reflect.DeepEqual(argsEv.Event["AnswerTime"], cdrs[0].AnswerTime) {
- t.Errorf("Expecting: %+v, received: %+v", argsEv.Event["AnswerTime"], cdrs[0].AnswerTime)
- } else if !reflect.DeepEqual(argsEv.Event["Destination"], cdrs[0].Destination) {
- t.Errorf("Expecting: %+v, received: %+v", argsEv.Event["Destination"], cdrs[0].Destination)
- } else if !reflect.DeepEqual(argsEv.Event["OriginID"], cdrs[0].OriginID) {
- t.Errorf("Expecting: %+v, received: %+v", argsEv.Event["OriginID"], cdrs[0].OriginID)
- } else if !reflect.DeepEqual(argsEv.Event["RequestType"], cdrs[0].RequestType) {
- t.Errorf("Expecting: %+v, received: %+v", argsEv.Event["RequestType"], cdrs[0].RequestType)
- } else if !reflect.DeepEqual(argsEv.Event["RunID"], cdrs[0].RunID) {
- t.Errorf("Expecting: %+v, received: %+v", argsEv.Event["RunID"], cdrs[0].RunID)
- } else if !reflect.DeepEqual(argsEv.Event["Usage"], cdrs[0].Usage) {
- t.Errorf("Expecting: %+v, received: %+v", argsEv.Event["Usage"], cdrs[0].Usage)
- } else if !reflect.DeepEqual(argsEv.Tenant, cdrs[0].Tenant) {
- t.Errorf("Expecting: %+v, received: %+v", argsEv.Tenant, cdrs[0].Tenant)
- } else if !reflect.DeepEqual(alsPrf.Attributes[0].Value[0].Rules, cdrs[0].Subject) {
- t.Errorf("Expecting: %+v, received: %+v", alsPrf.Attributes[0].Value[0].Rules, cdrs[0].Subject)
- }
- return
-}
+// func testV1CDRsProcessEventAttrS(t *testing.T) {
+// var acnt *engine.Account
+// acntAttrs := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "test1_processEvent"}
+// attrSetBalance := utils.AttrSetBalance{
+// Tenant: acntAttrs.Tenant,
+// Account: acntAttrs.Account,
+// BalanceType: utils.MetaVoice,
+// Value: 120000000000,
+// Balance: map[string]interface{}{
+// utils.ID: "BALANCE1",
+// utils.Weight: 20,
+// },
+// }
+// var reply string
+// if err := pecdrsRpc.Call(utils.APIerSv1SetBalance, attrSetBalance, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("received: %s", reply)
+// }
+// expectedVoice := 120000000000.0
+// if err := pecdrsRpc.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+// t.Error(err)
+// } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != expectedVoice {
+// t.Errorf("Expecting: %v, received: %v", expectedVoice, rply)
+// }
+// argsEv := &utils.CGREvent{
+// Flags: []string{utils.MetaAttributes, utils.MetaStore, "*chargers:false", "*export:false"},
+// Tenant: "cgrates.org",
+// ID: "test1",
+// Event: map[string]interface{}{
+// utils.RunID: "testv1",
+// utils.OriginID: "test1_processEvent",
+// utils.OriginHost: "OriginHost1",
+// utils.RequestType: utils.MetaPseudoPrepaid,
+// utils.AccountField: "1001",
+// utils.Destination: "+4986517174963",
+// utils.AnswerTime: time.Date(2019, 11, 27, 12, 21, 26, 0, time.UTC),
+// utils.Usage: 2 * time.Minute,
+// },
+// }
+// var cdrs []*engine.CDR
+// alsPrf := &engine.AttributeProfileWithAPIOpts{
+// AttributeProfile: &engine.AttributeProfile{
+// Tenant: "cgrates.org",
+// ID: "ApierTest",
+// FilterIDs: []string{"*string:~*req.Account:1001"},
+// Attributes: []*engine.Attribute{
+// {
+// Path: utils.MetaReq + utils.NestingSep + utils.Subject,
+// Value: config.NewRSRParsersMustCompile("1001", utils.InfieldSep),
+// },
+// },
+// Weight: 20,
+// },
+// }
+// alsPrf.Compile()
+// var result string
+// if err := pecdrsRpc.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// var replyAt *engine.AttributeProfile
+// if err := pecdrsRpc.Call(utils.APIerSv1GetAttributeProfile, &utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}}, &replyAt); err != nil {
+// t.Fatal(err)
+// }
+// replyAt.Compile()
+// if !reflect.DeepEqual(alsPrf.AttributeProfile, replyAt) {
+// t.Errorf("Expecting : %+v, received: %+v", utils.ToJSON(alsPrf.AttributeProfile), utils.ToJSON(replyAt))
+// }
+// if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// // check if the CDR was correctly processed
+// if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+// RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost1"}}}, &cdrs); err != nil {
+// t.Fatal("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Errorf("Expecting: 1, received: %+v", len(cdrs))
+// } else if !reflect.DeepEqual(argsEv.Event["Account"], cdrs[0].Account) {
+// t.Errorf("Expecting: %+v, received: %+v", argsEv.Event["Account"], cdrs[0].Account)
+// }
+// cdrs[0].AnswerTime = cdrs[0].AnswerTime.UTC()
+// if !reflect.DeepEqual(argsEv.Event["AnswerTime"], cdrs[0].AnswerTime) {
+// t.Errorf("Expecting: %+v, received: %+v", argsEv.Event["AnswerTime"], cdrs[0].AnswerTime)
+// } else if !reflect.DeepEqual(argsEv.Event["Destination"], cdrs[0].Destination) {
+// t.Errorf("Expecting: %+v, received: %+v", argsEv.Event["Destination"], cdrs[0].Destination)
+// } else if !reflect.DeepEqual(argsEv.Event["OriginID"], cdrs[0].OriginID) {
+// t.Errorf("Expecting: %+v, received: %+v", argsEv.Event["OriginID"], cdrs[0].OriginID)
+// } else if !reflect.DeepEqual(argsEv.Event["RequestType"], cdrs[0].RequestType) {
+// t.Errorf("Expecting: %+v, received: %+v", argsEv.Event["RequestType"], cdrs[0].RequestType)
+// } else if !reflect.DeepEqual(argsEv.Event["RunID"], cdrs[0].RunID) {
+// t.Errorf("Expecting: %+v, received: %+v", argsEv.Event["RunID"], cdrs[0].RunID)
+// } else if !reflect.DeepEqual(argsEv.Event["Usage"], cdrs[0].Usage) {
+// t.Errorf("Expecting: %+v, received: %+v", argsEv.Event["Usage"], cdrs[0].Usage)
+// } else if !reflect.DeepEqual(argsEv.Tenant, cdrs[0].Tenant) {
+// t.Errorf("Expecting: %+v, received: %+v", argsEv.Tenant, cdrs[0].Tenant)
+// } else if !reflect.DeepEqual(alsPrf.Attributes[0].Value[0].Rules, cdrs[0].Subject) {
+// t.Errorf("Expecting: %+v, received: %+v", alsPrf.Attributes[0].Value[0].Rules, cdrs[0].Subject)
+// }
+// return
+// }
-func testV1CDRsProcessEventChrgS(t *testing.T) {
- argsEv := &utils.CGREvent{
- Flags: []string{utils.MetaChargers, "*attributes:false", "*export:false"},
- Tenant: "cgrates.org",
- ID: "test2",
- Event: map[string]interface{}{
- utils.RunID: "testv1",
- utils.OriginID: "test2_processEvent",
- utils.OriginHost: "OriginHost2",
- utils.RequestType: utils.MetaPseudoPrepaid,
- utils.AccountField: "1001",
- utils.Destination: "+4986517174963",
- utils.AnswerTime: time.Date(2019, 11, 27, 12, 21, 26, 0, time.UTC),
- utils.Usage: 2 * time.Minute,
- },
- }
- var reply string
- if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
- var cdrs []*engine.CDR
- if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
- RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost2"}}}, &cdrs); err != nil {
- t.Fatal("Unexpected error: ", err.Error())
- } else if len(cdrs) != 3 {
- t.Errorf("Expecting: 3, received: %+v", len(cdrs))
- } else if cdrs[0].OriginID != "test2_processEvent" || cdrs[1].OriginID != "test2_processEvent" || cdrs[2].OriginID != "test2_processEvent" {
- t.Errorf("Expecting: test2_processEvent, received: %+v, %+v, %+v ", cdrs[0].OriginID, cdrs[1].OriginID, cdrs[2].OriginID)
- }
- sort.Slice(cdrs, func(i, j int) bool { return cdrs[i].RunID < cdrs[j].RunID })
- if cdrs[2].RunID != "raw" { // charger with RunID *raw
- t.Errorf("Expecting: %+v, received: %+v", "raw", cdrs[2].RunID)
- } else if cdrs[0].RunID != "CustomerCharges" {
- t.Errorf("Expecting: %+v, received: %+v", "CustomerCharges", cdrs[0].RunID)
- } else if cdrs[1].RunID != "SupplierCharges" {
- t.Errorf("Expecting: %+v, received: %+v", "SupplierCharges", cdrs[1].RunID)
- }
-}
+// func testV1CDRsProcessEventChrgS(t *testing.T) {
+// argsEv := &utils.CGREvent{
+// Flags: []string{utils.MetaChargers, "*attributes:false", "*export:false"},
+// Tenant: "cgrates.org",
+// ID: "test2",
+// Event: map[string]interface{}{
+// utils.RunID: "testv1",
+// utils.OriginID: "test2_processEvent",
+// utils.OriginHost: "OriginHost2",
+// utils.RequestType: utils.MetaPseudoPrepaid,
+// utils.AccountField: "1001",
+// utils.Destination: "+4986517174963",
+// utils.AnswerTime: time.Date(2019, 11, 27, 12, 21, 26, 0, time.UTC),
+// utils.Usage: 2 * time.Minute,
+// },
+// }
+// var reply string
+// if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// var cdrs []*engine.CDR
+// if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+// RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost2"}}}, &cdrs); err != nil {
+// t.Fatal("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 3 {
+// t.Errorf("Expecting: 3, received: %+v", len(cdrs))
+// } else if cdrs[0].OriginID != "test2_processEvent" || cdrs[1].OriginID != "test2_processEvent" || cdrs[2].OriginID != "test2_processEvent" {
+// t.Errorf("Expecting: test2_processEvent, received: %+v, %+v, %+v ", cdrs[0].OriginID, cdrs[1].OriginID, cdrs[2].OriginID)
+// }
+// sort.Slice(cdrs, func(i, j int) bool { return cdrs[i].RunID < cdrs[j].RunID })
+// if cdrs[2].RunID != "raw" { // charger with RunID *raw
+// t.Errorf("Expecting: %+v, received: %+v", "raw", cdrs[2].RunID)
+// } else if cdrs[0].RunID != "CustomerCharges" {
+// t.Errorf("Expecting: %+v, received: %+v", "CustomerCharges", cdrs[0].RunID)
+// } else if cdrs[1].RunID != "SupplierCharges" {
+// t.Errorf("Expecting: %+v, received: %+v", "SupplierCharges", cdrs[1].RunID)
+// }
+// }
-func testV1CDRsProcessEventRalS(t *testing.T) {
- argsEv := &utils.CGREvent{
- Flags: []string{utils.MetaRALs, "*attributes:false", "*chargers:false", "*export:false"},
- Tenant: "cgrates.org",
- ID: "test3",
- Event: map[string]interface{}{
- utils.RunID: "testv1",
- utils.OriginID: "test3_processEvent",
- utils.OriginHost: "OriginHost3",
- utils.RequestType: utils.MetaPseudoPrepaid,
- utils.AccountField: "1001",
- utils.Destination: "+4986517174963",
- utils.AnswerTime: time.Date(2019, 11, 27, 12, 21, 26, 0, time.UTC),
- utils.Usage: 2 * time.Minute,
- },
- }
- var reply string
- if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
- var cdrs []*engine.CDR
- if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
- RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost3"}}}, &cdrs); err != nil {
- t.Fatal("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Errorf("Expecting: 1, received: %+v", len(cdrs))
- } else if !reflect.DeepEqual(cdrs[0].Cost, 0.0204) {
- t.Errorf("Expected: %+v,\nreceived: %+v", 0.0204, utils.ToJSON(cdrs[0]))
- }
-}
+// func testV1CDRsProcessEventRalS(t *testing.T) {
+// argsEv := &utils.CGREvent{
+// Flags: []string{utils.MetaRALs, "*attributes:false", "*chargers:false", "*export:false"},
+// Tenant: "cgrates.org",
+// ID: "test3",
+// Event: map[string]interface{}{
+// utils.RunID: "testv1",
+// utils.OriginID: "test3_processEvent",
+// utils.OriginHost: "OriginHost3",
+// utils.RequestType: utils.MetaPseudoPrepaid,
+// utils.AccountField: "1001",
+// utils.Destination: "+4986517174963",
+// utils.AnswerTime: time.Date(2019, 11, 27, 12, 21, 26, 0, time.UTC),
+// utils.Usage: 2 * time.Minute,
+// },
+// }
+// var reply string
+// if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// var cdrs []*engine.CDR
+// if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+// RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost3"}}}, &cdrs); err != nil {
+// t.Fatal("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Errorf("Expecting: 1, received: %+v", len(cdrs))
+// } else if !reflect.DeepEqual(cdrs[0].Cost, 0.0204) {
+// t.Errorf("Expected: %+v,\nreceived: %+v", 0.0204, utils.ToJSON(cdrs[0]))
+// }
+// }
-func testV1CDRsProcessEventSts(t *testing.T) {
- argsEv := &utils.CGREvent{
- Flags: []string{utils.MetaStats, "*rals:false", "*attributes:false", "*chargers:false", "*export:false"},
- Tenant: "cgrates.org",
- ID: "test4",
- Event: map[string]interface{}{
- utils.RunID: "testv1",
- utils.CGRID: "c87609aa1cb6e9529ab1836cfeeebaab7aa7ebaf",
- utils.Tenant: "cgrates.org",
- utils.Category: "call",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "test4_processEvent",
- utils.OriginHost: "OriginHost4",
- utils.RequestType: utils.MetaPseudoPrepaid,
- utils.AccountField: "1001",
- utils.Destination: "+4986517174963",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 5 * time.Minute,
- },
- }
- var reply string
- if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
- var cdrs []*engine.CDR
- eOut := []*engine.CDR{
- {
- CGRID: "c87609aa1cb6e9529ab1836cfeeebaab7aa7ebaf",
- RunID: "testv1",
- OrderID: 0,
- OriginHost: "OriginHost4",
- Source: "",
- OriginID: "test4_processEvent",
- ToR: "*voice",
- RequestType: "*pseudoprepaid",
- Tenant: "cgrates.org",
- Category: "call",
- Account: "1001",
- Subject: "1001",
- Destination: "+4986517174963",
- SetupTime: time.Date(2018, 01, 07, 17, 00, 00, 0, time.UTC),
- AnswerTime: time.Date(2018, 01, 07, 17, 00, 10, 0, time.UTC),
- Usage: 300000000000,
- ExtraFields: map[string]string{},
- ExtraInfo: "",
- Partial: false,
- PreRated: false,
- CostSource: "",
- Cost: -1,
- CostDetails: nil,
- },
- }
- if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
- RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost4"}}}, &cdrs); err != nil {
- t.Fatal("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Errorf("Expecting: 1, received: %+v", len(cdrs))
- }
- cdrs[0].OrderID = 0
- cdrs[0].SetupTime = cdrs[0].SetupTime.UTC()
- cdrs[0].AnswerTime = cdrs[0].AnswerTime.UTC()
- if !reflect.DeepEqual(eOut[0], cdrs[0]) {
- t.Errorf("Expected: %+v,\nreceived: %+v", utils.ToJSON(eOut[0]), utils.ToJSON(cdrs[0]))
- }
- var metrics map[string]string
- statMetrics := map[string]string{
- utils.MetaACD: "2m30s",
- utils.MetaASR: "100%",
- utils.MetaTCD: "15m0s",
- }
+// func testV1CDRsProcessEventSts(t *testing.T) {
+// argsEv := &utils.CGREvent{
+// Flags: []string{utils.MetaStats, "*rals:false", "*attributes:false", "*chargers:false", "*export:false"},
+// Tenant: "cgrates.org",
+// ID: "test4",
+// Event: map[string]interface{}{
+// utils.RunID: "testv1",
+// utils.CGRID: "c87609aa1cb6e9529ab1836cfeeebaab7aa7ebaf",
+// utils.Tenant: "cgrates.org",
+// utils.Category: "call",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "test4_processEvent",
+// utils.OriginHost: "OriginHost4",
+// utils.RequestType: utils.MetaPseudoPrepaid,
+// utils.AccountField: "1001",
+// utils.Destination: "+4986517174963",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 5 * time.Minute,
+// },
+// }
+// var reply string
+// if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// var cdrs []*engine.CDR
+// eOut := []*engine.CDR{
+// {
+// CGRID: "c87609aa1cb6e9529ab1836cfeeebaab7aa7ebaf",
+// RunID: "testv1",
+// OrderID: 0,
+// OriginHost: "OriginHost4",
+// Source: "",
+// OriginID: "test4_processEvent",
+// ToR: "*voice",
+// RequestType: "*pseudoprepaid",
+// Tenant: "cgrates.org",
+// Category: "call",
+// Account: "1001",
+// Subject: "1001",
+// Destination: "+4986517174963",
+// SetupTime: time.Date(2018, 01, 07, 17, 00, 00, 0, time.UTC),
+// AnswerTime: time.Date(2018, 01, 07, 17, 00, 10, 0, time.UTC),
+// Usage: 300000000000,
+// ExtraFields: map[string]string{},
+// ExtraInfo: "",
+// Partial: false,
+// PreRated: false,
+// CostSource: "",
+// Cost: -1,
+// CostDetails: nil,
+// },
+// }
+// if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+// RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost4"}}}, &cdrs); err != nil {
+// t.Fatal("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Errorf("Expecting: 1, received: %+v", len(cdrs))
+// }
+// cdrs[0].OrderID = 0
+// cdrs[0].SetupTime = cdrs[0].SetupTime.UTC()
+// cdrs[0].AnswerTime = cdrs[0].AnswerTime.UTC()
+// if !reflect.DeepEqual(eOut[0], cdrs[0]) {
+// t.Errorf("Expected: %+v,\nreceived: %+v", utils.ToJSON(eOut[0]), utils.ToJSON(cdrs[0]))
+// }
+// var metrics map[string]string
+// statMetrics := map[string]string{
+// utils.MetaACD: "2m30s",
+// utils.MetaASR: "100%",
+// utils.MetaTCD: "15m0s",
+// }
- if err := pecdrsRpc.Call(utils.StatSv1GetQueueStringMetrics,
- &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_1"}}, &metrics); err != nil {
- t.Error(err)
- }
- if !reflect.DeepEqual(statMetrics, metrics) {
- t.Errorf("expecting: %+v, received: %+v", statMetrics, metrics)
- }
-}
+// if err := pecdrsRpc.Call(utils.StatSv1GetQueueStringMetrics,
+// &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_1"}}, &metrics); err != nil {
+// t.Error(err)
+// }
+// if !reflect.DeepEqual(statMetrics, metrics) {
+// t.Errorf("expecting: %+v, received: %+v", statMetrics, metrics)
+// }
+// }
-func testV1CDRsProcessEventStore(t *testing.T) {
- argsEv := &utils.CGREvent{
- Flags: []string{"*store:false", "*attributes:false", "*chargers:false", "*export:false"},
- Tenant: "cgrates.org",
- ID: "test5",
- Event: map[string]interface{}{
- utils.RunID: "testv1",
- utils.OriginID: "test5_processEvent",
- utils.OriginHost: "OriginHost5",
- utils.RequestType: utils.MetaPseudoPrepaid,
- utils.AccountField: "1001",
- utils.Destination: "+4986517174963",
- utils.AnswerTime: time.Date(2019, 11, 27, 12, 21, 26, 0, time.UTC),
- utils.Usage: 2 * time.Minute,
- },
- }
- var reply string
- if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
- var cdrs []*engine.CDR
- if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
- RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost5"}}}, &cdrs); err == nil ||
- err.Error() != "SERVER_ERROR: NOT_FOUND" {
- t.Fatal("Unexpected error: ", err.Error())
- } else if len(cdrs) != 0 {
- t.Errorf("Expecting: 0, received: %+v", len(cdrs))
- }
-}
+// func testV1CDRsProcessEventStore(t *testing.T) {
+// argsEv := &utils.CGREvent{
+// Flags: []string{"*store:false", "*attributes:false", "*chargers:false", "*export:false"},
+// Tenant: "cgrates.org",
+// ID: "test5",
+// Event: map[string]interface{}{
+// utils.RunID: "testv1",
+// utils.OriginID: "test5_processEvent",
+// utils.OriginHost: "OriginHost5",
+// utils.RequestType: utils.MetaPseudoPrepaid,
+// utils.AccountField: "1001",
+// utils.Destination: "+4986517174963",
+// utils.AnswerTime: time.Date(2019, 11, 27, 12, 21, 26, 0, time.UTC),
+// utils.Usage: 2 * time.Minute,
+// },
+// }
+// var reply string
+// if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, argsEv, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// var cdrs []*engine.CDR
+// if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+// RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost5"}}}, &cdrs); err == nil ||
+// err.Error() != "SERVER_ERROR: NOT_FOUND" {
+// t.Fatal("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 0 {
+// t.Errorf("Expecting: 0, received: %+v", len(cdrs))
+// }
+// }
-func testV1CDRsProcessEventThreshold(t *testing.T) {
- var reply string
- if err := pecdrsRpc.Call(utils.APIerSv2SetActions, &utils.AttrSetActions{
- ActionsId: "ACT_LOG",
- Actions: []*utils.TPAction{
- {Identifier: utils.MetaLog},
- {
- Identifier: utils.MetaTopUpReset, BalanceType: utils.MetaVoice,
- Units: "10", ExpiryTime: "*unlimited",
- DestinationIds: "*any", BalanceWeight: "10", Weight: 10},
- },
- }, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
- }
- tPrfl := engine.ThresholdProfileWithAPIOpts{
- ThresholdProfile: &engine.ThresholdProfile{
- Tenant: "cgrates.org",
- ID: "THD_Test",
- FilterIDs: []string{
- "*lt:~*req.CostDetails.AccountSummary.BalanceSummaries[0].Value:10",
- "*string:~*req.Account:1005", // only for indexes
- },
- MaxHits: -1,
- Weight: 30,
- ActionProfileIDs: []string{"ACT_LOG"},
- Async: true,
- },
- }
- if err := pecdrsRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
- attrSetAcnt := v2.AttrSetAccount{
- Tenant: "cgrates.org",
- Account: "1005",
- ExtraOptions: map[string]bool{
- utils.AllowNegative: true,
- },
- }
- if err := pecdrsRpc.Call(utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
- t.Fatal(err)
- }
- attrs := &utils.AttrSetBalance{
- Tenant: "cgrates.org",
- Account: "1005",
- BalanceType: utils.MetaMonetary,
- Value: 1,
- Balance: map[string]interface{}{
- utils.ID: utils.MetaDefault,
- utils.Weight: 10.0,
- },
- }
- if err := pecdrsRpc.Call(utils.APIerSv2SetBalance, attrs, &reply); err != nil {
- t.Fatal(err)
- }
- args := &utils.CGREvent{
- Flags: []string{utils.MetaThresholds, utils.MetaRALs, utils.ConcatenatedKey(utils.MetaChargers, "false"), "*export:false"},
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.OriginID: "testV2CDRsProcessCDRWithThreshold",
- utils.OriginHost: "OriginHost6",
- utils.Source: "testV2CDRsProcessCDRWithThreshold",
- utils.RequestType: utils.MetaPseudoPrepaid,
- utils.Category: "call",
- utils.AccountField: "1005",
- utils.Subject: "ANY2CNT",
- utils.Destination: "+4986517174963",
- utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
- utils.Usage: 100 * time.Minute,
- "field_extr1": "val_extr1",
- "fieldextr2": "valextr2",
- },
- }
- if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
- t.Error("Unexpected error: ", err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
+// func testV1CDRsProcessEventThreshold(t *testing.T) {
+// var reply string
+// if err := pecdrsRpc.Call(utils.APIerSv2SetActions, &utils.AttrSetActions{
+// ActionsId: "ACT_LOG",
+// Actions: []*utils.TPAction{
+// {Identifier: utils.MetaLog},
+// {
+// Identifier: utils.MetaTopUpReset, BalanceType: utils.MetaVoice,
+// Units: "10", ExpiryTime: "*unlimited",
+// DestinationIds: "*any", BalanceWeight: "10", Weight: 10},
+// },
+// }, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
+// }
+// tPrfl := engine.ThresholdProfileWithAPIOpts{
+// ThresholdProfile: &engine.ThresholdProfile{
+// Tenant: "cgrates.org",
+// ID: "THD_Test",
+// FilterIDs: []string{
+// "*lt:~*req.CostDetails.AccountSummary.BalanceSummaries[0].Value:10",
+// "*string:~*req.Account:1005", // only for indexes
+// },
+// MaxHits: -1,
+// Weight: 30,
+// ActionProfileIDs: []string{"ACT_LOG"},
+// Async: true,
+// },
+// }
+// if err := pecdrsRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// attrSetAcnt := v2.AttrSetAccount{
+// Tenant: "cgrates.org",
+// Account: "1005",
+// ExtraOptions: map[string]bool{
+// utils.AllowNegative: true,
+// },
+// }
+// if err := pecdrsRpc.Call(utils.APIerSv2SetAccount, &attrSetAcnt, &reply); err != nil {
+// t.Fatal(err)
+// }
+// attrs := &utils.AttrSetBalance{
+// Tenant: "cgrates.org",
+// Account: "1005",
+// BalanceType: utils.MetaMonetary,
+// Value: 1,
+// Balance: map[string]interface{}{
+// utils.ID: utils.MetaDefault,
+// utils.Weight: 10.0,
+// },
+// }
+// if err := pecdrsRpc.Call(utils.APIerSv2SetBalance, attrs, &reply); err != nil {
+// t.Fatal(err)
+// }
+// args := &utils.CGREvent{
+// Flags: []string{utils.MetaThresholds, utils.MetaRALs, utils.ConcatenatedKey(utils.MetaChargers, "false"), "*export:false"},
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.OriginID: "testV2CDRsProcessCDRWithThreshold",
+// utils.OriginHost: "OriginHost6",
+// utils.Source: "testV2CDRsProcessCDRWithThreshold",
+// utils.RequestType: utils.MetaPseudoPrepaid,
+// utils.Category: "call",
+// utils.AccountField: "1005",
+// utils.Subject: "ANY2CNT",
+// utils.Destination: "+4986517174963",
+// utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
+// utils.Usage: 100 * time.Minute,
+// "field_extr1": "val_extr1",
+// "fieldextr2": "valextr2",
+// },
+// }
+// if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
- var cdrs []*engine.CDR
- if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
- RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost6"}}}, &cdrs); err != nil {
- t.Error("Unexpected error: ", err)
- } else if len(cdrs) != 1 {
- t.Errorf("Expecting: 1, received: %+v", len(cdrs))
- }
- var td engine.Threshold
- if err := pecdrsRpc.Call(utils.ThresholdSv1GetThreshold,
- &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}}, &td); err != nil {
- t.Error(err)
- } else if td.Hits != 1 {
- t.Errorf("Expecting threshold to be hit once received: %v", td.Hits)
- }
- var acnt *engine.Account
- acntAttrs := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1005"}
- time.Sleep(50 * time.Millisecond)
- expectedVoice := 10.0
- if err := pecdrsRpc.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
- t.Error(err)
- } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != expectedVoice {
- t.Errorf("Expecting: %v, received: %v", expectedVoice, rply)
- }
-}
-func testV1CDRsProcessEventExport(t *testing.T) {
- var reply string
- args := &utils.CGREvent{
- Flags: []string{utils.MetaExport, "*store:false", "*attributes:false", "*chargers:false", "*stats:false", "*thresholds:false"},
- Tenant: "cgrates.org",
- ID: "test7",
- Event: map[string]interface{}{
- utils.RunID: "testv1",
- utils.OriginID: "test7_processEvent",
- utils.OriginHost: "OriginHost7",
- utils.RequestType: utils.MetaPseudoPrepaid,
- utils.AccountField: "1001",
- utils.Destination: "+4986517174963",
- utils.AnswerTime: time.Date(2019, 11, 27, 12, 21, 26, 0, time.UTC),
- utils.Usage: 2 * time.Minute,
- },
- }
- if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err == nil ||
- err.Error() != utils.ErrPartiallyExecuted.Error() { // the export should fail as we test if the cdr is corectly writen in file
- t.Error("Unexpected error: ", err)
- }
-}
-func testV1CDRsProcessEventExportCheck(t *testing.T) {
- failoverContent := []byte(fmt.Sprintf(`{"CGRID":"%s"}`, utils.Sha1("test7_processEvent", "OriginHost7")))
- filesInDir, _ := os.ReadDir(pecdrsCfg.GeneralCfg().FailedPostsDir)
- if len(filesInDir) == 0 {
- t.Fatalf("No files in directory: %s", pecdrsCfg.GeneralCfg().FailedPostsDir)
- }
- var foundFile bool
- var fileName string
- for _, file := range filesInDir { // First file in directory is the one we need, harder to find it's name out of config
- fileName = file.Name()
- if strings.HasPrefix(fileName, "EventExporterS|") {
- foundFile = true
- filePath := path.Join(pecdrsCfg.GeneralCfg().FailedPostsDir, fileName)
- ev, err := ees.NewExportEventsFromFile(filePath)
- if err != nil {
- t.Fatal(err)
- } else if len(ev.Events) == 0 {
- t.Fatal("Expected at least one event")
- }
- if !reflect.DeepEqual(failoverContent, ev.Events[0]) {
- t.Errorf("Expecting: %q, received: %q", string(failoverContent), ev.Events[0])
- }
- }
- }
+// var cdrs []*engine.CDR
+// if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+// RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost6"}}}, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err)
+// } else if len(cdrs) != 1 {
+// t.Errorf("Expecting: 1, received: %+v", len(cdrs))
+// }
+// var td engine.Threshold
+// if err := pecdrsRpc.Call(utils.ThresholdSv1GetThreshold,
+// &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_Test"}}, &td); err != nil {
+// t.Error(err)
+// } else if td.Hits != 1 {
+// t.Errorf("Expecting threshold to be hit once received: %v", td.Hits)
+// }
+// var acnt *engine.Account
+// acntAttrs := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1005"}
+// time.Sleep(50 * time.Millisecond)
+// expectedVoice := 10.0
+// if err := pecdrsRpc.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+// t.Error(err)
+// } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != expectedVoice {
+// t.Errorf("Expecting: %v, received: %v", expectedVoice, rply)
+// }
+// }
+// func testV1CDRsProcessEventExport(t *testing.T) {
+// var reply string
+// args := &utils.CGREvent{
+// Flags: []string{utils.MetaExport, "*store:false", "*attributes:false", "*chargers:false", "*stats:false", "*thresholds:false"},
+// Tenant: "cgrates.org",
+// ID: "test7",
+// Event: map[string]interface{}{
+// utils.RunID: "testv1",
+// utils.OriginID: "test7_processEvent",
+// utils.OriginHost: "OriginHost7",
+// utils.RequestType: utils.MetaPseudoPrepaid,
+// utils.AccountField: "1001",
+// utils.Destination: "+4986517174963",
+// utils.AnswerTime: time.Date(2019, 11, 27, 12, 21, 26, 0, time.UTC),
+// utils.Usage: 2 * time.Minute,
+// },
+// }
+// if err := pecdrsRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err == nil ||
+// err.Error() != utils.ErrPartiallyExecuted.Error() { // the export should fail as we test if the cdr is corectly writen in file
+// t.Error("Unexpected error: ", err)
+// }
+// }
+// func testV1CDRsProcessEventExportCheck(t *testing.T) {
+// failoverContent := []byte(fmt.Sprintf(`{"CGRID":"%s"}`, utils.Sha1("test7_processEvent", "OriginHost7")))
+// filesInDir, _ := os.ReadDir(pecdrsCfg.GeneralCfg().FailedPostsDir)
+// if len(filesInDir) == 0 {
+// t.Fatalf("No files in directory: %s", pecdrsCfg.GeneralCfg().FailedPostsDir)
+// }
+// var foundFile bool
+// var fileName string
+// for _, file := range filesInDir { // First file in directory is the one we need, harder to find it's name out of config
+// fileName = file.Name()
+// if strings.HasPrefix(fileName, "EventExporterS|") {
+// foundFile = true
+// filePath := path.Join(pecdrsCfg.GeneralCfg().FailedPostsDir, fileName)
+// ev, err := ees.NewExportEventsFromFile(filePath)
+// if err != nil {
+// t.Fatal(err)
+// } else if len(ev.Events) == 0 {
+// t.Fatal("Expected at least one event")
+// }
+// if !reflect.DeepEqual(failoverContent, ev.Events[0]) {
+// t.Errorf("Expecting: %q, received: %q", string(failoverContent), ev.Events[0])
+// }
+// }
+// }
- if !foundFile {
- t.Fatal("Could not find the file in folder")
- }
-}
+// if !foundFile {
+// t.Fatal("Could not find the file in folder")
+// }
+// }
-func testV1CDRsV2ProcessEventRalS(t *testing.T) {
- argsEv := &utils.CGREvent{
- Flags: []string{utils.MetaRALs, "*attributes:false", "*chargers:false", "*export:false"},
- Tenant: "cgrates.org",
- ID: "test101",
- Event: map[string]interface{}{
- utils.RunID: "testv1",
- utils.OriginID: "test3_v2processEvent",
- utils.OriginHost: "OriginHost101",
- utils.RequestType: utils.MetaPseudoPrepaid,
- utils.AccountField: "1001",
- utils.Destination: "+4986517174963",
- utils.AnswerTime: time.Date(2019, 11, 27, 12, 21, 26, 0, time.UTC),
- utils.Usage: 2 * time.Minute,
- },
- }
- expRply := []*utils.EventWithFlags{
- {
- Flags: []string{},
- Event: map[string]interface{}{
- "Account": "1001",
- "AnswerTime": "2019-11-27T12:21:26Z",
- "CGRID": "d13c705aa38164aaf297fb77d7700565a3cea04b",
- "Category": "call",
- "Cost": 0.0204,
- "CostDetails": nil,
- "CostSource": "*cdrs",
- "Destination": "+4986517174963",
- "ExtraInfo": "",
- "OrderID": 0.,
- "OriginHost": "OriginHost101",
- "OriginID": "test3_v2processEvent",
- "Partial": false,
- "PreRated": false,
- "RequestType": "*pseudoprepaid",
- "RunID": "testv1",
- "SetupTime": "0001-01-01T00:00:00Z",
- "Source": "",
- "Subject": "1001",
- "Tenant": "cgrates.org",
- "ToR": "*voice",
- "Usage": 120000000000.,
- },
- },
- }
- var reply []*utils.EventWithFlags
- if err := pecdrsRpc.Call(utils.CDRsV2ProcessEvent, argsEv, &reply); err != nil {
- t.Error(err)
- }
- reply[0].Event["CostDetails"] = nil
- expRply[0].Event["CGRID"] = reply[0].Event["CGRID"]
- if *encoding == utils.MetaGOB { // gob encoding encodes 0 values of pointers to nil
- expRply[0].Flags = nil
- if utils.ToJSON(expRply) != utils.ToJSON(reply) {
- t.Errorf("Expected %s, received: %s ", utils.ToJSON(expRply), utils.ToJSON(reply))
- }
- } else {
- if !reflect.DeepEqual(reply[0], expRply[0]) {
- t.Errorf("Expected %s, received: %s ", utils.ToJSON(expRply), utils.ToJSON(reply))
- }
- }
- var cdrs []*engine.CDR
- if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
- RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost101"}}}, &cdrs); err != nil {
- t.Fatal("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Errorf("Expecting: 1, received: %+v", len(cdrs))
- } else if !reflect.DeepEqual(cdrs[0].Cost, 0.0204) {
- t.Errorf("Expected: %+v,\nreceived: %+v", 0.0204, utils.ToJSON(cdrs[0]))
- }
+// func testV1CDRsV2ProcessEventRalS(t *testing.T) {
+// argsEv := &utils.CGREvent{
+// Flags: []string{utils.MetaRALs, "*attributes:false", "*chargers:false", "*export:false"},
+// Tenant: "cgrates.org",
+// ID: "test101",
+// Event: map[string]interface{}{
+// utils.RunID: "testv1",
+// utils.OriginID: "test3_v2processEvent",
+// utils.OriginHost: "OriginHost101",
+// utils.RequestType: utils.MetaPseudoPrepaid,
+// utils.AccountField: "1001",
+// utils.Destination: "+4986517174963",
+// utils.AnswerTime: time.Date(2019, 11, 27, 12, 21, 26, 0, time.UTC),
+// utils.Usage: 2 * time.Minute,
+// },
+// }
+// expRply := []*utils.EventWithFlags{
+// {
+// Flags: []string{},
+// Event: map[string]interface{}{
+// "Account": "1001",
+// "AnswerTime": "2019-11-27T12:21:26Z",
+// "CGRID": "d13c705aa38164aaf297fb77d7700565a3cea04b",
+// "Category": "call",
+// "Cost": 0.0204,
+// "CostDetails": nil,
+// "CostSource": "*cdrs",
+// "Destination": "+4986517174963",
+// "ExtraInfo": "",
+// "OrderID": 0.,
+// "OriginHost": "OriginHost101",
+// "OriginID": "test3_v2processEvent",
+// "Partial": false,
+// "PreRated": false,
+// "RequestType": "*pseudoprepaid",
+// "RunID": "testv1",
+// "SetupTime": "0001-01-01T00:00:00Z",
+// "Source": "",
+// "Subject": "1001",
+// "Tenant": "cgrates.org",
+// "ToR": "*voice",
+// "Usage": 120000000000.,
+// },
+// },
+// }
+// var reply []*utils.EventWithFlags
+// if err := pecdrsRpc.Call(utils.CDRsV2ProcessEvent, argsEv, &reply); err != nil {
+// t.Error(err)
+// }
+// reply[0].Event["CostDetails"] = nil
+// expRply[0].Event["CGRID"] = reply[0].Event["CGRID"]
+// if *encoding == utils.MetaGOB { // gob encoding encodes 0 values of pointers to nil
+// expRply[0].Flags = nil
+// if utils.ToJSON(expRply) != utils.ToJSON(reply) {
+// t.Errorf("Expected %s, received: %s ", utils.ToJSON(expRply), utils.ToJSON(reply))
+// }
+// } else {
+// if !reflect.DeepEqual(reply[0], expRply[0]) {
+// t.Errorf("Expected %s, received: %s ", utils.ToJSON(expRply), utils.ToJSON(reply))
+// }
+// }
+// var cdrs []*engine.CDR
+// if err := pecdrsRpc.Call(utils.CDRsV1GetCDRs, &utils.RPCCDRsFilterWithAPIOpts{
+// RPCCDRsFilter: &utils.RPCCDRsFilter{OriginHosts: []string{"OriginHost101"}}}, &cdrs); err != nil {
+// t.Fatal("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Errorf("Expecting: 1, received: %+v", len(cdrs))
+// } else if !reflect.DeepEqual(cdrs[0].Cost, 0.0204) {
+// t.Errorf("Expected: %+v,\nreceived: %+v", 0.0204, utils.ToJSON(cdrs[0]))
+// }
- argsEv.Flags = append(argsEv.Flags, utils.MetaRerate)
- argsEv.CGREvent.ID = "test1002"
- argsEv.CGREvent.Event[utils.Usage] = time.Minute
+// argsEv.Flags = append(argsEv.Flags, utils.MetaRerate)
+// argsEv.CGREvent.ID = "test1002"
+// argsEv.CGREvent.Event[utils.Usage] = time.Minute
- if err := pecdrsRpc.Call(utils.CDRsV2ProcessEvent, argsEv, &reply); err != nil {
- t.Error(err)
- }
- expRply[0].Flags = []string{utils.MetaRefund}
- expRply[0].Event["Usage"] = 60000000000.
- expRply[0].Event["Cost"] = 0.0102
- reply[0].Event["CostDetails"] = nil
- if *encoding == utils.MetaGOB { // gob encoding encodes 0 values of pointers to nil
- if utils.ToJSON(expRply) != utils.ToJSON(reply) {
- t.Errorf("Expected %s, received: %s ", utils.ToJSON(expRply), utils.ToJSON(reply))
- }
- } else {
- if !reflect.DeepEqual(reply[0], expRply[0]) {
- t.Errorf("Expected %s, received: %s ", utils.ToJSON(expRply), utils.ToJSON(reply))
- }
- }
+// if err := pecdrsRpc.Call(utils.CDRsV2ProcessEvent, argsEv, &reply); err != nil {
+// t.Error(err)
+// }
+// expRply[0].Flags = []string{utils.MetaRefund}
+// expRply[0].Event["Usage"] = 60000000000.
+// expRply[0].Event["Cost"] = 0.0102
+// reply[0].Event["CostDetails"] = nil
+// if *encoding == utils.MetaGOB { // gob encoding encodes 0 values of pointers to nil
+// if utils.ToJSON(expRply) != utils.ToJSON(reply) {
+// t.Errorf("Expected %s, received: %s ", utils.ToJSON(expRply), utils.ToJSON(reply))
+// }
+// } else {
+// if !reflect.DeepEqual(reply[0], expRply[0]) {
+// t.Errorf("Expected %s, received: %s ", utils.ToJSON(expRply), utils.ToJSON(reply))
+// }
+// }
- argsEv.CGREvent.Event[utils.Usage] = 30 * time.Second
- if err := pecdrsRpc.Call(utils.CDRsV2ProcessEvent, argsEv, &reply); err != nil {
- t.Error(err)
- }
- reply[0].Event["CostDetails"] = nil
- if *encoding == utils.MetaGOB { // gob encoding encodes 0 values of pointers to nil
- if utils.ToJSON(expRply) != utils.ToJSON(reply) {
- t.Errorf("Expected %s, received: %s ", utils.ToJSON(expRply), utils.ToJSON(reply))
- }
- } else {
- if !reflect.DeepEqual(reply[0], expRply[0]) {
- t.Errorf("Expected %s, received: %s ", utils.ToJSON(expRply), utils.ToJSON(reply))
- }
- }
-}
+// argsEv.CGREvent.Event[utils.Usage] = 30 * time.Second
+// if err := pecdrsRpc.Call(utils.CDRsV2ProcessEvent, argsEv, &reply); err != nil {
+// t.Error(err)
+// }
+// reply[0].Event["CostDetails"] = nil
+// if *encoding == utils.MetaGOB { // gob encoding encodes 0 values of pointers to nil
+// if utils.ToJSON(expRply) != utils.ToJSON(reply) {
+// t.Errorf("Expected %s, received: %s ", utils.ToJSON(expRply), utils.ToJSON(reply))
+// }
+// } else {
+// if !reflect.DeepEqual(reply[0], expRply[0]) {
+// t.Errorf("Expected %s, received: %s ", utils.ToJSON(expRply), utils.ToJSON(reply))
+// }
+// }
+// }
-func testV1CDRsKillEngine(t *testing.T) {
- if err := engine.KillEngine(*waitRater); err != nil {
- t.Error(err)
- }
-}
+// func testV1CDRsKillEngine(t *testing.T) {
+// if err := engine.KillEngine(*waitRater); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/cgrloader_it_test.go b/general_tests/cgrloader_it_test.go
index 0d493467c..67ed31a7b 100644
--- a/general_tests/cgrloader_it_test.go
+++ b/general_tests/cgrloader_it_test.go
@@ -21,122 +21,122 @@ along with this program. If not, see
package general_tests
-import (
- "flag"
- "net/rpc"
- "os/exec"
- "path"
- "testing"
+// import (
+// "flag"
+// "net/rpc"
+// "os/exec"
+// "path"
+// "testing"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- loaderGoogleSheet = flag.Bool("google_sheet", false, "Run the test with google sheet")
- cgrloaderCfgPath string
- cgrloaderCfg *config.CGRConfig
- cgrloaderRPC *rpc.Client
- cgrloaderConfDIR string //run tests for specific configuration
+// var (
+// loaderGoogleSheet = flag.Bool("google_sheet", false, "Run the test with google sheet")
+// cgrloaderCfgPath string
+// cgrloaderCfg *config.CGRConfig
+// cgrloaderRPC *rpc.Client
+// cgrloaderConfDIR string //run tests for specific configuration
- sTestsCGRLoaders = []func(t *testing.T){
- testCGRLoaderInitConfig,
- testCGRLoaderInitDataDb,
- testCGRLoaderInitCdrDb,
- testCGRLoaderStartEngine,
- testCGRLoaderRpcConn,
- testCGRLoaderLoadData,
- testCGRLoaderGetData,
- testCGRLoaderKillEngine,
- }
-)
+// sTestsCGRLoaders = []func(t *testing.T){
+// testCGRLoaderInitConfig,
+// testCGRLoaderInitDataDb,
+// testCGRLoaderInitCdrDb,
+// testCGRLoaderStartEngine,
+// testCGRLoaderRpcConn,
+// testCGRLoaderLoadData,
+// testCGRLoaderGetData,
+// testCGRLoaderKillEngine,
+// }
+// )
-//Test start here
-func TestCGRLoader(t *testing.T) {
- if !*loaderGoogleSheet {
- t.SkipNow()
- return
- }
- switch *dbType {
- case utils.MetaInternal:
- t.SkipNow()
- case utils.MetaMySQL:
- cgrloaderConfDIR = "loader_mysql"
- case utils.MetaMongo:
- cgrloaderConfDIR = "loader_mongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sTestsCGRLoaders {
- t.Run(cgrloaderConfDIR, stest)
- }
-}
+// //Test start here
+// func TestCGRLoader(t *testing.T) {
+// if !*loaderGoogleSheet {
+// t.SkipNow()
+// return
+// }
+// switch *dbType {
+// case utils.MetaInternal:
+// t.SkipNow()
+// case utils.MetaMySQL:
+// cgrloaderConfDIR = "loader_mysql"
+// case utils.MetaMongo:
+// cgrloaderConfDIR = "loader_mongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sTestsCGRLoaders {
+// t.Run(cgrloaderConfDIR, stest)
+// }
+// }
-func testCGRLoaderInitConfig(t *testing.T) {
- var err error
- cgrloaderCfgPath = path.Join(*dataDir, "conf", "samples", cgrloaderConfDIR)
- if cgrloaderCfg, err = config.NewCGRConfigFromPath(cgrloaderCfgPath); err != nil {
- t.Fatal("Got config error: ", err.Error())
- }
-}
+// func testCGRLoaderInitConfig(t *testing.T) {
+// var err error
+// cgrloaderCfgPath = path.Join(*dataDir, "conf", "samples", cgrloaderConfDIR)
+// if cgrloaderCfg, err = config.NewCGRConfigFromPath(cgrloaderCfgPath); err != nil {
+// t.Fatal("Got config error: ", err.Error())
+// }
+// }
-func testCGRLoaderInitDataDb(t *testing.T) {
- if err := engine.InitDataDB(cgrloaderCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testCGRLoaderInitDataDb(t *testing.T) {
+// if err := engine.InitDataDB(cgrloaderCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testCGRLoaderInitCdrDb(t *testing.T) {
- if err := engine.InitStorDB(cgrloaderCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testCGRLoaderInitCdrDb(t *testing.T) {
+// if err := engine.InitStorDB(cgrloaderCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testCGRLoaderStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(cgrloaderCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testCGRLoaderStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(cgrloaderCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testCGRLoaderRpcConn(t *testing.T) {
- var err error
- cgrloaderRPC, err = newRPCClient(cgrloaderCfg.ListenCfg())
- if err != nil {
- t.Fatal("Could not connect to rater: ", err.Error())
- }
-}
+// func testCGRLoaderRpcConn(t *testing.T) {
+// var err error
+// cgrloaderRPC, err = newRPCClient(cgrloaderCfg.ListenCfg())
+// if err != nil {
+// t.Fatal("Could not connect to rater: ", err.Error())
+// }
+// }
-func testCGRLoaderLoadData(t *testing.T) {
- loaderPath, err := exec.LookPath("cgr-loader")
- if err != nil {
- t.Fatal(err)
- }
- loader := exec.Command(loaderPath, "-config_path", cgrloaderCfgPath, "-path", "*gapi:1pRFnsFBlKeGnD3wysZ1CXxylZI7r_Zh5iZI99ViOyPM")
- if err := loader.Start(); err != nil {
- t.Fatal(err)
- }
- if err := loader.Wait(); err != nil {
- t.Error(err)
- }
-}
+// func testCGRLoaderLoadData(t *testing.T) {
+// loaderPath, err := exec.LookPath("cgr-loader")
+// if err != nil {
+// t.Fatal(err)
+// }
+// loader := exec.Command(loaderPath, "-config_path", cgrloaderCfgPath, "-path", "*gapi:1pRFnsFBlKeGnD3wysZ1CXxylZI7r_Zh5iZI99ViOyPM")
+// if err := loader.Start(); err != nil {
+// t.Fatal(err)
+// }
+// if err := loader.Wait(); err != nil {
+// t.Error(err)
+// }
+// }
-func testCGRLoaderGetData(t *testing.T) {
- expected := []string{"ATTR_1001_SIMPLEAUTH", "ATTR_1002_SIMPLEAUTH", "ATTR_1003_SIMPLEAUTH",
- "ATTR_1001_SESSIONAUTH", "ATTR_1002_SESSIONAUTH", "ATTR_1003_SESSIONAUTH",
- "ATTR_ACC_ALIAS"}
- var result []string
- if err := cgrloaderRPC.Call(utils.AdminSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
- t.Error(err)
- } else if len(expected) != len(result) {
- t.Errorf("Expecting : %+v, received: %+v", expected, result)
- }
-}
+// func testCGRLoaderGetData(t *testing.T) {
+// expected := []string{"ATTR_1001_SIMPLEAUTH", "ATTR_1002_SIMPLEAUTH", "ATTR_1003_SIMPLEAUTH",
+// "ATTR_1001_SESSIONAUTH", "ATTR_1002_SESSIONAUTH", "ATTR_1003_SESSIONAUTH",
+// "ATTR_ACC_ALIAS"}
+// var result []string
+// if err := cgrloaderRPC.Call(utils.AdminSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{Tenant: "cgrates.org"}, &result); err != nil {
+// t.Error(err)
+// } else if len(expected) != len(result) {
+// t.Errorf("Expecting : %+v, received: %+v", expected, result)
+// }
+// }
-func testCGRLoaderKillEngine(t *testing.T) {
- if err := engine.KillEngine(*waitRater); err != nil {
- t.Error(err)
- }
-}
+// func testCGRLoaderKillEngine(t *testing.T) {
+// if err := engine.KillEngine(*waitRater); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/data_it_test.go b/general_tests/data_it_test.go
index 01c6b6179..b86fb992c 100644
--- a/general_tests/data_it_test.go
+++ b/general_tests/data_it_test.go
@@ -20,563 +20,563 @@ along with this program. If not, see
*/
package general_tests
-import (
- "net/rpc"
- "path"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- dataCfgPath string
- dataCfg *config.CGRConfig
- dataRpc *rpc.Client
- dataConfDIR string //run tests for specific configuration
- dataDelay int
+// var (
+// dataCfgPath string
+// dataCfg *config.CGRConfig
+// dataRpc *rpc.Client
+// dataConfDIR string //run tests for specific configuration
+// dataDelay int
- sTestsData = []func(t *testing.T){
- testV1DataLoadConfig,
- testV1DataInitDataDb,
- testV1DataResetStorDb,
- testV1DataStartEngine,
- testV1DataRpcConn,
- testV1DataLoadTarrifPlans,
- testV1DataDataDebitUsageWith10Kilo,
- testV1DataGetCostWith10Kilo,
- testV1DataDebitBalanceWith10Kilo,
- testV1DataDataDebitUsage1G0,
- testV1DataGetCost1G0,
- testV1DataDebitBalance1G0,
- testV1DataInitSession,
- testV1DataUpdateWith1Mo,
- testV1DataUpdateWith1Go,
- testV1DataStopEngine,
- }
-)
+// sTestsData = []func(t *testing.T){
+// testV1DataLoadConfig,
+// testV1DataInitDataDb,
+// testV1DataResetStorDb,
+// testV1DataStartEngine,
+// testV1DataRpcConn,
+// testV1DataLoadTarrifPlans,
+// testV1DataDataDebitUsageWith10Kilo,
+// testV1DataGetCostWith10Kilo,
+// testV1DataDebitBalanceWith10Kilo,
+// testV1DataDataDebitUsage1G0,
+// testV1DataGetCost1G0,
+// testV1DataDebitBalance1G0,
+// testV1DataInitSession,
+// testV1DataUpdateWith1Mo,
+// testV1DataUpdateWith1Go,
+// testV1DataStopEngine,
+// }
+// )
-// Test start here
-func TestDataIT(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- dataConfDIR = "tutinternal"
- case utils.MetaMySQL:
- dataConfDIR = "tutmysql"
- case utils.MetaMongo:
- dataConfDIR = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sTestsData {
- t.Run(dataConfDIR, stest)
- }
-}
+// // Test start here
+// func TestDataIT(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// dataConfDIR = "tutinternal"
+// case utils.MetaMySQL:
+// dataConfDIR = "tutmysql"
+// case utils.MetaMongo:
+// dataConfDIR = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sTestsData {
+// t.Run(dataConfDIR, stest)
+// }
+// }
-func testV1DataLoadConfig(t *testing.T) {
- var err error
- dataCfgPath = path.Join(*dataDir, "conf", "samples", dataConfDIR)
- if dataCfg, err = config.NewCGRConfigFromPath(dataCfgPath); err != nil {
- t.Error(err)
- }
- dataDelay = 1000
-}
+// func testV1DataLoadConfig(t *testing.T) {
+// var err error
+// dataCfgPath = path.Join(*dataDir, "conf", "samples", dataConfDIR)
+// if dataCfg, err = config.NewCGRConfigFromPath(dataCfgPath); err != nil {
+// t.Error(err)
+// }
+// dataDelay = 1000
+// }
-func testV1DataInitDataDb(t *testing.T) {
- if err := engine.InitDataDB(dataCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testV1DataInitDataDb(t *testing.T) {
+// if err := engine.InitDataDB(dataCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testV1DataResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(dataCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testV1DataResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(dataCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testV1DataStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(dataCfgPath, dataDelay); err != nil {
- t.Fatal(err)
- }
-}
+// func testV1DataStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(dataCfgPath, dataDelay); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testV1DataRpcConn(t *testing.T) {
- var err error
- dataRpc, err = newRPCClient(dataCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal("Could not connect to rater: ", err.Error())
- }
-}
+// func testV1DataRpcConn(t *testing.T) {
+// var err error
+// dataRpc, err = newRPCClient(dataCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal("Could not connect to rater: ", err.Error())
+// }
+// }
-func testV1DataGetAccountBeforeSet(t *testing.T) {
- var reply *engine.Account
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}, &reply); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
-}
+// func testV1DataGetAccountBeforeSet(t *testing.T) {
+// var reply *engine.Account
+// if err := dataRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}, &reply); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// }
-func testV1DataLoadTarrifPlans(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testData")}
- if err := dataRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
- time.Sleep(100 * time.Millisecond)
-}
+// func testV1DataLoadTarrifPlans(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testData")}
+// if err := dataRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// time.Sleep(100 * time.Millisecond)
+// }
-func testV1DataDataDebitUsageWith10Kilo(t *testing.T) {
- attrSetBalance := utils.AttrSetBalance{
- Tenant: "cgrates.org",
- Account: "testV1DataDataCost",
- BalanceType: utils.MetaData,
- Value: 356000000,
- Balance: map[string]interface{}{
- utils.Categories: "data",
- utils.ID: "testV1DataDataCost",
- utils.RatingSubject: "*zero10000ns",
- },
- }
- var reply string
- if err := dataRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Received: %s", reply)
- }
+// func testV1DataDataDebitUsageWith10Kilo(t *testing.T) {
+// attrSetBalance := utils.AttrSetBalance{
+// Tenant: "cgrates.org",
+// Account: "testV1DataDataCost",
+// BalanceType: utils.MetaData,
+// Value: 356000000,
+// Balance: map[string]interface{}{
+// utils.Categories: "data",
+// utils.ID: "testV1DataDataCost",
+// utils.RatingSubject: "*zero10000ns",
+// },
+// }
+// var reply string
+// if err := dataRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Received: %s", reply)
+// }
- expected := 356000000.0
- var acc *engine.Account
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDataCost"},
- &acc); err != nil {
- t.Error(err)
- } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
- t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
- } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
- t.Errorf("Expecting: %v, received: %v",
- expected, rply)
- }
+// expected := 356000000.0
+// var acc *engine.Account
+// if err := dataRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDataCost"},
+// &acc); err != nil {
+// t.Error(err)
+// } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
+// t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
+// } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
+// t.Errorf("Expecting: %v, received: %v",
+// expected, rply)
+// }
- usageRecord := &engine.UsageRecord{
- Tenant: "cgrates.org",
- Account: "testV1DataDataCost",
- Destination: "*any",
- Usage: "256000000",
- ToR: utils.MetaData,
- Category: "data",
- SetupTime: time.Date(2013, 11, 7, 7, 42, 20, 0, time.UTC).String(),
- AnswerTime: time.Date(2013, 11, 7, 7, 42, 20, 0, time.UTC).String(),
- }
- tStart := time.Now()
- if err := dataRpc.Call(utils.APIerSv1DebitUsage,
- &engine.UsageRecordWithAPIOpts{UsageRecord: usageRecord}, &reply); err != nil {
- t.Error(err)
- }
- if time.Now().Sub(tStart) > 50*time.Millisecond {
- t.Error("Take's too long for GetDataCost")
- }
+// usageRecord := &engine.UsageRecord{
+// Tenant: "cgrates.org",
+// Account: "testV1DataDataCost",
+// Destination: "*any",
+// Usage: "256000000",
+// ToR: utils.MetaData,
+// Category: "data",
+// SetupTime: time.Date(2013, 11, 7, 7, 42, 20, 0, time.UTC).String(),
+// AnswerTime: time.Date(2013, 11, 7, 7, 42, 20, 0, time.UTC).String(),
+// }
+// tStart := time.Now()
+// if err := dataRpc.Call(utils.APIerSv1DebitUsage,
+// &engine.UsageRecordWithAPIOpts{UsageRecord: usageRecord}, &reply); err != nil {
+// t.Error(err)
+// }
+// if time.Now().Sub(tStart) > 50*time.Millisecond {
+// t.Error("Take's too long for GetDataCost")
+// }
- expected = 100000000.0
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDataCost"},
- &acc); err != nil {
- t.Error(err)
- } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
- t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
- } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
- t.Errorf("Expecting: %v, received: %v",
- expected, rply)
- }
-}
+// expected = 100000000.0
+// if err := dataRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDataCost"},
+// &acc); err != nil {
+// t.Error(err)
+// } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
+// t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
+// } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
+// t.Errorf("Expecting: %v, received: %v",
+// expected, rply)
+// }
+// }
-func testV1DataGetCostWith10Kilo(t *testing.T) {
- attrs := v1.AttrGetDataCost{Category: "data", Tenant: "cgrates.org",
- Subject: "10kilo", AnswerTime: "*now", Usage: 256000000}
- var rply *engine.DataCost
- tStart := time.Now()
- if err := dataRpc.Call(utils.APIerSv1GetDataCost, &attrs, &rply); err != nil {
- t.Error("Unexpected nil error received: ", err.Error())
- } else if rply.Cost != 25600.000000 {
- t.Errorf("Unexpected cost received: %f", rply.Cost)
- }
- if time.Now().Sub(tStart) > 50*time.Millisecond {
- t.Error("Take's too long for GetDataCost")
- }
-}
+// func testV1DataGetCostWith10Kilo(t *testing.T) {
+// attrs := v1.AttrGetDataCost{Category: "data", Tenant: "cgrates.org",
+// Subject: "10kilo", AnswerTime: "*now", Usage: 256000000}
+// var rply *engine.DataCost
+// tStart := time.Now()
+// if err := dataRpc.Call(utils.APIerSv1GetDataCost, &attrs, &rply); err != nil {
+// t.Error("Unexpected nil error received: ", err.Error())
+// } else if rply.Cost != 25600.000000 {
+// t.Errorf("Unexpected cost received: %f", rply.Cost)
+// }
+// if time.Now().Sub(tStart) > 50*time.Millisecond {
+// t.Error("Take's too long for GetDataCost")
+// }
+// }
-func testV1DataDebitBalanceWith10Kilo(t *testing.T) {
- attrSetBalance := utils.AttrSetBalance{
- Tenant: "cgrates.org",
- Account: "testV1DataDebitBalance",
- BalanceType: utils.MetaData,
- Value: 356000000,
- Balance: map[string]interface{}{
- utils.Categories: "data",
- utils.ID: "testV1DataDebitBalance",
- utils.RatingSubject: "*zero10000ns",
- },
- }
- var reply string
- if err := dataRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Received: %s", reply)
- }
+// func testV1DataDebitBalanceWith10Kilo(t *testing.T) {
+// attrSetBalance := utils.AttrSetBalance{
+// Tenant: "cgrates.org",
+// Account: "testV1DataDebitBalance",
+// BalanceType: utils.MetaData,
+// Value: 356000000,
+// Balance: map[string]interface{}{
+// utils.Categories: "data",
+// utils.ID: "testV1DataDebitBalance",
+// utils.RatingSubject: "*zero10000ns",
+// },
+// }
+// var reply string
+// if err := dataRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Received: %s", reply)
+// }
- expected := 356000000.0
- var acc *engine.Account
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDebitBalance"},
- &acc); err != nil {
- t.Error(err)
- } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
- t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
- } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
- t.Errorf("Expecting: %v, received: %v",
- expected, rply)
- }
- tStart := time.Now()
- if err := dataRpc.Call(utils.APIerSv1DebitBalance, &v1.AttrAddBalance{
- Tenant: "cgrates.org",
- Account: "testV1DataDebitBalance",
- BalanceType: utils.MetaData,
- Value: 256000000,
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Received: %s", reply)
- }
- if time.Now().Sub(tStart) > 50*time.Millisecond {
- t.Error("Take's too long for GetDataCost")
- }
+// expected := 356000000.0
+// var acc *engine.Account
+// if err := dataRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDebitBalance"},
+// &acc); err != nil {
+// t.Error(err)
+// } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
+// t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
+// } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
+// t.Errorf("Expecting: %v, received: %v",
+// expected, rply)
+// }
+// tStart := time.Now()
+// if err := dataRpc.Call(utils.APIerSv1DebitBalance, &v1.AttrAddBalance{
+// Tenant: "cgrates.org",
+// Account: "testV1DataDebitBalance",
+// BalanceType: utils.MetaData,
+// Value: 256000000,
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Received: %s", reply)
+// }
+// if time.Now().Sub(tStart) > 50*time.Millisecond {
+// t.Error("Take's too long for GetDataCost")
+// }
- expected = 100000000.0
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDebitBalance"},
- &acc); err != nil {
- t.Error(err)
- } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
- t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
- } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
- t.Errorf("Expecting: %v, received: %v",
- expected, rply)
- }
-}
+// expected = 100000000.0
+// if err := dataRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDebitBalance"},
+// &acc); err != nil {
+// t.Error(err)
+// } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
+// t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
+// } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
+// t.Errorf("Expecting: %v, received: %v",
+// expected, rply)
+// }
+// }
-func testV1DataDataDebitUsage1G0(t *testing.T) {
- attrSetBalance := utils.AttrSetBalance{
- Tenant: "cgrates.org",
- Account: "testV1DataDataDebitUsage1G0",
- BalanceType: utils.MetaData,
- Value: 1100000000,
- Balance: map[string]interface{}{
- utils.Categories: "data",
- utils.ID: "testV1DataDataDebitUsage1G0",
- utils.RatingSubject: "*zero10000ns",
- },
- }
- var reply string
- if err := dataRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Received: %s", reply)
- }
+// func testV1DataDataDebitUsage1G0(t *testing.T) {
+// attrSetBalance := utils.AttrSetBalance{
+// Tenant: "cgrates.org",
+// Account: "testV1DataDataDebitUsage1G0",
+// BalanceType: utils.MetaData,
+// Value: 1100000000,
+// Balance: map[string]interface{}{
+// utils.Categories: "data",
+// utils.ID: "testV1DataDataDebitUsage1G0",
+// utils.RatingSubject: "*zero10000ns",
+// },
+// }
+// var reply string
+// if err := dataRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Received: %s", reply)
+// }
- expected := 1100000000.0
- var acc *engine.Account
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDataDebitUsage1G0"},
- &acc); err != nil {
- t.Error(err)
- } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
- t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
- } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
- t.Errorf("Expecting: %v, received: %v",
- expected, rply)
- }
+// expected := 1100000000.0
+// var acc *engine.Account
+// if err := dataRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDataDebitUsage1G0"},
+// &acc); err != nil {
+// t.Error(err)
+// } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
+// t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
+// } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
+// t.Errorf("Expecting: %v, received: %v",
+// expected, rply)
+// }
- usageRecord := &engine.UsageRecord{
- Tenant: "cgrates.org",
- Account: "testV1DataDataDebitUsage1G0",
- Destination: "*any",
- Usage: "1000000000",
- ToR: utils.MetaData,
- Category: "data",
- SetupTime: time.Date(2013, 11, 7, 7, 42, 20, 0, time.UTC).String(),
- AnswerTime: time.Date(2013, 11, 7, 7, 42, 20, 0, time.UTC).String(),
- }
- tStart := time.Now()
- if err := dataRpc.Call(utils.APIerSv1DebitUsage,
- &engine.UsageRecordWithAPIOpts{UsageRecord: usageRecord}, &reply); err != nil {
- t.Error(err)
- }
- if time.Now().Sub(tStart) > 100*time.Millisecond {
- t.Errorf("Take's too long for GetDataCost : %+v", time.Now().Sub(tStart))
- }
+// usageRecord := &engine.UsageRecord{
+// Tenant: "cgrates.org",
+// Account: "testV1DataDataDebitUsage1G0",
+// Destination: "*any",
+// Usage: "1000000000",
+// ToR: utils.MetaData,
+// Category: "data",
+// SetupTime: time.Date(2013, 11, 7, 7, 42, 20, 0, time.UTC).String(),
+// AnswerTime: time.Date(2013, 11, 7, 7, 42, 20, 0, time.UTC).String(),
+// }
+// tStart := time.Now()
+// if err := dataRpc.Call(utils.APIerSv1DebitUsage,
+// &engine.UsageRecordWithAPIOpts{UsageRecord: usageRecord}, &reply); err != nil {
+// t.Error(err)
+// }
+// if time.Now().Sub(tStart) > 100*time.Millisecond {
+// t.Errorf("Take's too long for GetDataCost : %+v", time.Now().Sub(tStart))
+// }
- expected = 100000000.0
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDataDebitUsage1G0"},
- &acc); err != nil {
- t.Error(err)
- } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
- t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
- } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
- t.Errorf("Expecting: %v, received: %v",
- expected, rply)
- }
-}
+// expected = 100000000.0
+// if err := dataRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDataDebitUsage1G0"},
+// &acc); err != nil {
+// t.Error(err)
+// } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
+// t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
+// } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
+// t.Errorf("Expecting: %v, received: %v",
+// expected, rply)
+// }
+// }
-func testV1DataGetCost1G0(t *testing.T) {
- attrs := v1.AttrGetDataCost{Category: "data", Tenant: "cgrates.org",
- Subject: "10kilo", AnswerTime: "*now", Usage: 1000000000}
- var rply *engine.DataCost
- tStart := time.Now()
- if err := dataRpc.Call(utils.APIerSv1GetDataCost, &attrs, &rply); err != nil {
- t.Error("Unexpected nil error received: ", err.Error())
- } else if rply.Cost != 100000.000000 {
- t.Errorf("Unexpected cost received: %f", rply.Cost)
- }
- if time.Now().Sub(tStart) > 50*time.Millisecond {
- t.Error("Take's too long for GetDataCost")
- }
-}
+// func testV1DataGetCost1G0(t *testing.T) {
+// attrs := v1.AttrGetDataCost{Category: "data", Tenant: "cgrates.org",
+// Subject: "10kilo", AnswerTime: "*now", Usage: 1000000000}
+// var rply *engine.DataCost
+// tStart := time.Now()
+// if err := dataRpc.Call(utils.APIerSv1GetDataCost, &attrs, &rply); err != nil {
+// t.Error("Unexpected nil error received: ", err.Error())
+// } else if rply.Cost != 100000.000000 {
+// t.Errorf("Unexpected cost received: %f", rply.Cost)
+// }
+// if time.Now().Sub(tStart) > 50*time.Millisecond {
+// t.Error("Take's too long for GetDataCost")
+// }
+// }
-func testV1DataDebitBalance1G0(t *testing.T) {
- attrSetBalance := utils.AttrSetBalance{
- Tenant: "cgrates.org",
- Account: "testV1DataDebitBalance1G0",
- BalanceType: utils.MetaData,
- Value: 1100000000,
- Balance: map[string]interface{}{
- utils.Categories: "data",
- utils.ID: "testV1DataDebitBalance1G0",
- utils.RatingSubject: "*zero10000ns",
- },
- }
- var reply string
- if err := dataRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Received: %s", reply)
- }
+// func testV1DataDebitBalance1G0(t *testing.T) {
+// attrSetBalance := utils.AttrSetBalance{
+// Tenant: "cgrates.org",
+// Account: "testV1DataDebitBalance1G0",
+// BalanceType: utils.MetaData,
+// Value: 1100000000,
+// Balance: map[string]interface{}{
+// utils.Categories: "data",
+// utils.ID: "testV1DataDebitBalance1G0",
+// utils.RatingSubject: "*zero10000ns",
+// },
+// }
+// var reply string
+// if err := dataRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Received: %s", reply)
+// }
- expected := 1100000000.0
- var acc *engine.Account
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDebitBalance1G0"},
- &acc); err != nil {
- t.Error(err)
- } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
- t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
- } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
- t.Errorf("Expecting: %v, received: %v",
- expected, rply)
- }
- tStart := time.Now()
- if err := dataRpc.Call(utils.APIerSv1DebitBalance, &v1.AttrAddBalance{
- Tenant: "cgrates.org",
- Account: "testV1DataDebitBalance1G0",
- BalanceType: utils.MetaData,
- Value: 1000000000,
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Received: %s", reply)
- }
- if time.Now().Sub(tStart) > 50*time.Millisecond {
- t.Error("Take's too long for GetDataCost")
- }
+// expected := 1100000000.0
+// var acc *engine.Account
+// if err := dataRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDebitBalance1G0"},
+// &acc); err != nil {
+// t.Error(err)
+// } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
+// t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
+// } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
+// t.Errorf("Expecting: %v, received: %v",
+// expected, rply)
+// }
+// tStart := time.Now()
+// if err := dataRpc.Call(utils.APIerSv1DebitBalance, &v1.AttrAddBalance{
+// Tenant: "cgrates.org",
+// Account: "testV1DataDebitBalance1G0",
+// BalanceType: utils.MetaData,
+// Value: 1000000000,
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Received: %s", reply)
+// }
+// if time.Now().Sub(tStart) > 50*time.Millisecond {
+// t.Error("Take's too long for GetDataCost")
+// }
- expected = 100000000.0
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDebitBalance1G0"},
- &acc); err != nil {
- t.Error(err)
- } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
- t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
- } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
- t.Errorf("Expecting: %v, received: %v",
- expected, rply)
- }
-}
+// expected = 100000000.0
+// if err := dataRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataDebitBalance1G0"},
+// &acc); err != nil {
+// t.Error(err)
+// } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
+// t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
+// } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
+// t.Errorf("Expecting: %v, received: %v",
+// expected, rply)
+// }
+// }
-func testV1DataInitSession(t *testing.T) {
- attrSetBalance := utils.AttrSetBalance{
- Tenant: "cgrates.org",
- Account: "testV1DataInitSession",
- BalanceType: utils.MetaData,
- Value: 1100000000,
- Balance: map[string]interface{}{
- utils.Categories: "data",
- utils.ID: "testV1DataInitSession",
- utils.RatingSubject: "*zero10000ns",
- },
- }
- var reply string
- if err := dataRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Received: %s", reply)
- }
+// func testV1DataInitSession(t *testing.T) {
+// attrSetBalance := utils.AttrSetBalance{
+// Tenant: "cgrates.org",
+// Account: "testV1DataInitSession",
+// BalanceType: utils.MetaData,
+// Value: 1100000000,
+// Balance: map[string]interface{}{
+// utils.Categories: "data",
+// utils.ID: "testV1DataInitSession",
+// utils.RatingSubject: "*zero10000ns",
+// },
+// }
+// var reply string
+// if err := dataRpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Received: %s", reply)
+// }
- expected := 1100000000.0
- var acc *engine.Account
- if err := dataRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataInitSession"},
- &acc); err != nil {
- t.Error(err)
- } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
- t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
- } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
- t.Errorf("Expecting: %v, received: %v",
- expected, rply)
- }
+// expected := 1100000000.0
+// var acc *engine.Account
+// if err := dataRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "testV1DataInitSession"},
+// &acc); err != nil {
+// t.Error(err)
+// } else if _, has := acc.BalanceMap[utils.MetaData]; !has {
+// t.Error("Unexpected balance returned: ", utils.ToJSON(acc.BalanceMap[utils.MetaData]))
+// } else if rply := acc.BalanceMap[utils.MetaData].GetTotalValue(); rply != expected {
+// t.Errorf("Expecting: %v, received: %v",
+// expected, rply)
+// }
- initUsage := 10000
- args := &sessions.V1InitSessionArgs{
- InitSession: true,
+// initUsage := 10000
+// args := &sessions.V1InitSessionArgs{
+// InitSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testV1DataInitSession",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaData,
- utils.Category: "data",
- utils.OriginID: "781512335",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "testV1DataInitSession",
- utils.Subject: "10kilo",
- utils.Destination: "*any",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.Usage: initUsage,
- },
- APIOpts: map[string]interface{}{
- utils.OptsSesTTL: "300s",
- utils.OptsSesTTLLastUsed: "0s",
- utils.OptsSesTTLMaxDelay: "1800s",
- utils.OptsSesTTLUsage: "0s",
- },
- },
- }
- var rply sessions.V1InitSessionReply
- if err := dataRpc.Call(utils.SessionSv1InitiateSession,
- args, &rply); err != nil {
- t.Error(err)
- }
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testV1DataInitSession",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaData,
+// utils.Category: "data",
+// utils.OriginID: "781512335",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "testV1DataInitSession",
+// utils.Subject: "10kilo",
+// utils.Destination: "*any",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.Usage: initUsage,
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsSesTTL: "300s",
+// utils.OptsSesTTLLastUsed: "0s",
+// utils.OptsSesTTLMaxDelay: "1800s",
+// utils.OptsSesTTLUsage: "0s",
+// },
+// },
+// }
+// var rply sessions.V1InitSessionReply
+// if err := dataRpc.Call(utils.SessionSv1InitiateSession,
+// args, &rply); err != nil {
+// t.Error(err)
+// }
- aSessions := make([]*sessions.ExternalSession, 0)
- if err := dataRpc.Call(utils.SessionSv1GetActiveSessions,
- &utils.SessionFilter{}, &aSessions); err != nil {
- t.Error(err)
- } else if len(aSessions) != 1 {
- t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v",
- utils.ToJSON(aSessions), len(aSessions))
- }
-}
+// aSessions := make([]*sessions.ExternalSession, 0)
+// if err := dataRpc.Call(utils.SessionSv1GetActiveSessions,
+// &utils.SessionFilter{}, &aSessions); err != nil {
+// t.Error(err)
+// } else if len(aSessions) != 1 {
+// t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v",
+// utils.ToJSON(aSessions), len(aSessions))
+// }
+// }
-func testV1DataUpdateWith1Mo(t *testing.T) {
- reqUsage := 1000000
- args := &sessions.V1UpdateSessionArgs{
- UpdateSession: true,
+// func testV1DataUpdateWith1Mo(t *testing.T) {
+// reqUsage := 1000000
+// args := &sessions.V1UpdateSessionArgs{
+// UpdateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testV1DataUpdateWith1Mo",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaData,
- utils.Category: "data",
- "InitialOriginID": "781512335",
- "LastUsed": 0,
- "OriginID": "781512335-11",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "testV1DataInitSession",
- utils.Subject: "10kilo",
- utils.Destination: "*any",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.Usage: reqUsage,
- },
- APIOpts: map[string]interface{}{
- utils.OptsSesTTL: "28807s",
- utils.OptsSesTTLLastUsed: "0s",
- utils.OptsSesTTLMaxDelay: "1800s",
- utils.OptsSesTTLUsage: "0s"},
- },
- }
- var rply sessions.V1UpdateSessionReply
- if err := dataRpc.Call(utils.SessionSv1UpdateSession,
- args, &rply); err != nil {
- t.Error(err)
- }
- aSessions := make([]*sessions.ExternalSession, 0)
- if err := dataRpc.Call(utils.SessionSv1GetActiveSessions,
- &utils.SessionFilter{}, &aSessions); err != nil {
- t.Error(err)
- } else if len(aSessions) != 1 {
- t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v",
- utils.ToJSON(aSessions), len(aSessions))
- }
-}
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testV1DataUpdateWith1Mo",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaData,
+// utils.Category: "data",
+// "InitialOriginID": "781512335",
+// "LastUsed": 0,
+// "OriginID": "781512335-11",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "testV1DataInitSession",
+// utils.Subject: "10kilo",
+// utils.Destination: "*any",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.Usage: reqUsage,
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsSesTTL: "28807s",
+// utils.OptsSesTTLLastUsed: "0s",
+// utils.OptsSesTTLMaxDelay: "1800s",
+// utils.OptsSesTTLUsage: "0s"},
+// },
+// }
+// var rply sessions.V1UpdateSessionReply
+// if err := dataRpc.Call(utils.SessionSv1UpdateSession,
+// args, &rply); err != nil {
+// t.Error(err)
+// }
+// aSessions := make([]*sessions.ExternalSession, 0)
+// if err := dataRpc.Call(utils.SessionSv1GetActiveSessions,
+// &utils.SessionFilter{}, &aSessions); err != nil {
+// t.Error(err)
+// } else if len(aSessions) != 1 {
+// t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v",
+// utils.ToJSON(aSessions), len(aSessions))
+// }
+// }
-func testV1DataUpdateWith1Go(t *testing.T) {
- reqUsage := 1000000000
- args := &sessions.V1UpdateSessionArgs{
- UpdateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testV1DataUpdateWith1Go",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaData,
- utils.Category: "data",
- "InitialOriginID": "781512335",
- "LastUsed": 946405,
- "OriginID": "781512335-11",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "testV1DataInitSession",
- utils.Subject: "10kilo",
- utils.Destination: "*any",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.Usage: reqUsage,
- },
- APIOpts: map[string]interface{}{
- utils.OptsSesTTL: "28807s",
- utils.OptsSesTTLLastUsed: "0s",
- utils.OptsSesTTLMaxDelay: "1800s",
- utils.OptsSesTTLUsage: "0s"},
- },
- }
- var rply sessions.V1UpdateSessionReply
- if err := dataRpc.Call(utils.SessionSv1UpdateSession,
- args, &rply); err != nil {
- t.Error(err)
- }
- aSessions := make([]*sessions.ExternalSession, 0)
- if err := dataRpc.Call(utils.SessionSv1GetActiveSessions,
- &utils.SessionFilter{}, &aSessions); err != nil {
- t.Error(err)
- } else if len(aSessions) != 1 {
- t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v",
- utils.ToJSON(aSessions), len(aSessions))
- }
+// func testV1DataUpdateWith1Go(t *testing.T) {
+// reqUsage := 1000000000
+// args := &sessions.V1UpdateSessionArgs{
+// UpdateSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testV1DataUpdateWith1Go",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaData,
+// utils.Category: "data",
+// "InitialOriginID": "781512335",
+// "LastUsed": 946405,
+// "OriginID": "781512335-11",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "testV1DataInitSession",
+// utils.Subject: "10kilo",
+// utils.Destination: "*any",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.Usage: reqUsage,
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsSesTTL: "28807s",
+// utils.OptsSesTTLLastUsed: "0s",
+// utils.OptsSesTTLMaxDelay: "1800s",
+// utils.OptsSesTTLUsage: "0s"},
+// },
+// }
+// var rply sessions.V1UpdateSessionReply
+// if err := dataRpc.Call(utils.SessionSv1UpdateSession,
+// args, &rply); err != nil {
+// t.Error(err)
+// }
+// aSessions := make([]*sessions.ExternalSession, 0)
+// if err := dataRpc.Call(utils.SessionSv1GetActiveSessions,
+// &utils.SessionFilter{}, &aSessions); err != nil {
+// t.Error(err)
+// } else if len(aSessions) != 1 {
+// t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v",
+// utils.ToJSON(aSessions), len(aSessions))
+// }
-}
+// }
-func testV1DataStopEngine(t *testing.T) {
- if err := engine.KillEngine(dataDelay); err != nil {
- t.Error(err)
- }
-}
+// func testV1DataStopEngine(t *testing.T) {
+// if err := engine.KillEngine(dataDelay); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/dbl_tp_dif_it_test.go b/general_tests/dbl_tp_dif_it_test.go
index c987e0575..9aa408452 100644
--- a/general_tests/dbl_tp_dif_it_test.go
+++ b/general_tests/dbl_tp_dif_it_test.go
@@ -18,120 +18,120 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
-package apis
+package general_tests
-import (
- "fmt"
- "os"
- "path"
- "testing"
+// import (
+// "fmt"
+// "os"
+// "path"
+// "testing"
- "github.com/cgrates/birpc"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/birpc"
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- testDblTpDifDestDir string
- testDblTpDifDestPath string
- testDblTpDifDestCfg *config.CGRConfig
- testDblTpDifDestRPC *birpc.Client
+// var (
+// testDblTpDifDestDir string
+// testDblTpDifDestPath string
+// testDblTpDifDestCfg *config.CGRConfig
+// testDblTpDifDestRPC *birpc.Client
- testDblTpDifDestTests = []func(t *testing.T){
- //testGenerateCsv,
- // testDblTpDifDestLoadConfig,
- // testDblTpDifDestResetDataDB,
- // testDblTpDifDestResetStorDb,
- // //testDblTpDifDestStartEngine,
- // testDblTpDifDestRPCConn,
- // testDblTpDifDestLoadersLoad,
- //testDblTpDifDestStopCgrEngine,
- }
-)
+// testDblTpDifDestTests = []func(t *testing.T){
+// //testGenerateCsv,
+// // testDblTpDifDestLoadConfig,
+// // testDblTpDifDestResetDataDB,
+// // testDblTpDifDestResetStorDb,
+// // //testDblTpDifDestStartEngine,
+// // testDblTpDifDestRPCConn,
+// // testDblTpDifDestLoadersLoad,
+// //testDblTpDifDestStopCgrEngine,
+// }
+// )
-func TestDblTpDifDest(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- testDblTpDifDestDir = "dblTpDifInternal"
- case utils.MetaMySQL:
- testDblTpDifDestDir = "dblTpDifMySql"
- case utils.MetaMongo:
- testDblTpDifDestDir = "dblTpDifInternalMongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, testDblTpDifDest := range testDblTpDifDestTests {
- t.Run(testDblTpDifDestDir, testDblTpDifDest)
- }
-}
+// func TestDblTpDifDest(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// testDblTpDifDestDir = "dblTpDifInternal"
+// case utils.MetaMySQL:
+// testDblTpDifDestDir = "dblTpDifMySql"
+// case utils.MetaMongo:
+// testDblTpDifDestDir = "dblTpDifInternalMongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, testDblTpDifDest := range testDblTpDifDestTests {
+// t.Run(testDblTpDifDestDir, testDblTpDifDest)
+// }
+// }
-func testDblTpDifDestLoadConfig(t *testing.T) {
- var err error
- testDblTpDifDestPath = path.Join(*dataDir, "conf", "samples", testDblTpDifDestDir)
- if testDblTpDifDestCfg, err = config.NewCGRConfigFromPath(testDblTpDifDestPath); err != nil {
- t.Error(err)
- }
-}
+// func testDblTpDifDestLoadConfig(t *testing.T) {
+// var err error
+// testDblTpDifDestPath = path.Join(*dataDir, "conf", "samples", testDblTpDifDestDir)
+// if testDblTpDifDestCfg, err = config.NewCGRConfigFromPath(testDblTpDifDestPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testDblTpDifDestResetDataDB(t *testing.T) {
- if err := engine.InitDataDB(testDblTpDifDestCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testDblTpDifDestResetDataDB(t *testing.T) {
+// if err := engine.InitDataDB(testDblTpDifDestCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testDblTpDifDestResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(testDblTpDifDestCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testDblTpDifDestResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(testDblTpDifDestCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testDblTpDifDestStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(testDblTpDifDestPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testDblTpDifDestStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(testDblTpDifDestPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testDblTpDifDestRPCConn(t *testing.T) {
- var err error
- testDblTpDifDestRPC, err = newRPCClient(testDblTpDifDestCfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testDblTpDifDestRPCConn(t *testing.T) {
+// var err error
+// testDblTpDifDestRPC, err = newRPCClient(testDblTpDifDestCfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testDblTpDifDestLoadersLoad(t *testing.T) {
- // var reply string
- // if err := testDblTpDifDestRPC.Call(context.Background(), utils.LoaderSv1Load,
- // &loaders.ArgsProcessFolder{
- // LoaderID: "LoaderRatesTest",
- // StopOnError: true,
- // Caching: utils.StringPointer(utils.MetaReload),
- // ForceLock: true,
- // }, &reply); err != nil {
- // t.Error(err)
- // } else if reply != utils.OK {
- // t.Error("Unexpected reply returned:", reply)
- // }
+// func testDblTpDifDestLoadersLoad(t *testing.T) {
+// // var reply string
+// // if err := testDblTpDifDestRPC.Call(context.Background(), utils.LoaderSv1Load,
+// // &loaders.ArgsProcessFolder{
+// // LoaderID: "LoaderRatesTest",
+// // StopOnError: true,
+// // Caching: utils.StringPointer(utils.MetaReload),
+// // ForceLock: true,
+// // }, &reply); err != nil {
+// // t.Error(err)
+// // } else if reply != utils.OK {
+// // t.Error("Unexpected reply returned:", reply)
+// // }
-}
-func testGenerateCsv(t *testing.T) {
- filename := "/tmp/dat2"
- os.Remove(filename)
- f, _ := os.Create(filename)
- fmt.Fprintf(f, `#Tenant,ID,FilterIDs,Weights,MinCost,MaxCost,MaxCostStrategy,RateID,RateFilterIDs,RateActivationStart,RateWeights,RateBlocker,RateIntervalStart,RateFixedFee,RateRecurrentFee,RateUnit,RateIncrement`+"\n")
- n := 100000
- for i := 1; i <= n; i++ {
- fmt.Fprintf(f, `cgrates.org,RT_RETAIL%v,,,,,,RT_1,*prefix:~*req.Destination:%v,"* * * * *",,,0s,,0.4,1m,30s`, i, i)
- fmt.Fprintf(f, "\n")
- fmt.Fprintf(f, `cgrates.org,RT_RETAIL%v,,,,,,RT_1_CHRISTMAS,*prefix:~*req.Destination:%v,* * 24 12 *,;30,false,0s,,0.06,1m,1s`, i, i)
- fmt.Fprintf(f, "\n")
- }
-}
-func testDblTpDifDestStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// }
+// func testGenerateCsv(t *testing.T) {
+// filename := "/tmp/dat2"
+// os.Remove(filename)
+// f, _ := os.Create(filename)
+// fmt.Fprintf(f, `#Tenant,ID,FilterIDs,Weights,MinCost,MaxCost,MaxCostStrategy,RateID,RateFilterIDs,RateActivationStart,RateWeights,RateBlocker,RateIntervalStart,RateFixedFee,RateRecurrentFee,RateUnit,RateIncrement`+"\n")
+// n := 100000
+// for i := 1; i <= n; i++ {
+// fmt.Fprintf(f, `cgrates.org,RT_RETAIL%v,,,,,,RT_1,*prefix:~*req.Destination:%v,"* * * * *",,,0s,,0.4,1m,30s`, i, i)
+// fmt.Fprintf(f, "\n")
+// fmt.Fprintf(f, `cgrates.org,RT_RETAIL%v,,,,,,RT_1_CHRISTMAS,*prefix:~*req.Destination:%v,* * 24 12 *,;30,false,0s,,0.06,1m,1s`, i, i)
+// fmt.Fprintf(f, "\n")
+// }
+// }
+// func testDblTpDifDestStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/doubleremove_it_test.go b/general_tests/doubleremove_it_test.go
index ee26347a5..f0d357e01 100644
--- a/general_tests/doubleremove_it_test.go
+++ b/general_tests/doubleremove_it_test.go
@@ -20,308 +20,308 @@ along with this program. If not, see
*/
package general_tests
-import (
- "path"
- "reflect"
- "testing"
- "time"
+// import (
+// "path"
+// "reflect"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-// subtests to be executed
-var (
- doubleRemovePath string
- doubleRemoveDIR string
- doubleRemove *config.CGRConfig
- doubleRemoveAccount = "refundAcc"
- doubleRemoveTenant = "cgrates.org"
+// // subtests to be executed
+// var (
+// doubleRemovePath string
+// doubleRemoveDIR string
+// doubleRemove *config.CGRConfig
+// doubleRemoveAccount = "refundAcc"
+// doubleRemoveTenant = "cgrates.org"
- doubleRemoveIT = []func(t *testing.T){
- testdoubleRemoveLoadConfig,
- testdoubleRemoveInitDataDb,
- testdoubleRemoveStartEngine,
- testdoubleRemoveRpcConn,
+// doubleRemoveIT = []func(t *testing.T){
+// testdoubleRemoveLoadConfig,
+// testdoubleRemoveInitDataDb,
+// testdoubleRemoveStartEngine,
+// testdoubleRemoveRpcConn,
- testdoubleRemoveStatQueueProfile,
- testdoubleRemoveActions,
- testdoubleRemoveActionPlan,
+// testdoubleRemoveStatQueueProfile,
+// testdoubleRemoveActions,
+// testdoubleRemoveActionPlan,
- testdoubleRemoveKillEngine,
- }
-)
+// testdoubleRemoveKillEngine,
+// }
+// )
-//Test start here
-func TestDoubleRemoveIT(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- doubleRemoveDIR = "tutinternal"
- case utils.MetaMySQL:
- doubleRemoveDIR = "tutmysql"
- case utils.MetaMongo:
- doubleRemoveDIR = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
+// //Test start here
+// func TestDoubleRemoveIT(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// doubleRemoveDIR = "tutinternal"
+// case utils.MetaMySQL:
+// doubleRemoveDIR = "tutmysql"
+// case utils.MetaMongo:
+// doubleRemoveDIR = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
- for _, stest := range doubleRemoveIT {
- t.Run(doubleRemoveDIR, stest)
- }
-}
+// for _, stest := range doubleRemoveIT {
+// t.Run(doubleRemoveDIR, stest)
+// }
+// }
-func testdoubleRemoveLoadConfig(t *testing.T) {
- var err error
- doubleRemovePath = path.Join(*dataDir, "conf", "samples", doubleRemoveDIR)
- if doubleRemove, err = config.NewCGRConfigFromPath(doubleRemovePath); err != nil {
- t.Error(err)
- }
-}
+// func testdoubleRemoveLoadConfig(t *testing.T) {
+// var err error
+// doubleRemovePath = path.Join(*dataDir, "conf", "samples", doubleRemoveDIR)
+// if doubleRemove, err = config.NewCGRConfigFromPath(doubleRemovePath); err != nil {
+// t.Error(err)
+// }
+// }
-func testdoubleRemoveInitDataDb(t *testing.T) {
- if err := engine.InitDataDB(doubleRemove); err != nil {
- t.Fatal(err)
- }
-}
+// func testdoubleRemoveInitDataDb(t *testing.T) {
+// if err := engine.InitDataDB(doubleRemove); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testdoubleRemoveStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(doubleRemovePath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testdoubleRemoveStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(doubleRemovePath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testdoubleRemoveRpcConn(t *testing.T) {
- var err error
- sesRPC, err = newRPCClient(doubleRemove.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal("Could not connect to rater: ", err.Error())
- }
-}
+// func testdoubleRemoveRpcConn(t *testing.T) {
+// var err error
+// sesRPC, err = newRPCClient(doubleRemove.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal("Could not connect to rater: ", err.Error())
+// }
+// }
-func testdoubleRemoveStatQueueProfile(t *testing.T) {
- // check
- var reply *engine.StatQueueProfile
- if err := sesRPC.Call(utils.AdminSv1GetStatQueueProfile,
- &utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &reply); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
- // set
- statConfig := &engine.StatQueueProfileWithAPIOpts{
- StatQueueProfile: &engine.StatQueueProfile{
- Tenant: doubleRemoveTenant,
- ID: "TEST_PROFILE1",
- FilterIDs: []string{"*ai:~*req.AnswerTime:2020-04-18T14:25:00Z|2020-04-18T14:25:00Z"},
- QueueLength: 10,
- TTL: 10 * time.Second,
- Metrics: []*engine.MetricWithFilters{
- {
- MetricID: "*sum",
- },
- {
- MetricID: "*acd",
- },
- },
- ThresholdIDs: []string{"Val1", "Val2"},
- Blocker: true,
- Stored: true,
- Weight: 20,
- MinItems: 1,
- },
- }
- var result string
- if err := sesRPC.Call(utils.AdminSv1SetStatQueueProfile, statConfig, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- //check
- if err := sesRPC.Call(utils.AdminSv1GetStatQueueProfile,
- &utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
- t.Errorf("Expecting: %+v, received: %+v", statConfig.StatQueueProfile, reply)
- }
+// func testdoubleRemoveStatQueueProfile(t *testing.T) {
+// // check
+// var reply *engine.StatQueueProfile
+// if err := sesRPC.Call(utils.AdminSv1GetStatQueueProfile,
+// &utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &reply); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// // set
+// statConfig := &engine.StatQueueProfileWithAPIOpts{
+// StatQueueProfile: &engine.StatQueueProfile{
+// Tenant: doubleRemoveTenant,
+// ID: "TEST_PROFILE1",
+// FilterIDs: []string{"*ai:~*req.AnswerTime:2020-04-18T14:25:00Z|2020-04-18T14:25:00Z"},
+// QueueLength: 10,
+// TTL: 10 * time.Second,
+// Metrics: []*engine.MetricWithFilters{
+// {
+// MetricID: "*sum",
+// },
+// {
+// MetricID: "*acd",
+// },
+// },
+// ThresholdIDs: []string{"Val1", "Val2"},
+// Blocker: true,
+// Stored: true,
+// Weight: 20,
+// MinItems: 1,
+// },
+// }
+// var result string
+// if err := sesRPC.Call(utils.AdminSv1SetStatQueueProfile, statConfig, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// //check
+// if err := sesRPC.Call(utils.AdminSv1GetStatQueueProfile,
+// &utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(statConfig.StatQueueProfile, reply) {
+// t.Errorf("Expecting: %+v, received: %+v", statConfig.StatQueueProfile, reply)
+// }
- //remove
- if err := sesRPC.Call(utils.AdminSv1RemoveStatQueueProfile,
- &utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := sesRPC.Call(utils.AdminSv1RemoveStatQueueProfile,
- &utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &result); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
- if err := sesRPC.Call(utils.AdminSv1RemoveStatQueueProfile,
- &utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &result); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
- // check
- if err := sesRPC.Call(utils.AdminSv1GetStatQueueProfile,
- &utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &reply); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
-}
+// //remove
+// if err := sesRPC.Call(utils.AdminSv1RemoveStatQueueProfile,
+// &utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := sesRPC.Call(utils.AdminSv1RemoveStatQueueProfile,
+// &utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &result); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// if err := sesRPC.Call(utils.AdminSv1RemoveStatQueueProfile,
+// &utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &result); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// // check
+// if err := sesRPC.Call(utils.AdminSv1GetStatQueueProfile,
+// &utils.TenantID{Tenant: doubleRemoveTenant, ID: "TEST_PROFILE1"}, &reply); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// }
-func testdoubleRemoveActions(t *testing.T) {
- // check
- var reply1 []*utils.TPAction
- if doubleRemoveDIR != "tutinternal" { // on internal do not get so we do not cache this action with nil in cache
- if err := sesRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err == nil || err.Error() != "SERVER_ERROR: NOT_FOUND" {
- t.Error(err)
- }
- }
- // set
- attrs1 := &v1.V1AttrSetActions{
- ActionsId: "ACTS_1",
- Actions: []*v1.V1TPAction{
- {
- Identifier: utils.MetaTopUpReset,
- BalanceType: utils.MetaMonetary,
- Units: 75.0,
- ExpiryTime: utils.MetaUnlimited,
- Weight: 20.0}},
- }
- var reply string
- if err := sesRPC.Call(utils.APIerSv1SetActions, &attrs1, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Unexpected reply returned: %s", reply)
- }
- // set it again (expect EXISTS)
- if err := sesRPC.Call(utils.APIerSv1SetActions, &attrs1, &reply); err == nil || err.Error() != "EXISTS" {
- t.Error(err)
- }
- // check
- eOut := []*utils.TPAction{
- {
- Identifier: utils.MetaTopUpReset,
- BalanceType: utils.MetaMonetary,
- Units: "75",
- BalanceWeight: "0",
- BalanceBlocker: "false",
- BalanceDisabled: "false",
- ExpiryTime: utils.MetaUnlimited,
- Weight: 20.0,
- }}
- if err := sesRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err != nil {
- t.Error("Got error on APIerSv1.GetActions: ", err.Error())
- } else if !reflect.DeepEqual(eOut, reply1) {
- t.Errorf("Expected: %v, received: %v", utils.ToJSON(eOut), utils.ToJSON(reply1))
- }
- // remove
- if err := sesRPC.Call(utils.APIerSv1RemoveActions, &v1.AttrRemoveActions{
- ActionIDs: []string{"ACTS_1"}}, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
- // remove it again (expect ErrNotFound)
- // if err := sesRPC.Call(utils.APIerSv1RemoveActions, &v1.AttrRemoveActions{
- // ActionIDs: []string{"ACTS_1"}}, &reply); err == nil ||
- // err.Error() != utils.ErrNotFound.Error() {
- // t.Error(err)
- // }
- // check again
- if err := sesRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err == nil || err.Error() != "SERVER_ERROR: NOT_FOUND" {
- t.Error(err)
- }
-}
+// func testdoubleRemoveActions(t *testing.T) {
+// // check
+// var reply1 []*utils.TPAction
+// if doubleRemoveDIR != "tutinternal" { // on internal do not get so we do not cache this action with nil in cache
+// if err := sesRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err == nil || err.Error() != "SERVER_ERROR: NOT_FOUND" {
+// t.Error(err)
+// }
+// }
+// // set
+// attrs1 := &v1.V1AttrSetActions{
+// ActionsId: "ACTS_1",
+// Actions: []*v1.V1TPAction{
+// {
+// Identifier: utils.MetaTopUpReset,
+// BalanceType: utils.MetaMonetary,
+// Units: 75.0,
+// ExpiryTime: utils.MetaUnlimited,
+// Weight: 20.0}},
+// }
+// var reply string
+// if err := sesRPC.Call(utils.APIerSv1SetActions, &attrs1, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Unexpected reply returned: %s", reply)
+// }
+// // set it again (expect EXISTS)
+// if err := sesRPC.Call(utils.APIerSv1SetActions, &attrs1, &reply); err == nil || err.Error() != "EXISTS" {
+// t.Error(err)
+// }
+// // check
+// eOut := []*utils.TPAction{
+// {
+// Identifier: utils.MetaTopUpReset,
+// BalanceType: utils.MetaMonetary,
+// Units: "75",
+// BalanceWeight: "0",
+// BalanceBlocker: "false",
+// BalanceDisabled: "false",
+// ExpiryTime: utils.MetaUnlimited,
+// Weight: 20.0,
+// }}
+// if err := sesRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err != nil {
+// t.Error("Got error on APIerSv1.GetActions: ", err.Error())
+// } else if !reflect.DeepEqual(eOut, reply1) {
+// t.Errorf("Expected: %v, received: %v", utils.ToJSON(eOut), utils.ToJSON(reply1))
+// }
+// // remove
+// if err := sesRPC.Call(utils.APIerSv1RemoveActions, &v1.AttrRemoveActions{
+// ActionIDs: []string{"ACTS_1"}}, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// // remove it again (expect ErrNotFound)
+// // if err := sesRPC.Call(utils.APIerSv1RemoveActions, &v1.AttrRemoveActions{
+// // ActionIDs: []string{"ACTS_1"}}, &reply); err == nil ||
+// // err.Error() != utils.ErrNotFound.Error() {
+// // t.Error(err)
+// // }
+// // check again
+// if err := sesRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_1"), &reply1); err == nil || err.Error() != "SERVER_ERROR: NOT_FOUND" {
+// t.Error(err)
+// }
+// }
-func testdoubleRemoveActionPlan(t *testing.T) {
- //set action
- var reply string
- if err := sesRPC.Call(utils.APIerSv2SetActions, &utils.AttrSetActions{
- ActionsId: "ACTS_2",
- Actions: []*utils.TPAction{{Identifier: utils.MetaLog}},
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
- }
- // check action
- var reply1 []*utils.TPAction
- eOut := []*utils.TPAction{
- {
- Identifier: "*log",
- Units: "0",
- BalanceWeight: "0",
- BalanceBlocker: "false",
- BalanceDisabled: "false",
- Weight: 0}}
+// func testdoubleRemoveActionPlan(t *testing.T) {
+// //set action
+// var reply string
+// if err := sesRPC.Call(utils.APIerSv2SetActions, &utils.AttrSetActions{
+// ActionsId: "ACTS_2",
+// Actions: []*utils.TPAction{{Identifier: utils.MetaLog}},
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
+// }
+// // check action
+// var reply1 []*utils.TPAction
+// eOut := []*utils.TPAction{
+// {
+// Identifier: "*log",
+// Units: "0",
+// BalanceWeight: "0",
+// BalanceBlocker: "false",
+// BalanceDisabled: "false",
+// Weight: 0}}
- if err := sesRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_2"), &reply1); err != nil {
- t.Error("Got error on APIerSv1.GetActions: ", err.Error())
- } else if !reflect.DeepEqual(eOut, reply1) {
- t.Errorf("Expected: %v, received: %v", utils.ToJSON(eOut), utils.ToJSON(reply1))
- }
- // check ActionPlan
- var aps []*engine.ActionPlan
- /*
- should return ErrNotFound, right now it returns nil and an empty slice,
- needs to be reviewed
+// if err := sesRPC.Call(utils.APIerSv1GetActions, utils.StringPointer("ACTS_2"), &reply1); err != nil {
+// t.Error("Got error on APIerSv1.GetActions: ", err.Error())
+// } else if !reflect.DeepEqual(eOut, reply1) {
+// t.Errorf("Expected: %v, received: %v", utils.ToJSON(eOut), utils.ToJSON(reply1))
+// }
+// // check ActionPlan
+// var aps []*engine.ActionPlan
+// /*
+// should return ErrNotFound, right now it returns nil and an empty slice,
+// needs to be reviewed
- if err := sesRPC.Call(utils.APIerSv1GetActionPlan,
- v1.AttrGetActionPlan{ID: utils.EmptyString}, &aps); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Errorf("Error: %+v, rcv: %+v", err, utils.ToJSON(aps))
- }
- */
- // set ActionPlan
- atms1 := &v1.AttrSetActionPlan{
- Id: "ATMS_1",
- ActionPlan: []*v1.AttrActionPlan{
- {
- ActionsId: "ACTS_2",
- Time: utils.MetaASAP,
- Weight: 20.0},
- },
- }
- if err := sesRPC.Call(utils.APIerSv1SetActionPlan, &atms1, &reply); err != nil {
- t.Error("Got error on APIerSv1.SetActionPlan: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Unexpected reply returned: %s", reply)
- }
- // set it again (expect EXISTS)
- if err := sesRPC.Call(utils.APIerSv1SetActionPlan, &atms1, &reply); err == nil || err.Error() != "EXISTS" {
- t.Error(err)
- }
- // check
- if err := sesRPC.Call(utils.APIerSv1GetActionPlan,
- &v1.AttrGetActionPlan{ID: "ATMS_1"}, &aps); err != nil {
- t.Error(err)
- } else if len(aps) != 1 {
- t.Errorf("Expected: %v,\n received: %v", 1, len(aps))
- } else if aps[0].Id != "ATMS_1" {
- // remove
- if err := sesRPC.Call(utils.APIerSv1RemoveActionPlan, &v1.AttrGetActionPlan{
- ID: "ATMS_1"}, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
- //check again
- /*
- this should return ErrNotFound, right now it returns nil and an empty slice,
- needs to be reviewed.
+// if err := sesRPC.Call(utils.APIerSv1GetActionPlan,
+// v1.AttrGetActionPlan{ID: utils.EmptyString}, &aps); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Errorf("Error: %+v, rcv: %+v", err, utils.ToJSON(aps))
+// }
+// */
+// // set ActionPlan
+// atms1 := &v1.AttrSetActionPlan{
+// Id: "ATMS_1",
+// ActionPlan: []*v1.AttrActionPlan{
+// {
+// ActionsId: "ACTS_2",
+// Time: utils.MetaASAP,
+// Weight: 20.0},
+// },
+// }
+// if err := sesRPC.Call(utils.APIerSv1SetActionPlan, &atms1, &reply); err != nil {
+// t.Error("Got error on APIerSv1.SetActionPlan: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Unexpected reply returned: %s", reply)
+// }
+// // set it again (expect EXISTS)
+// if err := sesRPC.Call(utils.APIerSv1SetActionPlan, &atms1, &reply); err == nil || err.Error() != "EXISTS" {
+// t.Error(err)
+// }
+// // check
+// if err := sesRPC.Call(utils.APIerSv1GetActionPlan,
+// &v1.AttrGetActionPlan{ID: "ATMS_1"}, &aps); err != nil {
+// t.Error(err)
+// } else if len(aps) != 1 {
+// t.Errorf("Expected: %v,\n received: %v", 1, len(aps))
+// } else if aps[0].Id != "ATMS_1" {
+// // remove
+// if err := sesRPC.Call(utils.APIerSv1RemoveActionPlan, &v1.AttrGetActionPlan{
+// ID: "ATMS_1"}, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// //check again
+// /*
+// this should return ErrNotFound, right now it returns nil and an empty slice,
+// needs to be reviewed.
- if err := sesRPC.Call(utils.APIerSv1GetActionPlan,
- v1.AttrGetActionPlan{ID: utils.EmptyString}, &aps); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Errorf("Error: %+v, rcv: %+v", err, utils.ToJSON(aps))
- }
- */
- }
-}
+// if err := sesRPC.Call(utils.APIerSv1GetActionPlan,
+// v1.AttrGetActionPlan{ID: utils.EmptyString}, &aps); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Errorf("Error: %+v, rcv: %+v", err, utils.ToJSON(aps))
+// }
+// */
+// }
+// }
-func testdoubleRemoveKillEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testdoubleRemoveKillEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/export_it_test.go b/general_tests/export_it_test.go
index 67e5da1f2..94dadfc2d 100644
--- a/general_tests/export_it_test.go
+++ b/general_tests/export_it_test.go
@@ -20,553 +20,553 @@ along with this program. If not, see
*/
package general_tests
-import (
- "net/rpc"
- "os"
- "path"
- "reflect"
- "sort"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "os"
+// "path"
+// "reflect"
+// "sort"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- expCfgDir string
- expCfgPath string
- expCfg *config.CGRConfig
- expRpc *rpc.Client
+// var (
+// expCfgDir string
+// expCfgPath string
+// expCfg *config.CGRConfig
+// expRpc *rpc.Client
- sTestsExp = []func(t *testing.T){
- testExpLoadConfig,
- testExpResetDataDB,
- testExpResetStorDb,
- testExpStartEngine,
- testExpRPCConn,
- testExpLoadTPFromFolder,
- testExpExportToFolder,
- testExpStopCgrEngine, // restart the engine and reset the database
- testExpResetDataDB,
- testExpResetStorDb,
- testExpStartEngine,
- testExpRPCConn,
- testExpLoadTPFromExported,
- testExpVerifyAttributes,
- testExpVerifyFilters,
- testExpVerifyThresholds,
- testExpVerifyResources,
- testExpVerifyStats,
- testExpVerifyRoutes,
- testExpVerifyRateProfiles,
- testExpVerifyActionProfiles,
- testExpVerifyAccounts,
- testExpCleanFiles,
- testExpStopCgrEngine,
- }
-)
+// sTestsExp = []func(t *testing.T){
+// testExpLoadConfig,
+// testExpResetDataDB,
+// testExpResetStorDb,
+// testExpStartEngine,
+// testExpRPCConn,
+// testExpLoadTPFromFolder,
+// testExpExportToFolder,
+// testExpStopCgrEngine, // restart the engine and reset the database
+// testExpResetDataDB,
+// testExpResetStorDb,
+// testExpStartEngine,
+// testExpRPCConn,
+// testExpLoadTPFromExported,
+// testExpVerifyAttributes,
+// testExpVerifyFilters,
+// testExpVerifyThresholds,
+// testExpVerifyResources,
+// testExpVerifyStats,
+// testExpVerifyRoutes,
+// testExpVerifyRateProfiles,
+// testExpVerifyActionProfiles,
+// testExpVerifyAccounts,
+// testExpCleanFiles,
+// testExpStopCgrEngine,
+// }
+// )
-func TestExport(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- expCfgDir = "tutinternal"
- case utils.MetaMySQL:
- expCfgDir = "tutmysql"
- case utils.MetaMongo:
- expCfgDir = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
+// func TestExport(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// expCfgDir = "tutinternal"
+// case utils.MetaMySQL:
+// expCfgDir = "tutmysql"
+// case utils.MetaMongo:
+// expCfgDir = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
- for _, stest := range sTestsExp {
- t.Run(expCfgDir, stest)
- }
-}
+// for _, stest := range sTestsExp {
+// t.Run(expCfgDir, stest)
+// }
+// }
-func testExpLoadConfig(t *testing.T) {
- expCfgPath = path.Join(*dataDir, "conf", "samples", expCfgDir)
- if expCfg, err = config.NewCGRConfigFromPath(expCfgPath); err != nil {
- t.Error(err)
- }
-}
+// func testExpLoadConfig(t *testing.T) {
+// expCfgPath = path.Join(*dataDir, "conf", "samples", expCfgDir)
+// if expCfg, err = config.NewCGRConfigFromPath(expCfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testExpResetDataDB(t *testing.T) {
- if err := engine.InitDataDB(expCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testExpResetDataDB(t *testing.T) {
+// if err := engine.InitDataDB(expCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testExpResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(expCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testExpResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(expCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testExpStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(expCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testExpStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(expCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testExpRPCConn(t *testing.T) {
- var err error
- expRpc, err = newRPCClient(expCfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testExpRPCConn(t *testing.T) {
+// var err error
+// expRpc, err = newRPCClient(expCfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testExpLoadTPFromFolder(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := expRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error(reply)
- }
-}
+// func testExpLoadTPFromFolder(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
+// if err := expRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error(reply)
+// }
+// }
-func testExpExportToFolder(t *testing.T) {
- var reply string
- arg := &utils.ArgExportToFolder{
- Path: "/tmp/tp/",
- }
- if err := expRpc.Call(utils.APIerSv1ExportToFolder, arg, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error(reply)
- }
-}
+// func testExpExportToFolder(t *testing.T) {
+// var reply string
+// arg := &utils.ArgExportToFolder{
+// Path: "/tmp/tp/",
+// }
+// if err := expRpc.Call(utils.APIerSv1ExportToFolder, arg, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error(reply)
+// }
+// }
-func testExpLoadTPFromExported(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: "/tmp/tp/"}
- if err := expRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error(reply)
- }
-}
+// func testExpLoadTPFromExported(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: "/tmp/tp/"}
+// if err := expRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error(reply)
+// }
+// }
-func testExpVerifyAttributes(t *testing.T) {
- exp := &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: "ATTR_ACNT_1001",
- FilterIDs: []string{"FLTR_ACCOUNT_1001", "*string:~*opts.*context:*sessions"},
- Attributes: []*engine.Attribute{
- {
- Path: utils.MetaReq + utils.NestingSep + "OfficeGroup",
- FilterIDs: []string{},
- Type: utils.MetaConstant,
- Value: config.NewRSRParsersMustCompile("Marketing", utils.InfieldSep),
- },
- },
- Blocker: false,
- Weight: 10.0,
- }
- var reply *engine.AttributeProfile
- if err := expRpc.Call(utils.APIerSv1GetAttributeProfile,
- utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_ACNT_1001"}}, &reply); err != nil {
- t.Fatal(err)
- }
- reply.Compile()
- if *encoding == utils.MetaGOB {
- for _, v := range exp.Attributes {
- v.FilterIDs = nil
- }
- }
- if !reflect.DeepEqual(exp, reply) {
- t.Errorf("Expecting : %+v, \n received: %+v", utils.ToJSON(exp), utils.ToJSON(reply))
- }
-}
+// func testExpVerifyAttributes(t *testing.T) {
+// exp := &engine.AttributeProfile{
+// Tenant: "cgrates.org",
+// ID: "ATTR_ACNT_1001",
+// FilterIDs: []string{"FLTR_ACCOUNT_1001", "*string:~*opts.*context:*sessions"},
+// Attributes: []*engine.Attribute{
+// {
+// Path: utils.MetaReq + utils.NestingSep + "OfficeGroup",
+// FilterIDs: []string{},
+// Type: utils.MetaConstant,
+// Value: config.NewRSRParsersMustCompile("Marketing", utils.InfieldSep),
+// },
+// },
+// Blocker: false,
+// Weight: 10.0,
+// }
+// var reply *engine.AttributeProfile
+// if err := expRpc.Call(utils.APIerSv1GetAttributeProfile,
+// utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_ACNT_1001"}}, &reply); err != nil {
+// t.Fatal(err)
+// }
+// reply.Compile()
+// if *encoding == utils.MetaGOB {
+// for _, v := range exp.Attributes {
+// v.FilterIDs = nil
+// }
+// }
+// if !reflect.DeepEqual(exp, reply) {
+// t.Errorf("Expecting : %+v, \n received: %+v", utils.ToJSON(exp), utils.ToJSON(reply))
+// }
+// }
-func testExpVerifyFilters(t *testing.T) {
- exp := &engine.Filter{
- Tenant: "cgrates.org",
- ID: "FLTR_ACCOUNT_1001",
- Rules: []*engine.FilterRule{
- {
- Element: utils.MetaDynReq + utils.NestingSep + "Account",
- Type: utils.MetaString,
- Values: []string{"1001"},
- },
- },
- }
- var reply *engine.Filter
- if err := expRpc.Call(utils.APIerSv1GetFilter,
- &utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_ACCOUNT_1001"}, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(exp, reply) {
- t.Errorf("Expecting : %+v,\n received: %+v", utils.ToJSON(exp), utils.ToJSON(reply))
- }
+// func testExpVerifyFilters(t *testing.T) {
+// exp := &engine.Filter{
+// Tenant: "cgrates.org",
+// ID: "FLTR_ACCOUNT_1001",
+// Rules: []*engine.FilterRule{
+// {
+// Element: utils.MetaDynReq + utils.NestingSep + "Account",
+// Type: utils.MetaString,
+// Values: []string{"1001"},
+// },
+// },
+// }
+// var reply *engine.Filter
+// if err := expRpc.Call(utils.APIerSv1GetFilter,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_ACCOUNT_1001"}, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(exp, reply) {
+// t.Errorf("Expecting : %+v,\n received: %+v", utils.ToJSON(exp), utils.ToJSON(reply))
+// }
-}
+// }
-func testExpVerifyThresholds(t *testing.T) {
- tPrfl := &engine.ThresholdProfileWithAPIOpts{
- ThresholdProfile: &engine.ThresholdProfile{
- Tenant: "cgrates.org",
- ID: "THD_ACNT_1001",
- FilterIDs: []string{"FLTR_ACCOUNT_1001", "*ai:~*req.AnswerTime:2014-07-29T15:00:00Z"},
- MaxHits: -1,
- MinHits: 0,
- MinSleep: 0,
- Blocker: false,
- Weight: 10.0,
- ActionProfileIDs: []string{"TOPUP_MONETARY_10"},
- Async: false,
- },
- }
- var reply *engine.ThresholdProfile
- if err := expRpc.Call(utils.APIerSv1GetThresholdProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
- t.Errorf("Expecting: %+v, \n received: %+v", utils.ToJSON(tPrfl.ThresholdProfile), utils.ToJSON(reply))
- }
-}
+// func testExpVerifyThresholds(t *testing.T) {
+// tPrfl := &engine.ThresholdProfileWithAPIOpts{
+// ThresholdProfile: &engine.ThresholdProfile{
+// Tenant: "cgrates.org",
+// ID: "THD_ACNT_1001",
+// FilterIDs: []string{"FLTR_ACCOUNT_1001", "*ai:~*req.AnswerTime:2014-07-29T15:00:00Z"},
+// MaxHits: -1,
+// MinHits: 0,
+// MinSleep: 0,
+// Blocker: false,
+// Weight: 10.0,
+// ActionProfileIDs: []string{"TOPUP_MONETARY_10"},
+// Async: false,
+// },
+// }
+// var reply *engine.ThresholdProfile
+// if err := expRpc.Call(utils.APIerSv1GetThresholdProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
+// t.Errorf("Expecting: %+v, \n received: %+v", utils.ToJSON(tPrfl.ThresholdProfile), utils.ToJSON(reply))
+// }
+// }
-func testExpVerifyResources(t *testing.T) {
- rPrf := &engine.ResourceProfile{
- Tenant: "cgrates.org",
- ID: "RES_ACNT_1001",
- FilterIDs: []string{"FLTR_ACCOUNT_1001"},
- UsageTTL: time.Hour,
- Limit: 1,
- Blocker: false,
- Stored: false,
- Weight: 10,
- ThresholdIDs: []string{},
- }
- if *encoding == utils.MetaGOB {
- rPrf.ThresholdIDs = nil
- }
- var reply *engine.ResourceProfile
- if err := expRpc.Call(utils.APIerSv1GetResourceProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "RES_ACNT_1001"}, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, rPrf) {
- t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(rPrf), utils.ToJSON(reply))
- }
-}
+// func testExpVerifyResources(t *testing.T) {
+// rPrf := &engine.ResourceProfile{
+// Tenant: "cgrates.org",
+// ID: "RES_ACNT_1001",
+// FilterIDs: []string{"FLTR_ACCOUNT_1001"},
+// UsageTTL: time.Hour,
+// Limit: 1,
+// Blocker: false,
+// Stored: false,
+// Weight: 10,
+// ThresholdIDs: []string{},
+// }
+// if *encoding == utils.MetaGOB {
+// rPrf.ThresholdIDs = nil
+// }
+// var reply *engine.ResourceProfile
+// if err := expRpc.Call(utils.APIerSv1GetResourceProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "RES_ACNT_1001"}, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, rPrf) {
+// t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(rPrf), utils.ToJSON(reply))
+// }
+// }
-func testExpVerifyStats(t *testing.T) {
- sPrf := &engine.StatQueueProfile{
- Tenant: "cgrates.org",
- ID: "Stat_1",
- FilterIDs: []string{"FLTR_STAT_1", "*ai:~*req.AnswerTime:2014-07-29T15:00:00Z"},
- QueueLength: 100,
- TTL: 10 * time.Second,
- Metrics: []*engine.MetricWithFilters{
- {
- MetricID: utils.MetaACD,
- },
- {
- MetricID: utils.MetaASR,
- },
- {
- MetricID: utils.MetaTCD,
- },
- },
- Blocker: true,
- Stored: false,
- Weight: 30,
- MinItems: 0,
- ThresholdIDs: []string{utils.MetaNone},
- }
- var reply *engine.StatQueueProfile
- if err := expRpc.Call(utils.AdminSv1GetStatQueueProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_1"}, &reply); err != nil {
- t.Error(err)
- }
- sort.Slice(reply.Metrics, func(i, j int) bool {
- return reply.Metrics[i].MetricID < reply.Metrics[j].MetricID
- })
- if !reflect.DeepEqual(sPrf, reply) {
- t.Errorf("Expecting: %+v \n ,\n received: %+v",
- utils.ToJSON(sPrf), utils.ToJSON(reply))
- }
-}
+// func testExpVerifyStats(t *testing.T) {
+// sPrf := &engine.StatQueueProfile{
+// Tenant: "cgrates.org",
+// ID: "Stat_1",
+// FilterIDs: []string{"FLTR_STAT_1", "*ai:~*req.AnswerTime:2014-07-29T15:00:00Z"},
+// QueueLength: 100,
+// TTL: 10 * time.Second,
+// Metrics: []*engine.MetricWithFilters{
+// {
+// MetricID: utils.MetaACD,
+// },
+// {
+// MetricID: utils.MetaASR,
+// },
+// {
+// MetricID: utils.MetaTCD,
+// },
+// },
+// Blocker: true,
+// Stored: false,
+// Weight: 30,
+// MinItems: 0,
+// ThresholdIDs: []string{utils.MetaNone},
+// }
+// var reply *engine.StatQueueProfile
+// if err := expRpc.Call(utils.AdminSv1GetStatQueueProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_1"}, &reply); err != nil {
+// t.Error(err)
+// }
+// sort.Slice(reply.Metrics, func(i, j int) bool {
+// return reply.Metrics[i].MetricID < reply.Metrics[j].MetricID
+// })
+// if !reflect.DeepEqual(sPrf, reply) {
+// t.Errorf("Expecting: %+v \n ,\n received: %+v",
+// utils.ToJSON(sPrf), utils.ToJSON(reply))
+// }
+// }
-func testExpVerifyRoutes(t *testing.T) {
- var reply *engine.RouteProfile
- splPrf := &engine.RouteProfile{
- Tenant: "cgrates.org",
- ID: "ROUTE_ACNT_1001",
- FilterIDs: []string{"FLTR_ACCOUNT_1001"},
- Sorting: utils.MetaWeight,
- SortingParameters: []string{},
- Routes: []*engine.Route{
- {
- ID: "route1",
- Weights: 20,
- Blocker: false,
- RouteParameters: utils.EmptyString,
- },
- {
- ID: "route2",
- Weights: 10,
- Blocker: false,
- RouteParameters: utils.EmptyString,
- },
- },
- Weights: 10,
- }
+// func testExpVerifyRoutes(t *testing.T) {
+// var reply *engine.RouteProfile
+// splPrf := &engine.RouteProfile{
+// Tenant: "cgrates.org",
+// ID: "ROUTE_ACNT_1001",
+// FilterIDs: []string{"FLTR_ACCOUNT_1001"},
+// Sorting: utils.MetaWeight,
+// SortingParameters: []string{},
+// Routes: []*engine.Route{
+// {
+// ID: "route1",
+// Weights: 20,
+// Blocker: false,
+// RouteParameters: utils.EmptyString,
+// },
+// {
+// ID: "route2",
+// Weights: 10,
+// Blocker: false,
+// RouteParameters: utils.EmptyString,
+// },
+// },
+// Weights: 10,
+// }
- splPrf2 := &engine.RouteProfile{
- Tenant: "cgrates.org",
- ID: "ROUTE_ACNT_1001",
- FilterIDs: []string{"FLTR_ACCOUNT_1001"},
- Sorting: utils.MetaWeight,
- SortingParameters: []string{},
- Routes: []*engine.Route{
- {
- ID: "route2",
+// splPrf2 := &engine.RouteProfile{
+// Tenant: "cgrates.org",
+// ID: "ROUTE_ACNT_1001",
+// FilterIDs: []string{"FLTR_ACCOUNT_1001"},
+// Sorting: utils.MetaWeight,
+// SortingParameters: []string{},
+// Routes: []*engine.Route{
+// {
+// ID: "route2",
- Weights: 10,
- Blocker: false,
- RouteParameters: utils.EmptyString,
- },
- {
- ID: "route1",
- Weights: 20,
- Blocker: false,
- RouteParameters: utils.EmptyString,
- },
- },
- Weights: 10,
- }
- if err := expRpc.Call(utils.APIerSv1GetRouteProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ACNT_1001"}, &reply); err != nil {
- t.Fatal(err)
- }
- if *encoding == utils.MetaGOB {
- splPrf.SortingParameters = nil
- splPrf2.SortingParameters = nil
- }
- if !reflect.DeepEqual(splPrf, reply) && !reflect.DeepEqual(splPrf2, reply) {
- t.Errorf("Expecting: %+v \n or %+v \n,\n received: %+v",
- utils.ToJSON(splPrf), utils.ToJSON(splPrf2), utils.ToJSON(reply))
- }
-}
+// Weights: 10,
+// Blocker: false,
+// RouteParameters: utils.EmptyString,
+// },
+// {
+// ID: "route1",
+// Weights: 20,
+// Blocker: false,
+// RouteParameters: utils.EmptyString,
+// },
+// },
+// Weights: 10,
+// }
+// if err := expRpc.Call(utils.APIerSv1GetRouteProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ACNT_1001"}, &reply); err != nil {
+// t.Fatal(err)
+// }
+// if *encoding == utils.MetaGOB {
+// splPrf.SortingParameters = nil
+// splPrf2.SortingParameters = nil
+// }
+// if !reflect.DeepEqual(splPrf, reply) && !reflect.DeepEqual(splPrf2, reply) {
+// t.Errorf("Expecting: %+v \n or %+v \n,\n received: %+v",
+// utils.ToJSON(splPrf), utils.ToJSON(splPrf2), utils.ToJSON(reply))
+// }
+// }
-func testExpVerifyRateProfiles(t *testing.T) {
- var reply *utils.RateProfile
- minDecimal, err := utils.NewDecimalFromUsage("1m")
- if err != nil {
- t.Error(err)
- }
- secDecimal, err := utils.NewDecimalFromUsage("1s")
- if err != nil {
- t.Error(err)
- }
+// func testExpVerifyRateProfiles(t *testing.T) {
+// var reply *utils.RateProfile
+// minDecimal, err := utils.NewDecimalFromUsage("1m")
+// if err != nil {
+// t.Error(err)
+// }
+// secDecimal, err := utils.NewDecimalFromUsage("1s")
+// if err != nil {
+// t.Error(err)
+// }
- splPrf := &utils.RateProfile{
- Tenant: "cgrates.org",
- ID: "RT_SPECIAL_1002",
- FilterIDs: []string{"*string:~*req.Account:1002"},
- Weights: utils.DynamicWeights{
- {
- Weight: 10,
- },
- },
- MinCost: utils.NewDecimal(0, 0),
- MaxCost: utils.NewDecimal(0, 0),
- MaxCostStrategy: utils.MetaMaxCostFree,
- Rates: map[string]*utils.Rate{
- "RT_ALWAYS": {
- ID: "RT_ALWAYS",
- FilterIDs: nil,
- ActivationTimes: "* * * * *",
- Weights: utils.DynamicWeights{
- {
- Weight: 0,
- },
- },
- Blocker: false,
- IntervalRates: []*utils.IntervalRate{
- {
- IntervalStart: utils.NewDecimal(int64(0*time.Second), 0),
- RecurrentFee: utils.NewDecimal(1, 2),
- Unit: minDecimal,
- Increment: secDecimal,
- FixedFee: utils.NewDecimal(0, 0),
- },
- },
- },
- },
- }
+// splPrf := &utils.RateProfile{
+// Tenant: "cgrates.org",
+// ID: "RT_SPECIAL_1002",
+// FilterIDs: []string{"*string:~*req.Account:1002"},
+// Weights: utils.DynamicWeights{
+// {
+// Weight: 10,
+// },
+// },
+// MinCost: utils.NewDecimal(0, 0),
+// MaxCost: utils.NewDecimal(0, 0),
+// MaxCostStrategy: utils.MetaMaxCostFree,
+// Rates: map[string]*utils.Rate{
+// "RT_ALWAYS": {
+// ID: "RT_ALWAYS",
+// FilterIDs: nil,
+// ActivationTimes: "* * * * *",
+// Weights: utils.DynamicWeights{
+// {
+// Weight: 0,
+// },
+// },
+// Blocker: false,
+// IntervalRates: []*utils.IntervalRate{
+// {
+// IntervalStart: utils.NewDecimal(int64(0*time.Second), 0),
+// RecurrentFee: utils.NewDecimal(1, 2),
+// Unit: minDecimal,
+// Increment: secDecimal,
+// FixedFee: utils.NewDecimal(0, 0),
+// },
+// },
+// },
+// },
+// }
- if *encoding == utils.MetaGOB {
- splPrf.FilterIDs = nil
- }
- if err := expRpc.Call(utils.APIerSv1GetRateProfile, &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "RT_SPECIAL_1002"}}, &reply); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(splPrf, reply) {
- t.Errorf("Expecting: %+v,\n received: %+v",
- utils.ToJSON(splPrf), utils.ToJSON(reply))
- }
-}
+// if *encoding == utils.MetaGOB {
+// splPrf.FilterIDs = nil
+// }
+// if err := expRpc.Call(utils.APIerSv1GetRateProfile, &utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "RT_SPECIAL_1002"}}, &reply); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(splPrf, reply) {
+// t.Errorf("Expecting: %+v,\n received: %+v",
+// utils.ToJSON(splPrf), utils.ToJSON(reply))
+// }
+// }
-func testExpVerifyActionProfiles(t *testing.T) {
- var reply *engine.ActionProfile
- actPrf := &engine.ActionProfile{
- Tenant: "cgrates.org",
- ID: "ONE_TIME_ACT",
- FilterIDs: []string{},
- Weight: 10,
- Schedule: utils.MetaASAP,
- Targets: map[string]utils.StringSet{
- utils.MetaAccounts: {"1001": {}, "1002": {}},
- },
- Actions: []*engine.APAction{
- {
- ID: "TOPUP",
- Type: utils.MetaAddBalance,
- Diktats: []*engine.APDiktat{{
- Path: utils.MetaBalance + utils.NestingSep + "TestBalance" + utils.NestingSep + utils.Units,
- Value: "10",
- }},
- },
+// func testExpVerifyActionProfiles(t *testing.T) {
+// var reply *engine.ActionProfile
+// actPrf := &engine.ActionProfile{
+// Tenant: "cgrates.org",
+// ID: "ONE_TIME_ACT",
+// FilterIDs: []string{},
+// Weight: 10,
+// Schedule: utils.MetaASAP,
+// Targets: map[string]utils.StringSet{
+// utils.MetaAccounts: {"1001": {}, "1002": {}},
+// },
+// Actions: []*engine.APAction{
+// {
+// ID: "TOPUP",
+// Type: utils.MetaAddBalance,
+// Diktats: []*engine.APDiktat{{
+// Path: utils.MetaBalance + utils.NestingSep + "TestBalance" + utils.NestingSep + utils.Units,
+// Value: "10",
+// }},
+// },
- {
- ID: "SET_BALANCE_TEST_DATA",
- Type: utils.MetaSetBalance,
- Diktats: []*engine.APDiktat{{
- Path: utils.MetaBalance + utils.NestingSep + "TestDataBalance" + utils.NestingSep + utils.Type,
- Value: utils.MetaData,
- }},
- },
- {
- ID: "TOPUP_TEST_DATA",
- Type: utils.MetaAddBalance,
- Diktats: []*engine.APDiktat{{
- Path: utils.MetaBalance + utils.NestingSep + "TestDataBalance" + utils.NestingSep + utils.Units,
- Value: "1024",
- }},
- },
- {
- ID: "SET_BALANCE_TEST_VOICE",
- Type: utils.MetaSetBalance,
- Diktats: []*engine.APDiktat{{
- Path: utils.MetaBalance + utils.NestingSep + "TestVoiceBalance" + utils.NestingSep + utils.Type,
- Value: utils.MetaVoice,
- }},
- },
- {
- ID: "TOPUP_TEST_VOICE",
- Type: utils.MetaAddBalance,
- Diktats: []*engine.APDiktat{{
- Path: utils.MetaBalance + utils.NestingSep + "TestVoiceBalance" + utils.NestingSep + utils.Units,
- Value: "15m15s",
- }},
- },
- {
- ID: "SET_BALANCE_TEST_FILTERS",
- Type: utils.MetaSetBalance,
- Diktats: []*engine.APDiktat{{
- Path: utils.MetaBalance + utils.NestingSep + "TestVoiceBalance" + utils.NestingSep + utils.Filters,
- Value: "*string:~*req.CustomField:500",
- }},
- },
- {
- ID: "TOPUP_REM_VOICE",
- Type: utils.MetaRemBalance,
- Diktats: []*engine.APDiktat{{
- Path: "TestVoiceBalance2",
- }},
- },
- },
- }
- if *encoding == utils.MetaGOB {
- actPrf.FilterIDs = nil
- for _, act := range actPrf.Actions {
- act.FilterIDs = nil
- }
- }
- if err := expRpc.Call(utils.APIerSv1GetActionProfile, &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ONE_TIME_ACT"}}, &reply); err != nil {
- t.Fatal(err)
- } else if !reflect.DeepEqual(actPrf, reply) {
- t.Errorf("Expecting : %+v \n received: %+v", utils.ToJSON(actPrf), utils.ToJSON(reply))
- }
-}
+// {
+// ID: "SET_BALANCE_TEST_DATA",
+// Type: utils.MetaSetBalance,
+// Diktats: []*engine.APDiktat{{
+// Path: utils.MetaBalance + utils.NestingSep + "TestDataBalance" + utils.NestingSep + utils.Type,
+// Value: utils.MetaData,
+// }},
+// },
+// {
+// ID: "TOPUP_TEST_DATA",
+// Type: utils.MetaAddBalance,
+// Diktats: []*engine.APDiktat{{
+// Path: utils.MetaBalance + utils.NestingSep + "TestDataBalance" + utils.NestingSep + utils.Units,
+// Value: "1024",
+// }},
+// },
+// {
+// ID: "SET_BALANCE_TEST_VOICE",
+// Type: utils.MetaSetBalance,
+// Diktats: []*engine.APDiktat{{
+// Path: utils.MetaBalance + utils.NestingSep + "TestVoiceBalance" + utils.NestingSep + utils.Type,
+// Value: utils.MetaVoice,
+// }},
+// },
+// {
+// ID: "TOPUP_TEST_VOICE",
+// Type: utils.MetaAddBalance,
+// Diktats: []*engine.APDiktat{{
+// Path: utils.MetaBalance + utils.NestingSep + "TestVoiceBalance" + utils.NestingSep + utils.Units,
+// Value: "15m15s",
+// }},
+// },
+// {
+// ID: "SET_BALANCE_TEST_FILTERS",
+// Type: utils.MetaSetBalance,
+// Diktats: []*engine.APDiktat{{
+// Path: utils.MetaBalance + utils.NestingSep + "TestVoiceBalance" + utils.NestingSep + utils.Filters,
+// Value: "*string:~*req.CustomField:500",
+// }},
+// },
+// {
+// ID: "TOPUP_REM_VOICE",
+// Type: utils.MetaRemBalance,
+// Diktats: []*engine.APDiktat{{
+// Path: "TestVoiceBalance2",
+// }},
+// },
+// },
+// }
+// if *encoding == utils.MetaGOB {
+// actPrf.FilterIDs = nil
+// for _, act := range actPrf.Actions {
+// act.FilterIDs = nil
+// }
+// }
+// if err := expRpc.Call(utils.APIerSv1GetActionProfile, &utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ONE_TIME_ACT"}}, &reply); err != nil {
+// t.Fatal(err)
+// } else if !reflect.DeepEqual(actPrf, reply) {
+// t.Errorf("Expecting : %+v \n received: %+v", utils.ToJSON(actPrf), utils.ToJSON(reply))
+// }
+// }
-func testExpVerifyAccounts(t *testing.T) {
- var reply *utils.Account
- acctPrf := &utils.Account{
- Tenant: "cgrates.org",
- ID: "ACC_PRF_1",
- FilterIDs: []string{},
- Weights: utils.DynamicWeights{
- {
- Weight: 20,
- },
- },
- Balances: map[string]*utils.Balance{
- "MonetaryBalance": {
- ID: "MonetaryBalance",
- Weights: utils.DynamicWeights{
- {
- Weight: 10,
- },
- },
- Type: "*monetary",
- CostIncrements: []*utils.CostIncrement{
- {
- FilterIDs: []string{"fltr1", "fltr2"},
- Increment: utils.NewDecimal(13, 1),
- FixedFee: utils.NewDecimal(23, 1),
- RecurrentFee: utils.NewDecimal(33, 1),
- },
- },
- AttributeIDs: []string{"attr1", "attr2"},
- UnitFactors: []*utils.UnitFactor{
- {
- FilterIDs: []string{"fltr1", "fltr2"},
- Factor: utils.NewDecimal(100, 0),
- },
- {
- FilterIDs: []string{"fltr3"},
- Factor: utils.NewDecimal(200, 0),
- },
- },
- Units: utils.NewDecimal(14, 0),
- },
- },
- ThresholdIDs: []string{"*none"},
- }
- sort.Strings(acctPrf.Balances["MonetaryBalance"].CostIncrements[0].FilterIDs)
- sort.Strings(acctPrf.Balances["MonetaryBalance"].UnitFactors[0].FilterIDs)
- sort.Strings(acctPrf.Balances["MonetaryBalance"].AttributeIDs)
- if err := expRpc.Call(utils.APIerSv1GetAccount, &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ACC_PRF_1"}}, &reply); err != nil {
- t.Fatal(err)
- } else {
- sort.Strings(acctPrf.Balances["MonetaryBalance"].CostIncrements[0].FilterIDs)
- sort.Strings(acctPrf.Balances["MonetaryBalance"].UnitFactors[0].FilterIDs)
- sort.Strings(acctPrf.Balances["MonetaryBalance"].AttributeIDs)
- if !reflect.DeepEqual(acctPrf, reply) {
- t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(acctPrf), utils.ToJSON(reply))
- }
- }
-}
+// func testExpVerifyAccounts(t *testing.T) {
+// var reply *utils.Account
+// acctPrf := &utils.Account{
+// Tenant: "cgrates.org",
+// ID: "ACC_PRF_1",
+// FilterIDs: []string{},
+// Weights: utils.DynamicWeights{
+// {
+// Weight: 20,
+// },
+// },
+// Balances: map[string]*utils.Balance{
+// "MonetaryBalance": {
+// ID: "MonetaryBalance",
+// Weights: utils.DynamicWeights{
+// {
+// Weight: 10,
+// },
+// },
+// Type: "*monetary",
+// CostIncrements: []*utils.CostIncrement{
+// {
+// FilterIDs: []string{"fltr1", "fltr2"},
+// Increment: utils.NewDecimal(13, 1),
+// FixedFee: utils.NewDecimal(23, 1),
+// RecurrentFee: utils.NewDecimal(33, 1),
+// },
+// },
+// AttributeIDs: []string{"attr1", "attr2"},
+// UnitFactors: []*utils.UnitFactor{
+// {
+// FilterIDs: []string{"fltr1", "fltr2"},
+// Factor: utils.NewDecimal(100, 0),
+// },
+// {
+// FilterIDs: []string{"fltr3"},
+// Factor: utils.NewDecimal(200, 0),
+// },
+// },
+// Units: utils.NewDecimal(14, 0),
+// },
+// },
+// ThresholdIDs: []string{"*none"},
+// }
+// sort.Strings(acctPrf.Balances["MonetaryBalance"].CostIncrements[0].FilterIDs)
+// sort.Strings(acctPrf.Balances["MonetaryBalance"].UnitFactors[0].FilterIDs)
+// sort.Strings(acctPrf.Balances["MonetaryBalance"].AttributeIDs)
+// if err := expRpc.Call(utils.APIerSv1GetAccount, &utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ACC_PRF_1"}}, &reply); err != nil {
+// t.Fatal(err)
+// } else {
+// sort.Strings(acctPrf.Balances["MonetaryBalance"].CostIncrements[0].FilterIDs)
+// sort.Strings(acctPrf.Balances["MonetaryBalance"].UnitFactors[0].FilterIDs)
+// sort.Strings(acctPrf.Balances["MonetaryBalance"].AttributeIDs)
+// if !reflect.DeepEqual(acctPrf, reply) {
+// t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(acctPrf), utils.ToJSON(reply))
+// }
+// }
+// }
-func testExpCleanFiles(t *testing.T) {
- if err := os.RemoveAll("/tmp/tp/"); err != nil {
- t.Error(err)
- }
-}
+// func testExpCleanFiles(t *testing.T) {
+// if err := os.RemoveAll("/tmp/tp/"); err != nil {
+// t.Error(err)
+// }
+// }
-func testExpStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testExpStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/filter_update_it_test.go b/general_tests/filter_update_it_test.go
index 6d47c5b58..d0d7fea37 100644
--- a/general_tests/filter_update_it_test.go
+++ b/general_tests/filter_update_it_test.go
@@ -21,364 +21,364 @@ along with this program. If not, see
package general_tests
-import (
- "os/exec"
- "path"
- "reflect"
- "testing"
+// import (
+// "os/exec"
+// "path"
+// "reflect"
+// "testing"
- "github.com/cgrates/birpc"
- "github.com/cgrates/birpc/context"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/birpc"
+// "github.com/cgrates/birpc/context"
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- fltrUpdateCfgPath1, fltrUpdateCfgPath2 string
- fltrUpdateCfgDIR1, fltrUpdateCfgDIR2 string
- fltrUpdateCfg1, fltrUpdateCfg2 *config.CGRConfig
- fltrUpdateRPC1, fltrUpdateRPC2 *birpc.Client
- testEng1 *exec.Cmd
- sTestsFilterUpdate = []func(t *testing.T){
- testFilterUpdateInitCfg,
- testFilterUpdateResetDB,
- testFilterUpdateStartEngine,
- testFilterUpdateRpcConn,
- testFilterUpdateSetFilterE1,
- testFilterUpdateSetAttrProfileE1,
- testFilterUpdateGetAttrProfileForEventEv1E1,
- testFilterUpdateGetAttrProfileForEventEv1E2,
- testFilterUpdateGetAttrProfileForEventEv2E1NotMatching,
- testFilterUpdateGetAttrProfileForEventEv2E2NotMatching,
- testFilterUpdateSetFilterAfterAttrE1,
- testFilterUpdateGetAttrProfileForEventEv1E1NotMatching,
- testFilterUpdateGetAttrProfileForEventEv1E2NotMatching,
- testFilterUpdateGetAttrProfileForEventEv2E1,
- testFilterUpdateGetAttrProfileForEventEv2E2,
- testFilterUpdateStopEngine,
- }
- ev1 = &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "Event1",
- Event: map[string]interface{}{
- utils.AccountField: "1001",
- },
- }
- ev2 = &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "Event2",
- Event: map[string]interface{}{
- utils.AccountField: "1002",
- },
- }
-)
+// var (
+// fltrUpdateCfgPath1, fltrUpdateCfgPath2 string
+// fltrUpdateCfgDIR1, fltrUpdateCfgDIR2 string
+// fltrUpdateCfg1, fltrUpdateCfg2 *config.CGRConfig
+// fltrUpdateRPC1, fltrUpdateRPC2 *birpc.Client
+// testEng1 *exec.Cmd
+// sTestsFilterUpdate = []func(t *testing.T){
+// testFilterUpdateInitCfg,
+// testFilterUpdateResetDB,
+// testFilterUpdateStartEngine,
+// testFilterUpdateRpcConn,
+// testFilterUpdateSetFilterE1,
+// testFilterUpdateSetAttrProfileE1,
+// testFilterUpdateGetAttrProfileForEventEv1E1,
+// testFilterUpdateGetAttrProfileForEventEv1E2,
+// testFilterUpdateGetAttrProfileForEventEv2E1NotMatching,
+// testFilterUpdateGetAttrProfileForEventEv2E2NotMatching,
+// testFilterUpdateSetFilterAfterAttrE1,
+// testFilterUpdateGetAttrProfileForEventEv1E1NotMatching,
+// testFilterUpdateGetAttrProfileForEventEv1E2NotMatching,
+// testFilterUpdateGetAttrProfileForEventEv2E1,
+// testFilterUpdateGetAttrProfileForEventEv2E2,
+// testFilterUpdateStopEngine,
+// }
+// ev1 = &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "Event1",
+// Event: map[string]interface{}{
+// utils.AccountField: "1001",
+// },
+// }
+// ev2 = &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "Event2",
+// Event: map[string]interface{}{
+// utils.AccountField: "1002",
+// },
+// }
+// )
-func TestFilterUpdateIT(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- t.SkipNow()
- case utils.MetaMySQL:
- fltrUpdateCfgDIR1 = "fltr_update_e1_mysql"
- fltrUpdateCfgDIR2 = "tutmysql"
- case utils.MetaMongo:
- fltrUpdateCfgDIR1 = "fltr_update_e1_mongo"
- fltrUpdateCfgDIR2 = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
+// func TestFilterUpdateIT(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// t.SkipNow()
+// case utils.MetaMySQL:
+// fltrUpdateCfgDIR1 = "fltr_update_e1_mysql"
+// fltrUpdateCfgDIR2 = "tutmysql"
+// case utils.MetaMongo:
+// fltrUpdateCfgDIR1 = "fltr_update_e1_mongo"
+// fltrUpdateCfgDIR2 = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
- for _, stest1 := range sTestsFilterUpdate {
- t.Run(*dbType, stest1)
- }
-}
+// for _, stest1 := range sTestsFilterUpdate {
+// t.Run(*dbType, stest1)
+// }
+// }
-//Init Config
-func testFilterUpdateInitCfg(t *testing.T) {
- var err error
- fltrUpdateCfgPath1 = path.Join(*dataDir, "conf", "samples", "cache_replicate", fltrUpdateCfgDIR1)
- if fltrUpdateCfg1, err = config.NewCGRConfigFromPath(fltrUpdateCfgPath1); err != nil {
- t.Fatal(err)
- }
- fltrUpdateCfgPath2 = path.Join(*dataDir, "conf", "samples", fltrUpdateCfgDIR2)
- if fltrUpdateCfg2, err = config.NewCGRConfigFromPath(fltrUpdateCfgPath2); err != nil {
- t.Fatal(err)
- }
-}
+// //Init Config
+// func testFilterUpdateInitCfg(t *testing.T) {
+// var err error
+// fltrUpdateCfgPath1 = path.Join(*dataDir, "conf", "samples", "cache_replicate", fltrUpdateCfgDIR1)
+// if fltrUpdateCfg1, err = config.NewCGRConfigFromPath(fltrUpdateCfgPath1); err != nil {
+// t.Fatal(err)
+// }
+// fltrUpdateCfgPath2 = path.Join(*dataDir, "conf", "samples", fltrUpdateCfgDIR2)
+// if fltrUpdateCfg2, err = config.NewCGRConfigFromPath(fltrUpdateCfgPath2); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Remove data in both rating and accounting db
-func testFilterUpdateResetDB(t *testing.T) {
- if err := engine.InitDataDB(fltrUpdateCfg1); err != nil {
- t.Fatal(err)
- }
- if err := engine.InitStorDB(fltrUpdateCfg1); err != nil {
- t.Fatal(err)
- }
-}
+// // Remove data in both rating and accounting db
+// func testFilterUpdateResetDB(t *testing.T) {
+// if err := engine.InitDataDB(fltrUpdateCfg1); err != nil {
+// t.Fatal(err)
+// }
+// if err := engine.InitStorDB(fltrUpdateCfg1); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Start CGR Engine
-func testFilterUpdateStartEngine(t *testing.T) {
- var err error
- if _, err = engine.StopStartEngine(fltrUpdateCfgPath1, *waitRater); err != nil {
- t.Fatal(err)
- }
- if testEng1, err = engine.StartEngine(fltrUpdateCfgPath2, *waitRater); err != nil {
- t.Fatal(err)
- }
+// // Start CGR Engine
+// func testFilterUpdateStartEngine(t *testing.T) {
+// var err error
+// if _, err = engine.StopStartEngine(fltrUpdateCfgPath1, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// if testEng1, err = engine.StartEngine(fltrUpdateCfgPath2, *waitRater); err != nil {
+// t.Fatal(err)
+// }
-}
+// }
-// Connect rpc client to rater
-func testFilterUpdateRpcConn(t *testing.T) {
- var err error
- if fltrUpdateRPC1, err = newRPCClient(fltrUpdateCfg1.ListenCfg()); err != nil {
- t.Fatal(err)
- }
- if fltrUpdateRPC2, err = newRPCClient(fltrUpdateCfg2.ListenCfg()); err != nil {
- t.Fatal(err)
- }
-}
+// // Connect rpc client to rater
+// func testFilterUpdateRpcConn(t *testing.T) {
+// var err error
+// if fltrUpdateRPC1, err = newRPCClient(fltrUpdateCfg1.ListenCfg()); err != nil {
+// t.Fatal(err)
+// }
+// if fltrUpdateRPC2, err = newRPCClient(fltrUpdateCfg2.ListenCfg()); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testFilterUpdateStopEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testFilterUpdateStopEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
-func testFilterUpdateSetFilterE1(t *testing.T) {
- fltr := &engine.FilterWithAPIOpts{
- Filter: &engine.Filter{
- ID: "FLTR_ID",
- Tenant: "cgrates.org",
- Rules: []*engine.FilterRule{
- {
- Type: utils.MetaString,
- Element: "~*req.Account",
- Values: []string{"1001"},
- },
- },
- },
- APIOpts: map[string]interface{}{
- utils.CacheOpt: utils.MetaLoad,
- },
- }
+// func testFilterUpdateSetFilterE1(t *testing.T) {
+// fltr := &engine.FilterWithAPIOpts{
+// Filter: &engine.Filter{
+// ID: "FLTR_ID",
+// Tenant: "cgrates.org",
+// Rules: []*engine.FilterRule{
+// {
+// Type: utils.MetaString,
+// Element: "~*req.Account",
+// Values: []string{"1001"},
+// },
+// },
+// },
+// APIOpts: map[string]interface{}{
+// utils.CacheOpt: utils.MetaLoad,
+// },
+// }
- var reply string
- if err := fltrUpdateRPC1.Call(context.Background(), utils.AdminSv1SetFilter, fltr, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
+// var reply string
+// if err := fltrUpdateRPC1.Call(context.Background(), utils.AdminSv1SetFilter, fltr, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
- var result *engine.Filter
- if err := fltrUpdateRPC1.Call(context.Background(), utils.AdminSv1GetFilter,
- &utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_ID"}, &result); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(fltr.Filter, result) {
- t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ToJSON(fltr.Filter), utils.ToJSON(result))
- }
-}
+// var result *engine.Filter
+// if err := fltrUpdateRPC1.Call(context.Background(), utils.AdminSv1GetFilter,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_ID"}, &result); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(fltr.Filter, result) {
+// t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ToJSON(fltr.Filter), utils.ToJSON(result))
+// }
+// }
-func testFilterUpdateSetAttrProfileE1(t *testing.T) {
- attrPrf := &engine.APIAttributeProfileWithAPIOpts{
- APIAttributeProfile: &engine.APIAttributeProfile{
- FilterIDs: []string{"FLTR_ID"},
- ID: "ATTR_ID",
- Tenant: "cgrates.org",
- Weight: 10,
- Attributes: []*engine.ExternalAttribute{
- {
- Path: "*req.Account",
- Value: "1003",
- Type: utils.MetaConstant,
- },
- },
- },
- APIOpts: map[string]interface{}{
- utils.CacheOpt: utils.MetaNone,
- },
- }
+// func testFilterUpdateSetAttrProfileE1(t *testing.T) {
+// attrPrf := &engine.APIAttributeProfileWithAPIOpts{
+// APIAttributeProfile: &engine.APIAttributeProfile{
+// FilterIDs: []string{"FLTR_ID"},
+// ID: "ATTR_ID",
+// Tenant: "cgrates.org",
+// Weight: 10,
+// Attributes: []*engine.ExternalAttribute{
+// {
+// Path: "*req.Account",
+// Value: "1003",
+// Type: utils.MetaConstant,
+// },
+// },
+// },
+// APIOpts: map[string]interface{}{
+// utils.CacheOpt: utils.MetaNone,
+// },
+// }
- var reply string
- if err := fltrUpdateRPC1.Call(context.Background(), utils.AdminSv1SetAttributeProfile, attrPrf, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
- var result *engine.APIAttributeProfile
- if err := fltrUpdateRPC1.Call(context.Background(), utils.AdminSv1GetAttributeProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_ID"}}, &result); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(attrPrf.APIAttributeProfile, result) {
- t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ToJSON(attrPrf.APIAttributeProfile), utils.ToJSON(result))
- }
-}
+// var reply string
+// if err := fltrUpdateRPC1.Call(context.Background(), utils.AdminSv1SetAttributeProfile, attrPrf, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// var result *engine.APIAttributeProfile
+// if err := fltrUpdateRPC1.Call(context.Background(), utils.AdminSv1GetAttributeProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "ATTR_ID"}}, &result); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(attrPrf.APIAttributeProfile, result) {
+// t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ToJSON(attrPrf.APIAttributeProfile), utils.ToJSON(result))
+// }
+// }
-func testFilterUpdateGetAttrProfileForEventEv1E1(t *testing.T) {
- eAttrPrf := &engine.APIAttributeProfile{
- Tenant: "cgrates.org",
- FilterIDs: []string{"FLTR_ID"},
- ID: "ATTR_ID",
- Weight: 10,
- Attributes: []*engine.ExternalAttribute{
- {
- Path: "*req.Account",
- Value: "1003",
- Type: utils.MetaConstant,
- },
- },
- }
+// func testFilterUpdateGetAttrProfileForEventEv1E1(t *testing.T) {
+// eAttrPrf := &engine.APIAttributeProfile{
+// Tenant: "cgrates.org",
+// FilterIDs: []string{"FLTR_ID"},
+// ID: "ATTR_ID",
+// Weight: 10,
+// Attributes: []*engine.ExternalAttribute{
+// {
+// Path: "*req.Account",
+// Value: "1003",
+// Type: utils.MetaConstant,
+// },
+// },
+// }
- var attrReply *engine.APIAttributeProfile
- if err := fltrUpdateRPC1.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
- ev1, &attrReply); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(eAttrPrf, attrReply) {
- t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ToJSON(eAttrPrf), utils.ToJSON(attrReply))
- }
-}
+// var attrReply *engine.APIAttributeProfile
+// if err := fltrUpdateRPC1.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
+// ev1, &attrReply); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(eAttrPrf, attrReply) {
+// t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ToJSON(eAttrPrf), utils.ToJSON(attrReply))
+// }
+// }
-func testFilterUpdateGetAttrProfileForEventEv1E2(t *testing.T) {
- eAttrPrf := &engine.APIAttributeProfile{
- Tenant: "cgrates.org",
- FilterIDs: []string{"FLTR_ID"},
- ID: "ATTR_ID",
- Weight: 10,
- Attributes: []*engine.ExternalAttribute{
- {
- Path: "*req.Account",
- Value: "1003",
- Type: utils.MetaConstant,
- },
- },
- }
+// func testFilterUpdateGetAttrProfileForEventEv1E2(t *testing.T) {
+// eAttrPrf := &engine.APIAttributeProfile{
+// Tenant: "cgrates.org",
+// FilterIDs: []string{"FLTR_ID"},
+// ID: "ATTR_ID",
+// Weight: 10,
+// Attributes: []*engine.ExternalAttribute{
+// {
+// Path: "*req.Account",
+// Value: "1003",
+// Type: utils.MetaConstant,
+// },
+// },
+// }
- var attrReply *engine.APIAttributeProfile
- if err := fltrUpdateRPC2.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
- ev1, &attrReply); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(eAttrPrf, attrReply) {
- t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ToJSON(eAttrPrf), utils.ToJSON(attrReply))
- }
-}
+// var attrReply *engine.APIAttributeProfile
+// if err := fltrUpdateRPC2.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
+// ev1, &attrReply); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(eAttrPrf, attrReply) {
+// t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ToJSON(eAttrPrf), utils.ToJSON(attrReply))
+// }
+// }
-func testFilterUpdateGetAttrProfileForEventEv2E1(t *testing.T) {
- eAttrPrf := &engine.APIAttributeProfile{
- Tenant: "cgrates.org",
- FilterIDs: []string{"FLTR_ID"},
- ID: "ATTR_ID",
- Weight: 10,
- Attributes: []*engine.ExternalAttribute{
- {
- Path: "*req.Account",
- Value: "1003",
- Type: utils.MetaConstant,
- },
- },
- }
+// func testFilterUpdateGetAttrProfileForEventEv2E1(t *testing.T) {
+// eAttrPrf := &engine.APIAttributeProfile{
+// Tenant: "cgrates.org",
+// FilterIDs: []string{"FLTR_ID"},
+// ID: "ATTR_ID",
+// Weight: 10,
+// Attributes: []*engine.ExternalAttribute{
+// {
+// Path: "*req.Account",
+// Value: "1003",
+// Type: utils.MetaConstant,
+// },
+// },
+// }
- var attrReply *engine.APIAttributeProfile
- if err := fltrUpdateRPC1.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
- ev2, &attrReply); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(eAttrPrf, attrReply) {
- t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ToJSON(eAttrPrf), utils.ToJSON(attrReply))
- }
-}
+// var attrReply *engine.APIAttributeProfile
+// if err := fltrUpdateRPC1.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
+// ev2, &attrReply); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(eAttrPrf, attrReply) {
+// t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ToJSON(eAttrPrf), utils.ToJSON(attrReply))
+// }
+// }
-func testFilterUpdateGetAttrProfileForEventEv2E2(t *testing.T) {
- eAttrPrf := &engine.APIAttributeProfile{
- Tenant: "cgrates.org",
- FilterIDs: []string{"FLTR_ID"},
- ID: "ATTR_ID",
- Weight: 10,
- Attributes: []*engine.ExternalAttribute{
- {
- Path: "*req.Account",
- Value: "1003",
- Type: utils.MetaConstant,
- },
- },
- }
+// func testFilterUpdateGetAttrProfileForEventEv2E2(t *testing.T) {
+// eAttrPrf := &engine.APIAttributeProfile{
+// Tenant: "cgrates.org",
+// FilterIDs: []string{"FLTR_ID"},
+// ID: "ATTR_ID",
+// Weight: 10,
+// Attributes: []*engine.ExternalAttribute{
+// {
+// Path: "*req.Account",
+// Value: "1003",
+// Type: utils.MetaConstant,
+// },
+// },
+// }
- var attrReply *engine.APIAttributeProfile
- if err := fltrUpdateRPC2.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
- ev2, &attrReply); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(eAttrPrf, attrReply) {
- t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ToJSON(eAttrPrf), utils.ToJSON(attrReply))
- }
-}
+// var attrReply *engine.APIAttributeProfile
+// if err := fltrUpdateRPC2.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
+// ev2, &attrReply); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(eAttrPrf, attrReply) {
+// t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ToJSON(eAttrPrf), utils.ToJSON(attrReply))
+// }
+// }
-func testFilterUpdateSetFilterAfterAttrE1(t *testing.T) {
- fltr := &engine.FilterWithAPIOpts{
- Filter: &engine.Filter{
- ID: "FLTR_ID",
- Tenant: "cgrates.org",
- Rules: []*engine.FilterRule{
- {
- Type: utils.MetaString,
- Element: "~*req.Account",
- Values: []string{"1002"},
- },
- },
- },
- APIOpts: map[string]interface{}{
- utils.CacheOpt: utils.MetaLoad,
- },
- }
+// func testFilterUpdateSetFilterAfterAttrE1(t *testing.T) {
+// fltr := &engine.FilterWithAPIOpts{
+// Filter: &engine.Filter{
+// ID: "FLTR_ID",
+// Tenant: "cgrates.org",
+// Rules: []*engine.FilterRule{
+// {
+// Type: utils.MetaString,
+// Element: "~*req.Account",
+// Values: []string{"1002"},
+// },
+// },
+// },
+// APIOpts: map[string]interface{}{
+// utils.CacheOpt: utils.MetaLoad,
+// },
+// }
- var reply string
- if err := fltrUpdateRPC1.Call(context.Background(), utils.AdminSv1SetFilter, fltr, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
+// var reply string
+// if err := fltrUpdateRPC1.Call(context.Background(), utils.AdminSv1SetFilter, fltr, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
- var result *engine.Filter
- if err := fltrUpdateRPC1.Call(context.Background(), utils.AdminSv1GetFilter,
- &utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_ID"}, &result); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(fltr.Filter, result) {
- t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ToJSON(fltr.Filter), utils.ToJSON(result))
- }
-}
+// var result *engine.Filter
+// if err := fltrUpdateRPC1.Call(context.Background(), utils.AdminSv1GetFilter,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "FLTR_ID"}, &result); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(fltr.Filter, result) {
+// t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ToJSON(fltr.Filter), utils.ToJSON(result))
+// }
+// }
-func testFilterUpdateGetAttrProfileForEventEv1E1NotMatching(t *testing.T) {
- var attrReply *engine.APIAttributeProfile
- if err := fltrUpdateRPC1.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
- ev1, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
- }
-}
+// func testFilterUpdateGetAttrProfileForEventEv1E1NotMatching(t *testing.T) {
+// var attrReply *engine.APIAttributeProfile
+// if err := fltrUpdateRPC1.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
+// ev1, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
+// }
+// }
-func testFilterUpdateGetAttrProfileForEventEv1E2NotMatching(t *testing.T) {
- var attrReply *engine.APIAttributeProfile
- if err := fltrUpdateRPC2.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
- ev1, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
- }
-}
+// func testFilterUpdateGetAttrProfileForEventEv1E2NotMatching(t *testing.T) {
+// var attrReply *engine.APIAttributeProfile
+// if err := fltrUpdateRPC2.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
+// ev1, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
+// }
+// }
-func testFilterUpdateGetAttrProfileForEventEv2E1NotMatching(t *testing.T) {
- var attrReply *engine.APIAttributeProfile
- if err := fltrUpdateRPC1.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
- ev2, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
- }
-}
+// func testFilterUpdateGetAttrProfileForEventEv2E1NotMatching(t *testing.T) {
+// var attrReply *engine.APIAttributeProfile
+// if err := fltrUpdateRPC1.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
+// ev2, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
+// }
+// }
-func testFilterUpdateGetAttrProfileForEventEv2E2NotMatching(t *testing.T) {
- var attrReply *engine.APIAttributeProfile
- if err := fltrUpdateRPC2.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
- ev2, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
- }
-}
+// func testFilterUpdateGetAttrProfileForEventEv2E2NotMatching(t *testing.T) {
+// var attrReply *engine.APIAttributeProfile
+// if err := fltrUpdateRPC2.Call(context.Background(), utils.AttributeSv1GetAttributeForEvent,
+// ev2, &attrReply); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrNotFound, err)
+// }
+// }
diff --git a/general_tests/filtered_replication_it_test.go b/general_tests/filtered_replication_it_test.go
index 2452ca9fe..a34686e99 100644
--- a/general_tests/filtered_replication_it_test.go
+++ b/general_tests/filtered_replication_it_test.go
@@ -21,1919 +21,1919 @@ along with this program. If not, see
package general_tests
-import (
- "path"
- "reflect"
- "testing"
- "time"
-
- "github.com/cgrates/birpc"
- "github.com/cgrates/birpc/context"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
-
-var (
- fltrRplDB string
-
- fltrRplInternalCfgPath string
- fltrRplInternalCfg *config.CGRConfig
- fltrRplInternalRPC birpc.ClientConnector
-
- fltrRplEngine1CfgPath string
- fltrRplEngine1Cfg *config.CGRConfig
- fltrRplEngine1RPC birpc.ClientConnector
-
- fltrRplEngine2CfgPath string
- fltrRplEngine2Cfg *config.CGRConfig
- fltrRplEngine2RPC birpc.ClientConnector
-
- sTestsFltrRpl = []func(t *testing.T){
- testFltrRplInitCfg,
- testFltrRplInitDBs,
- testFltrRplStartEngine,
- testFltrRplRPCConn,
-
- testFltrRplAttributeProfile,
- testFltrRplFilters,
- testFltrRplThresholdProfile,
- testFltrRplStatQueueProfile,
- testFltrRplResourceProfile,
- testFltrRplRouteProfile,
- testFltrRplChargerProfile,
- testFltrRplDispatcherProfile,
- testFltrRplDispatcherHost,
- testFltrRplRateProfile,
- testFltrRplActionProfile,
- testFltrRplAccount1,
- testFltrRplAccount,
- testFltrRplDestination,
-
- testFltrRplKillEngine,
- }
-)
-
-//Test start here
-func TestFilteredReplication(t *testing.T) {
- switch *dbType {
- case utils.MetaMySQL:
- fltrRplDB = "redis"
- case utils.MetaMongo:
- fltrRplDB = "mongo"
- case utils.MetaPostgres, utils.MetaInternal:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sTestsFltrRpl {
- t.Run("TestFilteredReplication_"+fltrRplDB, stest)
- }
-}
-
-func testFltrRplInitCfg(t *testing.T) {
- var err error
-
- fltrRplInternalCfgPath = path.Join(*dataDir, "conf", "samples", "filtered_replication", "internal")
- fltrRplEngine1CfgPath = path.Join(*dataDir, "conf", "samples", "filtered_replication", "engine1_"+fltrRplDB)
- fltrRplEngine2CfgPath = path.Join(*dataDir, "conf", "samples", "filtered_replication", "engine2_"+fltrRplDB)
-
- if fltrRplInternalCfg, err = config.NewCGRConfigFromPath(context.Background(), fltrRplInternalCfgPath); err != nil {
- t.Fatal(err)
- }
- if fltrRplEngine1Cfg, err = config.NewCGRConfigFromPath(context.Background(), fltrRplEngine1CfgPath); err != nil {
- t.Fatal(err)
- }
- if fltrRplEngine2Cfg, err = config.NewCGRConfigFromPath(context.Background(), fltrRplEngine2CfgPath); err != nil {
- t.Fatal(err)
- }
-}
-
-func testFltrRplInitDBs(t *testing.T) {
- if err := engine.InitDataDB(fltrRplEngine1Cfg); err != nil {
- t.Fatal(err)
- }
-
- if err := engine.InitStorDB(fltrRplEngine1Cfg); err != nil {
- t.Fatal(err)
- }
-
- if err := engine.InitDataDB(fltrRplEngine2Cfg); err != nil {
- t.Fatal(err)
- }
-
- if err := engine.InitStorDB(fltrRplEngine2Cfg); err != nil {
- t.Fatal(err)
- }
-}
-
-func testFltrRplStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(fltrRplInternalCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
- if _, err := engine.StartEngine(fltrRplEngine1CfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
- if _, err := engine.StartEngine(fltrRplEngine2CfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
-
-func testFltrRplRPCConn(t *testing.T) {
- var err error
- tmp := *encoding
- // run only under *gob encoding
- *encoding = utils.MetaGOB
- if fltrRplInternalRPC, err = newRPCClient(fltrRplInternalCfg.ListenCfg()); err != nil {
- t.Fatal(err)
- }
- if fltrRplEngine1RPC, err = newRPCClient(fltrRplEngine1Cfg.ListenCfg()); err != nil {
- t.Fatal(err)
- }
- if fltrRplEngine2RPC, err = newRPCClient(fltrRplEngine2Cfg.ListenCfg()); err != nil {
- t.Fatal(err)
- }
- *encoding = tmp
-}
-
-func testFltrRplAttributeProfile(t *testing.T) {
- attrID := "ATTR1"
- attrPrf := &engine.AttributeProfileWithAPIOpts{
- AttributeProfile: &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: attrID,
- FilterIDs: []string{"*string:~*req.Account:dan"},
- Attributes: []*engine.Attribute{
- {
- Path: "*req.Category",
- Value: config.NewRSRParsersMustCompile(utils.MetaVoice, utils.InfieldSep),
- },
- },
- Weight: 10,
- },
- }
- var result string
- var replyPrfl *engine.AttributeProfile
- var rplyIDs []string
- // empty
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetAttributeProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: attrID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- replyPrfl.Compile()
- if !reflect.DeepEqual(attrPrf.AttributeProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(attrPrf.AttributeProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: attrID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- replyPrfl.Compile()
- if !reflect.DeepEqual(attrPrf.AttributeProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(attrPrf.AttributeProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
- attrPrf.Weight = 15
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetAttributeProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: attrID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- replyPrfl.Compile()
- if !reflect.DeepEqual(attrPrf.AttributeProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(attrPrf.AttributeProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- // use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetAttributeProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: attrID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- replyPrfl.Compile()
- if !reflect.DeepEqual(attrPrf.AttributeProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(attrPrf.AttributeProfile), utils.ToJSON(replyPrfl))
- }
-
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveAttributeProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: attrID}}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-}
-
-func testFltrRplFilters(t *testing.T) {
- fltrID := "FLTR1"
- fltr := &engine.FilterWithAPIOpts{
- Filter: &engine.Filter{
- Tenant: "cgrates.org",
- ID: fltrID,
- Rules: []*engine.FilterRule{{
- Element: "~*req.Account",
- Type: utils.MetaString,
- Values: []string{"dan"},
- }},
- },
- }
- fltr.Compile()
- var result string
- var replyPrfl *engine.Filter
- var rplyIDs []string
- // empty
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetFilter, fltr, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetFilter,
- &utils.TenantID{Tenant: "cgrates.org", ID: fltrID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- replyPrfl.Compile()
- if !reflect.DeepEqual(fltr.Filter, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(fltr.Filter), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetFilter,
- &utils.TenantID{Tenant: "cgrates.org", ID: fltrID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- replyPrfl.Compile()
- if !reflect.DeepEqual(fltr.Filter, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(fltr.Filter), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
- fltr.Rules[0].Type = utils.MetaPrefix
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetFilter, fltr, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetFilter,
- &utils.TenantID{Tenant: "cgrates.org", ID: fltrID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- replyPrfl.Compile()
- if !reflect.DeepEqual(fltr.Filter, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(fltr.Filter), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- // use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetFilter,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: fltrID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- replyPrfl.Compile()
- if !reflect.DeepEqual(fltr.Filter, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(fltr.Filter), utils.ToJSON(replyPrfl))
- }
-
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveFilter,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: fltrID}}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-}
-
-func testFltrRplThresholdProfile(t *testing.T) {
- thID := "TH1"
- thPrfl := &engine.ThresholdProfileWithAPIOpts{
- ThresholdProfile: &engine.ThresholdProfile{
- Tenant: "cgrates.org",
- ID: thID,
- FilterIDs: []string{"*string:~*req.Account:dan"},
- MaxHits: -1,
- Weight: 20,
- },
- }
- th := engine.Threshold{
- Tenant: "cgrates.org",
- ID: thID,
- }
- var result string
- var replyPrfl *engine.ThresholdProfile
- var rplyIDs []string
- var replyTh engine.Threshold
-
- argsTh := &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{
- Tenant: "cgrates.org",
- ID: thID,
- },
- }
- // empty
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetThresholdProfile, thPrfl, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetThresholdProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: thID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(thPrfl.ThresholdProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(thPrfl.ThresholdProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: thID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(thPrfl.ThresholdProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(thPrfl.ThresholdProfile), utils.ToJSON(replyPrfl))
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ThresholdSv1GetThreshold, argsTh, &replyTh); err != nil {
- t.Fatal(err)
- } else if !reflect.DeepEqual(th, replyTh) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(th), utils.ToJSON(replyTh))
- }
-
- replyPrfl = nil
- thPrfl.Weight = 10
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetThresholdProfile, thPrfl, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetThresholdProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: thID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(thPrfl.ThresholdProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(thPrfl.ThresholdProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- // use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetThresholdProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: thID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(thPrfl.ThresholdProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(thPrfl.ThresholdProfile), utils.ToJSON(replyPrfl))
- }
-
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- tEv := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event1",
- Event: map[string]interface{}{
- utils.AccountField: "dan",
- },
- }
- var thIDs []string
- //Testing ProcessEvent on set thresholdprofile using apier
- if err := fltrRplInternalRPC.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv, &thIDs); err != nil {
- t.Fatal(err)
- } else if expected := []string{thID}; !reflect.DeepEqual(expected, thIDs) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expected), utils.ToJSON(thIDs))
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ThresholdSv1GetThreshold, argsTh, &replyTh); err != nil {
- t.Fatal(err)
- }
- th.Hits = 1
- replyTh.Snooze = th.Snooze // ignore the snooze as this is relative to time.Now
- if !reflect.DeepEqual(th, replyTh) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(th), utils.ToJSON(replyTh))
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveThresholdProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: thID}}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-}
-
-func testFltrRplStatQueueProfile(t *testing.T) {
- stID := "ST1"
- stPrf := &engine.StatQueueProfileWithAPIOpts{
- StatQueueProfile: &engine.StatQueueProfile{
- Tenant: "cgrates.org",
- ID: stID,
- FilterIDs: []string{"*string:~*req.Account:dan"},
- QueueLength: 100,
- TTL: time.Second,
- Metrics: []*engine.MetricWithFilters{
- {
- MetricID: utils.MetaACD,
- },
- },
- ThresholdIDs: []string{"*none"},
- Blocker: true,
- Stored: true,
- Weight: 20,
- MinItems: 1,
- },
- }
- sq := engine.StatQueue{
- Tenant: "cgrates.org",
- ID: stID,
- SQItems: []engine.SQItem{},
- SQMetrics: map[string]engine.StatMetric{},
- }
- var result string
- var replyPrfl *engine.StatQueueProfile
- var rplyIDs []string
- var replySq engine.StatQueue
-
- argsSq := &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{
- Tenant: "cgrates.org",
- ID: stID,
- },
- }
- // empty
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.AdminSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.AdminSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.AdminSv1SetStatQueueProfile, stPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.AdminSv1GetStatQueueProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: stID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(stPrf.StatQueueProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(stPrf.StatQueueProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.AdminSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.AdminSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.AdminSv1GetStatQueueProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: stID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(stPrf.StatQueueProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(stPrf.StatQueueProfile), utils.ToJSON(replyPrfl))
- }
- replySq = engine.StatQueue{}
- sq.SQItems = nil
- s, _ := engine.NewACD(1, "", nil)
- sq.SQMetrics = map[string]engine.StatMetric{
- utils.MetaACD: s,
- }
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.StatSv1GetStatQueue, argsSq, &replySq); err != nil {
- t.Fatal(err)
- } else if !reflect.DeepEqual(sq, replySq) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(sq), utils.ToJSON(replySq))
- }
-
- replyPrfl = nil
- stPrf.Weight = 15
- if err := fltrRplInternalRPC.Call(utils.AdminSv1SetStatQueueProfile, stPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.AdminSv1GetStatQueueProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: stID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(stPrf.StatQueueProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(stPrf.StatQueueProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- // use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueueProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: stID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(stPrf.StatQueueProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(stPrf.StatQueueProfile), utils.ToJSON(replyPrfl))
- }
-
- if err := fltrRplEngine2RPC.Call(utils.AdminSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- sEv := &engine.StatsArgsProcessEvent{
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event1",
- Event: map[string]interface{}{
- utils.AccountField: "dan",
- utils.Usage: 45 * time.Second,
- },
- },
- }
- var sqIDs []string
- //Testing ProcessEvent on set thresholdprofile using apier
- if err := fltrRplInternalRPC.Call(utils.StatSv1ProcessEvent, sEv, &sqIDs); err != nil {
- t.Fatal(err)
- } else if expected := []string{stID}; !reflect.DeepEqual(expected, sqIDs) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expected), utils.ToJSON(sqIDs))
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.StatSv1GetStatQueue, argsSq, &replySq); err != nil {
- t.Fatal(err)
- }
- sq.SQItems = []engine.SQItem{{
- EventID: "event1",
- }}
- s.AddEvent("event1", utils.MapStorage{utils.MetaReq: map[string]interface{}{utils.Usage: 45 * time.Second}})
- replySq.SQItems[0].ExpiryTime = sq.SQItems[0].ExpiryTime
- if !reflect.DeepEqual(sq, replySq) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(sq), utils.ToJSON(replySq))
- }
-
- if err := fltrRplInternalRPC.Call(utils.AdminSv1RemoveStatQueueProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: stID}}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.AdminSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.AdminSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-}
-
-func testFltrRplResourceProfile(t *testing.T) {
- resID := "RES1"
- resPrf := &engine.ResourceProfileWithAPIOpts{
- ResourceProfile: &engine.ResourceProfile{
- Tenant: "cgrates.org",
- ID: resID,
- FilterIDs: []string{"*string:~*req.Account:dan"},
- UsageTTL: time.Nanosecond,
- Limit: 10,
- AllocationMessage: "MessageAllocation",
- Stored: true,
- Weight: 20,
- ThresholdIDs: []string{utils.MetaNone},
- },
- }
- rs := engine.Resource{
- Tenant: "cgrates.org",
- ID: resID,
- Usages: make(map[string]*engine.ResourceUsage),
- }
- var result string
- var replyPrfl *engine.ResourceProfile
- var rplyIDs []string
- var replyRs engine.Resource
-
- argsRs := &utils.TenantIDWithAPIOpts{
- TenantID: &utils.TenantID{
- Tenant: "cgrates.org",
- ID: resID,
- },
- }
- // empty
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetResourceProfile, resPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetResourceProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: resID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(resPrf.ResourceProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(resPrf.ResourceProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: resID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(resPrf.ResourceProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(resPrf.ResourceProfile), utils.ToJSON(replyPrfl))
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ResourceSv1GetResource, argsRs, &replyRs); err != nil {
- t.Fatal(err)
- } else if !reflect.DeepEqual(rs, replyRs) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(rs), utils.ToJSON(replyRs))
- }
-
- replyPrfl = nil
- resPrf.Weight = 15
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetResourceProfile, resPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetResourceProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: resID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(resPrf.ResourceProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(resPrf.ResourceProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- // use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetResourceProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: resID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(resPrf.ResourceProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(resPrf.ResourceProfile), utils.ToJSON(replyPrfl))
- }
-
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- rEv := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: utils.UUIDSha1Prefix(),
- Event: map[string]interface{}{
- utils.AccountField: "dan",
- },
- APIOpts: map[string]interface{}{
- utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e61",
- utils.OptsResourcesUnits: 6,
- },
- }
- var rsIDs string
- //Testing ProcessEvent on set thresholdprofile using apier
- if err := fltrRplInternalRPC.Call(utils.ResourceSv1AllocateResources, rEv, &rsIDs); err != nil {
- t.Fatal(err)
- } else if expected := resPrf.AllocationMessage; !reflect.DeepEqual(expected, rsIDs) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rsIDs))
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ResourceSv1GetResource, argsRs, &replyRs); err != nil {
- t.Fatal(err)
- }
- rs.TTLIdx = []string{rEv.APIOpts[utils.OptsResourcesUsageID].(string)}
- rs.Usages = map[string]*engine.ResourceUsage{
- rEv.APIOpts[utils.OptsResourcesUsageID].(string): {
- Tenant: "cgrates.org",
- ID: rEv.APIOpts[utils.OptsResourcesUsageID].(string),
- Units: 6,
- },
- }
- replyRs.Usages[rEv.APIOpts[utils.OptsResourcesUsageID].(string)].ExpiryTime = time.Time{}
- if !reflect.DeepEqual(rs, replyRs) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(rs), utils.ToJSON(replyRs))
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveResourceProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: resID}}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-}
-
-func testFltrRplRouteProfile(t *testing.T) {
- rpID := "RT1"
- rpPrf := &v1.RouteWithAPIOpts{
- RouteProfile: &engine.RouteProfile{
- Tenant: "cgrates.org",
- ID: rpID,
- FilterIDs: []string{"*string:~*req.Account:dan"},
- Sorting: utils.MetaWeight,
- Routes: []*engine.Route{
- {
- ID: "local",
- RateProfileIDs: []string{"RP_LOCAL"},
- Weights: 10,
- },
- {
- ID: "mobile",
- RateProfileIDs: []string{"RP_MOBILE"},
- Weights: 30,
- },
- },
- Weights: 10,
- },
- }
- var result string
- var replyPrfl *engine.RouteProfile
- var rplyIDs []string
- // empty
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetRouteProfile, rpPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetRouteProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: rpID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- replyPrfl.Compile()
- if !reflect.DeepEqual(rpPrf.RouteProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(rpPrf.RouteProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRouteProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: rpID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- replyPrfl.Compile()
- if !reflect.DeepEqual(rpPrf.RouteProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(rpPrf.RouteProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
- rpPrf.Weight = 15
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetRouteProfile, rpPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetRouteProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: rpID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- replyPrfl.Compile()
- if !reflect.DeepEqual(rpPrf.RouteProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(rpPrf.RouteProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- // use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetRouteProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: rpID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- replyPrfl.Compile()
- if !reflect.DeepEqual(rpPrf.RouteProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(rpPrf.RouteProfile), utils.ToJSON(replyPrfl))
- }
-
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveRouteProfile,
- &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: rpID}}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-}
-
-func testFltrRplChargerProfile(t *testing.T) {
- chID := "CH1"
- chPrf := &v1.ChargerWithAPIOpts{
- ChargerProfile: &engine.ChargerProfile{
- Tenant: "cgrates.org",
- ID: chID,
- FilterIDs: []string{"*string:~*req.Account:dan"},
- RunID: utils.MetaDefault,
- AttributeIDs: []string{utils.MetaNone},
- Weight: 20,
- },
- }
- var result string
- var replyPrfl *engine.ChargerProfile
- var rplyIDs []string
- // empty
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.AdminSv1SetChargerProfile, chPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetChargerProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: chID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(chPrf.ChargerProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(chPrf.ChargerProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: chID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(chPrf.ChargerProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(chPrf.ChargerProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
- chPrf.Weight = 15
- if err := fltrRplInternalRPC.Call(utils.AdminSv1SetChargerProfile, chPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetChargerProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: chID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(chPrf.ChargerProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(chPrf.ChargerProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- // use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetChargerProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: chID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(chPrf.ChargerProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(chPrf.ChargerProfile), utils.ToJSON(replyPrfl))
- }
-
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveChargerProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: chID}}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-}
-
-func testFltrRplDispatcherProfile(t *testing.T) {
- dspID := "DSP1"
- dspPrf := &v1.DispatcherWithAPIOpts{
- DispatcherProfile: &engine.DispatcherProfile{
- Tenant: "cgrates.org",
- ID: dspID,
- Subsystems: []string{utils.MetaSessionS},
- FilterIDs: []string{"*string:~*req.Account:dan"},
- Weight: 10,
- },
- }
- var result string
- var replyPrfl *engine.DispatcherProfile
- var rplyIDs []string
- // empty
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDispatcherProfile, dspPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDispatcherProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(dspPrf.DispatcherProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(dspPrf.DispatcherProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
- dspPrf.Weight = 15
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDispatcherProfile, dspPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDispatcherProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(dspPrf.DispatcherProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- // use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetDispatcherProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: dspID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(dspPrf.DispatcherProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherProfile), utils.ToJSON(replyPrfl))
- }
-
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveDispatcherProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: dspID}}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-}
-
-func testFltrRplDispatcherHost(t *testing.T) {
- dspID := "DSH1"
- dspPrf := &engine.DispatcherHostWithAPIOpts{
- DispatcherHost: &engine.DispatcherHost{
- Tenant: "cgrates.org",
- RemoteHost: &config.RemoteHost{
- ID: dspID,
- Address: "*internal",
- },
- },
- }
- var result string
- var replyPrfl *engine.DispatcherHost
- var rplyIDs []string
- // empty
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDispatcherHost, dspPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDispatcherHost,
- &utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(dspPrf.DispatcherHost, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherHost), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
- &utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(dspPrf.DispatcherHost, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherHost), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
- dspPrf.Address = "127.0.0.1:2012"
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDispatcherHost, dspPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDispatcherHost,
- &utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(dspPrf.DispatcherHost, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherHost), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- // use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetDispatcherHost,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: dspID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(dspPrf.DispatcherHost, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherHost), utils.ToJSON(replyPrfl))
- }
-
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveDispatcherHost,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: dspID}}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-}
-
-func testFltrRplRateProfile(t *testing.T) {
- rpID := "RP1"
- rpPrf := &utils.APIRateProfileWithAPIOpts{
- APIRateProfile: &utils.APIRateProfile{
- Tenant: "cgrates.org",
- ID: rpID,
- FilterIDs: []string{"*string:~*req.Account:dan"},
- Weights: ";0",
- MaxCostStrategy: "*free",
- Rates: map[string]*utils.APIRate{
- "RT_WEEK": {
- ID: "RT_WEEK",
- Weights: ";0",
- ActivationTimes: "* * * * 1-5",
- IntervalRates: []*utils.APIIntervalRate{
- {
- IntervalStart: "0",
- },
- },
- },
- },
- },
- }
- expPrf := &utils.RateProfile{
- Tenant: "cgrates.org",
- ID: rpID,
- FilterIDs: []string{"*string:~*req.Account:dan"},
- Weights: utils.DynamicWeights{
- {
- Weight: 0,
- },
- },
- MaxCostStrategy: "*free",
- Rates: map[string]*utils.Rate{
- "RT_WEEK": {
- ID: "RT_WEEK",
- Weights: utils.DynamicWeights{
- {
- Weight: 0,
- },
- },
- ActivationTimes: "* * * * 1-5",
- IntervalRates: []*utils.IntervalRate{
- {
- IntervalStart: utils.NewDecimal(0, 0),
- },
- },
- },
- },
- }
- var result string
- var replyPrfl *utils.RateProfile
- var rplyIDs []string
- // empty
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRateProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRateProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetRateProfile, rpPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetRateProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: rpID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(expPrf, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRateProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRateProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRateProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: rpID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(expPrf, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
- rpPrf.Weights = ";15"
- expPrf.Weights[0].Weight = 15
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetRateProfile, rpPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetRateProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: rpID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(expPrf, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- // use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetRateProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: rpID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(expPrf, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
- }
-
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRateProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveRateProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: rpID}}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRateProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRateProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-}
-
-func testFltrRplActionProfile(t *testing.T) {
- acID := "ATTR1"
- acPrf := &engine.ActionProfileWithAPIOpts{
- ActionProfile: &engine.ActionProfile{
- Tenant: "cgrates.org",
- ID: acID,
- Actions: []*engine.APAction{
- {
- ID: "test_action_id",
- Diktats: []*engine.APDiktat{{}},
- },
- },
- Weight: 10,
- },
- }
- var result string
- var replyPrfl *engine.ActionProfile
- var rplyIDs []string
- // empty
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetActionProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetActionProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetActionProfile, acPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetActionProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(acPrf.ActionProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(acPrf.ActionProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetActionProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetActionProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetActionProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(acPrf.ActionProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(acPrf.ActionProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
- acPrf.Weight = 15
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetActionProfile, acPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetActionProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(acPrf.ActionProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(acPrf.ActionProfile), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- // use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetActionProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(acPrf.ActionProfile, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(acPrf.ActionProfile), utils.ToJSON(replyPrfl))
- }
-
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetActionProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveActionProfile,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetActionProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetActionProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-}
-
-func testFltrRplAccount1(t *testing.T) {
- acID := "ATTR1"
- acPrf := &utils.APIAccountWithOpts{
- APIAccount: &utils.APIAccount{
- Tenant: "cgrates.org",
- ID: acID,
- FilterIDs: []string{"*string:~*req.Account:dan"},
- Weights: ";10",
- Balances: map[string]*utils.APIBalance{
- "Balance1": {
- ID: "Balance1",
- Weights: ";10",
- Type: utils.MetaConcrete,
- Units: 50,
- CostIncrements: []*utils.APICostIncrement{
- {
- Increment: utils.Float64Pointer(1),
- RecurrentFee: utils.Float64Pointer(0.1),
- },
- },
- },
- },
- ThresholdIDs: []string{utils.MetaNone},
- },
- }
- expPrf, err := acPrf.AsAccount()
- if err != nil {
- t.Fatal(err)
- }
- var result string
- var replyPrfl *utils.Account
- var rplyIDs []string
- // empty
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAccountIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAccountIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetAccount, acPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetAccount,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(expPrf, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAccountIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAccountIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAccount,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(expPrf, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
- acPrf.Weights = ";15"
- if expPrf, err = acPrf.AsAccount(); err != nil {
- t.Fatal(err)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetAccount, acPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetAccount,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(expPrf, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- // use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetAccount,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(expPrf, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
- }
-
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAccountIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveAccount,
- utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAccountIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAccountIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-}
-
-func testFltrRplAccount(t *testing.T) {
- acID := "ATTR1"
- attrPrf := &v2.AttrSetAccount{Tenant: "cgrates.org", Account: acID, ExtraOptions: map[string]bool{utils.Disabled: true}}
- attrAC := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: acID}
- expPrf := &engine.Account{
- ID: "cgrates.org:" + acID,
- Disabled: true,
- }
- var result string
- var replyPrfl *engine.Account
- var rplyCount int
- // empty
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
- t.Fatal(err)
- } else if rplyCount != 0 {
- t.Fatal("Expected no accounts")
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
- t.Fatal(err)
- } else if rplyCount != 0 {
- t.Fatal("Expected no accounts")
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv2SetAccount, attrPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv2GetAccount, attrAC, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- replyPrfl.BalanceMap = nil
- replyPrfl.UnitCounters = nil
- replyPrfl.ActionTriggers = nil
- replyPrfl.UpdateTime = expPrf.UpdateTime
-
- if !reflect.DeepEqual(expPrf, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
- t.Fatal(err)
- } else if rplyCount != 0 {
- t.Fatal("Expected no accounts")
- }
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
- t.Fatal(err)
- } else if rplyCount != 0 {
- t.Fatal("Expected no accounts")
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAC, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- replyPrfl.BalanceMap = nil
- replyPrfl.UnitCounters = nil
- replyPrfl.ActionTriggers = nil
- replyPrfl.UpdateTime = expPrf.UpdateTime
-
- if !reflect.DeepEqual(expPrf, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
- attrPrf.ExtraOptions[utils.Disabled] = false
- expPrf.Disabled = false
- if err := fltrRplInternalRPC.Call(utils.APIerSv2SetAccount, attrPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv2GetAccount, attrAC, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- replyPrfl.BalanceMap = nil
- replyPrfl.UnitCounters = nil
- replyPrfl.ActionTriggers = nil
- replyPrfl.UpdateTime = expPrf.UpdateTime
-
- if !reflect.DeepEqual(expPrf, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- // use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetAccount, &utils.StringWithAPIOpts{
- Arg: expPrf.ID,
- }, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- replyPrfl.BalanceMap = nil
- replyPrfl.UnitCounters = nil
- replyPrfl.ActionTriggers = nil
- replyPrfl.UpdateTime = expPrf.UpdateTime
-
- if !reflect.DeepEqual(expPrf, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
- }
-
- if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
- t.Fatal(err)
- } else if rplyCount != 0 {
- t.Fatal("Expected no accounts")
- }
-}
-
-func testFltrRplDestination(t *testing.T) {
- dstID := "DST1"
- dstPrf := utils.AttrSetDestination{Id: dstID, Prefixes: []string{"dan"}}
- expPrf := &engine.Destination{
- ID: dstID,
- Prefixes: []string{"dan"},
- }
- args := &utils.StringWithAPIOpts{
- Arg: dstID,
- Tenant: "cgrates.org",
- }
- args2 := &utils.StringWithAPIOpts{
- Arg: "dan",
- Tenant: "cgrates.org",
- }
- var result string
- var replyPrfl *engine.Destination
- var rplyIDs *engine.Destination
- var rplyIDs2 []string
- // empty
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDestination, dstPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDestination, dstID, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(expPrf, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
-
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDestination, dstID, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(expPrf, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
- }
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetReverseDestination, "dan", &rplyIDs2); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual([]string{dstID}, rplyIDs2) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON([]string{dstID}), utils.ToJSON(rplyIDs2))
- }
- replyPrfl = nil
- dstPrf.Overwrite = true
- dstPrf.Prefixes = []string{"dan2"}
- expPrf.Prefixes = []string{"dan2"}
- args2.Arg = "dan2"
- if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDestination, dstPrf, &result); err != nil {
- t.Fatal(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDestination, dstID, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(expPrf, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
- }
- replyPrfl = nil
-
- // use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetDestination, args, &replyPrfl); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual(expPrf, replyPrfl) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
- }
- // use replicator to see if the attribute was changed in the DB
- if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err != nil {
- t.Fatal(err)
- }
- if !reflect.DeepEqual([]string{dstID}, rplyIDs2) {
- t.Errorf("Expecting : %s, received: %s", utils.ToJSON([]string{dstID}), utils.ToJSON(rplyIDs2))
- }
-
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Unexpected error: %v", err)
- }
- rplyIDs2 = nil
- if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Log(rplyIDs2)
- t.Fatalf("Unexpected error: %v", err)
- }
-}
-
-func testFltrRplKillEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// import (
+// "path"
+// "reflect"
+// "testing"
+// "time"
+
+// "github.com/cgrates/birpc"
+// "github.com/cgrates/birpc/context"
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
+
+// var (
+// fltrRplDB string
+
+// fltrRplInternalCfgPath string
+// fltrRplInternalCfg *config.CGRConfig
+// fltrRplInternalRPC birpc.ClientConnector
+
+// fltrRplEngine1CfgPath string
+// fltrRplEngine1Cfg *config.CGRConfig
+// fltrRplEngine1RPC birpc.ClientConnector
+
+// fltrRplEngine2CfgPath string
+// fltrRplEngine2Cfg *config.CGRConfig
+// fltrRplEngine2RPC birpc.ClientConnector
+
+// sTestsFltrRpl = []func(t *testing.T){
+// testFltrRplInitCfg,
+// testFltrRplInitDBs,
+// testFltrRplStartEngine,
+// testFltrRplRPCConn,
+
+// testFltrRplAttributeProfile,
+// testFltrRplFilters,
+// testFltrRplThresholdProfile,
+// testFltrRplStatQueueProfile,
+// testFltrRplResourceProfile,
+// testFltrRplRouteProfile,
+// testFltrRplChargerProfile,
+// testFltrRplDispatcherProfile,
+// testFltrRplDispatcherHost,
+// testFltrRplRateProfile,
+// testFltrRplActionProfile,
+// testFltrRplAccount1,
+// testFltrRplAccount,
+// testFltrRplDestination,
+
+// testFltrRplKillEngine,
+// }
+// )
+
+// //Test start here
+// func TestFilteredReplication(t *testing.T) {
+// switch *dbType {
+// case utils.MetaMySQL:
+// fltrRplDB = "redis"
+// case utils.MetaMongo:
+// fltrRplDB = "mongo"
+// case utils.MetaPostgres, utils.MetaInternal:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sTestsFltrRpl {
+// t.Run("TestFilteredReplication_"+fltrRplDB, stest)
+// }
+// }
+
+// func testFltrRplInitCfg(t *testing.T) {
+// var err error
+
+// fltrRplInternalCfgPath = path.Join(*dataDir, "conf", "samples", "filtered_replication", "internal")
+// fltrRplEngine1CfgPath = path.Join(*dataDir, "conf", "samples", "filtered_replication", "engine1_"+fltrRplDB)
+// fltrRplEngine2CfgPath = path.Join(*dataDir, "conf", "samples", "filtered_replication", "engine2_"+fltrRplDB)
+
+// if fltrRplInternalCfg, err = config.NewCGRConfigFromPath(context.Background(), fltrRplInternalCfgPath); err != nil {
+// t.Fatal(err)
+// }
+// if fltrRplEngine1Cfg, err = config.NewCGRConfigFromPath(context.Background(), fltrRplEngine1CfgPath); err != nil {
+// t.Fatal(err)
+// }
+// if fltrRplEngine2Cfg, err = config.NewCGRConfigFromPath(context.Background(), fltrRplEngine2CfgPath); err != nil {
+// t.Fatal(err)
+// }
+// }
+
+// func testFltrRplInitDBs(t *testing.T) {
+// if err := engine.InitDataDB(fltrRplEngine1Cfg); err != nil {
+// t.Fatal(err)
+// }
+
+// if err := engine.InitStorDB(fltrRplEngine1Cfg); err != nil {
+// t.Fatal(err)
+// }
+
+// if err := engine.InitDataDB(fltrRplEngine2Cfg); err != nil {
+// t.Fatal(err)
+// }
+
+// if err := engine.InitStorDB(fltrRplEngine2Cfg); err != nil {
+// t.Fatal(err)
+// }
+// }
+
+// func testFltrRplStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(fltrRplInternalCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// if _, err := engine.StartEngine(fltrRplEngine1CfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// if _, err := engine.StartEngine(fltrRplEngine2CfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
+
+// func testFltrRplRPCConn(t *testing.T) {
+// var err error
+// tmp := *encoding
+// // run only under *gob encoding
+// *encoding = utils.MetaGOB
+// if fltrRplInternalRPC, err = newRPCClient(fltrRplInternalCfg.ListenCfg()); err != nil {
+// t.Fatal(err)
+// }
+// if fltrRplEngine1RPC, err = newRPCClient(fltrRplEngine1Cfg.ListenCfg()); err != nil {
+// t.Fatal(err)
+// }
+// if fltrRplEngine2RPC, err = newRPCClient(fltrRplEngine2Cfg.ListenCfg()); err != nil {
+// t.Fatal(err)
+// }
+// *encoding = tmp
+// }
+
+// func testFltrRplAttributeProfile(t *testing.T) {
+// attrID := "ATTR1"
+// attrPrf := &engine.AttributeProfileWithAPIOpts{
+// AttributeProfile: &engine.AttributeProfile{
+// Tenant: "cgrates.org",
+// ID: attrID,
+// FilterIDs: []string{"*string:~*req.Account:dan"},
+// Attributes: []*engine.Attribute{
+// {
+// Path: "*req.Category",
+// Value: config.NewRSRParsersMustCompile(utils.MetaVoice, utils.InfieldSep),
+// },
+// },
+// Weight: 10,
+// },
+// }
+// var result string
+// var replyPrfl *engine.AttributeProfile
+// var rplyIDs []string
+// // empty
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetAttributeProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: attrID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// replyPrfl.Compile()
+// if !reflect.DeepEqual(attrPrf.AttributeProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(attrPrf.AttributeProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAttributeProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: attrID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// replyPrfl.Compile()
+// if !reflect.DeepEqual(attrPrf.AttributeProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(attrPrf.AttributeProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+// attrPrf.Weight = 15
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetAttributeProfile, attrPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetAttributeProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: attrID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// replyPrfl.Compile()
+// if !reflect.DeepEqual(attrPrf.AttributeProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(attrPrf.AttributeProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// // use replicator to see if the attribute was changed in the DB
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetAttributeProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: attrID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// replyPrfl.Compile()
+// if !reflect.DeepEqual(attrPrf.AttributeProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(attrPrf.AttributeProfile), utils.ToJSON(replyPrfl))
+// }
+
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveAttributeProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: attrID}}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAttributeProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// }
+
+// func testFltrRplFilters(t *testing.T) {
+// fltrID := "FLTR1"
+// fltr := &engine.FilterWithAPIOpts{
+// Filter: &engine.Filter{
+// Tenant: "cgrates.org",
+// ID: fltrID,
+// Rules: []*engine.FilterRule{{
+// Element: "~*req.Account",
+// Type: utils.MetaString,
+// Values: []string{"dan"},
+// }},
+// },
+// }
+// fltr.Compile()
+// var result string
+// var replyPrfl *engine.Filter
+// var rplyIDs []string
+// // empty
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetFilter, fltr, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetFilter,
+// &utils.TenantID{Tenant: "cgrates.org", ID: fltrID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// replyPrfl.Compile()
+// if !reflect.DeepEqual(fltr.Filter, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(fltr.Filter), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetFilter,
+// &utils.TenantID{Tenant: "cgrates.org", ID: fltrID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// replyPrfl.Compile()
+// if !reflect.DeepEqual(fltr.Filter, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(fltr.Filter), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+// fltr.Rules[0].Type = utils.MetaPrefix
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetFilter, fltr, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetFilter,
+// &utils.TenantID{Tenant: "cgrates.org", ID: fltrID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// replyPrfl.Compile()
+// if !reflect.DeepEqual(fltr.Filter, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(fltr.Filter), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// // use replicator to see if the attribute was changed in the DB
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetFilter,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: fltrID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// replyPrfl.Compile()
+// if !reflect.DeepEqual(fltr.Filter, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(fltr.Filter), utils.ToJSON(replyPrfl))
+// }
+
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveFilter,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: fltrID}}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetFilterIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// }
+
+// func testFltrRplThresholdProfile(t *testing.T) {
+// thID := "TH1"
+// thPrfl := &engine.ThresholdProfileWithAPIOpts{
+// ThresholdProfile: &engine.ThresholdProfile{
+// Tenant: "cgrates.org",
+// ID: thID,
+// FilterIDs: []string{"*string:~*req.Account:dan"},
+// MaxHits: -1,
+// Weight: 20,
+// },
+// }
+// th := engine.Threshold{
+// Tenant: "cgrates.org",
+// ID: thID,
+// }
+// var result string
+// var replyPrfl *engine.ThresholdProfile
+// var rplyIDs []string
+// var replyTh engine.Threshold
+
+// argsTh := &utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{
+// Tenant: "cgrates.org",
+// ID: thID,
+// },
+// }
+// // empty
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetThresholdProfile, thPrfl, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetThresholdProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: thID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(thPrfl.ThresholdProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(thPrfl.ThresholdProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetThresholdProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: thID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(thPrfl.ThresholdProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(thPrfl.ThresholdProfile), utils.ToJSON(replyPrfl))
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ThresholdSv1GetThreshold, argsTh, &replyTh); err != nil {
+// t.Fatal(err)
+// } else if !reflect.DeepEqual(th, replyTh) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(th), utils.ToJSON(replyTh))
+// }
+
+// replyPrfl = nil
+// thPrfl.Weight = 10
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetThresholdProfile, thPrfl, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetThresholdProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: thID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(thPrfl.ThresholdProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(thPrfl.ThresholdProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// // use replicator to see if the attribute was changed in the DB
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetThresholdProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: thID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(thPrfl.ThresholdProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(thPrfl.ThresholdProfile), utils.ToJSON(replyPrfl))
+// }
+
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// tEv := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event1",
+// Event: map[string]interface{}{
+// utils.AccountField: "dan",
+// },
+// }
+// var thIDs []string
+// //Testing ProcessEvent on set thresholdprofile using apier
+// if err := fltrRplInternalRPC.Call(context.Background(), utils.ThresholdSv1ProcessEvent, tEv, &thIDs); err != nil {
+// t.Fatal(err)
+// } else if expected := []string{thID}; !reflect.DeepEqual(expected, thIDs) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expected), utils.ToJSON(thIDs))
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ThresholdSv1GetThreshold, argsTh, &replyTh); err != nil {
+// t.Fatal(err)
+// }
+// th.Hits = 1
+// replyTh.Snooze = th.Snooze // ignore the snooze as this is relative to time.Now
+// if !reflect.DeepEqual(th, replyTh) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(th), utils.ToJSON(replyTh))
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveThresholdProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: thID}}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetThresholdProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetThreshold, argsTh, &replyTh); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// }
+
+// func testFltrRplStatQueueProfile(t *testing.T) {
+// stID := "ST1"
+// stPrf := &engine.StatQueueProfileWithAPIOpts{
+// StatQueueProfile: &engine.StatQueueProfile{
+// Tenant: "cgrates.org",
+// ID: stID,
+// FilterIDs: []string{"*string:~*req.Account:dan"},
+// QueueLength: 100,
+// TTL: time.Second,
+// Metrics: []*engine.MetricWithFilters{
+// {
+// MetricID: utils.MetaACD,
+// },
+// },
+// ThresholdIDs: []string{"*none"},
+// Blocker: true,
+// Stored: true,
+// Weight: 20,
+// MinItems: 1,
+// },
+// }
+// sq := engine.StatQueue{
+// Tenant: "cgrates.org",
+// ID: stID,
+// SQItems: []engine.SQItem{},
+// SQMetrics: map[string]engine.StatMetric{},
+// }
+// var result string
+// var replyPrfl *engine.StatQueueProfile
+// var rplyIDs []string
+// var replySq engine.StatQueue
+
+// argsSq := &utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{
+// Tenant: "cgrates.org",
+// ID: stID,
+// },
+// }
+// // empty
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.AdminSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.AdminSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.AdminSv1SetStatQueueProfile, stPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.AdminSv1GetStatQueueProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: stID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(stPrf.StatQueueProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(stPrf.StatQueueProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.AdminSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.AdminSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.AdminSv1GetStatQueueProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: stID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(stPrf.StatQueueProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(stPrf.StatQueueProfile), utils.ToJSON(replyPrfl))
+// }
+// replySq = engine.StatQueue{}
+// sq.SQItems = nil
+// s, _ := engine.NewACD(1, "", nil)
+// sq.SQMetrics = map[string]engine.StatMetric{
+// utils.MetaACD: s,
+// }
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.StatSv1GetStatQueue, argsSq, &replySq); err != nil {
+// t.Fatal(err)
+// } else if !reflect.DeepEqual(sq, replySq) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(sq), utils.ToJSON(replySq))
+// }
+
+// replyPrfl = nil
+// stPrf.Weight = 15
+// if err := fltrRplInternalRPC.Call(utils.AdminSv1SetStatQueueProfile, stPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.AdminSv1GetStatQueueProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: stID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(stPrf.StatQueueProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(stPrf.StatQueueProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// // use replicator to see if the attribute was changed in the DB
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueueProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: stID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(stPrf.StatQueueProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(stPrf.StatQueueProfile), utils.ToJSON(replyPrfl))
+// }
+
+// if err := fltrRplEngine2RPC.Call(utils.AdminSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// sEv := &engine.StatsArgsProcessEvent{
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event1",
+// Event: map[string]interface{}{
+// utils.AccountField: "dan",
+// utils.Usage: 45 * time.Second,
+// },
+// },
+// }
+// var sqIDs []string
+// //Testing ProcessEvent on set thresholdprofile using apier
+// if err := fltrRplInternalRPC.Call(utils.StatSv1ProcessEvent, sEv, &sqIDs); err != nil {
+// t.Fatal(err)
+// } else if expected := []string{stID}; !reflect.DeepEqual(expected, sqIDs) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expected), utils.ToJSON(sqIDs))
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.StatSv1GetStatQueue, argsSq, &replySq); err != nil {
+// t.Fatal(err)
+// }
+// sq.SQItems = []engine.SQItem{{
+// EventID: "event1",
+// }}
+// s.AddEvent("event1", utils.MapStorage{utils.MetaReq: map[string]interface{}{utils.Usage: 45 * time.Second}})
+// replySq.SQItems[0].ExpiryTime = sq.SQItems[0].ExpiryTime
+// if !reflect.DeepEqual(sq, replySq) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(sq), utils.ToJSON(replySq))
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.AdminSv1RemoveStatQueueProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: stID}}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.AdminSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.AdminSv1GetStatQueueProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetStatQueue, argsSq, &replySq); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// }
+
+// func testFltrRplResourceProfile(t *testing.T) {
+// resID := "RES1"
+// resPrf := &engine.ResourceProfileWithAPIOpts{
+// ResourceProfile: &engine.ResourceProfile{
+// Tenant: "cgrates.org",
+// ID: resID,
+// FilterIDs: []string{"*string:~*req.Account:dan"},
+// UsageTTL: time.Nanosecond,
+// Limit: 10,
+// AllocationMessage: "MessageAllocation",
+// Stored: true,
+// Weight: 20,
+// ThresholdIDs: []string{utils.MetaNone},
+// },
+// }
+// rs := engine.Resource{
+// Tenant: "cgrates.org",
+// ID: resID,
+// Usages: make(map[string]*engine.ResourceUsage),
+// }
+// var result string
+// var replyPrfl *engine.ResourceProfile
+// var rplyIDs []string
+// var replyRs engine.Resource
+
+// argsRs := &utils.TenantIDWithAPIOpts{
+// TenantID: &utils.TenantID{
+// Tenant: "cgrates.org",
+// ID: resID,
+// },
+// }
+// // empty
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetResourceProfile, resPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetResourceProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: resID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(resPrf.ResourceProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(resPrf.ResourceProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetResourceProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: resID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(resPrf.ResourceProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(resPrf.ResourceProfile), utils.ToJSON(replyPrfl))
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ResourceSv1GetResource, argsRs, &replyRs); err != nil {
+// t.Fatal(err)
+// } else if !reflect.DeepEqual(rs, replyRs) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(rs), utils.ToJSON(replyRs))
+// }
+
+// replyPrfl = nil
+// resPrf.Weight = 15
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetResourceProfile, resPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetResourceProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: resID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(resPrf.ResourceProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(resPrf.ResourceProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// // use replicator to see if the attribute was changed in the DB
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetResourceProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: resID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(resPrf.ResourceProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(resPrf.ResourceProfile), utils.ToJSON(replyPrfl))
+// }
+
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// rEv := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: utils.UUIDSha1Prefix(),
+// Event: map[string]interface{}{
+// utils.AccountField: "dan",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e61",
+// utils.OptsResourcesUnits: 6,
+// },
+// }
+// var rsIDs string
+// //Testing ProcessEvent on set thresholdprofile using apier
+// if err := fltrRplInternalRPC.Call(utils.ResourceSv1AllocateResources, rEv, &rsIDs); err != nil {
+// t.Fatal(err)
+// } else if expected := resPrf.AllocationMessage; !reflect.DeepEqual(expected, rsIDs) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rsIDs))
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ResourceSv1GetResource, argsRs, &replyRs); err != nil {
+// t.Fatal(err)
+// }
+// rs.TTLIdx = []string{rEv.APIOpts[utils.OptsResourcesUsageID].(string)}
+// rs.Usages = map[string]*engine.ResourceUsage{
+// rEv.APIOpts[utils.OptsResourcesUsageID].(string): {
+// Tenant: "cgrates.org",
+// ID: rEv.APIOpts[utils.OptsResourcesUsageID].(string),
+// Units: 6,
+// },
+// }
+// replyRs.Usages[rEv.APIOpts[utils.OptsResourcesUsageID].(string)].ExpiryTime = time.Time{}
+// if !reflect.DeepEqual(rs, replyRs) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(rs), utils.ToJSON(replyRs))
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveResourceProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: resID}}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetResourceProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetResource, argsRs, &replyRs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// }
+
+// func testFltrRplRouteProfile(t *testing.T) {
+// rpID := "RT1"
+// rpPrf := &v1.RouteWithAPIOpts{
+// RouteProfile: &engine.RouteProfile{
+// Tenant: "cgrates.org",
+// ID: rpID,
+// FilterIDs: []string{"*string:~*req.Account:dan"},
+// Sorting: utils.MetaWeight,
+// Routes: []*engine.Route{
+// {
+// ID: "local",
+// RateProfileIDs: []string{"RP_LOCAL"},
+// Weights: 10,
+// },
+// {
+// ID: "mobile",
+// RateProfileIDs: []string{"RP_MOBILE"},
+// Weights: 30,
+// },
+// },
+// Weights: 10,
+// },
+// }
+// var result string
+// var replyPrfl *engine.RouteProfile
+// var rplyIDs []string
+// // empty
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetRouteProfile, rpPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetRouteProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: rpID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// replyPrfl.Compile()
+// if !reflect.DeepEqual(rpPrf.RouteProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(rpPrf.RouteProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRouteProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: rpID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// replyPrfl.Compile()
+// if !reflect.DeepEqual(rpPrf.RouteProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(rpPrf.RouteProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+// rpPrf.Weight = 15
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetRouteProfile, rpPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetRouteProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: rpID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// replyPrfl.Compile()
+// if !reflect.DeepEqual(rpPrf.RouteProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(rpPrf.RouteProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// // use replicator to see if the attribute was changed in the DB
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetRouteProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: rpID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// replyPrfl.Compile()
+// if !reflect.DeepEqual(rpPrf.RouteProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(rpPrf.RouteProfile), utils.ToJSON(replyPrfl))
+// }
+
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveRouteProfile,
+// &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: rpID}}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRouteProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// }
+
+// func testFltrRplChargerProfile(t *testing.T) {
+// chID := "CH1"
+// chPrf := &v1.ChargerWithAPIOpts{
+// ChargerProfile: &engine.ChargerProfile{
+// Tenant: "cgrates.org",
+// ID: chID,
+// FilterIDs: []string{"*string:~*req.Account:dan"},
+// RunID: utils.MetaDefault,
+// AttributeIDs: []string{utils.MetaNone},
+// Weight: 20,
+// },
+// }
+// var result string
+// var replyPrfl *engine.ChargerProfile
+// var rplyIDs []string
+// // empty
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.AdminSv1SetChargerProfile, chPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetChargerProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: chID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(chPrf.ChargerProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(chPrf.ChargerProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetChargerProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: chID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(chPrf.ChargerProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(chPrf.ChargerProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+// chPrf.Weight = 15
+// if err := fltrRplInternalRPC.Call(utils.AdminSv1SetChargerProfile, chPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetChargerProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: chID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(chPrf.ChargerProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(chPrf.ChargerProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// // use replicator to see if the attribute was changed in the DB
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetChargerProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: chID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(chPrf.ChargerProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(chPrf.ChargerProfile), utils.ToJSON(replyPrfl))
+// }
+
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveChargerProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: chID}}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetChargerProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// }
+
+// func testFltrRplDispatcherProfile(t *testing.T) {
+// dspID := "DSP1"
+// dspPrf := &v1.DispatcherWithAPIOpts{
+// DispatcherProfile: &engine.DispatcherProfile{
+// Tenant: "cgrates.org",
+// ID: dspID,
+// Subsystems: []string{utils.MetaSessionS},
+// FilterIDs: []string{"*string:~*req.Account:dan"},
+// Weight: 10,
+// },
+// }
+// var result string
+// var replyPrfl *engine.DispatcherProfile
+// var rplyIDs []string
+// // empty
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDispatcherProfile, dspPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDispatcherProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(dspPrf.DispatcherProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(dspPrf.DispatcherProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+// dspPrf.Weight = 15
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDispatcherProfile, dspPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDispatcherProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(dspPrf.DispatcherProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// // use replicator to see if the attribute was changed in the DB
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetDispatcherProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: dspID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(dspPrf.DispatcherProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherProfile), utils.ToJSON(replyPrfl))
+// }
+
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveDispatcherProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: dspID}}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// }
+
+// func testFltrRplDispatcherHost(t *testing.T) {
+// dspID := "DSH1"
+// dspPrf := &engine.DispatcherHostWithAPIOpts{
+// DispatcherHost: &engine.DispatcherHost{
+// Tenant: "cgrates.org",
+// RemoteHost: &config.RemoteHost{
+// ID: dspID,
+// Address: "*internal",
+// },
+// },
+// }
+// var result string
+// var replyPrfl *engine.DispatcherHost
+// var rplyIDs []string
+// // empty
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDispatcherHost, dspPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDispatcherHost,
+// &utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(dspPrf.DispatcherHost, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherHost), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherHost,
+// &utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(dspPrf.DispatcherHost, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherHost), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+// dspPrf.Address = "127.0.0.1:2012"
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDispatcherHost, dspPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDispatcherHost,
+// &utils.TenantID{Tenant: "cgrates.org", ID: dspID}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(dspPrf.DispatcherHost, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherHost), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// // use replicator to see if the attribute was changed in the DB
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetDispatcherHost,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: dspID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(dspPrf.DispatcherHost, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(dspPrf.DispatcherHost), utils.ToJSON(replyPrfl))
+// }
+
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveDispatcherHost,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: dspID}}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetDispatcherHostIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// }
+
+// func testFltrRplRateProfile(t *testing.T) {
+// rpID := "RP1"
+// rpPrf := &utils.APIRateProfileWithAPIOpts{
+// APIRateProfile: &utils.APIRateProfile{
+// Tenant: "cgrates.org",
+// ID: rpID,
+// FilterIDs: []string{"*string:~*req.Account:dan"},
+// Weights: ";0",
+// MaxCostStrategy: "*free",
+// Rates: map[string]*utils.APIRate{
+// "RT_WEEK": {
+// ID: "RT_WEEK",
+// Weights: ";0",
+// ActivationTimes: "* * * * 1-5",
+// IntervalRates: []*utils.APIIntervalRate{
+// {
+// IntervalStart: "0",
+// },
+// },
+// },
+// },
+// },
+// }
+// expPrf := &utils.RateProfile{
+// Tenant: "cgrates.org",
+// ID: rpID,
+// FilterIDs: []string{"*string:~*req.Account:dan"},
+// Weights: utils.DynamicWeights{
+// {
+// Weight: 0,
+// },
+// },
+// MaxCostStrategy: "*free",
+// Rates: map[string]*utils.Rate{
+// "RT_WEEK": {
+// ID: "RT_WEEK",
+// Weights: utils.DynamicWeights{
+// {
+// Weight: 0,
+// },
+// },
+// ActivationTimes: "* * * * 1-5",
+// IntervalRates: []*utils.IntervalRate{
+// {
+// IntervalStart: utils.NewDecimal(0, 0),
+// },
+// },
+// },
+// },
+// }
+// var result string
+// var replyPrfl *utils.RateProfile
+// var rplyIDs []string
+// // empty
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRateProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRateProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetRateProfile, rpPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetRateProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: rpID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(expPrf, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRateProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRateProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRateProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: rpID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(expPrf, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+// rpPrf.Weights = ";15"
+// expPrf.Weights[0].Weight = 15
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetRateProfile, rpPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetRateProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: rpID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(expPrf, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// // use replicator to see if the attribute was changed in the DB
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetRateProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: rpID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(expPrf, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
+// }
+
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRateProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveRateProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: rpID}}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetRateProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetRateProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// }
+
+// func testFltrRplActionProfile(t *testing.T) {
+// acID := "ATTR1"
+// acPrf := &engine.ActionProfileWithAPIOpts{
+// ActionProfile: &engine.ActionProfile{
+// Tenant: "cgrates.org",
+// ID: acID,
+// Actions: []*engine.APAction{
+// {
+// ID: "test_action_id",
+// Diktats: []*engine.APDiktat{{}},
+// },
+// },
+// Weight: 10,
+// },
+// }
+// var result string
+// var replyPrfl *engine.ActionProfile
+// var rplyIDs []string
+// // empty
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetActionProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetActionProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetActionProfile, acPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetActionProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(acPrf.ActionProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(acPrf.ActionProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetActionProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetActionProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetActionProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(acPrf.ActionProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(acPrf.ActionProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+// acPrf.Weight = 15
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetActionProfile, acPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetActionProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(acPrf.ActionProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(acPrf.ActionProfile), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// // use replicator to see if the attribute was changed in the DB
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetActionProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(acPrf.ActionProfile, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(acPrf.ActionProfile), utils.ToJSON(replyPrfl))
+// }
+
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetActionProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveActionProfile,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetActionProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetActionProfileIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// }
+
+// func testFltrRplAccount1(t *testing.T) {
+// acID := "ATTR1"
+// acPrf := &utils.APIAccountWithOpts{
+// APIAccount: &utils.APIAccount{
+// Tenant: "cgrates.org",
+// ID: acID,
+// FilterIDs: []string{"*string:~*req.Account:dan"},
+// Weights: ";10",
+// Balances: map[string]*utils.APIBalance{
+// "Balance1": {
+// ID: "Balance1",
+// Weights: ";10",
+// Type: utils.MetaConcrete,
+// Units: 50,
+// CostIncrements: []*utils.APICostIncrement{
+// {
+// Increment: utils.Float64Pointer(1),
+// RecurrentFee: utils.Float64Pointer(0.1),
+// },
+// },
+// },
+// },
+// ThresholdIDs: []string{utils.MetaNone},
+// },
+// }
+// expPrf, err := acPrf.AsAccount()
+// if err != nil {
+// t.Fatal(err)
+// }
+// var result string
+// var replyPrfl *utils.Account
+// var rplyIDs []string
+// // empty
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAccountIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAccountIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetAccount, acPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetAccount,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(expPrf, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAccountIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAccountIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAccount,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(expPrf, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+// acPrf.Weights = ";15"
+// if expPrf, err = acPrf.AsAccount(); err != nil {
+// t.Fatal(err)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetAccount, acPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetAccount,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(expPrf, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// // use replicator to see if the attribute was changed in the DB
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetAccount,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(expPrf, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
+// }
+
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAccountIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1RemoveAccount,
+// utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: acID}}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAccountIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAccountIDs, &utils.PaginatorWithTenant{}, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// }
+
+// func testFltrRplAccount(t *testing.T) {
+// acID := "ATTR1"
+// attrPrf := &v2.AttrSetAccount{Tenant: "cgrates.org", Account: acID, ExtraOptions: map[string]bool{utils.Disabled: true}}
+// attrAC := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: acID}
+// expPrf := &engine.Account{
+// ID: "cgrates.org:" + acID,
+// Disabled: true,
+// }
+// var result string
+// var replyPrfl *engine.Account
+// var rplyCount int
+// // empty
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
+// t.Fatal(err)
+// } else if rplyCount != 0 {
+// t.Fatal("Expected no accounts")
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
+// t.Fatal(err)
+// } else if rplyCount != 0 {
+// t.Fatal("Expected no accounts")
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv2SetAccount, attrPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv2GetAccount, attrAC, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// replyPrfl.BalanceMap = nil
+// replyPrfl.UnitCounters = nil
+// replyPrfl.ActionTriggers = nil
+// replyPrfl.UpdateTime = expPrf.UpdateTime
+
+// if !reflect.DeepEqual(expPrf, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
+// t.Fatal(err)
+// } else if rplyCount != 0 {
+// t.Fatal("Expected no accounts")
+// }
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
+// t.Fatal(err)
+// } else if rplyCount != 0 {
+// t.Fatal("Expected no accounts")
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv2GetAccount, attrAC, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// replyPrfl.BalanceMap = nil
+// replyPrfl.UnitCounters = nil
+// replyPrfl.ActionTriggers = nil
+// replyPrfl.UpdateTime = expPrf.UpdateTime
+
+// if !reflect.DeepEqual(expPrf, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+// attrPrf.ExtraOptions[utils.Disabled] = false
+// expPrf.Disabled = false
+// if err := fltrRplInternalRPC.Call(utils.APIerSv2SetAccount, attrPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv2GetAccount, attrAC, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// replyPrfl.BalanceMap = nil
+// replyPrfl.UnitCounters = nil
+// replyPrfl.ActionTriggers = nil
+// replyPrfl.UpdateTime = expPrf.UpdateTime
+
+// if !reflect.DeepEqual(expPrf, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// // use replicator to see if the attribute was changed in the DB
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetAccount, &utils.StringWithAPIOpts{
+// Arg: expPrf.ID,
+// }, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// replyPrfl.BalanceMap = nil
+// replyPrfl.UnitCounters = nil
+// replyPrfl.ActionTriggers = nil
+// replyPrfl.UpdateTime = expPrf.UpdateTime
+
+// if !reflect.DeepEqual(expPrf, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
+// }
+
+// if err := fltrRplEngine2RPC.Call(utils.APIerSv1GetAccountsCount, &utils.PaginatorWithTenant{}, &rplyCount); err != nil {
+// t.Fatal(err)
+// } else if rplyCount != 0 {
+// t.Fatal("Expected no accounts")
+// }
+// }
+
+// func testFltrRplDestination(t *testing.T) {
+// dstID := "DST1"
+// dstPrf := utils.AttrSetDestination{Id: dstID, Prefixes: []string{"dan"}}
+// expPrf := &engine.Destination{
+// ID: dstID,
+// Prefixes: []string{"dan"},
+// }
+// args := &utils.StringWithAPIOpts{
+// Arg: dstID,
+// Tenant: "cgrates.org",
+// }
+// args2 := &utils.StringWithAPIOpts{
+// Arg: "dan",
+// Tenant: "cgrates.org",
+// }
+// var result string
+// var replyPrfl *engine.Destination
+// var rplyIDs *engine.Destination
+// var rplyIDs2 []string
+// // empty
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDestination, dstPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDestination, dstID, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(expPrf, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetDestination, dstID, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(expPrf, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
+// }
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.APIerSv1GetReverseDestination, "dan", &rplyIDs2); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual([]string{dstID}, rplyIDs2) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON([]string{dstID}), utils.ToJSON(rplyIDs2))
+// }
+// replyPrfl = nil
+// dstPrf.Overwrite = true
+// dstPrf.Prefixes = []string{"dan2"}
+// expPrf.Prefixes = []string{"dan2"}
+// args2.Arg = "dan2"
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1SetDestination, dstPrf, &result); err != nil {
+// t.Fatal(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := fltrRplInternalRPC.Call(utils.APIerSv1GetDestination, dstID, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(expPrf, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
+// }
+// replyPrfl = nil
+
+// // use replicator to see if the attribute was changed in the DB
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetDestination, args, &replyPrfl); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual(expPrf, replyPrfl) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON(expPrf), utils.ToJSON(replyPrfl))
+// }
+// // use replicator to see if the attribute was changed in the DB
+// if err := fltrRplEngine1RPC.Call(context.Background(), utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err != nil {
+// t.Fatal(err)
+// }
+// if !reflect.DeepEqual([]string{dstID}, rplyIDs2) {
+// t.Errorf("Expecting : %s, received: %s", utils.ToJSON([]string{dstID}), utils.ToJSON(rplyIDs2))
+// }
+
+// if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetDestination, args, &rplyIDs); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// rplyIDs2 = nil
+// if err := fltrRplEngine2RPC.Call(utils.ReplicatorSv1GetReverseDestination, args2, &rplyIDs2); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Log(rplyIDs2)
+// t.Fatalf("Unexpected error: %v", err)
+// }
+// }
+
+// func testFltrRplKillEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/filters_it_test.go b/general_tests/filters_it_test.go
index cffb18067..a5fceafcf 100644
--- a/general_tests/filters_it_test.go
+++ b/general_tests/filters_it_test.go
@@ -21,1033 +21,1033 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "path"
- "reflect"
- "testing"
- "time"
-
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
-
-var (
- fltrCfgPath string
- fltrCfg *config.CGRConfig
- fltrRpc *rpc.Client
- fltrConfDIR string //run tests for specific configuration
- fltrDelay int
-
- sTestsFltr = []func(t *testing.T){
- testV1FltrLoadConfig,
- testV1FltrInitDataDb,
- testV1FltrResetStorDb,
- testV1FltrStartEngine,
- testV1FltrRpcConn,
- testV1FltrLoadTarrifPlans,
- testV1FltrAddStats,
- testV1FltrPopulateThreshold,
- testV1FltrGetThresholdForEvent,
- testV1FltrGetThresholdForEvent2,
- testV1FltrPopulateResources,
- testV1FltrPopulateResourcesAvailableUnits,
- testV1FltrAccounts,
- testV1FltrAccountsExistsDynamicaly,
- testV1FltrAttributesPrefix,
- testV1FltrInitDataDb,
- testV1FltrChargerSuffix,
- testV1FltrStopEngine,
- }
-)
-
-// Test start here
-func TestFltrIT(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- fltrConfDIR = "filters_internal"
- case utils.MetaMySQL:
- fltrConfDIR = "filters_mysql"
- case utils.MetaMongo:
- fltrConfDIR = "filters_mongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
-
- for _, stest := range sTestsFltr {
- t.Run(fltrConfDIR, stest)
- }
-}
-
-func testV1FltrLoadConfig(t *testing.T) {
- var err error
- fltrCfgPath = path.Join(*dataDir, "conf", "samples", fltrConfDIR)
- if *encoding == utils.MetaGOB {
- cdrsCfgPath = path.Join(*dataDir, "conf", "samples", fltrConfDIR+"_gob")
- }
- if fltrCfg, err = config.NewCGRConfigFromPath(fltrCfgPath); err != nil {
- t.Error(err)
- }
- fltrDelay = 1000
-}
-
-func testV1FltrInitDataDb(t *testing.T) {
- if err := engine.InitDataDB(fltrCfg); err != nil {
- t.Fatal(err)
- }
-}
-
-func testV1FltrResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(fltrCfg); err != nil {
- t.Fatal(err)
- }
-}
-
-func testV1FltrStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(fltrCfgPath, fltrDelay); err != nil {
- t.Fatal(err)
- }
-}
-
-func testV1FltrRpcConn(t *testing.T) {
- var err error
- fltrRpc, err = newRPCClient(fltrCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal("Could not connect to rater: ", err.Error())
- }
-}
-
-func testV1FltrLoadTarrifPlans(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := fltrRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
- time.Sleep(100 * time.Millisecond)
-}
-
-func testV1FltrAddStats(t *testing.T) {
- var reply []string
- expected := []string{"Stat_1"}
- ev1 := &engine.StatsArgsProcessEvent{
-
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event1",
- Event: map[string]interface{}{
- utils.AccountField: "1001",
- utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
- utils.Usage: 11 * time.Second,
- utils.Cost: 10.0,
- },
- },
- }
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, expected) {
- t.Errorf("Expecting: %+v, received: %+v", expected, reply)
- }
-
- expected = []string{"Stat_1"}
- ev1.CGREvent = &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event2",
- Event: map[string]interface{}{
- utils.AccountField: "1001",
- utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
- utils.Usage: 11 * time.Second,
- utils.Cost: 10.5,
- },
- }
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, expected) {
- t.Errorf("Expecting: %+v, received: %+v", expected, reply)
- }
-
- expected = []string{"Stat_2"}
- ev1.CGREvent = &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event2",
- Event: map[string]interface{}{
- utils.AccountField: "1002",
- utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
- utils.Usage: 5 * time.Second,
- utils.Cost: 12.5,
- },
- }
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, expected) {
- t.Errorf("Expecting: %+v, received: %+v", expected, reply)
- }
-
- expected = []string{"Stat_2"}
- ev1.CGREvent = &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event2",
- Event: map[string]interface{}{
- utils.AccountField: "1002",
- utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
- utils.Usage: 6 * time.Second,
- utils.Cost: 17.5,
- },
- }
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, expected) {
- t.Errorf("Expecting: %+v, received: %+v", expected, reply)
- }
-
- expected = []string{"Stat_3"}
- ev1.CGREvent = &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event3",
- Event: map[string]interface{}{
- utils.AccountField: "1003",
- utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
- utils.Usage: 11 * time.Second,
- utils.Cost: 12.5,
- },
- }
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, expected) {
- t.Errorf("Expecting: %+v, received: %+v", expected, reply)
- }
-
- expected = []string{"Stat_1_1"}
- ev1.CGREvent = &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event3",
- Event: map[string]interface{}{
- "Stat": "Stat1_1",
- utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
- utils.Usage: 11 * time.Second,
- utils.Cost: 12.5,
- utils.PDD: 12 * time.Second,
- },
- }
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, expected) {
- t.Errorf("Expecting: %+v, received: %+v", expected, reply)
- }
-
- expected = []string{"Stat_1_1"}
- ev1.CGREvent = &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event3",
- Event: map[string]interface{}{
- "Stat": "Stat1_1",
- utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
- utils.Usage: 15 * time.Second,
- utils.Cost: 15.5,
- utils.PDD: 15 * time.Second,
- },
- }
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, expected) {
- t.Errorf("Expecting: %+v, received: %+v", expected, reply)
- }
-}
-
-func testV1FltrPopulateThreshold(t *testing.T) {
- //Add a filter of type *stats and check if acd metric is minim 10 ( greater than 10)
- //we expect that acd from Stat_1 to be 11 so the filter should pass (11 > 10)
- filter := &engine.FilterWithAPIOpts{
- Filter: &engine.Filter{
- Tenant: "cgrates.org",
- ID: "FLTR_TH_Stats1",
- Rules: []*engine.FilterRule{
- {
- Type: "*gt",
- Element: "~*stats.Stat_1.*acd",
- Values: []string{"10.0"},
- },
- },
- },
- }
-
- var result string
- if err := fltrRpc.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-
- // Add a disable and log action
- attrsAA := &utils.AttrSetActions{ActionsId: "LOG", Actions: []*utils.TPAction{
- {Identifier: utils.MetaLog},
- }}
- if err := fltrRpc.Call(utils.APIerSv2SetActions, attrsAA, &result); err != nil && err.Error() != utils.ErrExists.Error() {
- t.Error("Got error on APIerSv2.SetActions: ", err.Error())
- } else if result != utils.OK {
- t.Errorf("Calling APIerSv2.SetActions received: %s", result)
- }
-
- //Add a threshold with filter from above and an inline filter for Account 1010
- tPrfl := &engine.ThresholdProfileWithAPIOpts{
- ThresholdProfile: &engine.ThresholdProfile{
- Tenant: "cgrates.org",
- ID: "TH_Stats1",
- FilterIDs: []string{"FLTR_TH_Stats1", "*string:~*req.Account:1010", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
- MaxHits: -1,
- MinSleep: time.Millisecond,
- Weight: 10.0,
- ActionProfileIDs: []string{"LOG"},
- Async: true,
- },
- }
- if err := fltrRpc.Call(utils.AdminSv1SetThresholdProfile, tPrfl, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- var rcvTh *engine.ThresholdProfile
- if err := fltrRpc.Call(utils.AdminSv1GetThresholdProfile,
- &utils.TenantID{Tenant: tPrfl.Tenant, ID: tPrfl.ID}, &rcvTh); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rcvTh) {
- t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, rcvTh)
- }
-}
-
-func testV1FltrGetThresholdForEvent(t *testing.T) {
- // check the event
- tEv := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event1",
- Event: map[string]interface{}{
- utils.AccountField: "1010"},
- }
- var ids []string
- eIDs := []string{"TH_Stats1"}
- if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(ids, eIDs) {
- t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
- }
-}
-
-func testV1FltrGetThresholdForEvent2(t *testing.T) {
- //Add a filter of type *stats and check if acd metric is maximum 10 ( lower than 10)
- //we expect that acd from Stat_1 to be 11 so the filter should not pass (11 > 10)
- filter := &engine.FilterWithAPIOpts{
- Filter: &engine.Filter{
- Tenant: "cgrates.org",
- ID: "FLTR_TH_Stats1",
- Rules: []*engine.FilterRule{
- {
- Type: "*lt",
- Element: "~*stats.Stat_1.*acd",
- Values: []string{"10.0"},
- },
- },
- },
- }
-
- var result string
- if err := fltrRpc.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-
- //update the threshold with new filter
- tPrfl := &engine.ThresholdProfileWithAPIOpts{
- ThresholdProfile: &engine.ThresholdProfile{
- Tenant: "cgrates.org",
- ID: "TH_Stats1",
- FilterIDs: []string{"FLTR_TH_Stats1", "*string:~*req.Account:1010", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
- MaxHits: -1,
- MinSleep: time.Millisecond,
- Weight: 10.0,
- ActionProfileIDs: []string{"LOG"},
- },
- }
- if err := fltrRpc.Call(utils.AdminSv1SetThresholdProfile, tPrfl, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-
- tEv := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event1",
- Event: map[string]interface{}{
- utils.AccountField: "1010"},
- }
- var ids []string
- if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
-}
-
-func testV1FltrPopulateResources(t *testing.T) {
- //create a resourceProfile
- rlsConfig := &engine.ResourceProfile{
- Tenant: "cgrates.org",
- ID: "ResTest",
- UsageTTL: time.Minute,
- Limit: 10,
- AllocationMessage: "MessageAllocation",
- Stored: true,
- Weight: 20,
- ThresholdIDs: []string{utils.MetaNone},
- }
-
- var result string
- if err := fltrRpc.Call(utils.AdminSv1SetResourceProfile, &engine.ResourceProfileWithAPIOpts{ResourceProfile: rlsConfig}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-
- var reply *engine.ResourceProfile
- if err := fltrRpc.Call(utils.AdminSv1GetResourceProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: rlsConfig.ID}, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, rlsConfig) {
- t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(rlsConfig), utils.ToJSON(reply))
- }
-
- // Allocate 3 units for resource ResTest
- argsRU := utils.ArgRSv1ResourceUsage{
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: utils.UUIDSha1Prefix(),
- Event: map[string]interface{}{
- "Account": "3001",
- "Destination": "3002"
- },
- APIOpts: map[string]interface{}{
- utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e21",
- utils.OptsResourcesUnits: 3,
- },
- },
- }
- if err := fltrRpc.Call(utils.ResourceSv1AllocateResources,
- argsRU, &result); err != nil {
- t.Error(err)
- }
-
- //we allocate 3 units to resource and add a filter for Usages > 2
- //should match (3>2)
- filter := engine.FilterWithAPIOpts{
- Filter: &engine.Filter{
- Tenant: "cgrates.org",
- ID: "FLTR_TH_Resource",
- Rules: []*engine.FilterRule{
- {
- Type: "*gt",
- Element: "~*resources.ResTest.TotalUsage",
- Values: []string{"2.0"},
- },
- },
- },
- }
-
- if err := fltrRpc.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-
- tPrfl := &engine.ThresholdProfileWithAPIOpts{
- ThresholdProfile: &engine.ThresholdProfile{
- Tenant: "cgrates.org",
- ID: "TH_ResTest",
- FilterIDs: []string{"FLTR_TH_Resource", "*string:~*req.Account:2020"},
- MaxHits: -1,
- MinSleep: time.Millisecond,
- Weight: 10.0,
- ActionProfileIDs: []string{"LOG"},
- Async: true,
- },
- }
- if err := fltrRpc.Call(utils.AdminSv1SetThresholdProfile, tPrfl, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- var rcvTh *engine.ThresholdProfile
- if err := fltrRpc.Call(utils.AdminSv1GetThresholdProfile,
- &utils.TenantID{Tenant: tPrfl.Tenant, ID: tPrfl.ID}, &rcvTh); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rcvTh) {
- t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, rcvTh)
- }
-
- // check the event
- tEv := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event1",
- Event: map[string]interface{}{
- utils.AccountField: "2020"},
- }
-
- var ids []string
- eIDs := []string{"TH_ResTest"}
- if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(ids, eIDs) {
- t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
- }
-
- //change the filter
- //we allocate 3 units to resource and add a filter for Usages < 2
- //should fail (3<2)
- filter.Filter = &engine.Filter{
- Tenant: "cgrates.org",
- ID: "FLTR_TH_Resource",
- Rules: []*engine.FilterRule{
- {
- Type: "*lt",
- Element: "~*resources.ResTest.TotalUsage",
- Values: []string{"2.0"},
- },
- },
- }
-
- if err := fltrRpc.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-
- //Overwrite the threshold
- if err := fltrRpc.Call(utils.AdminSv1SetThresholdProfile, tPrfl, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-
- //expect NotFound error because filter doesn't match
- if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
-}
-
-func testV1FltrPopulateResourcesAvailableUnits(t *testing.T) {
- //create a resourceProfile
- rlsConfig := &engine.ResourceProfile{
- Tenant: "cgrates.org",
- ID: "RES_TEST",
- UsageTTL: time.Minute,
- Limit: 23,
- AllocationMessage: "Test_Available",
- Stored: true,
- Weight: 25,
- ThresholdIDs: []string{utils.MetaNone},
- }
-
- var result string
- if err := fltrRpc.Call(utils.AdminSv1SetResourceProfile, &engine.ResourceProfileWithAPIOpts{ResourceProfile: rlsConfig}, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-
- var reply *engine.ResourceProfile
- if err := fltrRpc.Call(utils.AdminSv1GetResourceProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: rlsConfig.ID}, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, rlsConfig) {
- t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(rlsConfig), utils.ToJSON(reply))
- }
-
- //Allocate 9 units for resource ResTest
- argsRU := utils.ArgRSv1ResourceUsage{
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: utils.UUIDSha1Prefix(),
- Event: map[string]interface{}{
- "Account": "3001",
- "Destination": "3002"},
- APIOpts: map[string]interface{}{
- utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e21",
- utils.OptsResourcesUnits: 9,
- },
- },
- }
- if err := fltrRpc.Call(utils.ResourceSv1AllocateResources, argsRU, &result); err != nil {
- t.Error(err)
- } else if result != "Test_Available" {
- t.Error("Unexpected reply returned", result)
- }
-
- //as we allocate 9 units, there should be available 14 more
- //our filter should match for *gt or *gte
- filter := engine.FilterWithAPIOpts{
- Filter: &engine.Filter{
- Tenant: "cgrates.org",
- ID: "FLTR_ST_Resource1",
- Rules: []*engine.FilterRule{
- {
- Type: "*gt",
- Element: "~*resources.RES_TEST.Available",
- Values: []string{"13.0"},
- },
- {
- Type: "*gte",
- Element: "~*resources.RES_TEST.Available",
- Values: []string{"14.0"},
- },
- },
- },
- }
-
- if err := fltrRpc.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-
- //set a statQueueProfile with that filter
- statsPrf := &engine.StatQueueProfileWithAPIOpts{
- StatQueueProfile: &engine.StatQueueProfile{
- Tenant: "cgrates.org",
- ID: "STATS_RES_TEST12",
- FilterIDs: []string{"FLTR_ST_Resource1", "*string:~*req.Account:1001"},
- Weight: 50,
- },
- }
- if err := fltrRpc.Call(utils.AdminSv1SetStatQueueProfile, statsPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-
- var replyStats *engine.StatQueueProfile
- if err := fltrRpc.Call(utils.AdminSv1GetStatQueueProfile, &utils.TenantID{Tenant: "cgrates.org",
- ID: "STATS_RES_TEST12"}, &replyStats); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(statsPrf.StatQueueProfile, replyStats) {
- t.Errorf("Expected %+v, received %+v", utils.ToJSON(statsPrf.StatQueueProfile), utils.ToJSON(replyStats))
- }
-
- //here will check the event
- statsEv := &engine.StatsArgsProcessEvent{
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event_nr2",
- Event: map[string]interface{}{
- utils.AccountField: "1001",
- utils.Usage: "1",
- },
- },
- }
- var ids []string
- expectedIDs := []string{"STATS_RES_TEST12", "Stat_1"}
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, statsEv, &ids); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(expectedIDs, ids) {
- t.Errorf("Expected %+v, received %+v", expectedIDs, ids)
- }
-
- //set another filter that will not match
- filter = engine.FilterWithAPIOpts{
- Filter: &engine.Filter{
- Tenant: "cgrates.org",
- ID: "FLTR_ST_Resource1",
- Rules: []*engine.FilterRule{
- {
- Type: "*gt",
- Element: "~*resources.RES_TEST.Available",
- Values: []string{"17.0"},
- },
- },
- },
- }
-
- if err := fltrRpc.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-
- //overwrite the StatQueueProfile
- if err := fltrRpc.Call(utils.AdminSv1GetStatQueueProfile, &utils.TenantID{Tenant: "cgrates.org",
- ID: "STATS_RES_TEST12"}, &replyStats); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(statsPrf.StatQueueProfile, replyStats) {
- t.Errorf("Expected %+v, received %+v", utils.ToJSON(statsPrf.StatQueueProfile), utils.ToJSON(replyStats))
- }
-
- //This filter won't match
- expectedIDs = []string{"Stat_1"}
- if err := fltrRpc.Call(utils.StatSv1ProcessEvent, statsEv, &ids); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(expectedIDs, ids) {
- t.Errorf("Expected %+v, received %+v", expectedIDs, ids)
- }
-}
-
-func testV1FltrAccounts(t *testing.T) {
- var resp string
- if err := fltrRpc.Call(utils.AdminSv1RemoveThresholdProfile,
- &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}}, &resp); err != nil {
- t.Error(err)
- } else if resp != utils.OK {
- t.Error("Unexpected reply returned", resp)
- }
- // Add a filter with fieldName taken value from account 1001
- // and check if *monetary balance is minim 9 ( greater than 9)
- // we expect that the balance to be 10 so the filter should pass (10 > 9)
- filter := engine.FilterWithAPIOpts{
- Filter: &engine.Filter{
- Tenant: "cgrates.org",
- ID: "FLTR_TH_Accounts",
- Rules: []*engine.FilterRule{
- {
- Type: "*gt",
- Element: "~*accounts.1001.BalanceMap.*monetary[0].Value",
- Values: []string{"9"},
- },
- },
- },
- }
-
- var result string
- if err := fltrRpc.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- // Add a log action
- attrsAA := &utils.AttrSetActions{ActionsId: "LOG", Actions: []*utils.TPAction{
- {Identifier: utils.MetaLog},
- }}
- if err := fltrRpc.Call(utils.APIerSv2SetActions, attrsAA, &result); err != nil && err.Error() != utils.ErrExists.Error() {
- t.Error("Got error on APIerSv2.SetActions: ", err.Error())
- } else if result != utils.OK {
- t.Errorf("Calling APIerSv2.SetActions received: %s", result)
- }
- //Add a threshold with filter from above and an inline filter for Account 1010
- tPrfl := &engine.ThresholdProfileWithAPIOpts{
- ThresholdProfile: &engine.ThresholdProfile{
- Tenant: "cgrates.org",
- ID: "TH_Account",
- FilterIDs: []string{"FLTR_TH_Accounts", "*string:~*req.Account:1001"},
- MaxHits: -1,
- MinSleep: time.Millisecond,
- Weight: 90.0,
- ActionProfileIDs: []string{"LOG"},
- Async: true,
- },
- }
- if err := fltrRpc.Call(utils.AdminSv1SetThresholdProfile, tPrfl, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- var rcvTh *engine.ThresholdProfile
- if err := fltrRpc.Call(utils.AdminSv1GetThresholdProfile,
- &utils.TenantID{Tenant: tPrfl.Tenant, ID: tPrfl.ID}, &rcvTh); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rcvTh) {
- t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, rcvTh)
- }
-
- tEv := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event1",
- Event: map[string]interface{}{
- utils.AccountField: "1001"},
- }
- var ids []string
- if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(ids, []string{"TH_Account"}) {
- t.Error("Unexpected reply returned", ids)
- }
-
- // update the filter
- // Add a filter with fieldName taken value from account 1001
- // and check if *monetary balance is is minim 11 ( greater than 11)
- // we expect that the balance to be 10 so the filter should not pass (10 > 11)
- filter.Filter = &engine.Filter{
- Tenant: "cgrates.org",
- ID: "FLTR_TH_Accounts",
- Rules: []*engine.FilterRule{
- {
- Type: "*gt",
- Element: "~*accounts.1001.BalanceMap.*monetary[0].Value",
- Values: []string{"11"},
- },
- },
- }
-
- if err := fltrRpc.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-
- if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
-}
-
-func testV1FltrAccountsExistsDynamicaly(t *testing.T) {
- var resp string
- if err := fltrRpc.Call(utils.AdminSv1RemoveThresholdProfile,
- &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "TH_Account"}}, &resp); err != nil {
- if err.Error() != utils.ErrNotFound.Error() { // no error if the threshold is already removed
- t.Error(err)
- }
- } else if resp != utils.OK {
- t.Error("Unexpected reply returned", resp)
- }
-
- var result string
- // Add a log action
- attrsAA := &utils.AttrSetActions{ActionsId: "LOG", Actions: []*utils.TPAction{
- {Identifier: utils.MetaLog},
- }}
- if err := fltrRpc.Call(utils.APIerSv2SetActions, attrsAA, &result); err != nil && err.Error() != utils.ErrExists.Error() {
- t.Error("Got error on APIerSv2.SetActions: ", err.Error())
- }
- //Add a threshold with filter from above and an inline filter for Account 1010
- tPrfl := &engine.ThresholdProfileWithAPIOpts{
- ThresholdProfile: &engine.ThresholdProfile{
- Tenant: "cgrates.org",
- ID: "TH_AccountDinamic",
- FilterIDs: []string{"*exists:~*accounts.<~*req.Account>:"},
- MaxHits: -1,
- MinSleep: time.Millisecond,
- Weight: 90.0,
- ActionProfileIDs: []string{"LOG"},
- Async: true,
- },
- }
- if err := fltrRpc.Call(utils.AdminSv1SetThresholdProfile, tPrfl, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- var rcvTh *engine.ThresholdProfile
- if err := fltrRpc.Call(utils.AdminSv1GetThresholdProfile,
- &utils.TenantID{Tenant: tPrfl.Tenant, ID: tPrfl.ID}, &rcvTh); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rcvTh) {
- t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, rcvTh)
- }
-
- tEv := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event1",
- Event: map[string]interface{}{
- utils.AccountField: "1001"},
- }
- var ids []string
- if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(ids, []string{"TH_AccountDinamic"}) {
- t.Error("Unexpected reply returned", ids)
- }
-
- tEv = &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event2",
- Event: map[string]interface{}{
- utils.AccountField: "non"},
- }
- ids = nil
- if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
-}
-
-func testV1FltrChargerSuffix(t *testing.T) {
- var reply string
- if err := fltrRpc.Call(utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
- CacheIDs: nil,
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Reply: ", reply)
- }
- chargerProfile := &v1.ChargerWithAPIOpts{
- ChargerProfile: &engine.ChargerProfile{
- Tenant: "cgrates.org",
- ID: "IntraCharger",
- FilterIDs: []string{"*suffix:~*req.Subject:intra"},
- RunID: "Intra",
- AttributeIDs: []string{"*constant:*req.Subject:intraState"},
- Weight: 20,
- },
- }
- var result string
- if err := fltrRpc.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-
- chargerProfile2 := &v1.ChargerWithAPIOpts{
- ChargerProfile: &engine.ChargerProfile{
- Tenant: "cgrates.org",
- ID: "InterCharger",
- FilterIDs: []string{"*suffix:~*req.Subject:inter"},
- RunID: "Inter",
- AttributeIDs: []string{"*constant:*req.Subject:interState"},
- Weight: 20,
- },
- }
- if err := fltrRpc.Call(utils.AdminSv1SetChargerProfile, chargerProfile2, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-
- processedEv := []*engine.ChrgSProcessEventReply{
- {
- ChargerSProfile: "IntraCharger",
- AttributeSProfiles: []string{"*constant:*req.Subject:intraState"},
- AlteredFields: []string{utils.MetaReqRunID, "*req.Subject"},
-
- CGREvent: &utils.CGREvent{ // matching Charger1
- Tenant: "cgrates.org",
- ID: "event1",
- Event: map[string]interface{}{
- utils.AccountField: "1010",
- utils.Subject: "intraState",
- utils.RunID: "Intra",
- utils.Destination: "999",
- },
- APIOpts: map[string]interface{}{
- utils.Subsys: utils.MetaChargers,
- },
- },
- },
- }
- cgrEv := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event1",
- Event: map[string]interface{}{
- utils.AccountField: "1010",
- utils.Subject: "Something_intra",
- utils.Destination: "999",
- },
- }
- var result2 []*engine.ChrgSProcessEventReply
- if err := fltrRpc.Call(utils.ChargerSv1ProcessEvent, cgrEv, &result2); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(result2, processedEv) {
- t.Errorf("Expecting : %s, \n received: %s", utils.ToJSON(processedEv), utils.ToJSON(result2))
- }
-
- processedEv = []*engine.ChrgSProcessEventReply{
- {
- ChargerSProfile: "InterCharger",
- AttributeSProfiles: []string{"*constant:*req.Subject:interState"},
- AlteredFields: []string{utils.MetaReqRunID, "*req.Subject"},
-
- CGREvent: &utils.CGREvent{ // matching Charger1
- Tenant: "cgrates.org",
- ID: "event1",
- Event: map[string]interface{}{
- utils.AccountField: "1010",
- utils.Subject: "interState",
- utils.RunID: "Inter",
- utils.Destination: "999",
- },
- APIOpts: map[string]interface{}{
- utils.Subsys: utils.MetaChargers,
- },
- },
- },
- }
- cgrEv = &utils.CGREvent{
-
- Tenant: "cgrates.org",
- ID: "event1",
- Event: map[string]interface{}{
- utils.AccountField: "1010",
- utils.Subject: "Something_inter",
- utils.Destination: "999",
- },
- }
- if err := fltrRpc.Call(utils.ChargerSv1ProcessEvent, cgrEv, &result2); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(result2, processedEv) {
- t.Errorf("Expecting : %s, \n received: %s", utils.ToJSON(processedEv), utils.ToJSON(result2))
- }
-}
-
-func testV1FltrAttributesPrefix(t *testing.T) {
- chargerProfile := &engine.AttributeProfileWithAPIOpts{
- AttributeProfile: &engine.AttributeProfile{
- Tenant: "cgrates.new",
- ID: "ATTR_1001",
- FilterIDs: []string{"*prefix:~*req.CustomField:2007|+2007", "*prefix:~*req.CustomField2:2007|+2007", "FLTR_1", "*string:~*opts.*context:prefix"},
- Attributes: []*engine.Attribute{
- {
- FilterIDs: []string{},
- Path: utils.MetaReq + utils.NestingSep + "CustomField",
- Type: utils.MetaConstant,
- Value: config.NewRSRParsersMustCompile("2007", utils.InfieldSep),
- },
- },
- Weight: 20.0,
- },
- }
- var result string
- if err := fltrRpc.Call(utils.AdminSv1SetAttributeProfile, chargerProfile, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-
- processedEv := &engine.AttrSProcessEventReply{
- AlteredFields: []string{"*req.CustomField"},
- MatchedProfiles: []string{"cgrates.new:ATTR_1001"},
-
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.new",
- ID: "event1",
- Event: map[string]interface{}{
- "CustomField": "2007",
- "CustomField2": "+2007",
- utils.Destination: "+1207",
- },
- APIOpts: map[string]interface{}{},
- },
- }
- cgrEv := &utils.CGREvent{
- Tenant: "cgrates.new",
- ID: "event1",
- Event: map[string]interface{}{
- "CustomField": "+2007",
- "CustomField2": "+2007",
- utils.Destination: "+1207",
- },
- APIOpts: map[string]interface{}{
- utils.OptsContext: "prefix",
- },
- }
- var result2 *engine.AttrSProcessEventReply
- if err := fltrRpc.Call(utils.AttributeSv1ProcessEvent, cgrEv, &result2); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(result2, processedEv) {
- t.Errorf("Expecting : %s, \n received: %s", utils.ToJSON(processedEv), utils.ToJSON(result2))
- }
-
-}
-
-func testV1FltrStopEngine(t *testing.T) {
- if err := engine.KillEngine(accDelay); err != nil {
- t.Error(err)
- }
-}
+// import (
+// "net/rpc"
+// "path"
+// "reflect"
+// "testing"
+// "time"
+
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
+
+// var (
+// fltrCfgPath string
+// fltrCfg *config.CGRConfig
+// fltrRpc *rpc.Client
+// fltrConfDIR string //run tests for specific configuration
+// fltrDelay int
+
+// sTestsFltr = []func(t *testing.T){
+// testV1FltrLoadConfig,
+// testV1FltrInitDataDb,
+// testV1FltrResetStorDb,
+// testV1FltrStartEngine,
+// testV1FltrRpcConn,
+// testV1FltrLoadTarrifPlans,
+// testV1FltrAddStats,
+// testV1FltrPopulateThreshold,
+// testV1FltrGetThresholdForEvent,
+// testV1FltrGetThresholdForEvent2,
+// testV1FltrPopulateResources,
+// testV1FltrPopulateResourcesAvailableUnits,
+// testV1FltrAccounts,
+// testV1FltrAccountsExistsDynamicaly,
+// testV1FltrAttributesPrefix,
+// testV1FltrInitDataDb,
+// testV1FltrChargerSuffix,
+// testV1FltrStopEngine,
+// }
+// )
+
+// // Test start here
+// func TestFltrIT(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// fltrConfDIR = "filters_internal"
+// case utils.MetaMySQL:
+// fltrConfDIR = "filters_mysql"
+// case utils.MetaMongo:
+// fltrConfDIR = "filters_mongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+
+// for _, stest := range sTestsFltr {
+// t.Run(fltrConfDIR, stest)
+// }
+// }
+
+// func testV1FltrLoadConfig(t *testing.T) {
+// var err error
+// fltrCfgPath = path.Join(*dataDir, "conf", "samples", fltrConfDIR)
+// if *encoding == utils.MetaGOB {
+// cdrsCfgPath = path.Join(*dataDir, "conf", "samples", fltrConfDIR+"_gob")
+// }
+// if fltrCfg, err = config.NewCGRConfigFromPath(fltrCfgPath); err != nil {
+// t.Error(err)
+// }
+// fltrDelay = 1000
+// }
+
+// func testV1FltrInitDataDb(t *testing.T) {
+// if err := engine.InitDataDB(fltrCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
+
+// func testV1FltrResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(fltrCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
+
+// func testV1FltrStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(fltrCfgPath, fltrDelay); err != nil {
+// t.Fatal(err)
+// }
+// }
+
+// func testV1FltrRpcConn(t *testing.T) {
+// var err error
+// fltrRpc, err = newRPCClient(fltrCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal("Could not connect to rater: ", err.Error())
+// }
+// }
+
+// func testV1FltrLoadTarrifPlans(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
+// if err := fltrRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// time.Sleep(100 * time.Millisecond)
+// }
+
+// func testV1FltrAddStats(t *testing.T) {
+// var reply []string
+// expected := []string{"Stat_1"}
+// ev1 := &engine.StatsArgsProcessEvent{
+
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event1",
+// Event: map[string]interface{}{
+// utils.AccountField: "1001",
+// utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
+// utils.Usage: 11 * time.Second,
+// utils.Cost: 10.0,
+// },
+// },
+// }
+// if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, expected) {
+// t.Errorf("Expecting: %+v, received: %+v", expected, reply)
+// }
+
+// expected = []string{"Stat_1"}
+// ev1.CGREvent = &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event2",
+// Event: map[string]interface{}{
+// utils.AccountField: "1001",
+// utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
+// utils.Usage: 11 * time.Second,
+// utils.Cost: 10.5,
+// },
+// }
+// if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, expected) {
+// t.Errorf("Expecting: %+v, received: %+v", expected, reply)
+// }
+
+// expected = []string{"Stat_2"}
+// ev1.CGREvent = &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event2",
+// Event: map[string]interface{}{
+// utils.AccountField: "1002",
+// utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
+// utils.Usage: 5 * time.Second,
+// utils.Cost: 12.5,
+// },
+// }
+// if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, expected) {
+// t.Errorf("Expecting: %+v, received: %+v", expected, reply)
+// }
+
+// expected = []string{"Stat_2"}
+// ev1.CGREvent = &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event2",
+// Event: map[string]interface{}{
+// utils.AccountField: "1002",
+// utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
+// utils.Usage: 6 * time.Second,
+// utils.Cost: 17.5,
+// },
+// }
+// if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, expected) {
+// t.Errorf("Expecting: %+v, received: %+v", expected, reply)
+// }
+
+// expected = []string{"Stat_3"}
+// ev1.CGREvent = &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event3",
+// Event: map[string]interface{}{
+// utils.AccountField: "1003",
+// utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
+// utils.Usage: 11 * time.Second,
+// utils.Cost: 12.5,
+// },
+// }
+// if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, expected) {
+// t.Errorf("Expecting: %+v, received: %+v", expected, reply)
+// }
+
+// expected = []string{"Stat_1_1"}
+// ev1.CGREvent = &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event3",
+// Event: map[string]interface{}{
+// "Stat": "Stat1_1",
+// utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
+// utils.Usage: 11 * time.Second,
+// utils.Cost: 12.5,
+// utils.PDD: 12 * time.Second,
+// },
+// }
+// if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, expected) {
+// t.Errorf("Expecting: %+v, received: %+v", expected, reply)
+// }
+
+// expected = []string{"Stat_1_1"}
+// ev1.CGREvent = &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event3",
+// Event: map[string]interface{}{
+// "Stat": "Stat1_1",
+// utils.AnswerTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
+// utils.Usage: 15 * time.Second,
+// utils.Cost: 15.5,
+// utils.PDD: 15 * time.Second,
+// },
+// }
+// if err := fltrRpc.Call(utils.StatSv1ProcessEvent, &ev1, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, expected) {
+// t.Errorf("Expecting: %+v, received: %+v", expected, reply)
+// }
+// }
+
+// func testV1FltrPopulateThreshold(t *testing.T) {
+// //Add a filter of type *stats and check if acd metric is minim 10 ( greater than 10)
+// //we expect that acd from Stat_1 to be 11 so the filter should pass (11 > 10)
+// filter := &engine.FilterWithAPIOpts{
+// Filter: &engine.Filter{
+// Tenant: "cgrates.org",
+// ID: "FLTR_TH_Stats1",
+// Rules: []*engine.FilterRule{
+// {
+// Type: "*gt",
+// Element: "~*stats.Stat_1.*acd",
+// Values: []string{"10.0"},
+// },
+// },
+// },
+// }
+
+// var result string
+// if err := fltrRpc.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+
+// // Add a disable and log action
+// attrsAA := &utils.AttrSetActions{ActionsId: "LOG", Actions: []*utils.TPAction{
+// {Identifier: utils.MetaLog},
+// }}
+// if err := fltrRpc.Call(utils.APIerSv2SetActions, attrsAA, &result); err != nil && err.Error() != utils.ErrExists.Error() {
+// t.Error("Got error on APIerSv2.SetActions: ", err.Error())
+// } else if result != utils.OK {
+// t.Errorf("Calling APIerSv2.SetActions received: %s", result)
+// }
+
+// //Add a threshold with filter from above and an inline filter for Account 1010
+// tPrfl := &engine.ThresholdProfileWithAPIOpts{
+// ThresholdProfile: &engine.ThresholdProfile{
+// Tenant: "cgrates.org",
+// ID: "TH_Stats1",
+// FilterIDs: []string{"FLTR_TH_Stats1", "*string:~*req.Account:1010", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
+// MaxHits: -1,
+// MinSleep: time.Millisecond,
+// Weight: 10.0,
+// ActionProfileIDs: []string{"LOG"},
+// Async: true,
+// },
+// }
+// if err := fltrRpc.Call(utils.AdminSv1SetThresholdProfile, tPrfl, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// var rcvTh *engine.ThresholdProfile
+// if err := fltrRpc.Call(utils.AdminSv1GetThresholdProfile,
+// &utils.TenantID{Tenant: tPrfl.Tenant, ID: tPrfl.ID}, &rcvTh); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rcvTh) {
+// t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, rcvTh)
+// }
+// }
+
+// func testV1FltrGetThresholdForEvent(t *testing.T) {
+// // check the event
+// tEv := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event1",
+// Event: map[string]interface{}{
+// utils.AccountField: "1010"},
+// }
+// var ids []string
+// eIDs := []string{"TH_Stats1"}
+// if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(ids, eIDs) {
+// t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
+// }
+// }
+
+// func testV1FltrGetThresholdForEvent2(t *testing.T) {
+// //Add a filter of type *stats and check if acd metric is maximum 10 ( lower than 10)
+// //we expect that acd from Stat_1 to be 11 so the filter should not pass (11 > 10)
+// filter := &engine.FilterWithAPIOpts{
+// Filter: &engine.Filter{
+// Tenant: "cgrates.org",
+// ID: "FLTR_TH_Stats1",
+// Rules: []*engine.FilterRule{
+// {
+// Type: "*lt",
+// Element: "~*stats.Stat_1.*acd",
+// Values: []string{"10.0"},
+// },
+// },
+// },
+// }
+
+// var result string
+// if err := fltrRpc.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+
+// //update the threshold with new filter
+// tPrfl := &engine.ThresholdProfileWithAPIOpts{
+// ThresholdProfile: &engine.ThresholdProfile{
+// Tenant: "cgrates.org",
+// ID: "TH_Stats1",
+// FilterIDs: []string{"FLTR_TH_Stats1", "*string:~*req.Account:1010", "*ai:~*req.AnswerTime:2014-07-14T14:35:00Z|2014-07-14T14:36:00Z"},
+// MaxHits: -1,
+// MinSleep: time.Millisecond,
+// Weight: 10.0,
+// ActionProfileIDs: []string{"LOG"},
+// },
+// }
+// if err := fltrRpc.Call(utils.AdminSv1SetThresholdProfile, tPrfl, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+
+// tEv := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event1",
+// Event: map[string]interface{}{
+// utils.AccountField: "1010"},
+// }
+// var ids []string
+// if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// }
+
+// func testV1FltrPopulateResources(t *testing.T) {
+// //create a resourceProfile
+// rlsConfig := &engine.ResourceProfile{
+// Tenant: "cgrates.org",
+// ID: "ResTest",
+// UsageTTL: time.Minute,
+// Limit: 10,
+// AllocationMessage: "MessageAllocation",
+// Stored: true,
+// Weight: 20,
+// ThresholdIDs: []string{utils.MetaNone},
+// }
+
+// var result string
+// if err := fltrRpc.Call(utils.AdminSv1SetResourceProfile, &engine.ResourceProfileWithAPIOpts{ResourceProfile: rlsConfig}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+
+// var reply *engine.ResourceProfile
+// if err := fltrRpc.Call(utils.AdminSv1GetResourceProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: rlsConfig.ID}, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, rlsConfig) {
+// t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(rlsConfig), utils.ToJSON(reply))
+// }
+
+// // Allocate 3 units for resource ResTest
+// argsRU := utils.ArgRSv1ResourceUsage{
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: utils.UUIDSha1Prefix(),
+// Event: map[string]interface{}{
+// "Account": "3001",
+// "Destination": "3002"
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e21",
+// utils.OptsResourcesUnits: 3,
+// },
+// },
+// }
+// if err := fltrRpc.Call(utils.ResourceSv1AllocateResources,
+// argsRU, &result); err != nil {
+// t.Error(err)
+// }
+
+// //we allocate 3 units to resource and add a filter for Usages > 2
+// //should match (3>2)
+// filter := engine.FilterWithAPIOpts{
+// Filter: &engine.Filter{
+// Tenant: "cgrates.org",
+// ID: "FLTR_TH_Resource",
+// Rules: []*engine.FilterRule{
+// {
+// Type: "*gt",
+// Element: "~*resources.ResTest.TotalUsage",
+// Values: []string{"2.0"},
+// },
+// },
+// },
+// }
+
+// if err := fltrRpc.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+
+// tPrfl := &engine.ThresholdProfileWithAPIOpts{
+// ThresholdProfile: &engine.ThresholdProfile{
+// Tenant: "cgrates.org",
+// ID: "TH_ResTest",
+// FilterIDs: []string{"FLTR_TH_Resource", "*string:~*req.Account:2020"},
+// MaxHits: -1,
+// MinSleep: time.Millisecond,
+// Weight: 10.0,
+// ActionProfileIDs: []string{"LOG"},
+// Async: true,
+// },
+// }
+// if err := fltrRpc.Call(utils.AdminSv1SetThresholdProfile, tPrfl, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// var rcvTh *engine.ThresholdProfile
+// if err := fltrRpc.Call(utils.AdminSv1GetThresholdProfile,
+// &utils.TenantID{Tenant: tPrfl.Tenant, ID: tPrfl.ID}, &rcvTh); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rcvTh) {
+// t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, rcvTh)
+// }
+
+// // check the event
+// tEv := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event1",
+// Event: map[string]interface{}{
+// utils.AccountField: "2020"},
+// }
+
+// var ids []string
+// eIDs := []string{"TH_ResTest"}
+// if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(ids, eIDs) {
+// t.Errorf("Expecting ids: %s, received: %s", eIDs, ids)
+// }
+
+// //change the filter
+// //we allocate 3 units to resource and add a filter for Usages < 2
+// //should fail (3<2)
+// filter.Filter = &engine.Filter{
+// Tenant: "cgrates.org",
+// ID: "FLTR_TH_Resource",
+// Rules: []*engine.FilterRule{
+// {
+// Type: "*lt",
+// Element: "~*resources.ResTest.TotalUsage",
+// Values: []string{"2.0"},
+// },
+// },
+// }
+
+// if err := fltrRpc.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+
+// //Overwrite the threshold
+// if err := fltrRpc.Call(utils.AdminSv1SetThresholdProfile, tPrfl, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+
+// //expect NotFound error because filter doesn't match
+// if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// }
+
+// func testV1FltrPopulateResourcesAvailableUnits(t *testing.T) {
+// //create a resourceProfile
+// rlsConfig := &engine.ResourceProfile{
+// Tenant: "cgrates.org",
+// ID: "RES_TEST",
+// UsageTTL: time.Minute,
+// Limit: 23,
+// AllocationMessage: "Test_Available",
+// Stored: true,
+// Weight: 25,
+// ThresholdIDs: []string{utils.MetaNone},
+// }
+
+// var result string
+// if err := fltrRpc.Call(utils.AdminSv1SetResourceProfile, &engine.ResourceProfileWithAPIOpts{ResourceProfile: rlsConfig}, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+
+// var reply *engine.ResourceProfile
+// if err := fltrRpc.Call(utils.AdminSv1GetResourceProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: rlsConfig.ID}, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, rlsConfig) {
+// t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(rlsConfig), utils.ToJSON(reply))
+// }
+
+// //Allocate 9 units for resource ResTest
+// argsRU := utils.ArgRSv1ResourceUsage{
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: utils.UUIDSha1Prefix(),
+// Event: map[string]interface{}{
+// "Account": "3001",
+// "Destination": "3002"},
+// APIOpts: map[string]interface{}{
+// utils.OptsResourcesUsageID: "651a8db2-4f67-4cf8-b622-169e8a482e21",
+// utils.OptsResourcesUnits: 9,
+// },
+// },
+// }
+// if err := fltrRpc.Call(utils.ResourceSv1AllocateResources, argsRU, &result); err != nil {
+// t.Error(err)
+// } else if result != "Test_Available" {
+// t.Error("Unexpected reply returned", result)
+// }
+
+// //as we allocate 9 units, there should be available 14 more
+// //our filter should match for *gt or *gte
+// filter := engine.FilterWithAPIOpts{
+// Filter: &engine.Filter{
+// Tenant: "cgrates.org",
+// ID: "FLTR_ST_Resource1",
+// Rules: []*engine.FilterRule{
+// {
+// Type: "*gt",
+// Element: "~*resources.RES_TEST.Available",
+// Values: []string{"13.0"},
+// },
+// {
+// Type: "*gte",
+// Element: "~*resources.RES_TEST.Available",
+// Values: []string{"14.0"},
+// },
+// },
+// },
+// }
+
+// if err := fltrRpc.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+
+// //set a statQueueProfile with that filter
+// statsPrf := &engine.StatQueueProfileWithAPIOpts{
+// StatQueueProfile: &engine.StatQueueProfile{
+// Tenant: "cgrates.org",
+// ID: "STATS_RES_TEST12",
+// FilterIDs: []string{"FLTR_ST_Resource1", "*string:~*req.Account:1001"},
+// Weight: 50,
+// },
+// }
+// if err := fltrRpc.Call(utils.AdminSv1SetStatQueueProfile, statsPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+
+// var replyStats *engine.StatQueueProfile
+// if err := fltrRpc.Call(utils.AdminSv1GetStatQueueProfile, &utils.TenantID{Tenant: "cgrates.org",
+// ID: "STATS_RES_TEST12"}, &replyStats); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(statsPrf.StatQueueProfile, replyStats) {
+// t.Errorf("Expected %+v, received %+v", utils.ToJSON(statsPrf.StatQueueProfile), utils.ToJSON(replyStats))
+// }
+
+// //here will check the event
+// statsEv := &engine.StatsArgsProcessEvent{
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event_nr2",
+// Event: map[string]interface{}{
+// utils.AccountField: "1001",
+// utils.Usage: "1",
+// },
+// },
+// }
+// var ids []string
+// expectedIDs := []string{"STATS_RES_TEST12", "Stat_1"}
+// if err := fltrRpc.Call(utils.StatSv1ProcessEvent, statsEv, &ids); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(expectedIDs, ids) {
+// t.Errorf("Expected %+v, received %+v", expectedIDs, ids)
+// }
+
+// //set another filter that will not match
+// filter = engine.FilterWithAPIOpts{
+// Filter: &engine.Filter{
+// Tenant: "cgrates.org",
+// ID: "FLTR_ST_Resource1",
+// Rules: []*engine.FilterRule{
+// {
+// Type: "*gt",
+// Element: "~*resources.RES_TEST.Available",
+// Values: []string{"17.0"},
+// },
+// },
+// },
+// }
+
+// if err := fltrRpc.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+
+// //overwrite the StatQueueProfile
+// if err := fltrRpc.Call(utils.AdminSv1GetStatQueueProfile, &utils.TenantID{Tenant: "cgrates.org",
+// ID: "STATS_RES_TEST12"}, &replyStats); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(statsPrf.StatQueueProfile, replyStats) {
+// t.Errorf("Expected %+v, received %+v", utils.ToJSON(statsPrf.StatQueueProfile), utils.ToJSON(replyStats))
+// }
+
+// //This filter won't match
+// expectedIDs = []string{"Stat_1"}
+// if err := fltrRpc.Call(utils.StatSv1ProcessEvent, statsEv, &ids); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(expectedIDs, ids) {
+// t.Errorf("Expected %+v, received %+v", expectedIDs, ids)
+// }
+// }
+
+// func testV1FltrAccounts(t *testing.T) {
+// var resp string
+// if err := fltrRpc.Call(utils.AdminSv1RemoveThresholdProfile,
+// &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}}, &resp); err != nil {
+// t.Error(err)
+// } else if resp != utils.OK {
+// t.Error("Unexpected reply returned", resp)
+// }
+// // Add a filter with fieldName taken value from account 1001
+// // and check if *monetary balance is minim 9 ( greater than 9)
+// // we expect that the balance to be 10 so the filter should pass (10 > 9)
+// filter := engine.FilterWithAPIOpts{
+// Filter: &engine.Filter{
+// Tenant: "cgrates.org",
+// ID: "FLTR_TH_Accounts",
+// Rules: []*engine.FilterRule{
+// {
+// Type: "*gt",
+// Element: "~*accounts.1001.BalanceMap.*monetary[0].Value",
+// Values: []string{"9"},
+// },
+// },
+// },
+// }
+
+// var result string
+// if err := fltrRpc.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// // Add a log action
+// attrsAA := &utils.AttrSetActions{ActionsId: "LOG", Actions: []*utils.TPAction{
+// {Identifier: utils.MetaLog},
+// }}
+// if err := fltrRpc.Call(utils.APIerSv2SetActions, attrsAA, &result); err != nil && err.Error() != utils.ErrExists.Error() {
+// t.Error("Got error on APIerSv2.SetActions: ", err.Error())
+// } else if result != utils.OK {
+// t.Errorf("Calling APIerSv2.SetActions received: %s", result)
+// }
+// //Add a threshold with filter from above and an inline filter for Account 1010
+// tPrfl := &engine.ThresholdProfileWithAPIOpts{
+// ThresholdProfile: &engine.ThresholdProfile{
+// Tenant: "cgrates.org",
+// ID: "TH_Account",
+// FilterIDs: []string{"FLTR_TH_Accounts", "*string:~*req.Account:1001"},
+// MaxHits: -1,
+// MinSleep: time.Millisecond,
+// Weight: 90.0,
+// ActionProfileIDs: []string{"LOG"},
+// Async: true,
+// },
+// }
+// if err := fltrRpc.Call(utils.AdminSv1SetThresholdProfile, tPrfl, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// var rcvTh *engine.ThresholdProfile
+// if err := fltrRpc.Call(utils.AdminSv1GetThresholdProfile,
+// &utils.TenantID{Tenant: tPrfl.Tenant, ID: tPrfl.ID}, &rcvTh); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rcvTh) {
+// t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, rcvTh)
+// }
+
+// tEv := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event1",
+// Event: map[string]interface{}{
+// utils.AccountField: "1001"},
+// }
+// var ids []string
+// if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(ids, []string{"TH_Account"}) {
+// t.Error("Unexpected reply returned", ids)
+// }
+
+// // update the filter
+// // Add a filter with fieldName taken value from account 1001
+// // and check if *monetary balance is is minim 11 ( greater than 11)
+// // we expect that the balance to be 10 so the filter should not pass (10 > 11)
+// filter.Filter = &engine.Filter{
+// Tenant: "cgrates.org",
+// ID: "FLTR_TH_Accounts",
+// Rules: []*engine.FilterRule{
+// {
+// Type: "*gt",
+// Element: "~*accounts.1001.BalanceMap.*monetary[0].Value",
+// Values: []string{"11"},
+// },
+// },
+// }
+
+// if err := fltrRpc.Call(utils.AdminSv1SetFilter, filter, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+
+// if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// }
+
+// func testV1FltrAccountsExistsDynamicaly(t *testing.T) {
+// var resp string
+// if err := fltrRpc.Call(utils.AdminSv1RemoveThresholdProfile,
+// &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "TH_Account"}}, &resp); err != nil {
+// if err.Error() != utils.ErrNotFound.Error() { // no error if the threshold is already removed
+// t.Error(err)
+// }
+// } else if resp != utils.OK {
+// t.Error("Unexpected reply returned", resp)
+// }
+
+// var result string
+// // Add a log action
+// attrsAA := &utils.AttrSetActions{ActionsId: "LOG", Actions: []*utils.TPAction{
+// {Identifier: utils.MetaLog},
+// }}
+// if err := fltrRpc.Call(utils.APIerSv2SetActions, attrsAA, &result); err != nil && err.Error() != utils.ErrExists.Error() {
+// t.Error("Got error on APIerSv2.SetActions: ", err.Error())
+// }
+// //Add a threshold with filter from above and an inline filter for Account 1010
+// tPrfl := &engine.ThresholdProfileWithAPIOpts{
+// ThresholdProfile: &engine.ThresholdProfile{
+// Tenant: "cgrates.org",
+// ID: "TH_AccountDinamic",
+// FilterIDs: []string{"*exists:~*accounts.<~*req.Account>:"},
+// MaxHits: -1,
+// MinSleep: time.Millisecond,
+// Weight: 90.0,
+// ActionProfileIDs: []string{"LOG"},
+// Async: true,
+// },
+// }
+// if err := fltrRpc.Call(utils.AdminSv1SetThresholdProfile, tPrfl, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// var rcvTh *engine.ThresholdProfile
+// if err := fltrRpc.Call(utils.AdminSv1GetThresholdProfile,
+// &utils.TenantID{Tenant: tPrfl.Tenant, ID: tPrfl.ID}, &rcvTh); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rcvTh) {
+// t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, rcvTh)
+// }
+
+// tEv := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event1",
+// Event: map[string]interface{}{
+// utils.AccountField: "1001"},
+// }
+// var ids []string
+// if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(ids, []string{"TH_AccountDinamic"}) {
+// t.Error("Unexpected reply returned", ids)
+// }
+
+// tEv = &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event2",
+// Event: map[string]interface{}{
+// utils.AccountField: "non"},
+// }
+// ids = nil
+// if err := fltrRpc.Call(utils.ThresholdSv1ProcessEvent, tEv, &ids); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// }
+
+// func testV1FltrChargerSuffix(t *testing.T) {
+// var reply string
+// if err := fltrRpc.Call(utils.CacheSv1Clear, &utils.AttrCacheIDsWithAPIOpts{
+// CacheIDs: nil,
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Reply: ", reply)
+// }
+// chargerProfile := &v1.ChargerWithAPIOpts{
+// ChargerProfile: &engine.ChargerProfile{
+// Tenant: "cgrates.org",
+// ID: "IntraCharger",
+// FilterIDs: []string{"*suffix:~*req.Subject:intra"},
+// RunID: "Intra",
+// AttributeIDs: []string{"*constant:*req.Subject:intraState"},
+// Weight: 20,
+// },
+// }
+// var result string
+// if err := fltrRpc.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+
+// chargerProfile2 := &v1.ChargerWithAPIOpts{
+// ChargerProfile: &engine.ChargerProfile{
+// Tenant: "cgrates.org",
+// ID: "InterCharger",
+// FilterIDs: []string{"*suffix:~*req.Subject:inter"},
+// RunID: "Inter",
+// AttributeIDs: []string{"*constant:*req.Subject:interState"},
+// Weight: 20,
+// },
+// }
+// if err := fltrRpc.Call(utils.AdminSv1SetChargerProfile, chargerProfile2, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+
+// processedEv := []*engine.ChrgSProcessEventReply{
+// {
+// ChargerSProfile: "IntraCharger",
+// AttributeSProfiles: []string{"*constant:*req.Subject:intraState"},
+// AlteredFields: []string{utils.MetaReqRunID, "*req.Subject"},
+
+// CGREvent: &utils.CGREvent{ // matching Charger1
+// Tenant: "cgrates.org",
+// ID: "event1",
+// Event: map[string]interface{}{
+// utils.AccountField: "1010",
+// utils.Subject: "intraState",
+// utils.RunID: "Intra",
+// utils.Destination: "999",
+// },
+// APIOpts: map[string]interface{}{
+// utils.Subsys: utils.MetaChargers,
+// },
+// },
+// },
+// }
+// cgrEv := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event1",
+// Event: map[string]interface{}{
+// utils.AccountField: "1010",
+// utils.Subject: "Something_intra",
+// utils.Destination: "999",
+// },
+// }
+// var result2 []*engine.ChrgSProcessEventReply
+// if err := fltrRpc.Call(utils.ChargerSv1ProcessEvent, cgrEv, &result2); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(result2, processedEv) {
+// t.Errorf("Expecting : %s, \n received: %s", utils.ToJSON(processedEv), utils.ToJSON(result2))
+// }
+
+// processedEv = []*engine.ChrgSProcessEventReply{
+// {
+// ChargerSProfile: "InterCharger",
+// AttributeSProfiles: []string{"*constant:*req.Subject:interState"},
+// AlteredFields: []string{utils.MetaReqRunID, "*req.Subject"},
+
+// CGREvent: &utils.CGREvent{ // matching Charger1
+// Tenant: "cgrates.org",
+// ID: "event1",
+// Event: map[string]interface{}{
+// utils.AccountField: "1010",
+// utils.Subject: "interState",
+// utils.RunID: "Inter",
+// utils.Destination: "999",
+// },
+// APIOpts: map[string]interface{}{
+// utils.Subsys: utils.MetaChargers,
+// },
+// },
+// },
+// }
+// cgrEv = &utils.CGREvent{
+
+// Tenant: "cgrates.org",
+// ID: "event1",
+// Event: map[string]interface{}{
+// utils.AccountField: "1010",
+// utils.Subject: "Something_inter",
+// utils.Destination: "999",
+// },
+// }
+// if err := fltrRpc.Call(utils.ChargerSv1ProcessEvent, cgrEv, &result2); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(result2, processedEv) {
+// t.Errorf("Expecting : %s, \n received: %s", utils.ToJSON(processedEv), utils.ToJSON(result2))
+// }
+// }
+
+// func testV1FltrAttributesPrefix(t *testing.T) {
+// chargerProfile := &engine.AttributeProfileWithAPIOpts{
+// AttributeProfile: &engine.AttributeProfile{
+// Tenant: "cgrates.new",
+// ID: "ATTR_1001",
+// FilterIDs: []string{"*prefix:~*req.CustomField:2007|+2007", "*prefix:~*req.CustomField2:2007|+2007", "FLTR_1", "*string:~*opts.*context:prefix"},
+// Attributes: []*engine.Attribute{
+// {
+// FilterIDs: []string{},
+// Path: utils.MetaReq + utils.NestingSep + "CustomField",
+// Type: utils.MetaConstant,
+// Value: config.NewRSRParsersMustCompile("2007", utils.InfieldSep),
+// },
+// },
+// Weight: 20.0,
+// },
+// }
+// var result string
+// if err := fltrRpc.Call(utils.AdminSv1SetAttributeProfile, chargerProfile, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+
+// processedEv := &engine.AttrSProcessEventReply{
+// AlteredFields: []string{"*req.CustomField"},
+// MatchedProfiles: []string{"cgrates.new:ATTR_1001"},
+
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.new",
+// ID: "event1",
+// Event: map[string]interface{}{
+// "CustomField": "2007",
+// "CustomField2": "+2007",
+// utils.Destination: "+1207",
+// },
+// APIOpts: map[string]interface{}{},
+// },
+// }
+// cgrEv := &utils.CGREvent{
+// Tenant: "cgrates.new",
+// ID: "event1",
+// Event: map[string]interface{}{
+// "CustomField": "+2007",
+// "CustomField2": "+2007",
+// utils.Destination: "+1207",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsContext: "prefix",
+// },
+// }
+// var result2 *engine.AttrSProcessEventReply
+// if err := fltrRpc.Call(utils.AttributeSv1ProcessEvent, cgrEv, &result2); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(result2, processedEv) {
+// t.Errorf("Expecting : %s, \n received: %s", utils.ToJSON(processedEv), utils.ToJSON(result2))
+// }
+
+// }
+
+// func testV1FltrStopEngine(t *testing.T) {
+// if err := engine.KillEngine(accDelay); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/gocs_it_test.go b/general_tests/gocs_it_test.go
index 18cc73d63..782ebf36d 100644
--- a/general_tests/gocs_it_test.go
+++ b/general_tests/gocs_it_test.go
@@ -21,577 +21,577 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "os/exec"
- "path"
- "reflect"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "os/exec"
+// "path"
+// "reflect"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
+// "github.com/cgrates/cgrates/utils"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// )
-var (
- auCfgPath, usCfgPath, dspCfgPath string
- auCfg, usCfg, dspCfg *config.CGRConfig
- auRPC, usRPC, dspRPC *rpc.Client
- auEngine, usEngine, dspEngine *exec.Cmd
- sTestsGOCS = []func(t *testing.T){
- testGOCSInitCfg,
- testGOCSResetDB,
- testGOCSStartEngine,
- testGOCSApierRpcConn,
- testGOCSLoadData,
- testGOCSAuthSession,
- testGOCSInitSession,
- testGOCSUpdateSession,
- testGOCSVerifyAccountsAfterStart,
- testGOCSUpdateSession2,
- testGOCSTerminateSession,
- testGOCSProcessCDR,
- testGOCSStopCgrEngine,
- }
-)
+// var (
+// auCfgPath, usCfgPath, dspCfgPath string
+// auCfg, usCfg, dspCfg *config.CGRConfig
+// auRPC, usRPC, dspRPC *rpc.Client
+// auEngine, usEngine, dspEngine *exec.Cmd
+// sTestsGOCS = []func(t *testing.T){
+// testGOCSInitCfg,
+// testGOCSResetDB,
+// testGOCSStartEngine,
+// testGOCSApierRpcConn,
+// testGOCSLoadData,
+// testGOCSAuthSession,
+// testGOCSInitSession,
+// testGOCSUpdateSession,
+// testGOCSVerifyAccountsAfterStart,
+// testGOCSUpdateSession2,
+// testGOCSTerminateSession,
+// testGOCSProcessCDR,
+// testGOCSStopCgrEngine,
+// }
+// )
-// Test start here
-func TestGOCSIT(t *testing.T) {
- for _, stest := range sTestsGOCS {
- t.Run("TestGOCSIT", stest)
- }
-}
+// // Test start here
+// func TestGOCSIT(t *testing.T) {
+// for _, stest := range sTestsGOCS {
+// t.Run("TestGOCSIT", stest)
+// }
+// }
-//Init Config
-func testGOCSInitCfg(t *testing.T) {
- auCfgPath = path.Join(*dataDir, "conf", "samples", "gocs", "au_site")
- if auCfg, err = config.NewCGRConfigFromPath(auCfgPath); err != nil {
- t.Fatal(err)
- }
- usCfgPath = path.Join(*dataDir, "conf", "samples", "gocs", "us_site")
- if usCfg, err = config.NewCGRConfigFromPath(usCfgPath); err != nil {
- t.Fatal(err)
- }
- dspCfgPath = path.Join(*dataDir, "conf", "samples", "gocs", "dsp_site")
- if dspCfg, err = config.NewCGRConfigFromPath(dspCfgPath); err != nil {
- t.Fatal(err)
- }
-}
+// //Init Config
+// func testGOCSInitCfg(t *testing.T) {
+// auCfgPath = path.Join(*dataDir, "conf", "samples", "gocs", "au_site")
+// if auCfg, err = config.NewCGRConfigFromPath(auCfgPath); err != nil {
+// t.Fatal(err)
+// }
+// usCfgPath = path.Join(*dataDir, "conf", "samples", "gocs", "us_site")
+// if usCfg, err = config.NewCGRConfigFromPath(usCfgPath); err != nil {
+// t.Fatal(err)
+// }
+// dspCfgPath = path.Join(*dataDir, "conf", "samples", "gocs", "dsp_site")
+// if dspCfg, err = config.NewCGRConfigFromPath(dspCfgPath); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Remove data in both rating and accounting db
-func testGOCSResetDB(t *testing.T) {
- if err := engine.InitDataDB(auCfg); err != nil {
- t.Fatal(err)
- }
- if err := engine.InitDataDB(usCfg); err != nil {
- t.Fatal(err)
- }
- if err := engine.InitDataDB(dspCfg); err != nil {
- t.Fatal(err)
- }
- if err := engine.InitStorDB(auCfg); err != nil {
- t.Fatal(err)
- }
- if err := engine.InitStorDB(usCfg); err != nil {
- t.Fatal(err)
- }
- if err := engine.InitStorDB(dspCfg); err != nil {
- t.Fatal(err)
- }
- // give some time to flush DataDB and StorDB for all 3 engines
-}
+// // Remove data in both rating and accounting db
+// func testGOCSResetDB(t *testing.T) {
+// if err := engine.InitDataDB(auCfg); err != nil {
+// t.Fatal(err)
+// }
+// if err := engine.InitDataDB(usCfg); err != nil {
+// t.Fatal(err)
+// }
+// if err := engine.InitDataDB(dspCfg); err != nil {
+// t.Fatal(err)
+// }
+// if err := engine.InitStorDB(auCfg); err != nil {
+// t.Fatal(err)
+// }
+// if err := engine.InitStorDB(usCfg); err != nil {
+// t.Fatal(err)
+// }
+// if err := engine.InitStorDB(dspCfg); err != nil {
+// t.Fatal(err)
+// }
+// // give some time to flush DataDB and StorDB for all 3 engines
+// }
-// Start CGR Engine
-func testGOCSStartEngine(t *testing.T) {
- if usEngine, err = engine.StopStartEngine(usCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
- if auEngine, err = engine.StartEngine(auCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
- if dspEngine, err = engine.StartEngine(dspCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
- time.Sleep(10 * time.Millisecond)
+// // Start CGR Engine
+// func testGOCSStartEngine(t *testing.T) {
+// if usEngine, err = engine.StopStartEngine(usCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// if auEngine, err = engine.StartEngine(auCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// if dspEngine, err = engine.StartEngine(dspCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// time.Sleep(10 * time.Millisecond)
-}
+// }
-// Connect rpc client to rater
-func testGOCSApierRpcConn(t *testing.T) {
- if auRPC, err = newRPCClient(auCfg.ListenCfg()); err != nil {
- t.Fatal(err)
- }
- if usRPC, err = newRPCClient(usCfg.ListenCfg()); err != nil {
- t.Fatal(err)
- }
- if dspRPC, err = newRPCClient(dspCfg.ListenCfg()); err != nil {
- t.Fatal(err)
- }
-}
+// // Connect rpc client to rater
+// func testGOCSApierRpcConn(t *testing.T) {
+// if auRPC, err = newRPCClient(auCfg.ListenCfg()); err != nil {
+// t.Fatal(err)
+// }
+// if usRPC, err = newRPCClient(usCfg.ListenCfg()); err != nil {
+// t.Fatal(err)
+// }
+// if dspRPC, err = newRPCClient(dspCfg.ListenCfg()); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testGOCSLoadData(t *testing.T) {
- chargerProfile := &v1.ChargerWithAPIOpts{
- ChargerProfile: &engine.ChargerProfile{
- Tenant: "cgrates.org",
- ID: "DEFAULT",
- RunID: utils.MetaDefault,
- AttributeIDs: []string{utils.MetaNone},
- Weight: 10,
- },
- }
- var result string
- if err := usRPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- var rpl *engine.ChargerProfile
- if err := usRPC.Call(utils.APIerSv1GetChargerProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "DEFAULT"}, &rpl); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(chargerProfile.ChargerProfile, rpl) {
- t.Errorf("Expecting : %+v, received: %+v", chargerProfile.ChargerProfile, rpl)
- }
- if err := usRPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := usRPC.Call(utils.APIerSv1GetChargerProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "DEFAULT"}, &rpl); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(chargerProfile.ChargerProfile, rpl) {
- t.Errorf("Expecting : %+v, received: %+v", chargerProfile.ChargerProfile, rpl)
- }
+// func testGOCSLoadData(t *testing.T) {
+// chargerProfile := &v1.ChargerWithAPIOpts{
+// ChargerProfile: &engine.ChargerProfile{
+// Tenant: "cgrates.org",
+// ID: "DEFAULT",
+// RunID: utils.MetaDefault,
+// AttributeIDs: []string{utils.MetaNone},
+// Weight: 10,
+// },
+// }
+// var result string
+// if err := usRPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// var rpl *engine.ChargerProfile
+// if err := usRPC.Call(utils.APIerSv1GetChargerProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "DEFAULT"}, &rpl); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(chargerProfile.ChargerProfile, rpl) {
+// t.Errorf("Expecting : %+v, received: %+v", chargerProfile.ChargerProfile, rpl)
+// }
+// if err := usRPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := usRPC.Call(utils.APIerSv1GetChargerProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "DEFAULT"}, &rpl); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(chargerProfile.ChargerProfile, rpl) {
+// t.Errorf("Expecting : %+v, received: %+v", chargerProfile.ChargerProfile, rpl)
+// }
- wchan := make(chan struct{}, 1)
- go func() {
- loaderPath, err := exec.LookPath("cgr-loader")
- if err != nil {
- t.Error(err)
- }
- loader := exec.Command(loaderPath, "-config_path", dspCfgPath, "-path", path.Join(*dataDir, "tariffplans", "gocs", "dsp_site"))
+// wchan := make(chan struct{}, 1)
+// go func() {
+// loaderPath, err := exec.LookPath("cgr-loader")
+// if err != nil {
+// t.Error(err)
+// }
+// loader := exec.Command(loaderPath, "-config_path", dspCfgPath, "-path", path.Join(*dataDir, "tariffplans", "gocs", "dsp_site"))
- if err := loader.Start(); err != nil {
- t.Error(err)
- }
- loader.Wait()
- wchan <- struct{}{}
- }()
- select {
- case <-wchan:
- case <-time.After(time.Second):
- t.Errorf("cgr-loader failed: ")
- }
- var acnt *engine.Account
- acntAttrs := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1001"}
- attrSetBalance := utils.AttrSetBalance{
- Tenant: acntAttrs.Tenant,
- Account: acntAttrs.Account,
- BalanceType: utils.MetaVoice,
- Value: 3540000000000,
- Balance: map[string]interface{}{
- utils.ID: "BALANCE1",
- utils.Weight: 20,
- },
- }
- // add a voice balance of 59 minutes
- var reply string
- if err := usRPC.Call(utils.APIerSv1SetBalance, attrSetBalance, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("received: %s", reply)
- }
- expectedVoice := 3540000000000.0
- if err := usRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
- t.Error(err)
- } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != expectedVoice {
- t.Errorf("Expecting: %v, received: %v", expectedVoice, rply)
- }
- time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups on au_site
-}
+// if err := loader.Start(); err != nil {
+// t.Error(err)
+// }
+// loader.Wait()
+// wchan <- struct{}{}
+// }()
+// select {
+// case <-wchan:
+// case <-time.After(time.Second):
+// t.Errorf("cgr-loader failed: ")
+// }
+// var acnt *engine.Account
+// acntAttrs := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1001"}
+// attrSetBalance := utils.AttrSetBalance{
+// Tenant: acntAttrs.Tenant,
+// Account: acntAttrs.Account,
+// BalanceType: utils.MetaVoice,
+// Value: 3540000000000,
+// Balance: map[string]interface{}{
+// utils.ID: "BALANCE1",
+// utils.Weight: 20,
+// },
+// }
+// // add a voice balance of 59 minutes
+// var reply string
+// if err := usRPC.Call(utils.APIerSv1SetBalance, attrSetBalance, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("received: %s", reply)
+// }
+// expectedVoice := 3540000000000.0
+// if err := usRPC.Call(utils.APIerSv2GetAccount, acntAttrs, &acnt); err != nil {
+// t.Error(err)
+// } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != expectedVoice {
+// t.Errorf("Expecting: %v, received: %v", expectedVoice, rply)
+// }
+// time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups on au_site
+// }
-func testGOCSAuthSession(t *testing.T) {
- authUsage := 5 * time.Minute
- args := &sessions.V1AuthorizeArgs{
- GetMaxUsage: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestSSv1ItAuth",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "testGOCS",
- utils.Category: "call",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "1001",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.Usage: authUsage,
- },
- },
- }
- var rply sessions.V1AuthorizeReply
- if err := dspRPC.Call(utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
- t.Fatal(err)
- }
- if rply.MaxUsage == nil || *rply.MaxUsage != authUsage {
- t.Errorf("Unexpected MaxUsage: %v", rply.MaxUsage)
- }
-}
+// func testGOCSAuthSession(t *testing.T) {
+// authUsage := 5 * time.Minute
+// args := &sessions.V1AuthorizeArgs{
+// GetMaxUsage: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestSSv1ItAuth",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "testGOCS",
+// utils.Category: "call",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "1001",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.Usage: authUsage,
+// },
+// },
+// }
+// var rply sessions.V1AuthorizeReply
+// if err := dspRPC.Call(utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
+// t.Fatal(err)
+// }
+// if rply.MaxUsage == nil || *rply.MaxUsage != authUsage {
+// t.Errorf("Unexpected MaxUsage: %v", rply.MaxUsage)
+// }
+// }
-func testGOCSInitSession(t *testing.T) {
- initUsage := 5 * time.Minute
- args := &sessions.V1InitSessionArgs{
- InitSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestSSv1ItInitiateSession",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "testGOCS",
- utils.Category: "call",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "1001",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: initUsage,
- },
- },
- }
- var rply sessions.V1InitSessionReply
- if err := dspRPC.Call(utils.SessionSv1InitiateSession,
- args, &rply); err != nil {
- t.Fatal(err)
- }
- if rply.MaxUsage == nil || *rply.MaxUsage != initUsage {
- t.Errorf("Unexpected MaxUsage: %v", rply.MaxUsage)
- }
- // give a bit of time to session to be replicate
- time.Sleep(10 * time.Millisecond)
+// func testGOCSInitSession(t *testing.T) {
+// initUsage := 5 * time.Minute
+// args := &sessions.V1InitSessionArgs{
+// InitSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestSSv1ItInitiateSession",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "testGOCS",
+// utils.Category: "call",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "1001",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: initUsage,
+// },
+// },
+// }
+// var rply sessions.V1InitSessionReply
+// if err := dspRPC.Call(utils.SessionSv1InitiateSession,
+// args, &rply); err != nil {
+// t.Fatal(err)
+// }
+// if rply.MaxUsage == nil || *rply.MaxUsage != initUsage {
+// t.Errorf("Unexpected MaxUsage: %v", rply.MaxUsage)
+// }
+// // give a bit of time to session to be replicate
+// time.Sleep(10 * time.Millisecond)
- aSessions := make([]*sessions.ExternalSession, 0)
- if err := auRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
- t.Error(err)
- } else if len(aSessions) != 1 {
- t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v", utils.ToJSON(aSessions), len(aSessions))
- } else if aSessions[0].NodeID != "AU_SITE" {
- t.Errorf("Expecting : %+v, received: %+v", "AU_SITE", aSessions[0].NodeID)
- } else if aSessions[0].Usage != 5*time.Minute {
- t.Errorf("Expecting : %+v, received: %+v", 5*time.Minute, aSessions[0].MaxCostSoFar)
- }
+// aSessions := make([]*sessions.ExternalSession, 0)
+// if err := auRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+// t.Error(err)
+// } else if len(aSessions) != 1 {
+// t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v", utils.ToJSON(aSessions), len(aSessions))
+// } else if aSessions[0].NodeID != "AU_SITE" {
+// t.Errorf("Expecting : %+v, received: %+v", "AU_SITE", aSessions[0].NodeID)
+// } else if aSessions[0].Usage != 5*time.Minute {
+// t.Errorf("Expecting : %+v, received: %+v", 5*time.Minute, aSessions[0].MaxCostSoFar)
+// }
- aSessions = make([]*sessions.ExternalSession, 0)
- if err := usRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
- t.Error(err)
- } else if len(aSessions) != 1 {
- t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v", utils.ToJSON(aSessions), len(aSessions))
- } else if aSessions[0].NodeID != "US_SITE" {
- t.Errorf("Expecting : %+v, received: %+v", "US_SITE", aSessions[0].NodeID)
- } else if aSessions[0].Usage != 5*time.Minute {
- t.Errorf("Expecting : %+v, received: %+v", 5*time.Minute, aSessions[0].Usage)
- }
+// aSessions = make([]*sessions.ExternalSession, 0)
+// if err := usRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+// t.Error(err)
+// } else if len(aSessions) != 1 {
+// t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v", utils.ToJSON(aSessions), len(aSessions))
+// } else if aSessions[0].NodeID != "US_SITE" {
+// t.Errorf("Expecting : %+v, received: %+v", "US_SITE", aSessions[0].NodeID)
+// } else if aSessions[0].Usage != 5*time.Minute {
+// t.Errorf("Expecting : %+v, received: %+v", 5*time.Minute, aSessions[0].Usage)
+// }
- var acnt *engine.Account
- attrAcc := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1001",
- }
+// var acnt *engine.Account
+// attrAcc := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1001",
+// }
- // 59 mins - 5 mins = 54 mins
- if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
- t.Error(err)
- } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 3240000000000.0 {
- t.Errorf("Expecting : %+v, received: %+v", 3240000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
- }
+// // 59 mins - 5 mins = 54 mins
+// if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 3240000000000.0 {
+// t.Errorf("Expecting : %+v, received: %+v", 3240000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
+// }
- if err := usRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
- t.Error(err)
- } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 3240000000000.0 {
- t.Errorf("Expecting : %+v, received: %+v", 3240000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
- }
+// if err := usRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 3240000000000.0 {
+// t.Errorf("Expecting : %+v, received: %+v", 3240000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
+// }
-}
+// }
-func testGOCSUpdateSession(t *testing.T) {
- reqUsage := 5 * time.Minute
- args := &sessions.V1UpdateSessionArgs{
- UpdateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestSSv1ItUpdateSession",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "testGOCS",
- utils.Category: "call",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "1001",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: reqUsage,
- },
- },
- }
- var rply sessions.V1UpdateSessionReply
+// func testGOCSUpdateSession(t *testing.T) {
+// reqUsage := 5 * time.Minute
+// args := &sessions.V1UpdateSessionArgs{
+// UpdateSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestSSv1ItUpdateSession",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "testGOCS",
+// utils.Category: "call",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "1001",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: reqUsage,
+// },
+// },
+// }
+// var rply sessions.V1UpdateSessionReply
- // right now dispatcher receive utils.ErrPartiallyExecuted
- // in case of of engines fails
- if err := auRPC.Call(utils.SessionSv1UpdateSession, args, &rply); err != nil {
- t.Errorf("Expecting : %+v, received: %+v", utils.ErrPartiallyExecuted, err)
- }
+// // right now dispatcher receive utils.ErrPartiallyExecuted
+// // in case of of engines fails
+// if err := auRPC.Call(utils.SessionSv1UpdateSession, args, &rply); err != nil {
+// t.Errorf("Expecting : %+v, received: %+v", utils.ErrPartiallyExecuted, err)
+// }
- aSessions := make([]*sessions.ExternalSession, 0)
- if err := auRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
- t.Error(err)
- } else if len(aSessions) != 1 {
- t.Errorf("wrong active sessions: %s", utils.ToJSON(aSessions))
- } else if aSessions[0].NodeID != "AU_SITE" {
- t.Errorf("Expecting : %+v, received: %+v", "AU_SITE", aSessions[0].NodeID)
- } else if aSessions[0].Usage != 10*time.Minute {
- t.Errorf("Expecting : %+v, received: %+v", 5*time.Minute, aSessions[0].Usage)
- }
+// aSessions := make([]*sessions.ExternalSession, 0)
+// if err := auRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+// t.Error(err)
+// } else if len(aSessions) != 1 {
+// t.Errorf("wrong active sessions: %s", utils.ToJSON(aSessions))
+// } else if aSessions[0].NodeID != "AU_SITE" {
+// t.Errorf("Expecting : %+v, received: %+v", "AU_SITE", aSessions[0].NodeID)
+// } else if aSessions[0].Usage != 10*time.Minute {
+// t.Errorf("Expecting : %+v, received: %+v", 5*time.Minute, aSessions[0].Usage)
+// }
- var acnt *engine.Account
- attrAcc := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1001",
- }
+// var acnt *engine.Account
+// attrAcc := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1001",
+// }
- // balanced changed in AU_SITE
- // 54 min - 5 mins = 49 min
- if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
- t.Error(err)
- } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2940000000000.0 {
- t.Errorf("Expecting : %+v, received: %+v", 2940000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
- }
+// // balanced changed in AU_SITE
+// // 54 min - 5 mins = 49 min
+// if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2940000000000.0 {
+// t.Errorf("Expecting : %+v, received: %+v", 2940000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
+// }
-}
+// }
-func testGOCSVerifyAccountsAfterStart(t *testing.T) {
- var acnt *engine.Account
- attrAcc := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1001",
- }
- // because US_SITE was down we should notice a difference between balance from accounts from US_SITE and AU_SITE
- if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
- t.Error(err)
- } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2940000000000.0 {
- t.Errorf("Expecting : %+v, received: %+v", 2940000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
- }
+// func testGOCSVerifyAccountsAfterStart(t *testing.T) {
+// var acnt *engine.Account
+// attrAcc := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1001",
+// }
+// // because US_SITE was down we should notice a difference between balance from accounts from US_SITE and AU_SITE
+// if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2940000000000.0 {
+// t.Errorf("Expecting : %+v, received: %+v", 2940000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
+// }
- if err := usRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
- t.Error(err)
- } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 3240000000000.0 {
- t.Errorf("Expecting : %+v, received: %+v", 3240000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
- }
-}
+// if err := usRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 3240000000000.0 {
+// t.Errorf("Expecting : %+v, received: %+v", 3240000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
+// }
+// }
-func testGOCSUpdateSession2(t *testing.T) {
- reqUsage := 5 * time.Minute
- args := &sessions.V1UpdateSessionArgs{
- UpdateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestSSv1ItUpdateSession2",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "testGOCS",
- utils.Category: "call",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "1001",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: reqUsage,
- },
- },
- }
- var rply sessions.V1UpdateSessionReply
- // Update the session on both US_SITE and AU_SITE
- // With this update the account should be replicate from US_SITE to AU_SITE and forgot about the update than happens on AU_SITE
- if err := dspRPC.Call(utils.SessionSv1UpdateSession, args, &rply); err != nil {
- t.Errorf("Expecting : %+v, received: %+v", nil, err)
- } else if rply.MaxUsage == nil || *rply.MaxUsage != reqUsage {
- t.Errorf("Unexpected MaxUsage: %v", rply.MaxUsage)
- }
+// func testGOCSUpdateSession2(t *testing.T) {
+// reqUsage := 5 * time.Minute
+// args := &sessions.V1UpdateSessionArgs{
+// UpdateSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestSSv1ItUpdateSession2",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "testGOCS",
+// utils.Category: "call",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "1001",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: reqUsage,
+// },
+// },
+// }
+// var rply sessions.V1UpdateSessionReply
+// // Update the session on both US_SITE and AU_SITE
+// // With this update the account should be replicate from US_SITE to AU_SITE and forgot about the update than happens on AU_SITE
+// if err := dspRPC.Call(utils.SessionSv1UpdateSession, args, &rply); err != nil {
+// t.Errorf("Expecting : %+v, received: %+v", nil, err)
+// } else if rply.MaxUsage == nil || *rply.MaxUsage != reqUsage {
+// t.Errorf("Unexpected MaxUsage: %v", rply.MaxUsage)
+// }
- aSessions := make([]*sessions.ExternalSession, 0)
- if err := auRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
- t.Error(err)
- } else if len(aSessions) != 1 {
- t.Errorf("wrong active sessions: %s", utils.ToJSON(aSessions))
- } else if aSessions[0].NodeID != "AU_SITE" {
- t.Errorf("Expecting : %+v, received: %+v", "AU_SITE", aSessions[0].NodeID)
- } else if aSessions[0].Usage != 15*time.Minute {
- t.Errorf("Expecting : %+v, received: %+v", 15*time.Minute, aSessions[0].Usage)
- }
+// aSessions := make([]*sessions.ExternalSession, 0)
+// if err := auRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+// t.Error(err)
+// } else if len(aSessions) != 1 {
+// t.Errorf("wrong active sessions: %s", utils.ToJSON(aSessions))
+// } else if aSessions[0].NodeID != "AU_SITE" {
+// t.Errorf("Expecting : %+v, received: %+v", "AU_SITE", aSessions[0].NodeID)
+// } else if aSessions[0].Usage != 15*time.Minute {
+// t.Errorf("Expecting : %+v, received: %+v", 15*time.Minute, aSessions[0].Usage)
+// }
- aSessions = make([]*sessions.ExternalSession, 0)
- if err := usRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
- t.Error(err)
- } else if len(aSessions) != 1 {
- t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v", utils.ToJSON(aSessions), len(aSessions))
- } else if aSessions[0].NodeID != "US_SITE" {
- t.Errorf("Expecting : %+v, received: %+v", "US_SITE", aSessions[0].NodeID)
- } else if aSessions[0].Usage != 10*time.Minute {
- t.Errorf("Expecting : %+v, received: %+v", 5*time.Minute, aSessions[0].Usage)
- }
+// aSessions = make([]*sessions.ExternalSession, 0)
+// if err := usRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+// t.Error(err)
+// } else if len(aSessions) != 1 {
+// t.Errorf("wrong active sessions: %s \n , and len(aSessions) %+v", utils.ToJSON(aSessions), len(aSessions))
+// } else if aSessions[0].NodeID != "US_SITE" {
+// t.Errorf("Expecting : %+v, received: %+v", "US_SITE", aSessions[0].NodeID)
+// } else if aSessions[0].Usage != 10*time.Minute {
+// t.Errorf("Expecting : %+v, received: %+v", 5*time.Minute, aSessions[0].Usage)
+// }
- var acnt *engine.Account
- attrAcc := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1001",
- }
+// var acnt *engine.Account
+// attrAcc := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1001",
+// }
- if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
- t.Error(err)
- } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2940000000000.0 {
- t.Errorf("Expecting : %+v, received: %+v", 2940000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
- }
+// if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2940000000000.0 {
+// t.Errorf("Expecting : %+v, received: %+v", 2940000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
+// }
- if err := usRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
- t.Error(err)
- } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2940000000000.0 {
- t.Errorf("Expecting : %+v, received: %+v", 2940000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
- }
-}
+// if err := usRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2940000000000.0 {
+// t.Errorf("Expecting : %+v, received: %+v", 2940000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
+// }
+// }
-func testGOCSTerminateSession(t *testing.T) {
- args := &sessions.V1TerminateSessionArgs{
- TerminateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testGOCSTerminateSession",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "testGOCS",
- utils.Category: "call",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "1001",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 15 * time.Minute,
- },
- },
- }
- var rply string
- // we send terminate session with the correct usage, but because the US_SITE was down
- // this lost the previous session operations and will debit more
- if err := dspRPC.Call(utils.SessionSv1TerminateSession,
- args, &rply); err != nil {
- t.Error(err)
- }
- if rply != utils.OK {
- t.Errorf("Unexpected reply: %s", rply)
- }
- aSessions := make([]*sessions.ExternalSession, 0)
- if err := auRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Errorf("Expected error %s received error %v and reply %s", utils.ErrNotFound, err, utils.ToJSON(aSessions))
- }
- if err := usRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Errorf("Expected error %s received error %v and reply %s", utils.ErrNotFound, err, utils.ToJSON(aSessions))
- }
+// func testGOCSTerminateSession(t *testing.T) {
+// args := &sessions.V1TerminateSessionArgs{
+// TerminateSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testGOCSTerminateSession",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "testGOCS",
+// utils.Category: "call",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "1001",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 15 * time.Minute,
+// },
+// },
+// }
+// var rply string
+// // we send terminate session with the correct usage, but because the US_SITE was down
+// // this lost the previous session operations and will debit more
+// if err := dspRPC.Call(utils.SessionSv1TerminateSession,
+// args, &rply); err != nil {
+// t.Error(err)
+// }
+// if rply != utils.OK {
+// t.Errorf("Unexpected reply: %s", rply)
+// }
+// aSessions := make([]*sessions.ExternalSession, 0)
+// if err := auRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Errorf("Expected error %s received error %v and reply %s", utils.ErrNotFound, err, utils.ToJSON(aSessions))
+// }
+// if err := usRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Errorf("Expected error %s received error %v and reply %s", utils.ErrNotFound, err, utils.ToJSON(aSessions))
+// }
- var acnt *engine.Account
- attrAcc := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1001",
- }
+// var acnt *engine.Account
+// attrAcc := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1001",
+// }
- if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
- t.Error(err)
- } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2640000000000.0 {
- t.Errorf("Expecting : %+v, received: %+v", 2640000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
- }
+// if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2640000000000.0 {
+// t.Errorf("Expecting : %+v, received: %+v", 2640000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
+// }
- if err := usRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
- t.Error(err)
- } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2640000000000.0 {
- t.Errorf("Expecting : %+v, received: %+v", 2640000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
- }
-}
+// if err := usRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2640000000000.0 {
+// t.Errorf("Expecting : %+v, received: %+v", 2640000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
+// }
+// }
-func testGOCSProcessCDR(t *testing.T) {
- args := &utils.CGREvent{
+// func testGOCSProcessCDR(t *testing.T) {
+// args := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestSSv1ItProcessCDR",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "testGOCS",
- utils.Category: "call",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "1001",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 15 * time.Minute,
- },
- }
- var rply string
- // process cdr should apply the correction because terminate was debited to much
- // 59 - 15 = 44 minutes
- if err := usRPC.Call(utils.SessionSv1ProcessCDR,
- args, &rply); err != nil {
- t.Error(err)
- }
- if rply != utils.OK {
- t.Errorf("Unexpected reply: %s", rply)
- }
- time.Sleep(100 * time.Millisecond)
- var acnt *engine.Account
- attrAcc := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1001",
- }
+// Tenant: "cgrates.org",
+// ID: "TestSSv1ItProcessCDR",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "testGOCS",
+// utils.Category: "call",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "1001",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 15 * time.Minute,
+// },
+// }
+// var rply string
+// // process cdr should apply the correction because terminate was debited to much
+// // 59 - 15 = 44 minutes
+// if err := usRPC.Call(utils.SessionSv1ProcessCDR,
+// args, &rply); err != nil {
+// t.Error(err)
+// }
+// if rply != utils.OK {
+// t.Errorf("Unexpected reply: %s", rply)
+// }
+// time.Sleep(100 * time.Millisecond)
+// var acnt *engine.Account
+// attrAcc := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1001",
+// }
- if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
- t.Error(err)
- } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2640000000000.0 {
- t.Errorf("Expecting : %+v, received: %+v", 2640000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
- }
+// if err := auRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2640000000000.0 {
+// t.Errorf("Expecting : %+v, received: %+v", 2640000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
+// }
- if err := usRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
- t.Error(err)
- } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2640000000000.0 {
- t.Errorf("Expecting : %+v, received: %+v", 2640000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
- }
-}
+// if err := usRPC.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.BalanceMap[utils.MetaVoice].GetTotalValue() != 2640000000000.0 {
+// t.Errorf("Expecting : %+v, received: %+v", 2640000000000.0, acnt.BalanceMap[utils.MetaVoice].GetTotalValue())
+// }
+// }
-func testGOCSStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
- if err = auEngine.Process.Kill(); err != nil {
- t.Error(err)
- }
- if err = usEngine.Process.Kill(); err != nil {
- t.Error(err)
- }
- if err = dspEngine.Process.Kill(); err != nil {
- t.Error(err)
- }
-}
+// func testGOCSStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// if err = auEngine.Process.Kill(); err != nil {
+// t.Error(err)
+// }
+// if err = usEngine.Process.Kill(); err != nil {
+// t.Error(err)
+// }
+// if err = dspEngine.Process.Kill(); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/ld_process_match_ac_it_test.go b/general_tests/ld_process_match_ac_it_test.go
index 654f6250c..be436e35f 100644
--- a/general_tests/ld_process_match_ac_it_test.go
+++ b/general_tests/ld_process_match_ac_it_test.go
@@ -41,11 +41,11 @@ var (
testLdPrMatchAcLoadConfig,
testLdPrMatchAcResetDataDB,
testLdPrMatchAcResetStorDb,
- testLdPrMatchAcStartEngine,
+ // testLdPrMatchAcStartEngine,
testLdPrMatchAcRPCConn,
testLdPrMatchAcLoadTP,
testLdPrMatchAcCDRSProcessEvent,
- testLdPrMatchAcStopCgrEngine,
+ // testLdPrMatchAcStopCgrEngine,
}
)
@@ -115,24 +115,22 @@ func testLdPrMatchAcLoadTP(t *testing.T) {
}
func testLdPrMatchAcCDRSProcessEvent(t *testing.T) {
- ev := &engine.ArgV1ProcessEvent{
- CGREvent: utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestEv1",
- Event: map[string]interface{}{
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestEv1",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "1001",
- utils.Destination: "1002",
- utils.Usage: time.Minute,
- },
- APIOpts: map[string]interface{}{
- utils.OptsRateS: false,
- utils.OptsCDRsExport: false,
- utils.OptsAccountS: true,
- },
+ ev := &utils.CGREvent{
+ Tenant: "cgrates.org",
+ ID: "TestEv1",
+ Event: map[string]interface{}{
+ utils.ToR: utils.MetaVoice,
+ utils.OriginID: "TestEv1",
+ utils.RequestType: utils.MetaPrepaid,
+ utils.AccountField: "1001",
+ utils.Subject: "1001",
+ utils.Destination: "1002",
+ utils.Usage: time.Minute,
+ },
+ APIOpts: map[string]interface{}{
+ utils.OptsRateS: false,
+ utils.OptsCDRsExport: false,
+ utils.OptsAccountS: true,
},
}
var rply string
diff --git a/general_tests/ld_process_match_rt_it_test.go b/general_tests/ld_process_match_rt_it_test.go
index be47d7917..38b40e621 100644
--- a/general_tests/ld_process_match_rt_it_test.go
+++ b/general_tests/ld_process_match_rt_it_test.go
@@ -15,7 +15,7 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see
*/
-package apis
+package general_tests
import (
"net"
diff --git a/general_tests/poster_it_test.go b/general_tests/poster_it_test.go
index 2ee14b56e..ad50aee5c 100644
--- a/general_tests/poster_it_test.go
+++ b/general_tests/poster_it_test.go
@@ -20,322 +20,322 @@ along with this program. If not, see
*/
package general_tests
-import (
- "encoding/json"
- "fmt"
- "net/rpc"
- "os"
- "path"
- "testing"
- "time"
+// import (
+// "encoding/json"
+// "fmt"
+// "net/rpc"
+// "os"
+// "path"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/ees"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/ees"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- pstrCfg *config.CGRConfig
- pstrRpc *rpc.Client
- pstrCfgPath string
- pstrConfigDIR string
+// var (
+// pstrCfg *config.CGRConfig
+// pstrRpc *rpc.Client
+// pstrCfgPath string
+// pstrConfigDIR string
- sTestsPosterIT = []func(t *testing.T){
- testPosterITInitCfg,
- testPosterITInitCdrDb,
- testPosterITStartEngine,
- testPosterITRpcConn,
- testPosterITSetAccount,
+// sTestsPosterIT = []func(t *testing.T){
+// testPosterITInitCfg,
+// testPosterITInitCdrDb,
+// testPosterITStartEngine,
+// testPosterITRpcConn,
+// testPosterITSetAccount,
- testPosterITAMQP,
- testPosterITAMQPv1,
- testPosterITSQS,
- testPosterITS3,
- testPosterITKafka,
+// testPosterITAMQP,
+// testPosterITAMQPv1,
+// testPosterITSQS,
+// testPosterITS3,
+// testPosterITKafka,
- testPosterITStopCgrEngine,
- }
- pstrAccount = &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "dan2904"}
-)
+// testPosterITStopCgrEngine,
+// }
+// pstrAccount = &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "dan2904"}
+// )
-func TestPosterIT(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- pstrConfigDIR = "actions_internal"
- case utils.MetaMySQL:
- pstrConfigDIR = "actions_mysql"
- case utils.MetaMongo:
- pstrConfigDIR = "actions_mongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- if *encoding == utils.MetaGOB {
- pstrConfigDIR += "_gob"
- }
+// func TestPosterIT(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// pstrConfigDIR = "actions_internal"
+// case utils.MetaMySQL:
+// pstrConfigDIR = "actions_mysql"
+// case utils.MetaMongo:
+// pstrConfigDIR = "actions_mongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// if *encoding == utils.MetaGOB {
+// pstrConfigDIR += "_gob"
+// }
- for _, stest := range sTestsPosterIT {
- t.Run(pstrConfigDIR, stest)
- }
-}
+// for _, stest := range sTestsPosterIT {
+// t.Run(pstrConfigDIR, stest)
+// }
+// }
-func testPosterITInitCfg(t *testing.T) {
- pstrCfgPath = path.Join(*dataDir, "conf", "samples", pstrConfigDIR)
- var err error
- pstrCfg, err = config.NewCGRConfigFromPath(pstrCfgPath)
- if err != nil {
- t.Error(err)
- }
-}
+// func testPosterITInitCfg(t *testing.T) {
+// pstrCfgPath = path.Join(*dataDir, "conf", "samples", pstrConfigDIR)
+// var err error
+// pstrCfg, err = config.NewCGRConfigFromPath(pstrCfgPath)
+// if err != nil {
+// t.Error(err)
+// }
+// }
-func testPosterITInitCdrDb(t *testing.T) {
- if err := engine.InitDataDB(pstrCfg); err != nil { // need it for versions
- t.Fatal(err)
- }
- if err := engine.InitStorDB(pstrCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testPosterITInitCdrDb(t *testing.T) {
+// if err := engine.InitDataDB(pstrCfg); err != nil { // need it for versions
+// t.Fatal(err)
+// }
+// if err := engine.InitStorDB(pstrCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testPosterITStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(pstrCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testPosterITStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(pstrCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testPosterITRpcConn(t *testing.T) {
- var err error
- pstrRpc, err = newRPCClient(pstrCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testPosterITRpcConn(t *testing.T) {
+// var err error
+// pstrRpc, err = newRPCClient(pstrCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testPosterReadFolder(format string) (expEv *ees.ExportEvents, err error) {
- filesInDir, _ := os.ReadDir(pstrCfg.GeneralCfg().FailedPostsDir)
- if len(filesInDir) == 0 {
- err = fmt.Errorf("No files in directory: %s", pstrCfg.GeneralCfg().FailedPostsDir)
- return
- }
- for _, file := range filesInDir { // First file in directory is the one we need, harder to find it's name out of config
- fileName := file.Name()
- filePath := path.Join(pstrCfg.GeneralCfg().FailedPostsDir, fileName)
+// func testPosterReadFolder(format string) (expEv *ees.ExportEvents, err error) {
+// filesInDir, _ := os.ReadDir(pstrCfg.GeneralCfg().FailedPostsDir)
+// if len(filesInDir) == 0 {
+// err = fmt.Errorf("No files in directory: %s", pstrCfg.GeneralCfg().FailedPostsDir)
+// return
+// }
+// for _, file := range filesInDir { // First file in directory is the one we need, harder to find it's name out of config
+// fileName := file.Name()
+// filePath := path.Join(pstrCfg.GeneralCfg().FailedPostsDir, fileName)
- expEv, err = ees.NewExportEventsFromFile(filePath)
- if err != nil {
- return
- }
- if expEv.Format == format {
- return
- }
- }
- err = fmt.Errorf("Format not found")
- return
-}
+// expEv, err = ees.NewExportEventsFromFile(filePath)
+// if err != nil {
+// return
+// }
+// if expEv.Format == format {
+// return
+// }
+// }
+// err = fmt.Errorf("Format not found")
+// return
+// }
-func testPosterITSetAccount(t *testing.T) {
- var reply string
- if err := pstrRpc.Call(utils.APIerSv1SetAccount, pstrAccount, &reply); err != nil {
- t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
- }
-}
+// func testPosterITSetAccount(t *testing.T) {
+// var reply string
+// if err := pstrRpc.Call(utils.APIerSv1SetAccount, pstrAccount, &reply); err != nil {
+// t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
+// }
+// }
-func testPosterITAMQP(t *testing.T) {
- var reply string
- attrsAA := &utils.AttrSetActions{
- ActionsId: "ACT_AMQP",
- Actions: []*utils.TPAction{ // set a action with a wrong endpoint to easily check if it was executed
- {Identifier: utils.MetaExport, ExtraParameters: "amqp_fail"},
- },
- }
- if err := pstrRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
- t.Error("Got error on APIerSv2.SetActions: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
- }
- attrsEA := &utils.AttrExecuteAction{Tenant: pstrAccount.Tenant, Account: pstrAccount.Account, ActionsId: attrsAA.ActionsId}
- if err := pstrRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
- t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
- }
- // verify if acction was executed
- time.Sleep(100 * time.Millisecond)
- ev, err := testPosterReadFolder(utils.MetaAMQPjsonMap)
- if err != nil {
- t.Fatal(err)
- }
- if len(ev.Events) != 1 {
- t.Fatalf("Expected 1 event received: %d events", len(ev.Events))
- }
- body := ev.Events[0].([]byte)
- var acc map[string]interface{}
- if err := json.Unmarshal(body, &acc); err != nil {
- t.Fatal(err)
- }
- if acc[utils.AccountField] != utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account) {
- t.Errorf("Expected %q ,received %q", utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account), acc[utils.AccountField])
- }
-}
+// func testPosterITAMQP(t *testing.T) {
+// var reply string
+// attrsAA := &utils.AttrSetActions{
+// ActionsId: "ACT_AMQP",
+// Actions: []*utils.TPAction{ // set a action with a wrong endpoint to easily check if it was executed
+// {Identifier: utils.MetaExport, ExtraParameters: "amqp_fail"},
+// },
+// }
+// if err := pstrRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+// t.Error("Got error on APIerSv2.SetActions: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
+// }
+// attrsEA := &utils.AttrExecuteAction{Tenant: pstrAccount.Tenant, Account: pstrAccount.Account, ActionsId: attrsAA.ActionsId}
+// if err := pstrRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+// t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
+// }
+// // verify if acction was executed
+// time.Sleep(100 * time.Millisecond)
+// ev, err := testPosterReadFolder(utils.MetaAMQPjsonMap)
+// if err != nil {
+// t.Fatal(err)
+// }
+// if len(ev.Events) != 1 {
+// t.Fatalf("Expected 1 event received: %d events", len(ev.Events))
+// }
+// body := ev.Events[0].([]byte)
+// var acc map[string]interface{}
+// if err := json.Unmarshal(body, &acc); err != nil {
+// t.Fatal(err)
+// }
+// if acc[utils.AccountField] != utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account) {
+// t.Errorf("Expected %q ,received %q", utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account), acc[utils.AccountField])
+// }
+// }
-func testPosterITAMQPv1(t *testing.T) {
- var reply string
- attrsAA := &utils.AttrSetActions{
- ActionsId: "ACT_AMQPv1",
- Actions: []*utils.TPAction{ // set a action with a wrong endpoint to easily check if it was executed
- {Identifier: utils.MetaExport, ExtraParameters: "aws_fail"},
- },
- }
- if err := pstrRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
- t.Error("Got error on APIerSv2.SetActions: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
- }
- attrsEA := &utils.AttrExecuteAction{Tenant: pstrAccount.Tenant, Account: pstrAccount.Account, ActionsId: attrsAA.ActionsId}
- if err := pstrRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
- t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
- }
- // verify if acction was executed
- time.Sleep(150 * time.Millisecond)
- ev, err := testPosterReadFolder(utils.MetaAMQPV1jsonMap)
- if err != nil {
- t.Fatal(err)
- }
- if len(ev.Events) != 1 {
- t.Fatalf("Expected 1 event received: %d events", len(ev.Events))
- }
- body := ev.Events[0].([]byte)
- var acc map[string]interface{}
- if err := json.Unmarshal(body, &acc); err != nil {
- t.Fatal(err)
- }
- if acc[utils.AccountField] != utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account) {
- t.Errorf("Expected %q ,received %q", utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account), acc[utils.AccountField])
- }
-}
+// func testPosterITAMQPv1(t *testing.T) {
+// var reply string
+// attrsAA := &utils.AttrSetActions{
+// ActionsId: "ACT_AMQPv1",
+// Actions: []*utils.TPAction{ // set a action with a wrong endpoint to easily check if it was executed
+// {Identifier: utils.MetaExport, ExtraParameters: "aws_fail"},
+// },
+// }
+// if err := pstrRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+// t.Error("Got error on APIerSv2.SetActions: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
+// }
+// attrsEA := &utils.AttrExecuteAction{Tenant: pstrAccount.Tenant, Account: pstrAccount.Account, ActionsId: attrsAA.ActionsId}
+// if err := pstrRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+// t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
+// }
+// // verify if acction was executed
+// time.Sleep(150 * time.Millisecond)
+// ev, err := testPosterReadFolder(utils.MetaAMQPV1jsonMap)
+// if err != nil {
+// t.Fatal(err)
+// }
+// if len(ev.Events) != 1 {
+// t.Fatalf("Expected 1 event received: %d events", len(ev.Events))
+// }
+// body := ev.Events[0].([]byte)
+// var acc map[string]interface{}
+// if err := json.Unmarshal(body, &acc); err != nil {
+// t.Fatal(err)
+// }
+// if acc[utils.AccountField] != utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account) {
+// t.Errorf("Expected %q ,received %q", utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account), acc[utils.AccountField])
+// }
+// }
-func testPosterITSQS(t *testing.T) {
- var reply string
- attrsAA := &utils.AttrSetActions{
- ActionsId: "ACT_SQS",
- Actions: []*utils.TPAction{ // set a action with a wrong endpoint to easily check if it was executed
- {Identifier: utils.MetaExport, ExtraParameters: "sqs_fail"},
- },
- }
- if err := pstrRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
- t.Error("Got error on APIerSv2.SetActions: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
- }
- attrsEA := &utils.AttrExecuteAction{Tenant: pstrAccount.Tenant, Account: pstrAccount.Account, ActionsId: attrsAA.ActionsId}
- if err := pstrRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
- t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
- }
- // verify if acction was executed
- time.Sleep(100 * time.Millisecond)
- ev, err := testPosterReadFolder(utils.MetaSQSjsonMap)
- if err != nil {
- t.Fatal(err)
- }
- if len(ev.Events) != 1 {
- t.Fatalf("Expected 1 event received: %d events", len(ev.Events))
- }
- body := ev.Events[0].([]byte)
- var acc map[string]interface{}
- if err := json.Unmarshal(body, &acc); err != nil {
- t.Fatal(err)
- }
- if acc[utils.AccountField] != utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account) {
- t.Errorf("Expected %q ,received %q", utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account), acc[utils.AccountField])
- }
-}
+// func testPosterITSQS(t *testing.T) {
+// var reply string
+// attrsAA := &utils.AttrSetActions{
+// ActionsId: "ACT_SQS",
+// Actions: []*utils.TPAction{ // set a action with a wrong endpoint to easily check if it was executed
+// {Identifier: utils.MetaExport, ExtraParameters: "sqs_fail"},
+// },
+// }
+// if err := pstrRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+// t.Error("Got error on APIerSv2.SetActions: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
+// }
+// attrsEA := &utils.AttrExecuteAction{Tenant: pstrAccount.Tenant, Account: pstrAccount.Account, ActionsId: attrsAA.ActionsId}
+// if err := pstrRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+// t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
+// }
+// // verify if acction was executed
+// time.Sleep(100 * time.Millisecond)
+// ev, err := testPosterReadFolder(utils.MetaSQSjsonMap)
+// if err != nil {
+// t.Fatal(err)
+// }
+// if len(ev.Events) != 1 {
+// t.Fatalf("Expected 1 event received: %d events", len(ev.Events))
+// }
+// body := ev.Events[0].([]byte)
+// var acc map[string]interface{}
+// if err := json.Unmarshal(body, &acc); err != nil {
+// t.Fatal(err)
+// }
+// if acc[utils.AccountField] != utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account) {
+// t.Errorf("Expected %q ,received %q", utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account), acc[utils.AccountField])
+// }
+// }
-func testPosterITS3(t *testing.T) {
- var reply string
- attrsAA := &utils.AttrSetActions{
- ActionsId: "ACT_S3",
- Actions: []*utils.TPAction{ // set a action with a wrong endpoint to easily check if it was executed
- {Identifier: utils.MetaExport, ExtraParameters: "s3_fail"},
- },
- }
- if err := pstrRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
- t.Error("Got error on APIerSv2.SetActions: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
- }
- attrsEA := &utils.AttrExecuteAction{Tenant: pstrAccount.Tenant, Account: pstrAccount.Account, ActionsId: attrsAA.ActionsId}
- if err := pstrRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
- t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
- }
- // verify if acction was executed
- time.Sleep(100 * time.Millisecond)
- ev, err := testPosterReadFolder(utils.MetaS3jsonMap)
- if err != nil {
- t.Fatal(err)
- }
- if len(ev.Events) != 1 {
- t.Fatalf("Expected 1 event received: %d events", len(ev.Events))
- }
- body := ev.Events[0].([]byte)
- var acc map[string]interface{}
- if err := json.Unmarshal(body, &acc); err != nil {
- t.Fatal(err)
- }
- if acc[utils.AccountField] != utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account) {
- t.Errorf("Expected %q ,received %q", utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account), acc[utils.AccountField])
- }
-}
+// func testPosterITS3(t *testing.T) {
+// var reply string
+// attrsAA := &utils.AttrSetActions{
+// ActionsId: "ACT_S3",
+// Actions: []*utils.TPAction{ // set a action with a wrong endpoint to easily check if it was executed
+// {Identifier: utils.MetaExport, ExtraParameters: "s3_fail"},
+// },
+// }
+// if err := pstrRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+// t.Error("Got error on APIerSv2.SetActions: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
+// }
+// attrsEA := &utils.AttrExecuteAction{Tenant: pstrAccount.Tenant, Account: pstrAccount.Account, ActionsId: attrsAA.ActionsId}
+// if err := pstrRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+// t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
+// }
+// // verify if acction was executed
+// time.Sleep(100 * time.Millisecond)
+// ev, err := testPosterReadFolder(utils.MetaS3jsonMap)
+// if err != nil {
+// t.Fatal(err)
+// }
+// if len(ev.Events) != 1 {
+// t.Fatalf("Expected 1 event received: %d events", len(ev.Events))
+// }
+// body := ev.Events[0].([]byte)
+// var acc map[string]interface{}
+// if err := json.Unmarshal(body, &acc); err != nil {
+// t.Fatal(err)
+// }
+// if acc[utils.AccountField] != utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account) {
+// t.Errorf("Expected %q ,received %q", utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account), acc[utils.AccountField])
+// }
+// }
-func testPosterITKafka(t *testing.T) {
- var reply string
- attrsAA := &utils.AttrSetActions{
- ActionsId: "ACT_Kafka",
- Actions: []*utils.TPAction{ // set a action with a wrong endpoint to easily check if it was executed
- {Identifier: utils.MetaExport, ExtraParameters: "kafka_fail"},
- },
- }
- if err := pstrRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
- t.Error("Got error on APIerSv2.SetActions: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
- }
- attrsEA := &utils.AttrExecuteAction{Tenant: pstrAccount.Tenant, Account: pstrAccount.Account, ActionsId: attrsAA.ActionsId}
- if err := pstrRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
- t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
- }
- // verify if acction was executed
- time.Sleep(500 * time.Millisecond)
- ev, err := testPosterReadFolder(utils.MetaKafkajsonMap)
- if err != nil {
- t.Fatal(err)
- }
- if len(ev.Events) != 1 {
- t.Fatalf("Expected 1 event received: %d events", len(ev.Events))
- }
- body := ev.Events[0].([]byte)
- var acc map[string]interface{}
- if err := json.Unmarshal(body, &acc); err != nil {
- t.Fatal(err)
- }
- if acc[utils.AccountField] != utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account) {
- t.Errorf("Expected %q ,received %q", utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account), acc[utils.AccountField])
- }
-}
+// func testPosterITKafka(t *testing.T) {
+// var reply string
+// attrsAA := &utils.AttrSetActions{
+// ActionsId: "ACT_Kafka",
+// Actions: []*utils.TPAction{ // set a action with a wrong endpoint to easily check if it was executed
+// {Identifier: utils.MetaExport, ExtraParameters: "kafka_fail"},
+// },
+// }
+// if err := pstrRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+// t.Error("Got error on APIerSv2.SetActions: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
+// }
+// attrsEA := &utils.AttrExecuteAction{Tenant: pstrAccount.Tenant, Account: pstrAccount.Account, ActionsId: attrsAA.ActionsId}
+// if err := pstrRpc.Call(utils.APIerSv1ExecuteAction, attrsEA, &reply); err != nil {
+// t.Error("Got error on APIerSv1.ExecuteAction: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv1.ExecuteAction received: %s", reply)
+// }
+// // verify if acction was executed
+// time.Sleep(500 * time.Millisecond)
+// ev, err := testPosterReadFolder(utils.MetaKafkajsonMap)
+// if err != nil {
+// t.Fatal(err)
+// }
+// if len(ev.Events) != 1 {
+// t.Fatalf("Expected 1 event received: %d events", len(ev.Events))
+// }
+// body := ev.Events[0].([]byte)
+// var acc map[string]interface{}
+// if err := json.Unmarshal(body, &acc); err != nil {
+// t.Fatal(err)
+// }
+// if acc[utils.AccountField] != utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account) {
+// t.Errorf("Expected %q ,received %q", utils.ConcatenatedKey(pstrAccount.Tenant, pstrAccount.Account), acc[utils.AccountField])
+// }
+// }
-func testPosterITStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(*waitRater); err != nil {
- t.Error(err)
- }
-}
+// func testPosterITStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(*waitRater); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/redis_cluster_it_test.go b/general_tests/redis_cluster_it_test.go
index 39065f2ef..5e3b112eb 100644
--- a/general_tests/redis_cluster_it_test.go
+++ b/general_tests/redis_cluster_it_test.go
@@ -21,303 +21,303 @@ along with this program. If not, see
package general_tests
-import (
- "bytes"
- "flag"
- "fmt"
- "net/rpc"
- "os"
- "os/exec"
- "path"
- "reflect"
- "testing"
- "time"
+// import (
+// "bytes"
+// "flag"
+// "fmt"
+// "net/rpc"
+// "os"
+// "os/exec"
+// "path"
+// "reflect"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-/*
- * Documentation:
- * This code should work on redis 5 or later:
- * `redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1`
- * For redis 4 or before you need to create create the cluster manualy:
- * - install ruby
- * - install redis gem: `gem install redis`
- * - download the `redis-trib.rb` from the source code
- * - start the 6 nodes with the command `redis-server node1.conf`
- * - configure the cluster with the following command:
- * `./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006`
- *
- * To run the tests you need to specify the `redisCluster` flag and have the redis stopped:
- * `go test github.com/cgrates/cgrates/general_tests -tags=integration -dbtype=*mysql -run=TestRedisCluster -redisCluster -v`
- *
- * The configuration of the cluster is the following:
- * - node1 127.0.0.1:7001 master
- * - node2 127.0.0.1:7002 master
- * - node3 127.0.0.1:7003 master
- * - node4 127.0.0.1:7004 replica
- * - node5 127.0.0.1:7005 replica
- * - node6 127.0.0.1:7006 replica
- * The replicas do not allways select the same master
- */
+// /*
+// * Documentation:
+// * This code should work on redis 5 or later:
+// * `redis-cli --cluster create 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 --cluster-replicas 1`
+// * For redis 4 or before you need to create create the cluster manualy:
+// * - install ruby
+// * - install redis gem: `gem install redis`
+// * - download the `redis-trib.rb` from the source code
+// * - start the 6 nodes with the command `redis-server node1.conf`
+// * - configure the cluster with the following command:
+// * `./redis-trib.rb create --replicas 1 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006`
+// *
+// * To run the tests you need to specify the `redisCluster` flag and have the redis stopped:
+// * `go test github.com/cgrates/cgrates/general_tests -tags=integration -dbtype=*mysql -run=TestRedisCluster -redisCluster -v`
+// *
+// * The configuration of the cluster is the following:
+// * - node1 127.0.0.1:7001 master
+// * - node2 127.0.0.1:7002 master
+// * - node3 127.0.0.1:7003 master
+// * - node4 127.0.0.1:7004 replica
+// * - node5 127.0.0.1:7005 replica
+// * - node6 127.0.0.1:7006 replica
+// * The replicas do not allways select the same master
+// */
-var (
- clsrConfig *config.CGRConfig
- clsrRPC *rpc.Client
+// var (
+// clsrConfig *config.CGRConfig
+// clsrRPC *rpc.Client
- clsrNodeCfgPath = path.Join(*dataDir, "redisCluster", "node%v.conf")
- clsrEngineCfgPath = path.Join(*dataDir, "conf", "samples", "redisCluster")
- clsrNodes = make(map[string]*exec.Cmd)
- clsrOutput = make(map[string]*bytes.Buffer) // in order to debug if something is not working
- clsrNoNodes = 6 // this is the minimum number of nodes for a cluster with 1 replica for each master
- clsrRedisFlag = flag.Bool("redisCluster", false, "Run tests for redis cluster")
- clsrTests = []func(t *testing.T){
- testClsrPrepare,
- testClsrStartNodes,
- testClsrCreateCluster,
- testClsrInitConfig,
- testClsrFlushDb,
- testClsrStartEngine,
- testClsrRPCConection,
- testClsrSetGetAttribute,
- testClsrStopMaster,
- testClsrSetGetAttribute2,
- testClsrReStartMaster,
- testClsrGetAttribute,
- testClsrStopNodes,
- testClsrKillEngine,
- testClsrDeleteFolder,
- // testClsrPrintOutput,
- }
+// clsrNodeCfgPath = path.Join(*dataDir, "redisCluster", "node%v.conf")
+// clsrEngineCfgPath = path.Join(*dataDir, "conf", "samples", "redisCluster")
+// clsrNodes = make(map[string]*exec.Cmd)
+// clsrOutput = make(map[string]*bytes.Buffer) // in order to debug if something is not working
+// clsrNoNodes = 6 // this is the minimum number of nodes for a cluster with 1 replica for each master
+// clsrRedisFlag = flag.Bool("redisCluster", false, "Run tests for redis cluster")
+// clsrTests = []func(t *testing.T){
+// testClsrPrepare,
+// testClsrStartNodes,
+// testClsrCreateCluster,
+// testClsrInitConfig,
+// testClsrFlushDb,
+// testClsrStartEngine,
+// testClsrRPCConection,
+// testClsrSetGetAttribute,
+// testClsrStopMaster,
+// testClsrSetGetAttribute2,
+// testClsrReStartMaster,
+// testClsrGetAttribute,
+// testClsrStopNodes,
+// testClsrKillEngine,
+// testClsrDeleteFolder,
+// // testClsrPrintOutput,
+// }
- clsrRedisCliArgs = []string{
- "--cluster", "create",
- "127.0.0.1:7001",
- "127.0.0.1:7002",
- "127.0.0.1:7003",
- "127.0.0.1:7004",
- "127.0.0.1:7005",
- "127.0.0.1:7006",
- "--cluster-replicas", "1",
- }
-)
+// clsrRedisCliArgs = []string{
+// "--cluster", "create",
+// "127.0.0.1:7001",
+// "127.0.0.1:7002",
+// "127.0.0.1:7003",
+// "127.0.0.1:7004",
+// "127.0.0.1:7005",
+// "127.0.0.1:7006",
+// "--cluster-replicas", "1",
+// }
+// )
-const (
- clsrRedisCmd = "redis-server"
- clsrRedisCliCmd = "redis-cli"
- clsrDir = "/tmp/cluster/"
-)
+// const (
+// clsrRedisCmd = "redis-server"
+// clsrRedisCliCmd = "redis-cli"
+// clsrDir = "/tmp/cluster/"
+// )
-func TestRedisCluster(t *testing.T) {
- if !*clsrRedisFlag {
- t.SkipNow()
- }
- switch *dbType {
- case utils.MetaMySQL:
- case utils.MetaInternal,
- utils.MetaMongo,
- utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range clsrTests {
- t.Run("TestRedisCluster", stest)
- }
-}
+// func TestRedisCluster(t *testing.T) {
+// if !*clsrRedisFlag {
+// t.SkipNow()
+// }
+// switch *dbType {
+// case utils.MetaMySQL:
+// case utils.MetaInternal,
+// utils.MetaMongo,
+// utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range clsrTests {
+// t.Run("TestRedisCluster", stest)
+// }
+// }
-func testClsrPrepare(t *testing.T) {
- if err := os.MkdirAll(clsrDir, 0755); err != nil {
- t.Fatalf("Error creating folder<%s>:%s", clsrDir, err)
- }
-}
+// func testClsrPrepare(t *testing.T) {
+// if err := os.MkdirAll(clsrDir, 0755); err != nil {
+// t.Fatalf("Error creating folder<%s>:%s", clsrDir, err)
+// }
+// }
-func testClsrStartNodes(t *testing.T) {
- for i := 1; i <= clsrNoNodes; i++ {
- path := fmt.Sprintf(clsrNodeCfgPath, i)
- clsrNodes[path] = exec.Command(clsrRedisCmd, path)
- clsrOutput[path] = bytes.NewBuffer(nil)
- clsrNodes[path].Stdout = clsrOutput[path]
- if err := clsrNodes[path].Start(); err != nil {
- t.Fatalf("Could not start node %v because %s", i, err)
- }
- }
-}
+// func testClsrStartNodes(t *testing.T) {
+// for i := 1; i <= clsrNoNodes; i++ {
+// path := fmt.Sprintf(clsrNodeCfgPath, i)
+// clsrNodes[path] = exec.Command(clsrRedisCmd, path)
+// clsrOutput[path] = bytes.NewBuffer(nil)
+// clsrNodes[path].Stdout = clsrOutput[path]
+// if err := clsrNodes[path].Start(); err != nil {
+// t.Fatalf("Could not start node %v because %s", i, err)
+// }
+// }
+// }
-func testClsrCreateCluster(t *testing.T) {
- cmd := exec.Command(clsrRedisCliCmd, clsrRedisCliArgs...)
- cmd.Stdin = bytes.NewBuffer([]byte("yes\n"))
- var stdOut bytes.Buffer
- cmd.Stdout = &stdOut
- if err := cmd.Run(); err != nil {
- t.Errorf("Could not create the cluster because %s", err)
- t.Logf("The output was:\n %s", stdOut.String()) // print the output to debug the error
- }
- time.Sleep(200 * time.Millisecond)
-}
+// func testClsrCreateCluster(t *testing.T) {
+// cmd := exec.Command(clsrRedisCliCmd, clsrRedisCliArgs...)
+// cmd.Stdin = bytes.NewBuffer([]byte("yes\n"))
+// var stdOut bytes.Buffer
+// cmd.Stdout = &stdOut
+// if err := cmd.Run(); err != nil {
+// t.Errorf("Could not create the cluster because %s", err)
+// t.Logf("The output was:\n %s", stdOut.String()) // print the output to debug the error
+// }
+// time.Sleep(200 * time.Millisecond)
+// }
-func testClsrInitConfig(t *testing.T) {
- var err error
- clsrConfig, err = config.NewCGRConfigFromPath(clsrEngineCfgPath)
- if err != nil {
- t.Error(err)
- }
- clsrConfig.DataFolderPath = *dataDir // Share DataFolderPath through config towards StoreDb for Flush()
-}
+// func testClsrInitConfig(t *testing.T) {
+// var err error
+// clsrConfig, err = config.NewCGRConfigFromPath(clsrEngineCfgPath)
+// if err != nil {
+// t.Error(err)
+// }
+// clsrConfig.DataFolderPath = *dataDir // Share DataFolderPath through config towards StoreDb for Flush()
+// }
-func testClsrFlushDb(t *testing.T) {
- if err := engine.InitDataDB(clsrConfig); err != nil {
- t.Fatal(err)
- }
-}
+// func testClsrFlushDb(t *testing.T) {
+// if err := engine.InitDataDB(clsrConfig); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testClsrStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(clsrEngineCfgPath, 200); err != nil {
- t.Fatal(err)
- }
-}
+// func testClsrStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(clsrEngineCfgPath, 200); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testClsrRPCConection(t *testing.T) {
- var err error
- clsrRPC, err = newRPCClient(clsrConfig.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testClsrRPCConection(t *testing.T) {
+// var err error
+// clsrRPC, err = newRPCClient(clsrConfig.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testClsrSetGetAttribute(t *testing.T) {
- alsPrf := &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: "ClsrTest",
- FilterIDs: []string{"*string:~*req.Account:1001", "*string:~*opts.*context:*sessions|*cdrs"},
- Attributes: []*engine.Attribute{
- {
- Path: utils.MetaReq + utils.NestingSep + utils.Subject,
- Value: config.NewRSRParsersMustCompile("1001", utils.InfieldSep),
- },
- },
- Weight: 20,
- }
- alsPrf.Compile()
- var result string
- if err := clsrRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- var reply *engine.AttributeProfile
- if err := clsrRPC.Call(utils.APIerSv1GetAttributeProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "ClsrTest"}, &reply); err != nil {
- t.Fatal(err)
- }
- reply.Compile()
- if !reflect.DeepEqual(alsPrf, reply) {
- t.Errorf("Expecting : %+v, received: %+v", alsPrf, reply)
- }
-}
+// func testClsrSetGetAttribute(t *testing.T) {
+// alsPrf := &engine.AttributeProfile{
+// Tenant: "cgrates.org",
+// ID: "ClsrTest",
+// FilterIDs: []string{"*string:~*req.Account:1001", "*string:~*opts.*context:*sessions|*cdrs"},
+// Attributes: []*engine.Attribute{
+// {
+// Path: utils.MetaReq + utils.NestingSep + utils.Subject,
+// Value: config.NewRSRParsersMustCompile("1001", utils.InfieldSep),
+// },
+// },
+// Weight: 20,
+// }
+// alsPrf.Compile()
+// var result string
+// if err := clsrRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// var reply *engine.AttributeProfile
+// if err := clsrRPC.Call(utils.APIerSv1GetAttributeProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "ClsrTest"}, &reply); err != nil {
+// t.Fatal(err)
+// }
+// reply.Compile()
+// if !reflect.DeepEqual(alsPrf, reply) {
+// t.Errorf("Expecting : %+v, received: %+v", alsPrf, reply)
+// }
+// }
-func testClsrStopMaster(t *testing.T) {
- path := fmt.Sprintf(clsrNodeCfgPath, 3)
- if err = clsrNodes[path].Process.Kill(); err != nil {
- t.Fatal(err)
- }
- time.Sleep(time.Second)
-}
+// func testClsrStopMaster(t *testing.T) {
+// path := fmt.Sprintf(clsrNodeCfgPath, 3)
+// if err = clsrNodes[path].Process.Kill(); err != nil {
+// t.Fatal(err)
+// }
+// time.Sleep(time.Second)
+// }
-func testClsrSetGetAttribute2(t *testing.T) {
- alsPrf := &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: "ClsrTest",
- FilterIDs: []string{"*string:~*req.Account:1001", "*string:~*opts.*context:*sessions|*cdrs"},
- Attributes: []*engine.Attribute{
- {
- Path: utils.MetaReq + utils.NestingSep + utils.Subject,
- Value: config.NewRSRParsersMustCompile("1001", utils.InfieldSep),
- },
- },
- Weight: 20,
- }
- alsPrf.Compile()
- var reply *engine.AttributeProfile
- if err := clsrRPC.Call(utils.APIerSv1GetAttributeProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "ClsrTest"}, &reply); err != nil {
- t.Fatal(err)
- }
- reply.Compile()
- if !reflect.DeepEqual(alsPrf, reply) {
- t.Errorf("Expecting : %+v, received: %+v", alsPrf, reply)
- }
- // add another attribute
- alsPrf.ID += "2"
- var result string
- if err := clsrRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-}
+// func testClsrSetGetAttribute2(t *testing.T) {
+// alsPrf := &engine.AttributeProfile{
+// Tenant: "cgrates.org",
+// ID: "ClsrTest",
+// FilterIDs: []string{"*string:~*req.Account:1001", "*string:~*opts.*context:*sessions|*cdrs"},
+// Attributes: []*engine.Attribute{
+// {
+// Path: utils.MetaReq + utils.NestingSep + utils.Subject,
+// Value: config.NewRSRParsersMustCompile("1001", utils.InfieldSep),
+// },
+// },
+// Weight: 20,
+// }
+// alsPrf.Compile()
+// var reply *engine.AttributeProfile
+// if err := clsrRPC.Call(utils.APIerSv1GetAttributeProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "ClsrTest"}, &reply); err != nil {
+// t.Fatal(err)
+// }
+// reply.Compile()
+// if !reflect.DeepEqual(alsPrf, reply) {
+// t.Errorf("Expecting : %+v, received: %+v", alsPrf, reply)
+// }
+// // add another attribute
+// alsPrf.ID += "2"
+// var result string
+// if err := clsrRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// }
-func testClsrReStartMaster(t *testing.T) {
- path := fmt.Sprintf(clsrNodeCfgPath, 3)
- clsrNodes[path] = exec.Command(clsrRedisCmd, path)
- clsrOutput[path] = bytes.NewBuffer(nil)
- clsrNodes[path].Stdout = clsrOutput[path]
- if err := clsrNodes[path].Start(); err != nil {
- t.Fatalf("Could not start node %v because %s", 3, err)
- }
- time.Sleep(200 * time.Millisecond)
-}
+// func testClsrReStartMaster(t *testing.T) {
+// path := fmt.Sprintf(clsrNodeCfgPath, 3)
+// clsrNodes[path] = exec.Command(clsrRedisCmd, path)
+// clsrOutput[path] = bytes.NewBuffer(nil)
+// clsrNodes[path].Stdout = clsrOutput[path]
+// if err := clsrNodes[path].Start(); err != nil {
+// t.Fatalf("Could not start node %v because %s", 3, err)
+// }
+// time.Sleep(200 * time.Millisecond)
+// }
-func testClsrGetAttribute(t *testing.T) {
- alsPrf := &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: "ClsrTest2",
- FilterIDs: []string{"*string:~*req.Account:1001", "*string:~*opts.*context:*sessions|*cdrs"},
- Attributes: []*engine.Attribute{
- {
- Path: utils.MetaReq + utils.NestingSep + utils.Subject,
- Value: config.NewRSRParsersMustCompile("1001", utils.InfieldSep),
- },
- },
- Weight: 20,
- }
- alsPrf.Compile()
- var reply *engine.AttributeProfile
- if err := clsrRPC.Call(utils.APIerSv1GetAttributeProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "ClsrTest2"}, &reply); err != nil {
- t.Fatal(err)
- }
- reply.Compile()
- if !reflect.DeepEqual(alsPrf, reply) {
- t.Errorf("Expecting : %+v, received: %+v", alsPrf, reply)
- }
-}
+// func testClsrGetAttribute(t *testing.T) {
+// alsPrf := &engine.AttributeProfile{
+// Tenant: "cgrates.org",
+// ID: "ClsrTest2",
+// FilterIDs: []string{"*string:~*req.Account:1001", "*string:~*opts.*context:*sessions|*cdrs"},
+// Attributes: []*engine.Attribute{
+// {
+// Path: utils.MetaReq + utils.NestingSep + utils.Subject,
+// Value: config.NewRSRParsersMustCompile("1001", utils.InfieldSep),
+// },
+// },
+// Weight: 20,
+// }
+// alsPrf.Compile()
+// var reply *engine.AttributeProfile
+// if err := clsrRPC.Call(utils.APIerSv1GetAttributeProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "ClsrTest2"}, &reply); err != nil {
+// t.Fatal(err)
+// }
+// reply.Compile()
+// if !reflect.DeepEqual(alsPrf, reply) {
+// t.Errorf("Expecting : %+v, received: %+v", alsPrf, reply)
+// }
+// }
-func testClsrStopNodes(t *testing.T) {
- for path, node := range clsrNodes {
- if err := node.Process.Kill(); err != nil {
- t.Fatalf("Could not stop node with path <%s> because %s", path, err)
- }
- }
-}
+// func testClsrStopNodes(t *testing.T) {
+// for path, node := range clsrNodes {
+// if err := node.Process.Kill(); err != nil {
+// t.Fatalf("Could not stop node with path <%s> because %s", path, err)
+// }
+// }
+// }
-func testClsrPrintOutput(t *testing.T) {
- for path, node := range clsrOutput {
- t.Logf("The output of the node <%s> is:\n%s", path, node.String())
- t.Logf("==========================================================")
- }
-}
+// func testClsrPrintOutput(t *testing.T) {
+// for path, node := range clsrOutput {
+// t.Logf("The output of the node <%s> is:\n%s", path, node.String())
+// t.Logf("==========================================================")
+// }
+// }
-func testClsrKillEngine(t *testing.T) {
- if err := engine.KillEngine(200); err != nil {
- t.Error(err)
- }
-}
+// func testClsrKillEngine(t *testing.T) {
+// if err := engine.KillEngine(200); err != nil {
+// t.Error(err)
+// }
+// }
-func testClsrDeleteFolder(t *testing.T) {
- if err := os.RemoveAll(clsrDir); err != nil {
- t.Fatalf("Error removing folder<%s>: %s", clsrDir, err)
- }
-}
+// func testClsrDeleteFolder(t *testing.T) {
+// if err := os.RemoveAll(clsrDir); err != nil {
+// t.Fatalf("Error removing folder<%s>: %s", clsrDir, err)
+// }
+// }
diff --git a/general_tests/redis_tls_it_test.go b/general_tests/redis_tls_it_test.go
index 909cecbab..e5ebd6268 100644
--- a/general_tests/redis_tls_it_test.go
+++ b/general_tests/redis_tls_it_test.go
@@ -21,102 +21,102 @@ along with this program. If not, see
package general_tests
-import (
- "flag"
- "net/rpc"
- "os/exec"
- "path"
- "testing"
+// import (
+// "flag"
+// "net/rpc"
+// "os/exec"
+// "path"
+// "testing"
- "github.com/cgrates/cgrates/utils"
+// "github.com/cgrates/cgrates/utils"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// )
-var (
- redisTLS = flag.Bool("redisTLS", false, "Run tests with redis tls")
- redisTLSServer *exec.Cmd
- redisTLSEngineCfg = path.Join(*dataDir, "conf", "samples", "redisTLS")
- redisTLSCfg *config.CGRConfig
- redisTLSRPC *rpc.Client
+// var (
+// redisTLS = flag.Bool("redisTLS", false, "Run tests with redis tls")
+// redisTLSServer *exec.Cmd
+// redisTLSEngineCfg = path.Join(*dataDir, "conf", "samples", "redisTLS")
+// redisTLSCfg *config.CGRConfig
+// redisTLSRPC *rpc.Client
- sTestsRedisTLS = []func(t *testing.T){
- testRedisTLSStartServer,
- testRedisTLSInitConfig,
- testRedisTLSFlushDb,
- testRedisTLSStartEngine,
- testRedisTLSRPCCon,
- testRedisTLSSetGetAttribute,
- testRedisTLSKillEngine,
- }
-)
+// sTestsRedisTLS = []func(t *testing.T){
+// testRedisTLSStartServer,
+// testRedisTLSInitConfig,
+// testRedisTLSFlushDb,
+// testRedisTLSStartEngine,
+// testRedisTLSRPCCon,
+// testRedisTLSSetGetAttribute,
+// testRedisTLSKillEngine,
+// }
+// )
-// Before running these tests first you need to make sure you build the redis server with TLS support
-// https://redis.io/topics/encryption
-func TestRedisTLS(t *testing.T) {
- if !*redisTLS {
- return
- }
- for _, stest := range sTestsRedisTLS {
- t.Run("TestRedisTLS", stest)
- }
-}
+// // Before running these tests first you need to make sure you build the redis server with TLS support
+// // https://redis.io/topics/encryption
+// func TestRedisTLS(t *testing.T) {
+// if !*redisTLS {
+// return
+// }
+// for _, stest := range sTestsRedisTLS {
+// t.Run("TestRedisTLS", stest)
+// }
+// }
-func testRedisTLSStartServer(t *testing.T) {
- // start the server with the server.crt server.key and ca.crt from /data/tls ( self sign certificate )
- args := []string{
- "--tls-port", "6400", "--port", "0", "--tls-cert-file", "/usr/share/cgrates/tls/server.crt",
- "--tls-key-file", "/usr/share/cgrates/tls/server.key", "--tls-ca-cert-file", "/usr/share/cgrates/tls/ca.crt",
- }
- redisTLSServer = exec.Command("redis-server", args...)
- if err := redisTLSServer.Start(); err != nil {
- t.Error(err)
- }
-}
+// func testRedisTLSStartServer(t *testing.T) {
+// // start the server with the server.crt server.key and ca.crt from /data/tls ( self sign certificate )
+// args := []string{
+// "--tls-port", "6400", "--port", "0", "--tls-cert-file", "/usr/share/cgrates/tls/server.crt",
+// "--tls-key-file", "/usr/share/cgrates/tls/server.key", "--tls-ca-cert-file", "/usr/share/cgrates/tls/ca.crt",
+// }
+// redisTLSServer = exec.Command("redis-server", args...)
+// if err := redisTLSServer.Start(); err != nil {
+// t.Error(err)
+// }
+// }
-func testRedisTLSInitConfig(t *testing.T) {
- var err error
- redisTLSCfg, err = config.NewCGRConfigFromPath(redisTLSEngineCfg)
- if err != nil {
- t.Error(err)
- }
-}
+// func testRedisTLSInitConfig(t *testing.T) {
+// var err error
+// redisTLSCfg, err = config.NewCGRConfigFromPath(redisTLSEngineCfg)
+// if err != nil {
+// t.Error(err)
+// }
+// }
-func testRedisTLSFlushDb(t *testing.T) {
- if err := engine.InitDataDB(redisTLSCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testRedisTLSFlushDb(t *testing.T) {
+// if err := engine.InitDataDB(redisTLSCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testRedisTLSStartEngine(t *testing.T) {
- // for the engine we will use the client.crt client.key and ca.crt
- if _, err := engine.StopStartEngine(redisTLSEngineCfg, 2000); err != nil {
- t.Fatal(err)
- }
-}
+// func testRedisTLSStartEngine(t *testing.T) {
+// // for the engine we will use the client.crt client.key and ca.crt
+// if _, err := engine.StopStartEngine(redisTLSEngineCfg, 2000); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testRedisTLSRPCCon(t *testing.T) {
- var err error
- redisTLSRPC, err = newRPCClient(redisTLSCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testRedisTLSRPCCon(t *testing.T) {
+// var err error
+// redisTLSRPC, err = newRPCClient(redisTLSCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testRedisTLSSetGetAttribute(t *testing.T) {
- // status command to check if the engine starts
- var rply map[string]interface{}
- if err := redisTLSRPC.Call(utils.CoreSv1Status, &utils.TenantWithAPIOpts{}, &rply); err != nil {
- t.Error(err)
- }
-}
+// func testRedisTLSSetGetAttribute(t *testing.T) {
+// // status command to check if the engine starts
+// var rply map[string]interface{}
+// if err := redisTLSRPC.Call(utils.CoreSv1Status, &utils.TenantWithAPIOpts{}, &rply); err != nil {
+// t.Error(err)
+// }
+// }
-func testRedisTLSKillEngine(t *testing.T) {
- if err := engine.KillEngine(2000); err != nil {
- t.Error(err)
- }
- if err := exec.Command("pkill", "redis-server").Run(); err != nil {
- t.Error(err)
- }
-}
+// func testRedisTLSKillEngine(t *testing.T) {
+// if err := engine.KillEngine(2000); err != nil {
+// t.Error(err)
+// }
+// if err := exec.Command("pkill", "redis-server").Run(); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/resourcesv1_it_test.go b/general_tests/resourcesv1_it_test.go
index a9ac6cdd5..804b3f306 100644
--- a/general_tests/resourcesv1_it_test.go
+++ b/general_tests/resourcesv1_it_test.go
@@ -20,205 +20,205 @@ along with this program. If not, see
*/
package general_tests
-import (
- "net/rpc"
- "path"
- "testing"
+// import (
+// "net/rpc"
+// "path"
+// "testing"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- rlsV1CfgPath string
- rlsV1Cfg *config.CGRConfig
- rlsV1Rpc *rpc.Client
- rlsV1ConfDIR string //run tests for specific configuration
+// var (
+// rlsV1CfgPath string
+// rlsV1Cfg *config.CGRConfig
+// rlsV1Rpc *rpc.Client
+// rlsV1ConfDIR string //run tests for specific configuration
- sTestsRLSV1 = []func(t *testing.T){
- testV1RsLoadConfig,
- testV1RsInitDataDb,
- testV1RsResetStorDb,
- testV1RsStartEngine,
- testV1RsRpcConn,
- testV1RsSetProfile,
- testV1RsAllocate,
- testV1RsAuthorize,
- testV1RsStopEngine,
- }
-)
+// sTestsRLSV1 = []func(t *testing.T){
+// testV1RsLoadConfig,
+// testV1RsInitDataDb,
+// testV1RsResetStorDb,
+// testV1RsStartEngine,
+// testV1RsRpcConn,
+// testV1RsSetProfile,
+// testV1RsAllocate,
+// testV1RsAuthorize,
+// testV1RsStopEngine,
+// }
+// )
-//Test start here
-func TestRsV1IT(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- rlsV1ConfDIR = "tutinternal"
- case utils.MetaMySQL:
- rlsV1ConfDIR = "tutmysql"
- case utils.MetaMongo:
- rlsV1ConfDIR = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sTestsRLSV1 {
- t.Run(rlsV1ConfDIR, stest)
- }
-}
+// //Test start here
+// func TestRsV1IT(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// rlsV1ConfDIR = "tutinternal"
+// case utils.MetaMySQL:
+// rlsV1ConfDIR = "tutmysql"
+// case utils.MetaMongo:
+// rlsV1ConfDIR = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sTestsRLSV1 {
+// t.Run(rlsV1ConfDIR, stest)
+// }
+// }
-func testV1RsLoadConfig(t *testing.T) {
- var err error
- rlsV1CfgPath = path.Join(*dataDir, "conf", "samples", rlsV1ConfDIR)
- if rlsV1Cfg, err = config.NewCGRConfigFromPath(rlsV1CfgPath); err != nil {
- t.Error(err)
- }
-}
+// func testV1RsLoadConfig(t *testing.T) {
+// var err error
+// rlsV1CfgPath = path.Join(*dataDir, "conf", "samples", rlsV1ConfDIR)
+// if rlsV1Cfg, err = config.NewCGRConfigFromPath(rlsV1CfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testV1RsInitDataDb(t *testing.T) {
- if err := engine.InitDataDB(rlsV1Cfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testV1RsInitDataDb(t *testing.T) {
+// if err := engine.InitDataDB(rlsV1Cfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Wipe out the cdr database
-func testV1RsResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(rlsV1Cfg); err != nil {
- t.Fatal(err)
- }
-}
+// // Wipe out the cdr database
+// func testV1RsResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(rlsV1Cfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testV1RsStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(rlsV1CfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testV1RsStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(rlsV1CfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testV1RsRpcConn(t *testing.T) {
- var err error
- rlsV1Rpc, err = newRPCClient(rlsV1Cfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal("Could not connect to rater: ", err.Error())
- }
-}
+// func testV1RsRpcConn(t *testing.T) {
+// var err error
+// rlsV1Rpc, err = newRPCClient(rlsV1Cfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal("Could not connect to rater: ", err.Error())
+// }
+// }
-func testV1RsSetProfile(t *testing.T) {
- rls := &engine.ResourceProfileWithAPIOpts{
- ResourceProfile: &engine.ResourceProfile{
- Tenant: "cgrates.org",
- ID: "RES_GR_TEST",
- FilterIDs: []string{"*string:~*req.Account:1001", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z|2014-07-14T14:26:00Z"},
- UsageTTL: -1,
- Limit: 2,
- AllocationMessage: "Account1Channels",
- Weight: 20,
- ThresholdIDs: []string{utils.MetaNone},
- },
- }
- var result string
- if err := rlsV1Rpc.Call(utils.APIerSv1SetResourceProfile, rls, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-}
+// func testV1RsSetProfile(t *testing.T) {
+// rls := &engine.ResourceProfileWithAPIOpts{
+// ResourceProfile: &engine.ResourceProfile{
+// Tenant: "cgrates.org",
+// ID: "RES_GR_TEST",
+// FilterIDs: []string{"*string:~*req.Account:1001", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z|2014-07-14T14:26:00Z"},
+// UsageTTL: -1,
+// Limit: 2,
+// AllocationMessage: "Account1Channels",
+// Weight: 20,
+// ThresholdIDs: []string{utils.MetaNone},
+// },
+// }
+// var result string
+// if err := rlsV1Rpc.Call(utils.APIerSv1SetResourceProfile, rls, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// }
-func testV1RsAllocate(t *testing.T) {
- argsRU := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: utils.UUIDSha1Prefix(),
- Event: map[string]interface{}{
- "Account": "1001",
- "Destination": "1002",
- },
- APIOpts: map[string]interface{}{
- utils.OptsResourcesUsageID: "chan_1",
- utils.OptsResourcesUnits: 1,
- },
- }
- var reply string
- if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources,
- argsRU, &reply); err != nil {
- t.Error(err)
- } else if reply != "Account1Channels" {
- t.Error("Unexpected reply returned", reply)
- }
+// func testV1RsAllocate(t *testing.T) {
+// argsRU := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: utils.UUIDSha1Prefix(),
+// Event: map[string]interface{}{
+// "Account": "1001",
+// "Destination": "1002",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsResourcesUsageID: "chan_1",
+// utils.OptsResourcesUnits: 1,
+// },
+// }
+// var reply string
+// if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources,
+// argsRU, &reply); err != nil {
+// t.Error(err)
+// } else if reply != "Account1Channels" {
+// t.Error("Unexpected reply returned", reply)
+// }
- argsRU2 := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: utils.UUIDSha1Prefix(),
- Event: map[string]interface{}{
- "Account": "1001",
- "Destination": "1002",
- },
- APIOpts: map[string]interface{}{
- utils.OptsResourcesUsageID: "chan_2",
- utils.OptsResourcesUnits: 1,
- },
- }
- if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources,
- argsRU2, &reply); err != nil {
- t.Error(err)
- } else if reply != "Account1Channels" {
- t.Error("Unexpected reply returned", reply)
- }
-}
+// argsRU2 := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: utils.UUIDSha1Prefix(),
+// Event: map[string]interface{}{
+// "Account": "1001",
+// "Destination": "1002",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsResourcesUsageID: "chan_2",
+// utils.OptsResourcesUnits: 1,
+// },
+// }
+// if err := rlsV1Rpc.Call(utils.ResourceSv1AllocateResources,
+// argsRU2, &reply); err != nil {
+// t.Error(err)
+// } else if reply != "Account1Channels" {
+// t.Error("Unexpected reply returned", reply)
+// }
+// }
-func testV1RsAuthorize(t *testing.T) {
- var reply *engine.Resources
- args := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: utils.UUIDSha1Prefix(),
- Event: map[string]interface{}{
- "Account": "1001",
- "Destination": "1002",
- },
- APIOpts: map[string]interface{}{
- utils.OptsResourcesUsageID: "RandomUsageID",
- },
- }
- if err := rlsV1Rpc.Call(utils.ResourceSv1GetResourcesForEvent,
- args, &reply); err != nil {
- t.Error(err)
- }
- if reply == nil {
- t.Errorf("Expecting reply to not be nil")
- // reply shoud not be nil so exit function
- // to avoid nil segmentation fault;
- // if this happens try to run this test manualy
- return
- }
- if len(*reply) != 1 {
- t.Errorf("Expecting: %+v, received: %+v", 1, len(*reply))
- }
- if (*reply)[0].ID != "RES_GR_TEST" {
- t.Errorf("Expecting: %+v, received: %+v", "RES_GR_TEST", (*reply)[0].ID)
- }
- if len((*reply)[0].Usages) != 2 {
- t.Errorf("Expecting: %+v, received: %+v", 2, len((*reply)[0].Usages))
- }
+// func testV1RsAuthorize(t *testing.T) {
+// var reply *engine.Resources
+// args := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: utils.UUIDSha1Prefix(),
+// Event: map[string]interface{}{
+// "Account": "1001",
+// "Destination": "1002",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsResourcesUsageID: "RandomUsageID",
+// },
+// }
+// if err := rlsV1Rpc.Call(utils.ResourceSv1GetResourcesForEvent,
+// args, &reply); err != nil {
+// t.Error(err)
+// }
+// if reply == nil {
+// t.Errorf("Expecting reply to not be nil")
+// // reply shoud not be nil so exit function
+// // to avoid nil segmentation fault;
+// // if this happens try to run this test manualy
+// return
+// }
+// if len(*reply) != 1 {
+// t.Errorf("Expecting: %+v, received: %+v", 1, len(*reply))
+// }
+// if (*reply)[0].ID != "RES_GR_TEST" {
+// t.Errorf("Expecting: %+v, received: %+v", "RES_GR_TEST", (*reply)[0].ID)
+// }
+// if len((*reply)[0].Usages) != 2 {
+// t.Errorf("Expecting: %+v, received: %+v", 2, len((*reply)[0].Usages))
+// }
- var reply2 string
- argsRU := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: utils.UUIDSha1Prefix(),
- Event: map[string]interface{}{
- "Account": "1001",
- "Destination": "1002"},
- APIOpts: map[string]interface{}{
- utils.OptsResourcesUsageID: "chan_1",
- utils.OptsResourcesUnits: 1,
- },
- }
- if err := rlsV1Rpc.Call(utils.ResourceSv1AuthorizeResources,
- &argsRU, &reply2); err.Error() != "RESOURCE_UNAUTHORIZED" {
- t.Error(err)
- }
-}
+// var reply2 string
+// argsRU := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: utils.UUIDSha1Prefix(),
+// Event: map[string]interface{}{
+// "Account": "1001",
+// "Destination": "1002"},
+// APIOpts: map[string]interface{}{
+// utils.OptsResourcesUsageID: "chan_1",
+// utils.OptsResourcesUnits: 1,
+// },
+// }
+// if err := rlsV1Rpc.Call(utils.ResourceSv1AuthorizeResources,
+// &argsRU, &reply2); err.Error() != "RESOURCE_UNAUTHORIZED" {
+// t.Error(err)
+// }
+// }
-func testV1RsStopEngine(t *testing.T) {
- if err := engine.KillEngine(*waitRater); err != nil {
- t.Error(err)
- }
-}
+// func testV1RsStopEngine(t *testing.T) {
+// if err := engine.KillEngine(*waitRater); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/route_it_test.go b/general_tests/route_it_test.go
index e48a2cc88..6dd4072b0 100644
--- a/general_tests/route_it_test.go
+++ b/general_tests/route_it_test.go
@@ -21,718 +21,718 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "path"
- "reflect"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "reflect"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- splSv1CfgPath string
- splSv1Cfg *config.CGRConfig
- splSv1Rpc *rpc.Client
- splPrf *v1.RouteWithAPIOpts
- splSv1ConfDIR string //run tests for specific configuration
+// var (
+// splSv1CfgPath string
+// splSv1Cfg *config.CGRConfig
+// splSv1Rpc *rpc.Client
+// splPrf *v1.RouteWithAPIOpts
+// splSv1ConfDIR string //run tests for specific configuration
- sTestsSupplierSV1 = []func(t *testing.T){
- testV1SplSLoadConfig,
- testV1SplSInitDataDb,
- testV1SplSResetStorDb,
- testV1SplSStartEngine,
- testV1SplSRpcConn,
- testV1SplSFromFolder,
- testV1SplSSetSupplierProfilesWithoutRateProfileIDs,
- //tests for *reas sorting strategy
- testV1SplSAddNewSplPrf,
- testV1SplSAddNewResPrf,
- testV1SplSPopulateResUsage,
- testV1SplSGetSortedSuppliers,
- //tests for *reds sorting strategy
- testV1SplSAddNewSplPrf2,
- testV1SplSGetSortedSuppliers2,
- //tests for *load sorting strategy
- testV1SplSPopulateStats,
- testV1SplSGetSoredSuppliersWithLoad,
- testV1SplSStopEngine,
- }
-)
+// sTestsSupplierSV1 = []func(t *testing.T){
+// testV1SplSLoadConfig,
+// testV1SplSInitDataDb,
+// testV1SplSResetStorDb,
+// testV1SplSStartEngine,
+// testV1SplSRpcConn,
+// testV1SplSFromFolder,
+// testV1SplSSetSupplierProfilesWithoutRateProfileIDs,
+// //tests for *reas sorting strategy
+// testV1SplSAddNewSplPrf,
+// testV1SplSAddNewResPrf,
+// testV1SplSPopulateResUsage,
+// testV1SplSGetSortedSuppliers,
+// //tests for *reds sorting strategy
+// testV1SplSAddNewSplPrf2,
+// testV1SplSGetSortedSuppliers2,
+// //tests for *load sorting strategy
+// testV1SplSPopulateStats,
+// testV1SplSGetSoredSuppliersWithLoad,
+// testV1SplSStopEngine,
+// }
+// )
-// Test start here
-func TestRouteSV1IT(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- splSv1ConfDIR = "tutinternal"
- case utils.MetaMySQL:
- splSv1ConfDIR = "tutmysql"
- case utils.MetaMongo:
- splSv1ConfDIR = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sTestsSupplierSV1 {
- t.Run(splSv1ConfDIR, stest)
- }
-}
+// // Test start here
+// func TestRouteSV1IT(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// splSv1ConfDIR = "tutinternal"
+// case utils.MetaMySQL:
+// splSv1ConfDIR = "tutmysql"
+// case utils.MetaMongo:
+// splSv1ConfDIR = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sTestsSupplierSV1 {
+// t.Run(splSv1ConfDIR, stest)
+// }
+// }
-func testV1SplSLoadConfig(t *testing.T) {
- var err error
- splSv1CfgPath = path.Join(*dataDir, "conf", "samples", splSv1ConfDIR)
- if splSv1Cfg, err = config.NewCGRConfigFromPath(splSv1CfgPath); err != nil {
- t.Error(err)
- }
-}
+// func testV1SplSLoadConfig(t *testing.T) {
+// var err error
+// splSv1CfgPath = path.Join(*dataDir, "conf", "samples", splSv1ConfDIR)
+// if splSv1Cfg, err = config.NewCGRConfigFromPath(splSv1CfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testV1SplSInitDataDb(t *testing.T) {
- if err := engine.InitDataDB(splSv1Cfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testV1SplSInitDataDb(t *testing.T) {
+// if err := engine.InitDataDB(splSv1Cfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Wipe out the cdr database
-func testV1SplSResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(splSv1Cfg); err != nil {
- t.Fatal(err)
- }
-}
+// // Wipe out the cdr database
+// func testV1SplSResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(splSv1Cfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testV1SplSStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(splSv1CfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testV1SplSStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(splSv1CfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testV1SplSRpcConn(t *testing.T) {
- var err error
- splSv1Rpc, err = newRPCClient(splSv1Cfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal("Could not connect to rater: ", err.Error())
- }
-}
+// func testV1SplSRpcConn(t *testing.T) {
+// var err error
+// splSv1Rpc, err = newRPCClient(splSv1Cfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal("Could not connect to rater: ", err.Error())
+// }
+// }
-func testV1SplSFromFolder(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := splSv1Rpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- }
- time.Sleep(100 * time.Millisecond)
-}
+// func testV1SplSFromFolder(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
+// if err := splSv1Rpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(100 * time.Millisecond)
+// }
-func testV1SplSSetSupplierProfilesWithoutRateProfileIDs(t *testing.T) {
- var reply *engine.RouteProfile
- if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE2"}, &reply); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
- splPrf = &v1.RouteWithAPIOpts{
- RouteProfile: &engine.RouteProfile{
- Tenant: "cgrates.org",
- ID: "TEST_PROFILE2",
- Sorting: utils.MetaLC,
- Routes: []*engine.Route{
- {
- ID: "ROUTE1",
- AccountIDs: []string{"accc"},
- Weights: 20,
- Blocker: false,
- },
- },
- Weights: 10,
- },
- }
- var result string
- if err := splSv1Rpc.Call(utils.APIerSv1SetRouteProfile, splPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE2"}, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(splPrf.RouteProfile, reply) {
- t.Errorf("Expecting: %+v, received: %+v", splPrf.RouteProfile, reply)
- }
- ev := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testV1SplSGetLeastCostSuppliers",
- Event: map[string]interface{}{
- utils.AccountField: "accc",
- utils.Subject: "1003",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2017, 12, 1, 14, 25, 0, 0, time.UTC),
- utils.Usage: "1m20s",
- },
- }
- var suplsReply engine.SortedRoutesList
- if err := splSv1Rpc.Call(utils.RouteSv1GetRoutes,
- ev, &suplsReply); err == nil || err.Error() != utils.NewErrServerError(utils.ErrAccountNotFound).Error() {
- t.Error(err)
- }
- if err := splSv1Rpc.Call(utils.APIerSv1RemoveRouteProfile, utils.TenantID{
- Tenant: splPrf.Tenant,
- ID: splPrf.ID,
- }, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-}
+// func testV1SplSSetSupplierProfilesWithoutRateProfileIDs(t *testing.T) {
+// var reply *engine.RouteProfile
+// if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE2"}, &reply); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// splPrf = &v1.RouteWithAPIOpts{
+// RouteProfile: &engine.RouteProfile{
+// Tenant: "cgrates.org",
+// ID: "TEST_PROFILE2",
+// Sorting: utils.MetaLC,
+// Routes: []*engine.Route{
+// {
+// ID: "ROUTE1",
+// AccountIDs: []string{"accc"},
+// Weights: 20,
+// Blocker: false,
+// },
+// },
+// Weights: 10,
+// },
+// }
+// var result string
+// if err := splSv1Rpc.Call(utils.APIerSv1SetRouteProfile, splPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "TEST_PROFILE2"}, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(splPrf.RouteProfile, reply) {
+// t.Errorf("Expecting: %+v, received: %+v", splPrf.RouteProfile, reply)
+// }
+// ev := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testV1SplSGetLeastCostSuppliers",
+// Event: map[string]interface{}{
+// utils.AccountField: "accc",
+// utils.Subject: "1003",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2017, 12, 1, 14, 25, 0, 0, time.UTC),
+// utils.Usage: "1m20s",
+// },
+// }
+// var suplsReply engine.SortedRoutesList
+// if err := splSv1Rpc.Call(utils.RouteSv1GetRoutes,
+// ev, &suplsReply); err == nil || err.Error() != utils.NewErrServerError(utils.ErrAccountNotFound).Error() {
+// t.Error(err)
+// }
+// if err := splSv1Rpc.Call(utils.APIerSv1RemoveRouteProfile, utils.TenantID{
+// Tenant: splPrf.Tenant,
+// ID: splPrf.ID,
+// }, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// }
-func testV1SplSAddNewSplPrf(t *testing.T) {
- var reply *engine.RouteProfile
- if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ResourceTest"}, &reply); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
- //create a new Supplier Profile to test *reas and *reds sorting strategy
- splPrf = &v1.RouteWithAPIOpts{
- RouteProfile: &engine.RouteProfile{
- Tenant: "cgrates.org",
- ID: "ROUTE_ResourceTest",
- Sorting: utils.MetaReas,
- FilterIDs: []string{"*string:~*req.CustomField:ResourceTest"},
- Routes: []*engine.Route{
- //route1 will have ResourceUsage = 11
- {
- ID: "route1",
- ResourceIDs: []string{"ResourceSupplier1", "Resource2Supplier1"},
- Weights: 20,
- Blocker: false,
- },
- //route2 and route3 will have the same ResourceUsage = 7
- {
- ID: "route2",
- ResourceIDs: []string{"ResourceSupplier2"},
- Weights: 20,
- Blocker: false,
- },
- {
- ID: "route3",
- ResourceIDs: []string{"ResourceSupplier3"},
- Weights: 35,
- Blocker: false,
- },
- },
- Weights: 10,
- },
- }
- var result string
- if err := splSv1Rpc.Call(utils.APIerSv1SetRouteProfile, splPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ResourceTest"}, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(splPrf.RouteProfile, reply) {
- t.Errorf("Expecting: %+v, received: %+v", splPrf.RouteProfile, reply)
- }
-}
+// func testV1SplSAddNewSplPrf(t *testing.T) {
+// var reply *engine.RouteProfile
+// if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ResourceTest"}, &reply); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// //create a new Supplier Profile to test *reas and *reds sorting strategy
+// splPrf = &v1.RouteWithAPIOpts{
+// RouteProfile: &engine.RouteProfile{
+// Tenant: "cgrates.org",
+// ID: "ROUTE_ResourceTest",
+// Sorting: utils.MetaReas,
+// FilterIDs: []string{"*string:~*req.CustomField:ResourceTest"},
+// Routes: []*engine.Route{
+// //route1 will have ResourceUsage = 11
+// {
+// ID: "route1",
+// ResourceIDs: []string{"ResourceSupplier1", "Resource2Supplier1"},
+// Weights: 20,
+// Blocker: false,
+// },
+// //route2 and route3 will have the same ResourceUsage = 7
+// {
+// ID: "route2",
+// ResourceIDs: []string{"ResourceSupplier2"},
+// Weights: 20,
+// Blocker: false,
+// },
+// {
+// ID: "route3",
+// ResourceIDs: []string{"ResourceSupplier3"},
+// Weights: 35,
+// Blocker: false,
+// },
+// },
+// Weights: 10,
+// },
+// }
+// var result string
+// if err := splSv1Rpc.Call(utils.APIerSv1SetRouteProfile, splPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ResourceTest"}, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(splPrf.RouteProfile, reply) {
+// t.Errorf("Expecting: %+v, received: %+v", splPrf.RouteProfile, reply)
+// }
+// }
-func testV1SplSAddNewResPrf(t *testing.T) {
- var result string
- //add ResourceSupplier1
- rPrf := &engine.ResourceProfileWithAPIOpts{
- ResourceProfile: &engine.ResourceProfile{
- Tenant: "cgrates.org",
- ID: "ResourceSupplier1",
- FilterIDs: []string{"*string:~*req.Supplier:route1", "*string:~*req.ResID:ResourceSupplier1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z|2014-07-14T14:26:00Z"},
- UsageTTL: time.Minute,
- Limit: 10,
- Stored: true,
- Weight: 20,
- ThresholdIDs: []string{utils.MetaNone},
- },
- }
+// func testV1SplSAddNewResPrf(t *testing.T) {
+// var result string
+// //add ResourceSupplier1
+// rPrf := &engine.ResourceProfileWithAPIOpts{
+// ResourceProfile: &engine.ResourceProfile{
+// Tenant: "cgrates.org",
+// ID: "ResourceSupplier1",
+// FilterIDs: []string{"*string:~*req.Supplier:route1", "*string:~*req.ResID:ResourceSupplier1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z|2014-07-14T14:26:00Z"},
+// UsageTTL: time.Minute,
+// Limit: 10,
+// Stored: true,
+// Weight: 20,
+// ThresholdIDs: []string{utils.MetaNone},
+// },
+// }
- if err := splSv1Rpc.Call(utils.APIerSv1SetResourceProfile, rPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- //add Resource2Supplier1
- rPrf2 := &engine.ResourceProfileWithAPIOpts{
- ResourceProfile: &engine.ResourceProfile{
- Tenant: "cgrates.org",
- ID: "Resource2Supplier1",
- FilterIDs: []string{"*string:~*req.Supplier:route1", "*string:~*req.ResID:Resource2Supplier1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z|2014-07-14T14:26:00Z"},
- UsageTTL: time.Minute,
- Limit: 10,
- Stored: true,
- Weight: 30,
- ThresholdIDs: []string{utils.MetaNone},
- },
- }
+// if err := splSv1Rpc.Call(utils.APIerSv1SetResourceProfile, rPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// //add Resource2Supplier1
+// rPrf2 := &engine.ResourceProfileWithAPIOpts{
+// ResourceProfile: &engine.ResourceProfile{
+// Tenant: "cgrates.org",
+// ID: "Resource2Supplier1",
+// FilterIDs: []string{"*string:~*req.Supplier:route1", "*string:~*req.ResID:Resource2Supplier1", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z|2014-07-14T14:26:00Z"},
+// UsageTTL: time.Minute,
+// Limit: 10,
+// Stored: true,
+// Weight: 30,
+// ThresholdIDs: []string{utils.MetaNone},
+// },
+// }
- if err := splSv1Rpc.Call(utils.APIerSv1SetResourceProfile, rPrf2, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- //add ResourceSupplier2
- rPrf3 := &engine.ResourceProfileWithAPIOpts{
- ResourceProfile: &engine.ResourceProfile{
- Tenant: "cgrates.org",
- ID: "ResourceSupplier2",
- FilterIDs: []string{"*string:~*req.Supplier:route2", "*string:~*req.ResID:ResourceSupplier2", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z|2014-07-14T14:26:00Z"},
- UsageTTL: time.Minute,
- Limit: 10,
- Stored: true,
- Weight: 20,
- ThresholdIDs: []string{utils.MetaNone},
- },
- }
+// if err := splSv1Rpc.Call(utils.APIerSv1SetResourceProfile, rPrf2, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// //add ResourceSupplier2
+// rPrf3 := &engine.ResourceProfileWithAPIOpts{
+// ResourceProfile: &engine.ResourceProfile{
+// Tenant: "cgrates.org",
+// ID: "ResourceSupplier2",
+// FilterIDs: []string{"*string:~*req.Supplier:route2", "*string:~*req.ResID:ResourceSupplier2", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z|2014-07-14T14:26:00Z"},
+// UsageTTL: time.Minute,
+// Limit: 10,
+// Stored: true,
+// Weight: 20,
+// ThresholdIDs: []string{utils.MetaNone},
+// },
+// }
- if err := splSv1Rpc.Call(utils.APIerSv1SetResourceProfile, rPrf3, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- //add ResourceSupplier2
- rPrf4 := &engine.ResourceProfileWithAPIOpts{
- ResourceProfile: &engine.ResourceProfile{
- Tenant: "cgrates.org",
- ID: "ResourceSupplier3",
- FilterIDs: []string{"*string:~*req.Supplier:route3", "*string:~*req.ResID:ResourceSupplier3", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z|2014-07-14T14:26:00Z"},
- UsageTTL: time.Minute,
- Limit: 10,
- Stored: true,
- Weight: 20,
- ThresholdIDs: []string{utils.MetaNone},
- },
- }
+// if err := splSv1Rpc.Call(utils.APIerSv1SetResourceProfile, rPrf3, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// //add ResourceSupplier2
+// rPrf4 := &engine.ResourceProfileWithAPIOpts{
+// ResourceProfile: &engine.ResourceProfile{
+// Tenant: "cgrates.org",
+// ID: "ResourceSupplier3",
+// FilterIDs: []string{"*string:~*req.Supplier:route3", "*string:~*req.ResID:ResourceSupplier3", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z|2014-07-14T14:26:00Z"},
+// UsageTTL: time.Minute,
+// Limit: 10,
+// Stored: true,
+// Weight: 20,
+// ThresholdIDs: []string{utils.MetaNone},
+// },
+// }
- if err := splSv1Rpc.Call(utils.APIerSv1SetResourceProfile, rPrf4, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-}
+// if err := splSv1Rpc.Call(utils.APIerSv1SetResourceProfile, rPrf4, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// }
-func testV1SplSPopulateResUsage(t *testing.T) {
- var reply string
- argsRU := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "Event1",
- Event: map[string]interface{}{
- "Account": "1002",
- "Supplier": "route1",
- "ResID": "ResourceSupplier1",
- },
- APIOpts: map[string]interface{}{
- utils.OptsResourcesUsageID: "RandomID",
- utils.OptsResourcesUnits: 4,
- },
- }
- if err := splSv1Rpc.Call(utils.ResourceSv1AllocateResources,
- argsRU, &reply); err != nil {
- t.Error(err)
- }
- eAllocationMsg := "ResourceSupplier1"
- if reply != eAllocationMsg {
- t.Errorf("Expecting: %+v, received: %+v", eAllocationMsg, reply)
- }
+// func testV1SplSPopulateResUsage(t *testing.T) {
+// var reply string
+// argsRU := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "Event1",
+// Event: map[string]interface{}{
+// "Account": "1002",
+// "Supplier": "route1",
+// "ResID": "ResourceSupplier1",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsResourcesUsageID: "RandomID",
+// utils.OptsResourcesUnits: 4,
+// },
+// }
+// if err := splSv1Rpc.Call(utils.ResourceSv1AllocateResources,
+// argsRU, &reply); err != nil {
+// t.Error(err)
+// }
+// eAllocationMsg := "ResourceSupplier1"
+// if reply != eAllocationMsg {
+// t.Errorf("Expecting: %+v, received: %+v", eAllocationMsg, reply)
+// }
- argsRU = &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "Event2",
- Event: map[string]interface{}{
- "Account": "1002",
- "Supplier": "route1",
- "ResID": "Resource2Supplier1",
- },
- APIOpts: map[string]interface{}{
- utils.OptsResourcesUsageID: "RandomID2",
- utils.OptsResourcesUnits: 7,
- },
- }
- if err := splSv1Rpc.Call(utils.ResourceSv1AllocateResources,
- argsRU, &reply); err != nil {
- t.Error(err)
- }
- eAllocationMsg = "Resource2Supplier1"
- if reply != eAllocationMsg {
- t.Errorf("Expecting: %+v, received: %+v", eAllocationMsg, reply)
- }
+// argsRU = &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "Event2",
+// Event: map[string]interface{}{
+// "Account": "1002",
+// "Supplier": "route1",
+// "ResID": "Resource2Supplier1",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsResourcesUsageID: "RandomID2",
+// utils.OptsResourcesUnits: 7,
+// },
+// }
+// if err := splSv1Rpc.Call(utils.ResourceSv1AllocateResources,
+// argsRU, &reply); err != nil {
+// t.Error(err)
+// }
+// eAllocationMsg = "Resource2Supplier1"
+// if reply != eAllocationMsg {
+// t.Errorf("Expecting: %+v, received: %+v", eAllocationMsg, reply)
+// }
- argsRU = &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "Event3",
- Event: map[string]interface{}{
- "Account": "1002",
- "Supplier": "route2",
- "ResID": "ResourceSupplier2",
- },
- APIOpts: map[string]interface{}{
- utils.OptsResourcesUsageID: "RandomID3",
- utils.OptsResourcesUnits: 7,
- },
- }
- if err := splSv1Rpc.Call(utils.ResourceSv1AllocateResources,
- argsRU, &reply); err != nil {
- t.Error(err)
- }
- eAllocationMsg = "ResourceSupplier2"
- if reply != eAllocationMsg {
- t.Errorf("Expecting: %+v, received: %+v", eAllocationMsg, reply)
- }
+// argsRU = &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "Event3",
+// Event: map[string]interface{}{
+// "Account": "1002",
+// "Supplier": "route2",
+// "ResID": "ResourceSupplier2",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsResourcesUsageID: "RandomID3",
+// utils.OptsResourcesUnits: 7,
+// },
+// }
+// if err := splSv1Rpc.Call(utils.ResourceSv1AllocateResources,
+// argsRU, &reply); err != nil {
+// t.Error(err)
+// }
+// eAllocationMsg = "ResourceSupplier2"
+// if reply != eAllocationMsg {
+// t.Errorf("Expecting: %+v, received: %+v", eAllocationMsg, reply)
+// }
- argsRU = &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "Event4",
- Event: map[string]interface{}{
- "Account": "1002",
- "Supplier": "route3",
- "ResID": "ResourceSupplier3",
- },
- APIOpts: map[string]interface{}{
- utils.OptsResourcesUsageID: "RandomID4",
- utils.OptsResourcesUnits: 7,
- },
- }
- if err := splSv1Rpc.Call(utils.ResourceSv1AllocateResources,
- argsRU, &reply); err != nil {
- t.Error(err)
- }
- eAllocationMsg = "ResourceSupplier3"
- if reply != eAllocationMsg {
- t.Errorf("Expecting: %+v, received: %+v", eAllocationMsg, reply)
- }
+// argsRU = &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "Event4",
+// Event: map[string]interface{}{
+// "Account": "1002",
+// "Supplier": "route3",
+// "ResID": "ResourceSupplier3",
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsResourcesUsageID: "RandomID4",
+// utils.OptsResourcesUnits: 7,
+// },
+// }
+// if err := splSv1Rpc.Call(utils.ResourceSv1AllocateResources,
+// argsRU, &reply); err != nil {
+// t.Error(err)
+// }
+// eAllocationMsg = "ResourceSupplier3"
+// if reply != eAllocationMsg {
+// t.Errorf("Expecting: %+v, received: %+v", eAllocationMsg, reply)
+// }
-}
+// }
-func testV1SplSGetSortedSuppliers(t *testing.T) {
- ev := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testV1SplSGetSortedRoutes",
- Event: map[string]interface{}{
- "CustomField": "ResourceTest",
- },
- }
- expSupplierIDs := []string{"route3", "route2", "route1"}
- var suplsReply engine.SortedRoutesList
- if err := splSv1Rpc.Call(utils.RouteSv1GetRoutes,
- ev, &suplsReply); err != nil {
- t.Error(err)
- } else {
- rcvSupl := make([]string, len(suplsReply[0].Routes))
- for i, supl := range suplsReply[0].Routes {
- rcvSupl[i] = supl.RouteID
- }
- if suplsReply[0].ProfileID != "ROUTE_ResourceTest" {
- t.Errorf("Expecting: ROUTE_ResourceTest, received: %s",
- suplsReply[0].ProfileID)
- }
- if !reflect.DeepEqual(rcvSupl, expSupplierIDs) {
- t.Errorf("Expecting: %+v, \n received: %+v",
- expSupplierIDs, utils.ToJSON(suplsReply))
- }
- }
-}
+// func testV1SplSGetSortedSuppliers(t *testing.T) {
+// ev := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testV1SplSGetSortedRoutes",
+// Event: map[string]interface{}{
+// "CustomField": "ResourceTest",
+// },
+// }
+// expSupplierIDs := []string{"route3", "route2", "route1"}
+// var suplsReply engine.SortedRoutesList
+// if err := splSv1Rpc.Call(utils.RouteSv1GetRoutes,
+// ev, &suplsReply); err != nil {
+// t.Error(err)
+// } else {
+// rcvSupl := make([]string, len(suplsReply[0].Routes))
+// for i, supl := range suplsReply[0].Routes {
+// rcvSupl[i] = supl.RouteID
+// }
+// if suplsReply[0].ProfileID != "ROUTE_ResourceTest" {
+// t.Errorf("Expecting: ROUTE_ResourceTest, received: %s",
+// suplsReply[0].ProfileID)
+// }
+// if !reflect.DeepEqual(rcvSupl, expSupplierIDs) {
+// t.Errorf("Expecting: %+v, \n received: %+v",
+// expSupplierIDs, utils.ToJSON(suplsReply))
+// }
+// }
+// }
-func testV1SplSAddNewSplPrf2(t *testing.T) {
- var reply *engine.RouteProfile
- if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ResourceDescendent"}, &reply); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
- //create a new Supplier Profile to test *reas and *reds sorting strategy
- splPrf = &v1.RouteWithAPIOpts{
- RouteProfile: &engine.RouteProfile{
- Tenant: "cgrates.org",
- ID: "ROUTE_ResourceDescendent",
- Sorting: utils.MetaReds,
- FilterIDs: []string{"*string:~*req.CustomField:ResourceDescendent"},
- Routes: []*engine.Route{
- //route1 will have ResourceUsage = 11
- {
- ID: "route1",
- ResourceIDs: []string{"ResourceSupplier1", "Resource2Supplier1"},
- Weights: 20,
- Blocker: false,
- },
- //route2 and route3 will have the same ResourceUsage = 7
- {
- ID: "route2",
- ResourceIDs: []string{"ResourceSupplier2"},
- Weights: 20,
- Blocker: false,
- },
- {
- ID: "route3",
- ResourceIDs: []string{"ResourceSupplier3"},
- Weights: 35,
- Blocker: false,
- },
- },
- Weights: 10,
- },
- }
- var result string
- if err := splSv1Rpc.Call(utils.APIerSv1SetRouteProfile, splPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ResourceDescendent"}, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(splPrf.RouteProfile, reply) {
- t.Errorf("Expecting: %+v, received: %+v", splPrf.RouteProfile, reply)
- }
-}
+// func testV1SplSAddNewSplPrf2(t *testing.T) {
+// var reply *engine.RouteProfile
+// if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ResourceDescendent"}, &reply); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// //create a new Supplier Profile to test *reas and *reds sorting strategy
+// splPrf = &v1.RouteWithAPIOpts{
+// RouteProfile: &engine.RouteProfile{
+// Tenant: "cgrates.org",
+// ID: "ROUTE_ResourceDescendent",
+// Sorting: utils.MetaReds,
+// FilterIDs: []string{"*string:~*req.CustomField:ResourceDescendent"},
+// Routes: []*engine.Route{
+// //route1 will have ResourceUsage = 11
+// {
+// ID: "route1",
+// ResourceIDs: []string{"ResourceSupplier1", "Resource2Supplier1"},
+// Weights: 20,
+// Blocker: false,
+// },
+// //route2 and route3 will have the same ResourceUsage = 7
+// {
+// ID: "route2",
+// ResourceIDs: []string{"ResourceSupplier2"},
+// Weights: 20,
+// Blocker: false,
+// },
+// {
+// ID: "route3",
+// ResourceIDs: []string{"ResourceSupplier3"},
+// Weights: 35,
+// Blocker: false,
+// },
+// },
+// Weights: 10,
+// },
+// }
+// var result string
+// if err := splSv1Rpc.Call(utils.APIerSv1SetRouteProfile, splPrf, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := splSv1Rpc.Call(utils.APIerSv1GetRouteProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "ROUTE_ResourceDescendent"}, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(splPrf.RouteProfile, reply) {
+// t.Errorf("Expecting: %+v, received: %+v", splPrf.RouteProfile, reply)
+// }
+// }
-func testV1SplSGetSortedSuppliers2(t *testing.T) {
- ev := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testV1SplSGetSortedSuppliers2",
- Event: map[string]interface{}{
- "CustomField": "ResourceDescendent",
- },
- }
- expSupplierIDs := []string{"route1", "route3", "route2"}
- var suplsReply engine.SortedRoutesList
- if err := splSv1Rpc.Call(utils.RouteSv1GetRoutes,
- ev, &suplsReply); err != nil {
- t.Error(err)
- } else {
- rcvSupl := make([]string, len(suplsReply[0].Routes))
- for i, supl := range suplsReply[0].Routes {
- rcvSupl[i] = supl.RouteID
- }
- if suplsReply[0].ProfileID != "ROUTE_ResourceDescendent" {
- t.Errorf("Expecting: ROUTE_ResourceDescendent, received: %s",
- suplsReply[0].ProfileID)
- }
- if !reflect.DeepEqual(rcvSupl, expSupplierIDs) {
- t.Errorf("Expecting: %+v, \n received: %+v",
- expSupplierIDs, utils.ToJSON(suplsReply))
- }
- }
-}
+// func testV1SplSGetSortedSuppliers2(t *testing.T) {
+// ev := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testV1SplSGetSortedSuppliers2",
+// Event: map[string]interface{}{
+// "CustomField": "ResourceDescendent",
+// },
+// }
+// expSupplierIDs := []string{"route1", "route3", "route2"}
+// var suplsReply engine.SortedRoutesList
+// if err := splSv1Rpc.Call(utils.RouteSv1GetRoutes,
+// ev, &suplsReply); err != nil {
+// t.Error(err)
+// } else {
+// rcvSupl := make([]string, len(suplsReply[0].Routes))
+// for i, supl := range suplsReply[0].Routes {
+// rcvSupl[i] = supl.RouteID
+// }
+// if suplsReply[0].ProfileID != "ROUTE_ResourceDescendent" {
+// t.Errorf("Expecting: ROUTE_ResourceDescendent, received: %s",
+// suplsReply[0].ProfileID)
+// }
+// if !reflect.DeepEqual(rcvSupl, expSupplierIDs) {
+// t.Errorf("Expecting: %+v, \n received: %+v",
+// expSupplierIDs, utils.ToJSON(suplsReply))
+// }
+// }
+// }
-func testV1SplSPopulateStats(t *testing.T) {
- // in this test we simulate some Stat Requests
- // so we can check the metrics in Suppliers for *load strategy
- var reply []string
- expected := []string{"Stat_Supplier1"}
- ev1 := &engine.StatsArgsProcessEvent{
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event1",
- Event: map[string]interface{}{
- "LoadReq": 1,
- "StatID": "Stat_Supplier1",
- },
- },
- }
- if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, expected) {
- t.Errorf("Expecting: %+v, received: %+v", expected, reply)
- }
+// func testV1SplSPopulateStats(t *testing.T) {
+// // in this test we simulate some Stat Requests
+// // so we can check the metrics in Suppliers for *load strategy
+// var reply []string
+// expected := []string{"Stat_Supplier1"}
+// ev1 := &engine.StatsArgsProcessEvent{
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event1",
+// Event: map[string]interface{}{
+// "LoadReq": 1,
+// "StatID": "Stat_Supplier1",
+// },
+// },
+// }
+// if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, expected) {
+// t.Errorf("Expecting: %+v, received: %+v", expected, reply)
+// }
- expected = []string{"Stat_Supplier1"}
- ev1 = &engine.StatsArgsProcessEvent{
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event2",
- Event: map[string]interface{}{
- "LoadReq": 1,
- "StatID": "Stat_Supplier1",
- },
- },
- }
- if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, expected) {
- t.Errorf("Expecting: %+v, received: %+v", expected, reply)
- }
+// expected = []string{"Stat_Supplier1"}
+// ev1 = &engine.StatsArgsProcessEvent{
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event2",
+// Event: map[string]interface{}{
+// "LoadReq": 1,
+// "StatID": "Stat_Supplier1",
+// },
+// },
+// }
+// if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, expected) {
+// t.Errorf("Expecting: %+v, received: %+v", expected, reply)
+// }
- var metrics map[string]string
- expectedMetrics := map[string]string{
- utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + "LoadReq": "2",
- }
- if err := splSv1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
- &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_Supplier1"}},
- &metrics); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(expectedMetrics, metrics) {
- t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
- }
+// var metrics map[string]string
+// expectedMetrics := map[string]string{
+// utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + "LoadReq": "2",
+// }
+// if err := splSv1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+// &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_Supplier1"}},
+// &metrics); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(expectedMetrics, metrics) {
+// t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
+// }
- expected = []string{"Stat_Supplier2"}
- ev1 = &engine.StatsArgsProcessEvent{
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event3",
- Event: map[string]interface{}{
- "LoadReq": 1,
- "StatID": "Stat_Supplier2",
- },
- },
- }
- if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, expected) {
- t.Errorf("Expecting: %+v, received: %+v", expected, reply)
- }
+// expected = []string{"Stat_Supplier2"}
+// ev1 = &engine.StatsArgsProcessEvent{
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event3",
+// Event: map[string]interface{}{
+// "LoadReq": 1,
+// "StatID": "Stat_Supplier2",
+// },
+// },
+// }
+// if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, expected) {
+// t.Errorf("Expecting: %+v, received: %+v", expected, reply)
+// }
- expected = []string{"Stat_Supplier2"}
- ev1 = &engine.StatsArgsProcessEvent{
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event4",
- Event: map[string]interface{}{
- "LoadReq": 1,
- "StatID": "Stat_Supplier2",
- },
- },
- }
- if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, expected) {
- t.Errorf("Expecting: %+v, received: %+v", expected, reply)
- }
+// expected = []string{"Stat_Supplier2"}
+// ev1 = &engine.StatsArgsProcessEvent{
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event4",
+// Event: map[string]interface{}{
+// "LoadReq": 1,
+// "StatID": "Stat_Supplier2",
+// },
+// },
+// }
+// if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, expected) {
+// t.Errorf("Expecting: %+v, received: %+v", expected, reply)
+// }
- if err := splSv1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
- &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_Supplier2"}},
- &metrics); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(expectedMetrics, metrics) {
- t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
- }
+// if err := splSv1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+// &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_Supplier2"}},
+// &metrics); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(expectedMetrics, metrics) {
+// t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
+// }
- expected = []string{"Stat_Supplier3"}
- ev1 = &engine.StatsArgsProcessEvent{
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event5",
- Event: map[string]interface{}{
- "LoadReq": 1,
- "StatID": "Stat_Supplier3",
- },
- },
- }
- if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, expected) {
- t.Errorf("Expecting: %+v, received: %+v", expected, reply)
- }
+// expected = []string{"Stat_Supplier3"}
+// ev1 = &engine.StatsArgsProcessEvent{
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event5",
+// Event: map[string]interface{}{
+// "LoadReq": 1,
+// "StatID": "Stat_Supplier3",
+// },
+// },
+// }
+// if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, expected) {
+// t.Errorf("Expecting: %+v, received: %+v", expected, reply)
+// }
- expected = []string{"Stat_Supplier3"}
- ev1 = &engine.StatsArgsProcessEvent{
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event6",
- Event: map[string]interface{}{
- "LoadReq": 1,
- "StatID": "Stat_Supplier3",
- },
- },
- }
- if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, expected) {
- t.Errorf("Expecting: %+v, received: %+v", expected, reply)
- }
+// expected = []string{"Stat_Supplier3"}
+// ev1 = &engine.StatsArgsProcessEvent{
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event6",
+// Event: map[string]interface{}{
+// "LoadReq": 1,
+// "StatID": "Stat_Supplier3",
+// },
+// },
+// }
+// if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, expected) {
+// t.Errorf("Expecting: %+v, received: %+v", expected, reply)
+// }
- expected = []string{"Stat_Supplier3"}
- ev1 = &engine.StatsArgsProcessEvent{
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "event7",
- Event: map[string]interface{}{
- "LoadReq": 1,
- "StatID": "Stat_Supplier3",
- },
- },
- }
- if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(reply, expected) {
- t.Errorf("Expecting: %+v, received: %+v", expected, reply)
- }
+// expected = []string{"Stat_Supplier3"}
+// ev1 = &engine.StatsArgsProcessEvent{
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "event7",
+// Event: map[string]interface{}{
+// "LoadReq": 1,
+// "StatID": "Stat_Supplier3",
+// },
+// },
+// }
+// if err := splSv1Rpc.Call(utils.StatSv1ProcessEvent, ev1, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(reply, expected) {
+// t.Errorf("Expecting: %+v, received: %+v", expected, reply)
+// }
- expectedMetrics = map[string]string{
- utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + "LoadReq": "3",
- }
+// expectedMetrics = map[string]string{
+// utils.MetaSum + utils.HashtagSep + utils.DynamicDataPrefix + utils.MetaReq + utils.NestingSep + "LoadReq": "3",
+// }
- if err := splSv1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
- &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_Supplier3"}},
- &metrics); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(expectedMetrics, metrics) {
- t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
- }
-}
+// if err := splSv1Rpc.Call(utils.StatSv1GetQueueStringMetrics,
+// &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_Supplier3"}},
+// &metrics); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(expectedMetrics, metrics) {
+// t.Errorf("expecting: %+v, received reply: %s", expectedMetrics, metrics)
+// }
+// }
-func testV1SplSGetSoredSuppliersWithLoad(t *testing.T) {
- ev := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testV1SplSGetSoredSuppliersWithLoad",
- Event: map[string]interface{}{
- "DistinctMatch": "LoadDistStrategy",
- },
- }
+// func testV1SplSGetSoredSuppliersWithLoad(t *testing.T) {
+// ev := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testV1SplSGetSoredSuppliersWithLoad",
+// Event: map[string]interface{}{
+// "DistinctMatch": "LoadDistStrategy",
+// },
+// }
- expSuppliers := []*engine.SortedRoute{
- {
- RouteID: "route2",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Load": 2.0,
- "Ratio": 7.0,
- "Weight": 20.0},
- },
- {
- RouteID: "route3",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Load": 3.0,
- "Ratio": 5.0,
- "Weight": 35.0},
- },
- {
- RouteID: "route1",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Load": 2.0,
- "Ratio": 2.0,
- "Weight": 10.0},
- },
- }
+// expSuppliers := []*engine.SortedRoute{
+// {
+// RouteID: "route2",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Load": 2.0,
+// "Ratio": 7.0,
+// "Weight": 20.0},
+// },
+// {
+// RouteID: "route3",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Load": 3.0,
+// "Ratio": 5.0,
+// "Weight": 35.0},
+// },
+// {
+// RouteID: "route1",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Load": 2.0,
+// "Ratio": 2.0,
+// "Weight": 10.0},
+// },
+// }
- var suplsReply engine.SortedRoutesList
- if err := splSv1Rpc.Call(utils.RouteSv1GetRoutes,
- ev, &suplsReply); err != nil {
- t.Error(err)
- } else {
- if suplsReply[0].ProfileID != "ROUTE_LOAD_DIST" {
- t.Errorf("Expecting: ROUTE_LOAD_DIST, received: %s",
- suplsReply[0].ProfileID)
- }
- if !reflect.DeepEqual(suplsReply[0].Routes, expSuppliers) {
- t.Errorf("Expecting: %+v, \n received: %+v",
- utils.ToJSON(expSuppliers), utils.ToJSON(suplsReply[0].Routes))
- }
- }
-}
+// var suplsReply engine.SortedRoutesList
+// if err := splSv1Rpc.Call(utils.RouteSv1GetRoutes,
+// ev, &suplsReply); err != nil {
+// t.Error(err)
+// } else {
+// if suplsReply[0].ProfileID != "ROUTE_LOAD_DIST" {
+// t.Errorf("Expecting: ROUTE_LOAD_DIST, received: %s",
+// suplsReply[0].ProfileID)
+// }
+// if !reflect.DeepEqual(suplsReply[0].Routes, expSuppliers) {
+// t.Errorf("Expecting: %+v, \n received: %+v",
+// utils.ToJSON(expSuppliers), utils.ToJSON(suplsReply[0].Routes))
+// }
+// }
+// }
-func testV1SplSStopEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testV1SplSStopEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/rpccaching_it_test.go b/general_tests/rpccaching_it_test.go
index 8d985f6d5..e263cd99c 100644
--- a/general_tests/rpccaching_it_test.go
+++ b/general_tests/rpccaching_it_test.go
@@ -21,894 +21,894 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "path"
- "reflect"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "reflect"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- rpcCfgPath string
- rpcCfg *config.CGRConfig
- rpcRpc *rpc.Client
- rpcConfDIR string //run tests for specific configuration
+// var (
+// rpcCfgPath string
+// rpcCfg *config.CGRConfig
+// rpcRpc *rpc.Client
+// rpcConfDIR string //run tests for specific configuration
- sTestsRPCMethods = []func(t *testing.T){
- testRPCMethodsLoadConfig,
- testRPCMethodsInitDataDb,
- testRPCMethodsResetStorDb,
- testRPCMethodsStartEngine,
- testRPCMethodsRpcConn,
- testRPCMethodsFromFolder,
- testRPCMethodsAddData,
- testRPCMethodsAuthorizeSession,
- testRPCMethodsInitSession,
- testRPCMethodsUpdateSession,
- testRPCMethodsTerminateSession,
- testRPCMethodsProcessCDR,
- testRPCMethodsProcessEvent,
- // reset the storDB and dataDB
- testRPCMethodsInitDataDb,
- testRPCMethodsResetStorDb,
- testRPCMethodsCdrsProcessCDR,
- testRPCMethodsCdrsStoreSessionCost,
- //reset the storDB and dataDB
- testRPCMethodsInitDataDb,
- testRPCMethodsResetStorDb,
- testRPCMethodsLoadData,
- testRPCMethodsResponderDebit,
- testRPCMethodsResponderMaxDebit,
- testRPCMethodsStopEngine,
- }
-)
+// sTestsRPCMethods = []func(t *testing.T){
+// testRPCMethodsLoadConfig,
+// testRPCMethodsInitDataDb,
+// testRPCMethodsResetStorDb,
+// testRPCMethodsStartEngine,
+// testRPCMethodsRpcConn,
+// testRPCMethodsFromFolder,
+// testRPCMethodsAddData,
+// testRPCMethodsAuthorizeSession,
+// testRPCMethodsInitSession,
+// testRPCMethodsUpdateSession,
+// testRPCMethodsTerminateSession,
+// testRPCMethodsProcessCDR,
+// testRPCMethodsProcessEvent,
+// // reset the storDB and dataDB
+// testRPCMethodsInitDataDb,
+// testRPCMethodsResetStorDb,
+// testRPCMethodsCdrsProcessCDR,
+// testRPCMethodsCdrsStoreSessionCost,
+// //reset the storDB and dataDB
+// testRPCMethodsInitDataDb,
+// testRPCMethodsResetStorDb,
+// testRPCMethodsLoadData,
+// testRPCMethodsResponderDebit,
+// testRPCMethodsResponderMaxDebit,
+// testRPCMethodsStopEngine,
+// }
+// )
-// Test start here
-func TestRPCMethods(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- t.SkipNow()
- case utils.MetaMySQL:
- rpcConfDIR = "rpccaching_mysql"
- case utils.MetaMongo:
- rpcConfDIR = "rpccaching_mongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
+// // Test start here
+// func TestRPCMethods(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// t.SkipNow()
+// case utils.MetaMySQL:
+// rpcConfDIR = "rpccaching_mysql"
+// case utils.MetaMongo:
+// rpcConfDIR = "rpccaching_mongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
- for _, stest := range sTestsRPCMethods {
- t.Run(rpcConfDIR, stest)
- }
-}
+// for _, stest := range sTestsRPCMethods {
+// t.Run(rpcConfDIR, stest)
+// }
+// }
-func testRPCMethodsLoadConfig(t *testing.T) {
- var err error
- rpcCfgPath = path.Join(*dataDir, "conf", "samples", rpcConfDIR)
- if rpcCfg, err = config.NewCGRConfigFromPath(rpcCfgPath); err != nil {
- t.Error(err)
- }
-}
+// func testRPCMethodsLoadConfig(t *testing.T) {
+// var err error
+// rpcCfgPath = path.Join(*dataDir, "conf", "samples", rpcConfDIR)
+// if rpcCfg, err = config.NewCGRConfigFromPath(rpcCfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testRPCMethodsInitDataDb(t *testing.T) {
- if err := engine.InitDataDB(rpcCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testRPCMethodsInitDataDb(t *testing.T) {
+// if err := engine.InitDataDB(rpcCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Wipe out the cdr database
-func testRPCMethodsResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(rpcCfg); err != nil {
- t.Fatal(err)
- }
-}
+// // Wipe out the cdr database
+// func testRPCMethodsResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(rpcCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testRPCMethodsStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(rpcCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testRPCMethodsStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(rpcCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testRPCMethodsRpcConn(t *testing.T) {
- var err error
- rpcRpc, err = newRPCClient(rpcCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal("Could not connect to rater: ", err.Error())
- }
-}
+// func testRPCMethodsRpcConn(t *testing.T) {
+// var err error
+// rpcRpc, err = newRPCClient(rpcCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal("Could not connect to rater: ", err.Error())
+// }
+// }
-func testRPCMethodsFromFolder(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := rpcRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- }
- time.Sleep(100 * time.Millisecond)
-}
+// func testRPCMethodsFromFolder(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
+// if err := rpcRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(100 * time.Millisecond)
+// }
-func testRPCMethodsAddData(t *testing.T) {
- var resp string
- if err := rpcRpc.Call(utils.APIerSv1RemoveThresholdProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}, &resp); err != nil {
- t.Error(err)
- } else if resp != utils.OK {
- t.Error("Unexpected reply returned", resp)
- }
- var reply string
- // Add a disable and log action
- attrsAA := &utils.AttrSetActions{ActionsId: "DISABLE_LOG", Actions: []*utils.TPAction{
- {Identifier: utils.MetaDisableAccount},
- {Identifier: utils.MetaLog},
- }}
- if err := rpcRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
- t.Error("Got error on APIerSv2.SetActions: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
- }
- // Add an enable and log action
- attrsAA2 := &utils.AttrSetActions{ActionsId: "ENABLE_LOG", Actions: []*utils.TPAction{
- {Identifier: utils.MetaEnableAccount},
- {Identifier: utils.MetaLog},
- }}
- if err := rpcRpc.Call(utils.APIerSv2SetActions, attrsAA2, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
- t.Error("Got error on APIerSv2.SetActions: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
- }
+// func testRPCMethodsAddData(t *testing.T) {
+// var resp string
+// if err := rpcRpc.Call(utils.APIerSv1RemoveThresholdProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}, &resp); err != nil {
+// t.Error(err)
+// } else if resp != utils.OK {
+// t.Error("Unexpected reply returned", resp)
+// }
+// var reply string
+// // Add a disable and log action
+// attrsAA := &utils.AttrSetActions{ActionsId: "DISABLE_LOG", Actions: []*utils.TPAction{
+// {Identifier: utils.MetaDisableAccount},
+// {Identifier: utils.MetaLog},
+// }}
+// if err := rpcRpc.Call(utils.APIerSv2SetActions, attrsAA, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+// t.Error("Got error on APIerSv2.SetActions: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
+// }
+// // Add an enable and log action
+// attrsAA2 := &utils.AttrSetActions{ActionsId: "ENABLE_LOG", Actions: []*utils.TPAction{
+// {Identifier: utils.MetaEnableAccount},
+// {Identifier: utils.MetaLog},
+// }}
+// if err := rpcRpc.Call(utils.APIerSv2SetActions, attrsAA2, &reply); err != nil && err.Error() != utils.ErrExists.Error() {
+// t.Error("Got error on APIerSv2.SetActions: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv2.SetActions received: %s", reply)
+// }
- //Add a thresholdProfile to disable account
- tPrfl := &engine.ThresholdProfileWithAPIOpts{
- ThresholdProfile: &engine.ThresholdProfile{
- Tenant: "cgrates.org",
- ID: "THD_AccDisableAndLog",
- FilterIDs: []string{"*string:~*req.Account:1001", "*string:~*req.DisableAction:DisableAction"},
- MaxHits: -1,
- MinSleep: time.Second,
- Weight: 30.0,
- ActionProfileIDs: []string{"DISABLE_LOG"},
- },
- }
- if err := rpcRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
- //Add a thresholdProfile to enable account
- tPrfl2 := &engine.ThresholdProfileWithAPIOpts{
- ThresholdProfile: &engine.ThresholdProfile{
- Tenant: "cgrates.org",
- ID: "THD_AccEnableAndLog",
- FilterIDs: []string{"*string:~*req.Account:1001", "*string:~*req.EnableAction:EnableAction"},
- MaxHits: -1,
- MinSleep: time.Second,
- Weight: 30.0,
- ActionProfileIDs: []string{"ENABLE_LOG"},
- },
- }
- if err := rpcRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl2, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error("Unexpected reply returned", reply)
- }
-}
+// //Add a thresholdProfile to disable account
+// tPrfl := &engine.ThresholdProfileWithAPIOpts{
+// ThresholdProfile: &engine.ThresholdProfile{
+// Tenant: "cgrates.org",
+// ID: "THD_AccDisableAndLog",
+// FilterIDs: []string{"*string:~*req.Account:1001", "*string:~*req.DisableAction:DisableAction"},
+// MaxHits: -1,
+// MinSleep: time.Second,
+// Weight: 30.0,
+// ActionProfileIDs: []string{"DISABLE_LOG"},
+// },
+// }
+// if err := rpcRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// //Add a thresholdProfile to enable account
+// tPrfl2 := &engine.ThresholdProfileWithAPIOpts{
+// ThresholdProfile: &engine.ThresholdProfile{
+// Tenant: "cgrates.org",
+// ID: "THD_AccEnableAndLog",
+// FilterIDs: []string{"*string:~*req.Account:1001", "*string:~*req.EnableAction:EnableAction"},
+// MaxHits: -1,
+// MinSleep: time.Second,
+// Weight: 30.0,
+// ActionProfileIDs: []string{"ENABLE_LOG"},
+// },
+// }
+// if err := rpcRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl2, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply returned", reply)
+// }
+// }
-func testRPCMethodsAuthorizeSession(t *testing.T) {
- authUsage := 5 * time.Minute
- args := &sessions.V1AuthorizeArgs{
- GetMaxUsage: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testRPCMethodsAuthorizeSession",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "testRPCMethodsAuthorizeSession",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "1001",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.Usage: authUsage,
- },
- },
- }
- //authorize the session
- var rplyFirst sessions.V1AuthorizeReply
- if err := rpcRpc.Call(utils.SessionSv1AuthorizeEvent, args, &rplyFirst); err != nil {
- t.Fatal(err)
- }
- if rplyFirst.MaxUsage == nil || *rplyFirst.MaxUsage != authUsage {
- t.Errorf("Unexpected MaxUsage: %v", rplyFirst.MaxUsage)
- }
+// func testRPCMethodsAuthorizeSession(t *testing.T) {
+// authUsage := 5 * time.Minute
+// args := &sessions.V1AuthorizeArgs{
+// GetMaxUsage: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testRPCMethodsAuthorizeSession",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "testRPCMethodsAuthorizeSession",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "1001",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.Usage: authUsage,
+// },
+// },
+// }
+// //authorize the session
+// var rplyFirst sessions.V1AuthorizeReply
+// if err := rpcRpc.Call(utils.SessionSv1AuthorizeEvent, args, &rplyFirst); err != nil {
+// t.Fatal(err)
+// }
+// if rplyFirst.MaxUsage == nil || *rplyFirst.MaxUsage != authUsage {
+// t.Errorf("Unexpected MaxUsage: %v", rplyFirst.MaxUsage)
+// }
- //disable the account
- var ids []string
- thEvent := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "DisableAccount",
- Event: map[string]interface{}{
- utils.AccountField: "1001",
- "DisableAction": "DisableAction",
- },
- }
- //process event
- if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(ids, []string{"THD_AccDisableAndLog"}) {
- t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccDisableAndLog"}, ids)
- }
+// //disable the account
+// var ids []string
+// thEvent := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "DisableAccount",
+// Event: map[string]interface{}{
+// utils.AccountField: "1001",
+// "DisableAction": "DisableAction",
+// },
+// }
+// //process event
+// if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(ids, []string{"THD_AccDisableAndLog"}) {
+// t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccDisableAndLog"}, ids)
+// }
- //verify if account was disabled
- var acnt *engine.Account
- attrAcc := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1001",
- }
- if err := rpcRpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
- t.Error(err)
- } else if acnt.Disabled != true {
- t.Errorf("Expecting: true, received: %v", acnt.Disabled)
- }
+// //verify if account was disabled
+// var acnt *engine.Account
+// attrAcc := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1001",
+// }
+// if err := rpcRpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.Disabled != true {
+// t.Errorf("Expecting: true, received: %v", acnt.Disabled)
+// }
- //authorize again session (should take the response from cache)
- var rply sessions.V1AuthorizeReply
- if err := rpcRpc.Call(utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
- t.Fatal(err)
- } else if !reflect.DeepEqual(rply, rplyFirst) {
- t.Errorf("Expecting: %+v, \n received: %+v",
- utils.ToJSON(rplyFirst), utils.ToJSON(rply))
- }
+// //authorize again session (should take the response from cache)
+// var rply sessions.V1AuthorizeReply
+// if err := rpcRpc.Call(utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
+// t.Fatal(err)
+// } else if !reflect.DeepEqual(rply, rplyFirst) {
+// t.Errorf("Expecting: %+v, \n received: %+v",
+// utils.ToJSON(rplyFirst), utils.ToJSON(rply))
+// }
- //give time to CGRateS to delete the response from cache
- time.Sleep(time.Second)
+// //give time to CGRateS to delete the response from cache
+// time.Sleep(time.Second)
- //authorize again session (this time we expect to receive an error)
- if err := rpcRpc.Call(utils.SessionSv1AuthorizeEvent, args, &rply); err == nil || err.Error() != "RALS_ERROR:ACCOUNT_DISABLED" {
- t.Error("Unexpected error returned", err)
- }
+// //authorize again session (this time we expect to receive an error)
+// if err := rpcRpc.Call(utils.SessionSv1AuthorizeEvent, args, &rply); err == nil || err.Error() != "RALS_ERROR:ACCOUNT_DISABLED" {
+// t.Error("Unexpected error returned", err)
+// }
- //enable the account
- thEvent.CGREvent = &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "EnableAccount",
- Event: map[string]interface{}{
- utils.AccountField: "1001",
- "EnableAction": "EnableAction",
- },
- }
- //process event
- if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(ids, []string{"THD_AccEnableAndLog"}) {
- t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccEnableAndLog"}, ids)
- }
-}
+// //enable the account
+// thEvent.CGREvent = &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "EnableAccount",
+// Event: map[string]interface{}{
+// utils.AccountField: "1001",
+// "EnableAction": "EnableAction",
+// },
+// }
+// //process event
+// if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(ids, []string{"THD_AccEnableAndLog"}) {
+// t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccEnableAndLog"}, ids)
+// }
+// }
-func testRPCMethodsInitSession(t *testing.T) {
- initUsage := 5 * time.Minute
- args := &sessions.V1InitSessionArgs{
- InitSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testRPCMethodsInitSession",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "testRPCMethodsInitSession",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "ANY2CNT",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: initUsage,
- },
- },
- }
- var rplyFirst sessions.V1InitSessionReply
- if err := rpcRpc.Call(utils.SessionSv1InitiateSession,
- args, &rplyFirst); err != nil {
- t.Error(err)
- }
- if rplyFirst.MaxUsage == nil || *rplyFirst.MaxUsage != initUsage {
- t.Errorf("Unexpected MaxUsage: %v", rplyFirst.MaxUsage)
- }
+// func testRPCMethodsInitSession(t *testing.T) {
+// initUsage := 5 * time.Minute
+// args := &sessions.V1InitSessionArgs{
+// InitSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testRPCMethodsInitSession",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "testRPCMethodsInitSession",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "ANY2CNT",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: initUsage,
+// },
+// },
+// }
+// var rplyFirst sessions.V1InitSessionReply
+// if err := rpcRpc.Call(utils.SessionSv1InitiateSession,
+// args, &rplyFirst); err != nil {
+// t.Error(err)
+// }
+// if rplyFirst.MaxUsage == nil || *rplyFirst.MaxUsage != initUsage {
+// t.Errorf("Unexpected MaxUsage: %v", rplyFirst.MaxUsage)
+// }
- //disable the account
- var ids []string
- thEvent := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "DisableAccount",
- Event: map[string]interface{}{
- utils.AccountField: "1001",
- "DisableAction": "DisableAction",
- },
- }
- //process event
- if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(ids, []string{"THD_AccDisableAndLog"}) {
- t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccDisableAndLog"}, ids)
- }
+// //disable the account
+// var ids []string
+// thEvent := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "DisableAccount",
+// Event: map[string]interface{}{
+// utils.AccountField: "1001",
+// "DisableAction": "DisableAction",
+// },
+// }
+// //process event
+// if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(ids, []string{"THD_AccDisableAndLog"}) {
+// t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccDisableAndLog"}, ids)
+// }
- //verify if account was disabled
- var acnt *engine.Account
- attrAcc := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1001",
- }
- if err := rpcRpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
- t.Error(err)
- } else if acnt.Disabled != true {
- t.Errorf("Expecting: true, received: %v", acnt.Disabled)
- }
+// //verify if account was disabled
+// var acnt *engine.Account
+// attrAcc := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1001",
+// }
+// if err := rpcRpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.Disabled != true {
+// t.Errorf("Expecting: true, received: %v", acnt.Disabled)
+// }
- var rply sessions.V1InitSessionReply
- if err := rpcRpc.Call(utils.SessionSv1InitiateSession,
- args, &rply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(rply, rplyFirst) {
- t.Errorf("Expecting: %+v, \n received: %+v",
- utils.ToJSON(rplyFirst), utils.ToJSON(rply))
- }
+// var rply sessions.V1InitSessionReply
+// if err := rpcRpc.Call(utils.SessionSv1InitiateSession,
+// args, &rply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(rply, rplyFirst) {
+// t.Errorf("Expecting: %+v, \n received: %+v",
+// utils.ToJSON(rplyFirst), utils.ToJSON(rply))
+// }
- //give time to CGRateS to delete the response from cache
- time.Sleep(time.Second)
+// //give time to CGRateS to delete the response from cache
+// time.Sleep(time.Second)
- if err := rpcRpc.Call(utils.SessionSv1InitiateSession,
- args, &rply); err == nil || !(err.Error() == "RALS_ERROR:ACCOUNT_DISABLED" ||
- err.Error() == utils.ErrExists.Error()) { // ErrExist -> initSession twice
- t.Error("Unexpected error returned", err)
- }
+// if err := rpcRpc.Call(utils.SessionSv1InitiateSession,
+// args, &rply); err == nil || !(err.Error() == "RALS_ERROR:ACCOUNT_DISABLED" ||
+// err.Error() == utils.ErrExists.Error()) { // ErrExist -> initSession twice
+// t.Error("Unexpected error returned", err)
+// }
- //enable the account
- thEvent.CGREvent = &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "EnableAccount",
- Event: map[string]interface{}{
- utils.AccountField: "1001",
- "EnableAction": "EnableAction",
- },
- }
- //process event
- if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(ids, []string{"THD_AccEnableAndLog"}) {
- t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccEnableAndLog"}, ids)
- }
-}
+// //enable the account
+// thEvent.CGREvent = &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "EnableAccount",
+// Event: map[string]interface{}{
+// utils.AccountField: "1001",
+// "EnableAction": "EnableAction",
+// },
+// }
+// //process event
+// if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(ids, []string{"THD_AccEnableAndLog"}) {
+// t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccEnableAndLog"}, ids)
+// }
+// }
-func testRPCMethodsUpdateSession(t *testing.T) {
- reqUsage := 5 * time.Minute
- args := &sessions.V1UpdateSessionArgs{
- UpdateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testRPCMethodsUpdateSession",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "testRPCMethodsUpdateSession",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "ANY2CNT",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: reqUsage,
- },
- },
- }
- var rplyFirst sessions.V1UpdateSessionReply
- if err := rpcRpc.Call(utils.SessionSv1UpdateSession,
- args, &rplyFirst); err != nil {
- t.Error(err)
- }
- if rplyFirst.MaxUsage == nil || *rplyFirst.MaxUsage != reqUsage {
- t.Errorf("Unexpected MaxUsage: %v", rplyFirst.MaxUsage)
- }
+// func testRPCMethodsUpdateSession(t *testing.T) {
+// reqUsage := 5 * time.Minute
+// args := &sessions.V1UpdateSessionArgs{
+// UpdateSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testRPCMethodsUpdateSession",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "testRPCMethodsUpdateSession",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "ANY2CNT",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: reqUsage,
+// },
+// },
+// }
+// var rplyFirst sessions.V1UpdateSessionReply
+// if err := rpcRpc.Call(utils.SessionSv1UpdateSession,
+// args, &rplyFirst); err != nil {
+// t.Error(err)
+// }
+// if rplyFirst.MaxUsage == nil || *rplyFirst.MaxUsage != reqUsage {
+// t.Errorf("Unexpected MaxUsage: %v", rplyFirst.MaxUsage)
+// }
- //disable the account
- var ids []string
- thEvent := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "DisableAccount",
- Event: map[string]interface{}{
- utils.AccountField: "1001",
- "DisableAction": "DisableAction",
- },
- }
- //process event
- if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(ids, []string{"THD_AccDisableAndLog"}) {
- t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccDisableAndLog"}, ids)
- }
+// //disable the account
+// var ids []string
+// thEvent := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "DisableAccount",
+// Event: map[string]interface{}{
+// utils.AccountField: "1001",
+// "DisableAction": "DisableAction",
+// },
+// }
+// //process event
+// if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(ids, []string{"THD_AccDisableAndLog"}) {
+// t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccDisableAndLog"}, ids)
+// }
- //verify if account was disabled
- var acnt *engine.Account
- attrAcc := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1001",
- }
- if err := rpcRpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
- t.Error(err)
- } else if acnt.Disabled != true {
- t.Errorf("Expecting: true, received: %v", acnt.Disabled)
- }
+// //verify if account was disabled
+// var acnt *engine.Account
+// attrAcc := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1001",
+// }
+// if err := rpcRpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.Disabled != true {
+// t.Errorf("Expecting: true, received: %v", acnt.Disabled)
+// }
- var rply sessions.V1UpdateSessionReply
- if err := rpcRpc.Call(utils.SessionSv1UpdateSession,
- args, &rply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(rply, rplyFirst) {
- t.Errorf("Expecting: %+v, \n received: %+v",
- utils.ToJSON(rplyFirst), utils.ToJSON(rply))
- }
+// var rply sessions.V1UpdateSessionReply
+// if err := rpcRpc.Call(utils.SessionSv1UpdateSession,
+// args, &rply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(rply, rplyFirst) {
+// t.Errorf("Expecting: %+v, \n received: %+v",
+// utils.ToJSON(rplyFirst), utils.ToJSON(rply))
+// }
- //give time to CGRateS to delete the response from cache
- time.Sleep(time.Second)
+// //give time to CGRateS to delete the response from cache
+// time.Sleep(time.Second)
- if err := rpcRpc.Call(utils.SessionSv1UpdateSession,
- args, &rply); err == nil || err.Error() != "RALS_ERROR:ACCOUNT_DISABLED" {
- t.Error("Unexpected error returned", err)
- }
+// if err := rpcRpc.Call(utils.SessionSv1UpdateSession,
+// args, &rply); err == nil || err.Error() != "RALS_ERROR:ACCOUNT_DISABLED" {
+// t.Error("Unexpected error returned", err)
+// }
- //enable the account
- thEvent.CGREvent = &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "EnableAccount",
- Event: map[string]interface{}{
- utils.AccountField: "1001",
- "EnableAction": "EnableAction",
- },
- }
- //process event
- if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(ids, []string{"THD_AccEnableAndLog"}) {
- t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccEnableAndLog"}, ids)
- }
-}
+// //enable the account
+// thEvent.CGREvent = &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "EnableAccount",
+// Event: map[string]interface{}{
+// utils.AccountField: "1001",
+// "EnableAction": "EnableAction",
+// },
+// }
+// //process event
+// if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(ids, []string{"THD_AccEnableAndLog"}) {
+// t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccEnableAndLog"}, ids)
+// }
+// }
-func testRPCMethodsTerminateSession(t *testing.T) {
- args := &sessions.V1TerminateSessionArgs{
- TerminateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testRPCMethodsTerminateSession",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "testRPCMethodsTerminateSession",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "ANY2CNT",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 10 * time.Minute,
- },
- },
- }
- var rply string
- if err := rpcRpc.Call(utils.SessionSv1TerminateSession,
- args, &rply); err != nil {
- t.Error(err)
- } else if rply != utils.OK {
- t.Errorf("Unexpected reply: %s", rply)
- }
+// func testRPCMethodsTerminateSession(t *testing.T) {
+// args := &sessions.V1TerminateSessionArgs{
+// TerminateSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testRPCMethodsTerminateSession",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "testRPCMethodsTerminateSession",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "ANY2CNT",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 10 * time.Minute,
+// },
+// },
+// }
+// var rply string
+// if err := rpcRpc.Call(utils.SessionSv1TerminateSession,
+// args, &rply); err != nil {
+// t.Error(err)
+// } else if rply != utils.OK {
+// t.Errorf("Unexpected reply: %s", rply)
+// }
- //replace event with empty
- args.CGREvent.Event = map[string]interface{}{}
+// //replace event with empty
+// args.CGREvent.Event = map[string]interface{}{}
- if err := rpcRpc.Call(utils.SessionSv1TerminateSession,
- args, &rply); err != nil {
- t.Error(err)
- } else if rply != utils.OK {
- t.Errorf("Unexpected reply: %s", rply)
- }
+// if err := rpcRpc.Call(utils.SessionSv1TerminateSession,
+// args, &rply); err != nil {
+// t.Error(err)
+// } else if rply != utils.OK {
+// t.Errorf("Unexpected reply: %s", rply)
+// }
- //give time to CGRateS to delete the response from cache
- time.Sleep(time.Second)
+// //give time to CGRateS to delete the response from cache
+// time.Sleep(time.Second)
- if err := rpcRpc.Call(utils.SessionSv1TerminateSession,
- args, &rply); err == nil || err.Error() != "MANDATORY_IE_MISSING: [OriginID]" {
- t.Error(err)
- }
+// if err := rpcRpc.Call(utils.SessionSv1TerminateSession,
+// args, &rply); err == nil || err.Error() != "MANDATORY_IE_MISSING: [OriginID]" {
+// t.Error(err)
+// }
-}
+// }
-func testRPCMethodsProcessCDR(t *testing.T) {
- args := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testRPCMethodsProcessCDR",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "testRPCMethodsProcessCDR",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "ANY2CNT",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 10 * time.Minute,
- },
- }
- var rply string
- if err := rpcRpc.Call(utils.SessionSv1ProcessCDR,
- args, &rply); err != nil {
- t.Error(err)
- } else if rply != utils.OK {
- t.Errorf("Unexpected reply: %s", rply)
- }
- time.Sleep(100 * time.Millisecond)
- //verify the CDR
- var cdrs []*engine.CDR
- argsCDR := &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}}}
- if err := rpcRpc.Call(utils.CDRsV1GetCDRs, argsCDR, &cdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Error("Unexpected number of CDRs returned: ", len(cdrs))
- }
- //change originID so CGRID be different
- args.Event[utils.OriginID] = "testRPCMethodsProcessCDR2"
- // we should get response from cache
- if err := rpcRpc.Call(utils.SessionSv1ProcessCDR,
- args, &rply); err != nil {
- t.Error(err)
- } else if rply != utils.OK {
- t.Errorf("Unexpected reply: %s", rply)
- }
- time.Sleep(100 * time.Millisecond)
- //verify the CDR
- if err := rpcRpc.Call(utils.CDRsV1GetCDRs, argsCDR, &cdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Error("Unexpected number of CDRs returned: ", len(cdrs))
- }
+// func testRPCMethodsProcessCDR(t *testing.T) {
+// args := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testRPCMethodsProcessCDR",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "testRPCMethodsProcessCDR",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "ANY2CNT",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 10 * time.Minute,
+// },
+// }
+// var rply string
+// if err := rpcRpc.Call(utils.SessionSv1ProcessCDR,
+// args, &rply); err != nil {
+// t.Error(err)
+// } else if rply != utils.OK {
+// t.Errorf("Unexpected reply: %s", rply)
+// }
+// time.Sleep(100 * time.Millisecond)
+// //verify the CDR
+// var cdrs []*engine.CDR
+// argsCDR := &utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}}}
+// if err := rpcRpc.Call(utils.CDRsV1GetCDRs, argsCDR, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
+// }
+// //change originID so CGRID be different
+// args.Event[utils.OriginID] = "testRPCMethodsProcessCDR2"
+// // we should get response from cache
+// if err := rpcRpc.Call(utils.SessionSv1ProcessCDR,
+// args, &rply); err != nil {
+// t.Error(err)
+// } else if rply != utils.OK {
+// t.Errorf("Unexpected reply: %s", rply)
+// }
+// time.Sleep(100 * time.Millisecond)
+// //verify the CDR
+// if err := rpcRpc.Call(utils.CDRsV1GetCDRs, argsCDR, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
+// }
- //give time to CGRateS to delete the response from cache
- time.Sleep(time.Second)
+// //give time to CGRateS to delete the response from cache
+// time.Sleep(time.Second)
- //change originID so CGRID be different
- args.Event[utils.OriginID] = "testRPCMethodsProcessCDR3"
- if err := rpcRpc.Call(utils.SessionSv1ProcessCDR,
- args, &rply); err != nil {
- t.Error(err)
- } else if rply != utils.OK {
- t.Errorf("Unexpected reply: %s", rply)
- }
- time.Sleep(100 * time.Millisecond)
- //verify the CDR
- if err := rpcRpc.Call(utils.CDRsV1GetCDRs, argsCDR, &cdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if len(cdrs) != 2 {
- t.Error("Unexpected number of CDRs returned: ", len(cdrs))
- }
-}
+// //change originID so CGRID be different
+// args.Event[utils.OriginID] = "testRPCMethodsProcessCDR3"
+// if err := rpcRpc.Call(utils.SessionSv1ProcessCDR,
+// args, &rply); err != nil {
+// t.Error(err)
+// } else if rply != utils.OK {
+// t.Errorf("Unexpected reply: %s", rply)
+// }
+// time.Sleep(100 * time.Millisecond)
+// //verify the CDR
+// if err := rpcRpc.Call(utils.CDRsV1GetCDRs, argsCDR, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 2 {
+// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
+// }
+// }
-func testRPCMethodsProcessEvent(t *testing.T) {
- initUsage := 5 * time.Minute
- args := &sessions.V1ProcessMessageArgs{
- Debit: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testRPCMethodsProcessEvent",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "testRPCMethodsProcessEvent",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "1001",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: initUsage,
- },
- },
- }
- var rplyFirst sessions.V1ProcessMessageReply
- if err := rpcRpc.Call(utils.SessionSv1ProcessMessage,
- args, &rplyFirst); err != nil {
- t.Error(err)
- } else if rplyFirst.MaxUsage == nil || *rplyFirst.MaxUsage != initUsage {
- t.Errorf("Unexpected MaxUsage: %v", rplyFirst.MaxUsage)
- }
+// func testRPCMethodsProcessEvent(t *testing.T) {
+// initUsage := 5 * time.Minute
+// args := &sessions.V1ProcessMessageArgs{
+// Debit: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testRPCMethodsProcessEvent",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "testRPCMethodsProcessEvent",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "1001",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: initUsage,
+// },
+// },
+// }
+// var rplyFirst sessions.V1ProcessMessageReply
+// if err := rpcRpc.Call(utils.SessionSv1ProcessMessage,
+// args, &rplyFirst); err != nil {
+// t.Error(err)
+// } else if rplyFirst.MaxUsage == nil || *rplyFirst.MaxUsage != initUsage {
+// t.Errorf("Unexpected MaxUsage: %v", rplyFirst.MaxUsage)
+// }
- //disable the account
- var ids []string
- thEvent := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "DisableAccount",
- Event: map[string]interface{}{
- utils.AccountField: "1001",
- "DisableAction": "DisableAction",
- },
- }
- //process event
- if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(ids, []string{"THD_AccDisableAndLog"}) {
- t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccDisableAndLog"}, ids)
- }
+// //disable the account
+// var ids []string
+// thEvent := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "DisableAccount",
+// Event: map[string]interface{}{
+// utils.AccountField: "1001",
+// "DisableAction": "DisableAction",
+// },
+// }
+// //process event
+// if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(ids, []string{"THD_AccDisableAndLog"}) {
+// t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccDisableAndLog"}, ids)
+// }
- //verify if account was disabled
- var acnt *engine.Account
- attrAcc := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1001",
- }
- if err := rpcRpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
- t.Error(err)
- } else if acnt.Disabled != true {
- t.Errorf("Expecting: true, received: %v", acnt.Disabled)
- }
+// //verify if account was disabled
+// var acnt *engine.Account
+// attrAcc := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1001",
+// }
+// if err := rpcRpc.Call(utils.APIerSv2GetAccount, attrAcc, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.Disabled != true {
+// t.Errorf("Expecting: true, received: %v", acnt.Disabled)
+// }
- //get response from cache
- var rply sessions.V1ProcessMessageReply
- if err := rpcRpc.Call(utils.SessionSv1ProcessMessage,
- args, &rply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(rply, rplyFirst) {
- t.Errorf("Expecting: %+v, \n received: %+v",
- utils.ToJSON(rplyFirst), utils.ToJSON(rply))
- }
+// //get response from cache
+// var rply sessions.V1ProcessMessageReply
+// if err := rpcRpc.Call(utils.SessionSv1ProcessMessage,
+// args, &rply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(rply, rplyFirst) {
+// t.Errorf("Expecting: %+v, \n received: %+v",
+// utils.ToJSON(rplyFirst), utils.ToJSON(rply))
+// }
- //give time to CGRateS to delete the response from cache
- time.Sleep(time.Second)
+// //give time to CGRateS to delete the response from cache
+// time.Sleep(time.Second)
- if err := rpcRpc.Call(utils.SessionSv1ProcessMessage,
- args, &rplyFirst); err == nil || err.Error() != "RALS_ERROR:ACCOUNT_DISABLED" {
- t.Error("Unexpected error returned", err)
- }
+// if err := rpcRpc.Call(utils.SessionSv1ProcessMessage,
+// args, &rplyFirst); err == nil || err.Error() != "RALS_ERROR:ACCOUNT_DISABLED" {
+// t.Error("Unexpected error returned", err)
+// }
- //enable the account
- thEvent.CGREvent = &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "EnableAccount",
- Event: map[string]interface{}{
- utils.AccountField: "1001",
- "EnableAction": "EnableAction",
- },
- }
- //process event
- if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(ids, []string{"THD_AccEnableAndLog"}) {
- t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccEnableAndLog"}, ids)
- }
-}
+// //enable the account
+// thEvent.CGREvent = &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "EnableAccount",
+// Event: map[string]interface{}{
+// utils.AccountField: "1001",
+// "EnableAction": "EnableAction",
+// },
+// }
+// //process event
+// if err := rpcRpc.Call(utils.ThresholdSv1ProcessEvent, thEvent, &ids); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(ids, []string{"THD_AccEnableAndLog"}) {
+// t.Errorf("Expecting ids: %s, received: %s", []string{"THD_AccEnableAndLog"}, ids)
+// }
+// }
-func testRPCMethodsCdrsProcessCDR(t *testing.T) {
- args := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testRPCMethodsCdrsProcessCDR",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.ToR: utils.MetaVoice,
- utils.OriginHost: "host",
- utils.OriginID: "testRPCMethodsCdrsProcessCDR",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "ANY2CNT",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 10 * time.Minute,
- },
- }
+// func testRPCMethodsCdrsProcessCDR(t *testing.T) {
+// args := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testRPCMethodsCdrsProcessCDR",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginHost: "host",
+// utils.OriginID: "testRPCMethodsCdrsProcessCDR",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "ANY2CNT",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 10 * time.Minute,
+// },
+// }
- var reply string
- if err := rpcRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
- time.Sleep(150 * time.Millisecond) // Give time for CDR to be rated
- //verify the CDR
- var cdrs []*engine.CDR
- argsCDR := utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}}}
- if err := rpcRpc.Call(utils.CDRsV1GetCDRs, &argsCDR, &cdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Error("Unexpected number of CDRs returned: ", len(cdrs))
- }
- //change originID so CGRID be different
- args.Event[utils.OriginID] = "testRPCMethodsProcessCDR2"
- // we should get response from cache
- if err := rpcRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
- time.Sleep(100 * time.Millisecond)
- //verify the CDR
- if err := rpcRpc.Call(utils.CDRsV1GetCDRs, &argsCDR, &cdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Error("Unexpected number of CDRs returned: ", len(cdrs))
- }
+// var reply string
+// if err := rpcRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// time.Sleep(150 * time.Millisecond) // Give time for CDR to be rated
+// //verify the CDR
+// var cdrs []*engine.CDR
+// argsCDR := utils.RPCCDRsFilterWithAPIOpts{RPCCDRsFilter: &utils.RPCCDRsFilter{RunIDs: []string{utils.MetaDefault}}}
+// if err := rpcRpc.Call(utils.CDRsV1GetCDRs, &argsCDR, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
+// }
+// //change originID so CGRID be different
+// args.Event[utils.OriginID] = "testRPCMethodsProcessCDR2"
+// // we should get response from cache
+// if err := rpcRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// time.Sleep(100 * time.Millisecond)
+// //verify the CDR
+// if err := rpcRpc.Call(utils.CDRsV1GetCDRs, &argsCDR, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
+// }
- //give time to CGRateS to delete the response from cache
- time.Sleep(time.Second)
- //change originID so CGRID be different
- args.Event[utils.OriginID] = "testRPCMethodsProcessCDR4"
- if err := rpcRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
- time.Sleep(150 * time.Millisecond) // Give time for CDR to be rated
- //verify the CDR
- if err := rpcRpc.Call(utils.CDRsV1GetCDRs, &argsCDR, &cdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if len(cdrs) != 2 {
- t.Error("Unexpected number of CDRs returned: ", len(cdrs))
- }
-}
+// //give time to CGRateS to delete the response from cache
+// time.Sleep(time.Second)
+// //change originID so CGRID be different
+// args.Event[utils.OriginID] = "testRPCMethodsProcessCDR4"
+// if err := rpcRpc.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// time.Sleep(150 * time.Millisecond) // Give time for CDR to be rated
+// //verify the CDR
+// if err := rpcRpc.Call(utils.CDRsV1GetCDRs, &argsCDR, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 2 {
+// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
+// }
+// }
-func testRPCMethodsCdrsStoreSessionCost(t *testing.T) {
- cc := &engine.CallCost{
- Category: "generic",
- Tenant: "cgrates.org",
- Subject: "1001",
- Account: "1001",
- Destination: "data",
- ToR: "*data",
- Cost: 0,
- }
- args := &engine.ArgsV2CDRSStoreSMCost{
- CheckDuplicate: true,
- Cost: &engine.V2SMCost{
- CGRID: "testRPCMethodsCdrsStoreSessionCost",
- RunID: utils.MetaDefault,
- OriginHost: "",
- OriginID: "testdatagrp_grp1",
- CostSource: "SMR",
- Usage: 1536,
- CostDetails: engine.NewEventCostFromCallCost(cc, "testRPCMethodsCdrsStoreSessionCost", utils.MetaDefault),
- },
- }
+// func testRPCMethodsCdrsStoreSessionCost(t *testing.T) {
+// cc := &engine.CallCost{
+// Category: "generic",
+// Tenant: "cgrates.org",
+// Subject: "1001",
+// Account: "1001",
+// Destination: "data",
+// ToR: "*data",
+// Cost: 0,
+// }
+// args := &engine.ArgsV2CDRSStoreSMCost{
+// CheckDuplicate: true,
+// Cost: &engine.V2SMCost{
+// CGRID: "testRPCMethodsCdrsStoreSessionCost",
+// RunID: utils.MetaDefault,
+// OriginHost: "",
+// OriginID: "testdatagrp_grp1",
+// CostSource: "SMR",
+// Usage: 1536,
+// CostDetails: engine.NewEventCostFromCallCost(cc, "testRPCMethodsCdrsStoreSessionCost", utils.MetaDefault),
+// },
+// }
- var reply string
- if err := rpcRpc.Call(utils.CDRsV2StoreSessionCost, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
- time.Sleep(150 * time.Millisecond)
+// var reply string
+// if err := rpcRpc.Call(utils.CDRsV2StoreSessionCost, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// time.Sleep(150 * time.Millisecond)
- //change originID so CGRID be different
- args.Cost.CGRID = "testRPCMethodsCdrsStoreSessionCost"
- // we should get response from cache
- if err := rpcRpc.Call(utils.CDRsV2StoreSessionCost, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
+// //change originID so CGRID be different
+// args.Cost.CGRID = "testRPCMethodsCdrsStoreSessionCost"
+// // we should get response from cache
+// if err := rpcRpc.Call(utils.CDRsV2StoreSessionCost, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
- //give time to CGRateS to delete the response from cache
- time.Sleep(time.Second)
- //change originID so CGRID be different
- args.Cost.CGRID = "testRPCMethodsCdrsStoreSessionCost"
- if err := rpcRpc.Call(utils.CDRsV2StoreSessionCost, args,
- &reply); err == nil || err.Error() != "SERVER_ERROR: EXISTS" {
- t.Error("Unexpected error: ", err.Error())
- }
-}
+// //give time to CGRateS to delete the response from cache
+// time.Sleep(time.Second)
+// //change originID so CGRID be different
+// args.Cost.CGRID = "testRPCMethodsCdrsStoreSessionCost"
+// if err := rpcRpc.Call(utils.CDRsV2StoreSessionCost, args,
+// &reply); err == nil || err.Error() != "SERVER_ERROR: EXISTS" {
+// t.Error("Unexpected error: ", err.Error())
+// }
+// }
-// Load the tariff plan, creating accounts and their balances
-func testRPCMethodsLoadData(t *testing.T) {
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testtp")}
- if err := rpcRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &tpLoadInst); err != nil {
- t.Error(err)
- }
- time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
-}
+// // Load the tariff plan, creating accounts and their balances
+// func testRPCMethodsLoadData(t *testing.T) {
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testtp")}
+// if err := rpcRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &tpLoadInst); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
+// }
-func testRPCMethodsResponderDebit(t *testing.T) {
- tStart := time.Date(2016, 3, 31, 0, 0, 0, 0, time.UTC)
- cd := &engine.CallDescriptorWithAPIOpts{
- CallDescriptor: &engine.CallDescriptor{
- CgrID: "testRPCMethodsResponderDebit",
- Category: "call",
- Tenant: "cgrates.org",
- Subject: "1001",
- Destination: "+49",
- DurationIndex: 0,
- TimeStart: tStart,
- TimeEnd: tStart.Add(15 * time.Second),
- },
- }
- var cc engine.CallCost
- //cache the response
- if err := rpcRpc.Call(utils.ResponderDebit, cd, &cc); err != nil {
- t.Error(err)
- } else if cc.GetDuration() != 15*time.Second {
- t.Errorf("Expecting: %+v, \n received: %+v",
- 15*time.Second, cc.GetDuration())
- } else if cc.Cost != 15 {
- t.Errorf("Expecting: %+v, \n received: %+v",
- 15, cc.Cost)
- }
- cd2 := &engine.CallDescriptorWithAPIOpts{
- CallDescriptor: &engine.CallDescriptor{
- CgrID: "testRPCMethodsResponderDebit",
- },
- }
- var ccCache engine.CallCost
- //cache the response
- if err := rpcRpc.Call(utils.ResponderDebit, cd2, &ccCache); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(ccCache, cc) {
- t.Errorf("Expecting: %+v, \n received: %+v",
- utils.ToJSON(cc), utils.ToJSON(ccCache))
- }
- //give time to CGRateS to delete the response from cache
- time.Sleep(time.Second)
- if err := rpcRpc.Call(utils.ResponderDebit, cd2, &cc); err == nil || err.Error() != "ACCOUNT_NOT_FOUND" {
- t.Error("Unexpected error returned", err)
- }
-}
+// func testRPCMethodsResponderDebit(t *testing.T) {
+// tStart := time.Date(2016, 3, 31, 0, 0, 0, 0, time.UTC)
+// cd := &engine.CallDescriptorWithAPIOpts{
+// CallDescriptor: &engine.CallDescriptor{
+// CgrID: "testRPCMethodsResponderDebit",
+// Category: "call",
+// Tenant: "cgrates.org",
+// Subject: "1001",
+// Destination: "+49",
+// DurationIndex: 0,
+// TimeStart: tStart,
+// TimeEnd: tStart.Add(15 * time.Second),
+// },
+// }
+// var cc engine.CallCost
+// //cache the response
+// if err := rpcRpc.Call(utils.ResponderDebit, cd, &cc); err != nil {
+// t.Error(err)
+// } else if cc.GetDuration() != 15*time.Second {
+// t.Errorf("Expecting: %+v, \n received: %+v",
+// 15*time.Second, cc.GetDuration())
+// } else if cc.Cost != 15 {
+// t.Errorf("Expecting: %+v, \n received: %+v",
+// 15, cc.Cost)
+// }
+// cd2 := &engine.CallDescriptorWithAPIOpts{
+// CallDescriptor: &engine.CallDescriptor{
+// CgrID: "testRPCMethodsResponderDebit",
+// },
+// }
+// var ccCache engine.CallCost
+// //cache the response
+// if err := rpcRpc.Call(utils.ResponderDebit, cd2, &ccCache); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(ccCache, cc) {
+// t.Errorf("Expecting: %+v, \n received: %+v",
+// utils.ToJSON(cc), utils.ToJSON(ccCache))
+// }
+// //give time to CGRateS to delete the response from cache
+// time.Sleep(time.Second)
+// if err := rpcRpc.Call(utils.ResponderDebit, cd2, &cc); err == nil || err.Error() != "ACCOUNT_NOT_FOUND" {
+// t.Error("Unexpected error returned", err)
+// }
+// }
-func testRPCMethodsResponderMaxDebit(t *testing.T) {
- tStart := time.Date(2016, 3, 31, 0, 0, 0, 0, time.UTC)
- cd := &engine.CallDescriptorWithAPIOpts{
- CallDescriptor: &engine.CallDescriptor{
- CgrID: "testRPCMethodsResponderMaxDebit",
- Category: "call",
- Tenant: "cgrates.org",
- Account: "1001",
- Subject: "free",
- Destination: "+49",
- DurationIndex: 0,
- TimeStart: tStart,
- TimeEnd: tStart.Add(15 * time.Second),
- },
- }
- var cc engine.CallCost
- //cache the response
- if err := rpcRpc.Call(utils.ResponderMaxDebit, cd, &cc); err != nil {
- t.Error(err)
- } else if cc.GetDuration() != 15*time.Second {
- t.Errorf("Expecting: %+v, \n received: %+v",
- 15*time.Second, cc.GetDuration())
- } else if cc.Cost != 0 {
- t.Errorf("Expecting: %+v, \n received: %+v",
- 0, cc.Cost)
- }
- cd2 := &engine.CallDescriptorWithAPIOpts{
- CallDescriptor: &engine.CallDescriptor{
- CgrID: "testRPCMethodsResponderMaxDebit",
- },
- }
- var ccCache engine.CallCost
- //cache the response
- if err := rpcRpc.Call(utils.ResponderMaxDebit, cd2, &ccCache); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(ccCache, cc) {
- t.Errorf("Expecting: %+v, \n received: %+v",
- utils.ToJSON(cc), utils.ToJSON(ccCache))
- }
- //give time to CGRateS to delete the response from cache
- time.Sleep(time.Second)
- if err := rpcRpc.Call(utils.ResponderMaxDebit, cd2, &cc); err == nil || err.Error() != "ACCOUNT_NOT_FOUND" {
- t.Error("Unexpected error returned", err)
- }
-}
+// func testRPCMethodsResponderMaxDebit(t *testing.T) {
+// tStart := time.Date(2016, 3, 31, 0, 0, 0, 0, time.UTC)
+// cd := &engine.CallDescriptorWithAPIOpts{
+// CallDescriptor: &engine.CallDescriptor{
+// CgrID: "testRPCMethodsResponderMaxDebit",
+// Category: "call",
+// Tenant: "cgrates.org",
+// Account: "1001",
+// Subject: "free",
+// Destination: "+49",
+// DurationIndex: 0,
+// TimeStart: tStart,
+// TimeEnd: tStart.Add(15 * time.Second),
+// },
+// }
+// var cc engine.CallCost
+// //cache the response
+// if err := rpcRpc.Call(utils.ResponderMaxDebit, cd, &cc); err != nil {
+// t.Error(err)
+// } else if cc.GetDuration() != 15*time.Second {
+// t.Errorf("Expecting: %+v, \n received: %+v",
+// 15*time.Second, cc.GetDuration())
+// } else if cc.Cost != 0 {
+// t.Errorf("Expecting: %+v, \n received: %+v",
+// 0, cc.Cost)
+// }
+// cd2 := &engine.CallDescriptorWithAPIOpts{
+// CallDescriptor: &engine.CallDescriptor{
+// CgrID: "testRPCMethodsResponderMaxDebit",
+// },
+// }
+// var ccCache engine.CallCost
+// //cache the response
+// if err := rpcRpc.Call(utils.ResponderMaxDebit, cd2, &ccCache); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(ccCache, cc) {
+// t.Errorf("Expecting: %+v, \n received: %+v",
+// utils.ToJSON(cc), utils.ToJSON(ccCache))
+// }
+// //give time to CGRateS to delete the response from cache
+// time.Sleep(time.Second)
+// if err := rpcRpc.Call(utils.ResponderMaxDebit, cd2, &cc); err == nil || err.Error() != "ACCOUNT_NOT_FOUND" {
+// t.Error("Unexpected error returned", err)
+// }
+// }
-func testRPCMethodsStopEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testRPCMethodsStopEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/rpcclient_it_test.go b/general_tests/rpcclient_it_test.go
index 718f08c4e..87e5b9100 100644
--- a/general_tests/rpcclient_it_test.go
+++ b/general_tests/rpcclient_it_test.go
@@ -21,427 +21,427 @@ along with this program. If not, see
package general_tests
-import (
- "flag"
- "fmt"
- "os/exec"
- "path"
- "testing"
- "time"
+// import (
+// "flag"
+// "fmt"
+// "os/exec"
+// "path"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/utils"
+// "github.com/cgrates/rpcclient"
+// )
-var testRemoteRALs = flag.Bool("remote_rals", false, "Perform the tests in integration mode, not by default.") // This flag will be passed here via "go test -local" args
+// var testRemoteRALs = flag.Bool("remote_rals", false, "Perform the tests in integration mode, not by default.") // This flag will be passed here via "go test -local" args
-var ( // shared vars
- rpcITCfgPath1, rpcITCfgPath2 string
- rpcITCfgDIR1, rpcITCfgDIR2 string
- rpcITCfg1, rpcITCfg2 *config.CGRConfig
- rpcRAL1, rpcRAL2 *rpcclient.RPCClient
- rpcPoolFirst, rpcPoolBroadcast *rpcclient.RPCPool
- ral1, ral2 *exec.Cmd
- node1 = "node1"
- node2 = "node2"
-)
+// var ( // shared vars
+// rpcITCfgPath1, rpcITCfgPath2 string
+// rpcITCfgDIR1, rpcITCfgDIR2 string
+// rpcITCfg1, rpcITCfg2 *config.CGRConfig
+// rpcRAL1, rpcRAL2 *rpcclient.RPCClient
+// rpcPoolFirst, rpcPoolBroadcast *rpcclient.RPCPool
+// ral1, ral2 *exec.Cmd
+// node1 = "node1"
+// node2 = "node2"
+// )
-var ( // configuration opts
- RemoteRALsAddr1 = "192.168.244.137:2012"
- RemoteRALsAddr2 = "192.168.244.138:2012"
-)
+// var ( // configuration opts
+// RemoteRALsAddr1 = "192.168.244.137:2012"
+// RemoteRALsAddr2 = "192.168.244.138:2012"
+// )
-//subtests to be executed
-var sTestRPCITLcl = []func(t *testing.T){
- testRPCITLclInitCfg,
- testRPCITLclStartSecondEngine,
- testRPCITLclRpcConnPoolFirst,
- testRPCITLclStatusSecondEngine,
- testRPCITLclStartFirstEngine,
- testRPCITLclStatusFirstInitial,
- testRPCITLclStatusFirstFailover,
- testRPCITLclStatusFirstFailback,
- testRPCITLclTDirectedRPC,
- testRPCITLclRpcConnPoolBcast,
- testRPCITLclBcastStatusInitial,
- testRPCITLclBcastStatusNoRals1,
- testRPCITLclBcastStatusBcastNoRals,
- testRPCITLclBcastStatusRALs2Up,
- testRPCITLclStatusBcastRALs1Up,
-}
+// //subtests to be executed
+// var sTestRPCITLcl = []func(t *testing.T){
+// testRPCITLclInitCfg,
+// testRPCITLclStartSecondEngine,
+// testRPCITLclRpcConnPoolFirst,
+// testRPCITLclStatusSecondEngine,
+// testRPCITLclStartFirstEngine,
+// testRPCITLclStatusFirstInitial,
+// testRPCITLclStatusFirstFailover,
+// testRPCITLclStatusFirstFailback,
+// testRPCITLclTDirectedRPC,
+// testRPCITLclRpcConnPoolBcast,
+// testRPCITLclBcastStatusInitial,
+// testRPCITLclBcastStatusNoRals1,
+// testRPCITLclBcastStatusBcastNoRals,
+// testRPCITLclBcastStatusRALs2Up,
+// testRPCITLclStatusBcastRALs1Up,
+// }
-func TestRPCITLcl(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- rpcITCfgDIR1 = "multiral1_internal"
- rpcITCfgDIR2 = "multiral2_internal"
- case utils.MetaMySQL:
- rpcITCfgDIR1 = "multiral1_mysql"
- rpcITCfgDIR2 = "multiral2_mysql"
- case utils.MetaMongo:
- rpcITCfgDIR1 = "multiral1_mongo"
- rpcITCfgDIR2 = "multiral2_mongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sTestRPCITLcl {
- t.Run(*dbType, stest)
- }
-}
+// func TestRPCITLcl(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// rpcITCfgDIR1 = "multiral1_internal"
+// rpcITCfgDIR2 = "multiral2_internal"
+// case utils.MetaMySQL:
+// rpcITCfgDIR1 = "multiral1_mysql"
+// rpcITCfgDIR2 = "multiral2_mysql"
+// case utils.MetaMongo:
+// rpcITCfgDIR1 = "multiral1_mongo"
+// rpcITCfgDIR2 = "multiral2_mongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sTestRPCITLcl {
+// t.Run(*dbType, stest)
+// }
+// }
-func testRPCITLclInitCfg(t *testing.T) {
- rpcITCfgPath1 = path.Join(*dataDir, "conf", "samples", rpcITCfgDIR1)
- rpcITCfgPath2 = path.Join(*dataDir, "conf", "samples", rpcITCfgDIR2)
- rpcITCfg1, err = config.NewCGRConfigFromPath(rpcITCfgPath1)
- if err != nil {
- t.Error(err)
- }
- rpcITCfg2, err = config.NewCGRConfigFromPath(rpcITCfgPath2)
- if err != nil {
- t.Error(err)
- }
- if err := engine.InitDataDB(rpcITCfg1); err != nil {
- t.Fatal(err)
- }
-}
+// func testRPCITLclInitCfg(t *testing.T) {
+// rpcITCfgPath1 = path.Join(*dataDir, "conf", "samples", rpcITCfgDIR1)
+// rpcITCfgPath2 = path.Join(*dataDir, "conf", "samples", rpcITCfgDIR2)
+// rpcITCfg1, err = config.NewCGRConfigFromPath(rpcITCfgPath1)
+// if err != nil {
+// t.Error(err)
+// }
+// rpcITCfg2, err = config.NewCGRConfigFromPath(rpcITCfgPath2)
+// if err != nil {
+// t.Error(err)
+// }
+// if err := engine.InitDataDB(rpcITCfg1); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testRPCITLclStartSecondEngine(t *testing.T) {
- if ral2, err = engine.StopStartEngine(rpcITCfgPath2, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testRPCITLclStartSecondEngine(t *testing.T) {
+// if ral2, err = engine.StopStartEngine(rpcITCfgPath2, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Connect rpc client to rater
-func testRPCITLclRpcConnPoolFirst(t *testing.T) {
- rpcPoolFirst = rpcclient.NewRPCPool(rpcclient.PoolFirst, 0)
- rpcRAL1, err = rpcclient.NewRPCClient(utils.TCP, rpcITCfg1.ListenCfg().RPCJSONListen, false, "", "", "", 3, 1,
- time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
- if err == nil {
- t.Fatal("Should receive cannot connect error here")
- }
- rpcPoolFirst.AddClient(rpcRAL1)
- rpcRAL2, err = rpcclient.NewRPCClient(utils.TCP, rpcITCfg2.ListenCfg().RPCJSONListen, false, "", "", "", 3, 1,
- time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
- if err != nil {
- t.Fatal(err)
- }
- rpcPoolFirst.AddClient(rpcRAL2)
-}
+// // Connect rpc client to rater
+// func testRPCITLclRpcConnPoolFirst(t *testing.T) {
+// rpcPoolFirst = rpcclient.NewRPCPool(rpcclient.PoolFirst, 0)
+// rpcRAL1, err = rpcclient.NewRPCClient(utils.TCP, rpcITCfg1.ListenCfg().RPCJSONListen, false, "", "", "", 3, 1,
+// time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
+// if err == nil {
+// t.Fatal("Should receive cannot connect error here")
+// }
+// rpcPoolFirst.AddClient(rpcRAL1)
+// rpcRAL2, err = rpcclient.NewRPCClient(utils.TCP, rpcITCfg2.ListenCfg().RPCJSONListen, false, "", "", "", 3, 1,
+// time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
+// if err != nil {
+// t.Fatal(err)
+// }
+// rpcPoolFirst.AddClient(rpcRAL2)
+// }
-// Connect rpc client to rater
-func testRPCITLclStatusSecondEngine(t *testing.T) {
- var status map[string]interface{}
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
- t.Error(err)
- } else if status[utils.NodeID].(string) == "" {
- t.Error("Empty NodeID received")
- }
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
- t.Error(err)
- } else if status[utils.NodeID].(string) != node2 {
- t.Errorf("Expecting:\n%s\nReceived:\n%s", node2, status[utils.NodeID].(string))
- }
-}
-
-// Start first engine
-func testRPCITLclStartFirstEngine(t *testing.T) {
- if ral1, err = engine.StartEngine(rpcITCfgPath1, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
-
-// Connect rpc client to rater
-func testRPCITLclStatusFirstInitial(t *testing.T) {
- var status map[string]interface{}
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
- t.Error(err)
- } else if status[utils.NodeID].(string) == "" {
- t.Error("Empty NodeID received")
- } else if status[utils.NodeID].(string) == node2 {
- t.Fatalf("Should receive ralID different than second one, got: %s", status[utils.NodeID].(string))
- }
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
- t.Error(err)
- } else if status[utils.NodeID].(string) != node1 {
- t.Errorf("Expecting:\n%s\nReceived:\n%s", node1, status[utils.NodeID].(string))
- }
-}
-
-// Connect rpc client to rater
-func testRPCITLclStatusFirstFailover(t *testing.T) {
- if err := ral1.Process.Kill(); err != nil { // Kill the first RAL
- t.Error(err)
- }
- time.Sleep(time.Duration(*waitRater) * time.Millisecond)
- var status map[string]interface{}
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
- t.Error(err)
- } else if status[utils.NodeID].(string) == "" {
- t.Error("Empty NodeID received")
- } else if status[utils.NodeID].(string) == node1 {
- t.Fatalf("Should receive ralID different than first one, got: %s", status[utils.NodeID].(string))
- }
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
- t.Error(err)
- } else if status[utils.NodeID].(string) != node2 {
- t.Errorf("Expecting:\n%s\nReceived:\n%s", node2, status[utils.NodeID].(string))
- }
-}
-
-func testRPCITLclStatusFirstFailback(t *testing.T) {
- if ral1, err = engine.StartEngine(rpcITCfgPath1, *waitRater); err != nil {
- t.Fatal(err)
- }
- var status map[string]interface{}
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
- t.Error(err)
- } else if status[utils.NodeID].(string) == node2 {
- t.Error("Should receive new ID")
- }
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
- t.Error(err)
- } else if status[utils.NodeID].(string) != node1 {
- t.Errorf("Expecting:\n%s\nReceived:\n%s", node2, status[utils.NodeID].(string))
- }
-}
-
-// Make sure it executes on the first node supporting the command
-func testRPCITLclTDirectedRPC(t *testing.T) {
- var sessions []*sessions.ExternalSession
- if err := rpcPoolFirst.Call(utils.SessionSv1GetActiveSessions, utils.SessionFilter{}, &sessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
-}
-
-// func testRPCITLclTimeout(t *testing.T) {
+// // Connect rpc client to rater
+// func testRPCITLclStatusSecondEngine(t *testing.T) {
// var status map[string]interface{}
-// if err := rpcPoolFirst.Call(utils.CoreSv1Status, "10s", &status); err == nil {
-// t.Error("Expecting timeout")
-// } else if err.Error() != rpcclient.ErrReplyTimeout.Error() {
+// if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+// t.Error(err)
+// } else if status[utils.NodeID].(string) == "" {
+// t.Error("Empty NodeID received")
+// }
+// if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
+// t.Error(err)
+// } else if status[utils.NodeID].(string) != node2 {
+// t.Errorf("Expecting:\n%s\nReceived:\n%s", node2, status[utils.NodeID].(string))
+// }
+// }
+
+// // Start first engine
+// func testRPCITLclStartFirstEngine(t *testing.T) {
+// if ral1, err = engine.StartEngine(rpcITCfgPath1, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
+
+// // Connect rpc client to rater
+// func testRPCITLclStatusFirstInitial(t *testing.T) {
+// var status map[string]interface{}
+// if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+// t.Error(err)
+// } else if status[utils.NodeID].(string) == "" {
+// t.Error("Empty NodeID received")
+// } else if status[utils.NodeID].(string) == node2 {
+// t.Fatalf("Should receive ralID different than second one, got: %s", status[utils.NodeID].(string))
+// }
+// if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
+// t.Error(err)
+// } else if status[utils.NodeID].(string) != node1 {
+// t.Errorf("Expecting:\n%s\nReceived:\n%s", node1, status[utils.NodeID].(string))
+// }
+// }
+
+// // Connect rpc client to rater
+// func testRPCITLclStatusFirstFailover(t *testing.T) {
+// if err := ral1.Process.Kill(); err != nil { // Kill the first RAL
+// t.Error(err)
+// }
+// time.Sleep(time.Duration(*waitRater) * time.Millisecond)
+// var status map[string]interface{}
+// if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+// t.Error(err)
+// } else if status[utils.NodeID].(string) == "" {
+// t.Error("Empty NodeID received")
+// } else if status[utils.NodeID].(string) == node1 {
+// t.Fatalf("Should receive ralID different than first one, got: %s", status[utils.NodeID].(string))
+// }
+// if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
+// t.Error(err)
+// } else if status[utils.NodeID].(string) != node2 {
+// t.Errorf("Expecting:\n%s\nReceived:\n%s", node2, status[utils.NodeID].(string))
+// }
+// }
+
+// func testRPCITLclStatusFirstFailback(t *testing.T) {
+// if ral1, err = engine.StartEngine(rpcITCfgPath1, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// var status map[string]interface{}
+// if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+// t.Error(err)
+// } else if status[utils.NodeID].(string) == node2 {
+// t.Error("Should receive new ID")
+// }
+// if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
+// t.Error(err)
+// } else if status[utils.NodeID].(string) != node1 {
+// t.Errorf("Expecting:\n%s\nReceived:\n%s", node2, status[utils.NodeID].(string))
+// }
+// }
+
+// // Make sure it executes on the first node supporting the command
+// func testRPCITLclTDirectedRPC(t *testing.T) {
+// var sessions []*sessions.ExternalSession
+// if err := rpcPoolFirst.Call(utils.SessionSv1GetActiveSessions, utils.SessionFilter{}, &sessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
// t.Error(err)
// }
// }
-// Connect rpc client to rater
-func testRPCITLclRpcConnPoolBcast(t *testing.T) {
- rpcPoolBroadcast = rpcclient.NewRPCPool(rpcclient.PoolBroadcast, 2*time.Second)
- rpcPoolBroadcast.AddClient(rpcRAL1)
- rpcPoolBroadcast.AddClient(rpcRAL2)
-}
+// // func testRPCITLclTimeout(t *testing.T) {
+// // var status map[string]interface{}
+// // if err := rpcPoolFirst.Call(utils.CoreSv1Status, "10s", &status); err == nil {
+// // t.Error("Expecting timeout")
+// // } else if err.Error() != rpcclient.ErrReplyTimeout.Error() {
+// // t.Error(err)
+// // }
+// // }
-func testRPCITLclBcastStatusInitial(t *testing.T) {
- var status map[string]interface{}
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
- t.Error(err)
- } else if status[utils.NodeID].(string) == "" {
- t.Error("Empty NodeID received")
- }
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
- t.Error(err)
- } else if status[utils.NodeID].(string) == "" {
- t.Error("Empty NodeID received")
- }
-}
+// // Connect rpc client to rater
+// func testRPCITLclRpcConnPoolBcast(t *testing.T) {
+// rpcPoolBroadcast = rpcclient.NewRPCPool(rpcclient.PoolBroadcast, 2*time.Second)
+// rpcPoolBroadcast.AddClient(rpcRAL1)
+// rpcPoolBroadcast.AddClient(rpcRAL2)
+// }
-func testRPCITLclBcastStatusNoRals1(t *testing.T) {
- if err := ral1.Process.Kill(); err != nil { // Kill the first RAL
- t.Error(err)
- }
- time.Sleep(time.Duration(*waitRater) * time.Millisecond)
- var status map[string]interface{}
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
- t.Error(err)
- } else if status[utils.NodeID].(string) == "" {
- t.Error("Empty NodeID received")
- }
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
- t.Error(err)
- } else if status[utils.NodeID].(string) == "" {
- t.Error("Empty NodeID received")
- }
-}
+// func testRPCITLclBcastStatusInitial(t *testing.T) {
+// var status map[string]interface{}
+// if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+// t.Error(err)
+// } else if status[utils.NodeID].(string) == "" {
+// t.Error("Empty NodeID received")
+// }
+// if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+// t.Error(err)
+// } else if status[utils.NodeID].(string) == "" {
+// t.Error("Empty NodeID received")
+// }
+// }
-func testRPCITLclBcastStatusBcastNoRals(t *testing.T) {
- if err := ral2.Process.Kill(); err != nil { // Kill the first RAL
- t.Error(err)
- }
- time.Sleep(time.Duration(*waitRater) * time.Millisecond)
- var status map[string]interface{}
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err == nil {
- t.Error("Should get error")
- }
-}
+// func testRPCITLclBcastStatusNoRals1(t *testing.T) {
+// if err := ral1.Process.Kill(); err != nil { // Kill the first RAL
+// t.Error(err)
+// }
+// time.Sleep(time.Duration(*waitRater) * time.Millisecond)
+// var status map[string]interface{}
+// if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+// t.Error(err)
+// } else if status[utils.NodeID].(string) == "" {
+// t.Error("Empty NodeID received")
+// }
+// if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+// t.Error(err)
+// } else if status[utils.NodeID].(string) == "" {
+// t.Error("Empty NodeID received")
+// }
+// }
-func testRPCITLclBcastStatusRALs2Up(t *testing.T) {
- if ral2, err = engine.StartEngine(rpcITCfgPath2, *waitRater); err != nil {
- t.Fatal(err)
- }
- var status map[string]interface{}
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
- t.Error(err)
- } else if status[utils.NodeID].(string) == "" {
- t.Error("Empty NodeID received")
- }
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
- t.Error(err)
- } else if status[utils.NodeID].(string) == "" {
- t.Error("Empty NodeID received")
- }
-}
+// func testRPCITLclBcastStatusBcastNoRals(t *testing.T) {
+// if err := ral2.Process.Kill(); err != nil { // Kill the first RAL
+// t.Error(err)
+// }
+// time.Sleep(time.Duration(*waitRater) * time.Millisecond)
+// var status map[string]interface{}
+// if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err == nil {
+// t.Error("Should get error")
+// }
+// }
-func testRPCITLclStatusBcastRALs1Up(t *testing.T) {
- if ral1, err = engine.StartEngine(rpcITCfgPath1, *waitRater); err != nil {
- t.Fatal(err)
- }
- var status map[string]interface{}
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
- t.Error(err)
- } else if status[utils.NodeID].(string) == "" {
- t.Error("Empty InstanceID received")
- }
- if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
- t.Error(err)
- } else if status[utils.NodeID].(string) == "" {
- t.Error("Empty InstanceID received")
- }
-}
+// func testRPCITLclBcastStatusRALs2Up(t *testing.T) {
+// if ral2, err = engine.StartEngine(rpcITCfgPath2, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// var status map[string]interface{}
+// if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+// t.Error(err)
+// } else if status[utils.NodeID].(string) == "" {
+// t.Error("Empty NodeID received")
+// }
+// if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+// t.Error(err)
+// } else if status[utils.NodeID].(string) == "" {
+// t.Error("Empty NodeID received")
+// }
+// }
-/*
-func TestRPCITStatusBcastCmd(t *testing.T) {
- var stats utils.CacheStats
- if err := rpcRAL1.Call(utils.APIerSv2GetCacheStats, utils.AttrCacheStats{}, &stats); err != nil {
- t.Error(err)
- } else if stats.LastRatingLoadID != utils.NotAvailable || stats.LastAccountingLoadID != utils.NotAvailable {
- t.Errorf("Received unexpected stats: %+v", stats)
- }
- var loadInst utils.LoadInstance
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(**dataDir, "tariffplans", "oldtutorial")}
- if err := rpcRAL1.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
- t.Error(err)
- } else if loadInst.RatingLoadID == "" || loadInst.AccountingLoadID == "" {
- t.Errorf("Empty loadId received, loadInstance: %+v", loadInst)
- }
- var reply string
- if err := rpcPoolBroadcast.Call(utils.APIerSv1ReloadCache, utils.AttrReloadCache{}, &reply); err != nil {
- t.Error("Got error on APIerSv1.ReloadCache: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Calling APIerSv1.ReloadCache got reply: ", reply)
- }
- if err := rpcRAL1.Call(utils.APIerSv2GetCacheStats, utils.AttrCacheStats{}, &stats); err != nil {
- t.Error(err)
- } else if stats.LastRatingLoadID != loadInst.RatingLoadID {
- t.Errorf("Received unexpected stats: %+v vs %+v", stats, loadInst)
- }
- if err := rpcRAL2.Call(utils.APIerSv2GetCacheStats, utils.AttrCacheStats{}, &stats); err != nil {
- t.Error(err)
- } else if stats.LastRatingLoadID != loadInst.RatingLoadID {
- t.Errorf("Received unexpected stats: %+v vs %+v", stats, loadInst)
- }
-}
-*/
+// func testRPCITLclStatusBcastRALs1Up(t *testing.T) {
+// if ral1, err = engine.StartEngine(rpcITCfgPath1, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// var status map[string]interface{}
+// if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+// t.Error(err)
+// } else if status[utils.NodeID].(string) == "" {
+// t.Error("Empty InstanceID received")
+// }
+// if err := rpcPoolBroadcast.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+// t.Error(err)
+// } else if status[utils.NodeID].(string) == "" {
+// t.Error("Empty InstanceID received")
+// }
+// }
-// Special tests involving remote server (manually set)
-// The server network will be manually disconnected without TCP close
-// Run remote ones with: go test -tags=integration -run="TestRPCITRmt|TestRPCITStop" -remote_rals
-func TestRPCITRmtRpcConnPool(t *testing.T) {
- if !*testRemoteRALs {
- return
- }
- rpcPoolFirst = rpcclient.NewRPCPool(rpcclient.PoolFirst, 0)
- rpcRALRmt, err := rpcclient.NewRPCClient(utils.TCP, RemoteRALsAddr1, false, "", "", "", 1, 1,
- time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
- if err != nil {
- t.Fatal(err)
- }
- rpcPoolFirst.AddClient(rpcRALRmt)
- rpcRAL1, err = rpcclient.NewRPCClient(utils.TCP, RemoteRALsAddr2, false, "", "", "", 1, 1,
- time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
- if err != nil {
- t.Fatal(err)
- }
- rpcPoolFirst.AddClient(rpcRAL1)
-}
+// /*
+// func TestRPCITStatusBcastCmd(t *testing.T) {
+// var stats utils.CacheStats
+// if err := rpcRAL1.Call(utils.APIerSv2GetCacheStats, utils.AttrCacheStats{}, &stats); err != nil {
+// t.Error(err)
+// } else if stats.LastRatingLoadID != utils.NotAvailable || stats.LastAccountingLoadID != utils.NotAvailable {
+// t.Errorf("Received unexpected stats: %+v", stats)
+// }
+// var loadInst utils.LoadInstance
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(**dataDir, "tariffplans", "oldtutorial")}
+// if err := rpcRAL1.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
+// t.Error(err)
+// } else if loadInst.RatingLoadID == "" || loadInst.AccountingLoadID == "" {
+// t.Errorf("Empty loadId received, loadInstance: %+v", loadInst)
+// }
+// var reply string
+// if err := rpcPoolBroadcast.Call(utils.APIerSv1ReloadCache, utils.AttrReloadCache{}, &reply); err != nil {
+// t.Error("Got error on APIerSv1.ReloadCache: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Calling APIerSv1.ReloadCache got reply: ", reply)
+// }
+// if err := rpcRAL1.Call(utils.APIerSv2GetCacheStats, utils.AttrCacheStats{}, &stats); err != nil {
+// t.Error(err)
+// } else if stats.LastRatingLoadID != loadInst.RatingLoadID {
+// t.Errorf("Received unexpected stats: %+v vs %+v", stats, loadInst)
+// }
+// if err := rpcRAL2.Call(utils.APIerSv2GetCacheStats, utils.AttrCacheStats{}, &stats); err != nil {
+// t.Error(err)
+// } else if stats.LastRatingLoadID != loadInst.RatingLoadID {
+// t.Errorf("Received unexpected stats: %+v vs %+v", stats, loadInst)
+// }
+// }
+// */
-func TestRPCITRmtStatusFirstInitial(t *testing.T) {
- if !*testRemoteRALs {
- return
- }
- var status map[string]interface{}
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
- t.Error(err)
- } else if status[utils.NodeID].(string) == "" {
- t.Error("Empty NodeID received")
- }
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
- t.Error(err)
- } else if status[utils.NodeID].(string) != node1 {
- t.Errorf("Expecting:\n%s\nReceived:\n%s", node1, status[utils.NodeID].(string))
- }
-}
+// // Special tests involving remote server (manually set)
+// // The server network will be manually disconnected without TCP close
+// // Run remote ones with: go test -tags=integration -run="TestRPCITRmt|TestRPCITStop" -remote_rals
+// func TestRPCITRmtRpcConnPool(t *testing.T) {
+// if !*testRemoteRALs {
+// return
+// }
+// rpcPoolFirst = rpcclient.NewRPCPool(rpcclient.PoolFirst, 0)
+// rpcRALRmt, err := rpcclient.NewRPCClient(utils.TCP, RemoteRALsAddr1, false, "", "", "", 1, 1,
+// time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
+// if err != nil {
+// t.Fatal(err)
+// }
+// rpcPoolFirst.AddClient(rpcRALRmt)
+// rpcRAL1, err = rpcclient.NewRPCClient(utils.TCP, RemoteRALsAddr2, false, "", "", "", 1, 1,
+// time.Second, 2*time.Second, rpcclient.JSONrpc, nil, false, nil)
+// if err != nil {
+// t.Fatal(err)
+// }
+// rpcPoolFirst.AddClient(rpcRAL1)
+// }
-func TestRPCITRmtStatusFirstFailover(t *testing.T) {
- if !*testRemoteRALs {
- return
- }
- fmt.Println("Ready for doing failover")
- remaining := 5
- for i := 0; i < remaining; i++ {
- fmt.Printf("\n\t%d", remaining-i)
- time.Sleep(time.Second)
- }
- fmt.Println("\n\nExecuting query ...")
- var status map[string]interface{}
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
- t.Error(err)
- } else if status[utils.NodeID].(string) == "" {
- t.Error("Empty NodeID received")
- } else if status[utils.NodeID].(string) == node1 {
- t.Fatal("Did not failover")
- }
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
- t.Error(err)
- } else if status[utils.NodeID].(string) == "" {
- t.Error("Empty NodeID received")
- } else if status[utils.NodeID].(string) != node2 {
- t.Fatal("Did not do failover")
- }
-}
+// func TestRPCITRmtStatusFirstInitial(t *testing.T) {
+// if !*testRemoteRALs {
+// return
+// }
+// var status map[string]interface{}
+// if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+// t.Error(err)
+// } else if status[utils.NodeID].(string) == "" {
+// t.Error("Empty NodeID received")
+// }
+// if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil { // Make sure second time we land on the same instance
+// t.Error(err)
+// } else if status[utils.NodeID].(string) != node1 {
+// t.Errorf("Expecting:\n%s\nReceived:\n%s", node1, status[utils.NodeID].(string))
+// }
+// }
-func TestRPCITRmtStatusFirstFailback(t *testing.T) {
- if !*testRemoteRALs {
- return
- }
- fmt.Println("Ready for doing failback")
- remaining := 10
- for i := 0; i < remaining; i++ {
- fmt.Printf("\n\t%d", remaining-i)
- time.Sleep(time.Second)
- }
- fmt.Println("\n\nExecuting query ...")
- var status map[string]interface{}
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
- t.Error(err)
- } else if status[utils.NodeID].(string) == "" {
- t.Error("Empty NodeID received")
- } else if status[utils.NodeID].(string) == node2 {
- t.Fatal("Did not do failback")
- }
- if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
- t.Error(err)
- } else if status[utils.NodeID].(string) == "" {
- t.Error("Empty NodeID received")
- } else if status[utils.NodeID].(string) != node1 {
- t.Fatal("Did not do failback")
- }
-}
+// func TestRPCITRmtStatusFirstFailover(t *testing.T) {
+// if !*testRemoteRALs {
+// return
+// }
+// fmt.Println("Ready for doing failover")
+// remaining := 5
+// for i := 0; i < remaining; i++ {
+// fmt.Printf("\n\t%d", remaining-i)
+// time.Sleep(time.Second)
+// }
+// fmt.Println("\n\nExecuting query ...")
+// var status map[string]interface{}
+// if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+// t.Error(err)
+// } else if status[utils.NodeID].(string) == "" {
+// t.Error("Empty NodeID received")
+// } else if status[utils.NodeID].(string) == node1 {
+// t.Fatal("Did not failover")
+// }
+// if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+// t.Error(err)
+// } else if status[utils.NodeID].(string) == "" {
+// t.Error("Empty NodeID received")
+// } else if status[utils.NodeID].(string) != node2 {
+// t.Fatal("Did not do failover")
+// }
+// }
-func TestRPCITStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func TestRPCITRmtStatusFirstFailback(t *testing.T) {
+// if !*testRemoteRALs {
+// return
+// }
+// fmt.Println("Ready for doing failback")
+// remaining := 10
+// for i := 0; i < remaining; i++ {
+// fmt.Printf("\n\t%d", remaining-i)
+// time.Sleep(time.Second)
+// }
+// fmt.Println("\n\nExecuting query ...")
+// var status map[string]interface{}
+// if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+// t.Error(err)
+// } else if status[utils.NodeID].(string) == "" {
+// t.Error("Empty NodeID received")
+// } else if status[utils.NodeID].(string) == node2 {
+// t.Fatal("Did not do failback")
+// }
+// if err := rpcPoolFirst.Call(utils.CoreSv1Status, utils.TenantWithAPIOpts{}, &status); err != nil {
+// t.Error(err)
+// } else if status[utils.NodeID].(string) == "" {
+// t.Error("Empty NodeID received")
+// } else if status[utils.NodeID].(string) != node1 {
+// t.Fatal("Did not do failback")
+// }
+// }
+
+// func TestRPCITStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/sentinel_it_test.go b/general_tests/sentinel_it_test.go
index 5bd369a2c..2991b0a8d 100644
--- a/general_tests/sentinel_it_test.go
+++ b/general_tests/sentinel_it_test.go
@@ -20,288 +20,3 @@ along with this program. If not, see
*/
package general_tests
-
-import (
- "flag"
- "net/rpc"
- "os"
- "os/exec"
- "path"
- "reflect"
- "strconv"
- "testing"
-
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
-
-var (
- node1ConfigPath = path.Join(*dataDir, "redisSentinel", "node1.conf")
- node2ConfigPath = path.Join(*dataDir, "redisSentinel", "node2.conf")
- sentinel1ConfigPath = path.Join(*dataDir, "redisSentinel", "sentinel1.conf")
- sentinel2ConfigPath = path.Join(*dataDir, "redisSentinel", "sentinel2.conf")
- engineConfigPath = path.Join(*dataDir, "conf", "samples", "redisSentinel")
- sentinelConfig *config.CGRConfig
- sentinelRPC *rpc.Client
- node1Exec *exec.Cmd
- node2Exec *exec.Cmd
- stlExec1 *exec.Cmd
- stlExec2 *exec.Cmd
- redisSentinel = flag.Bool("redisSentinel", false, "Run tests with redis sentinel")
-
- sTestsRds = []func(t *testing.T){
- testRedisSentinelStartNodes,
- testRedisSentinelInitConfig,
- testRedisSentinelFlushDb,
- testRedisSentinelStartEngine,
- testRedisSentinelRPCCon,
- testRedisSentinelSetGetAttribute,
- testRedisSentinelInsertion,
- testRedisSentinelGetAttrAfterFailover,
- testRedisSentinelKillEngine,
- }
-)
-
-// Before running these tests make sure node1.conf, node2.conf, sentinel1.conf are the next
-// Node1 will be master and start at port 16379
-// Node2 will be slave of node1 and start at port 16380
-// Sentinel1 will be started at port 16381 and will watch Node1
-// Sentinel2 will be started at port 16382 and will watch Node1
-// Also make sure that redis process is stopped
-func TestRedisSentinel(t *testing.T) {
- if !*redisSentinel {
- return
- }
- switch *dbType {
- case utils.MetaMySQL:
- case utils.MetaInternal,
- utils.MetaMongo,
- utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sTestsRds {
- t.Run("TestRedisSentinel", stest)
- }
-}
-
-func testRedisSentinelStartNodes(t *testing.T) {
- if err := os.MkdirAll("/tmp/sentinel/", 0755); err != nil {
- t.Fatal("Error creating folder: /tmp/sentinel/ ", err)
- }
-
- node1Exec = exec.Command("redis-server", node1ConfigPath)
- if err := node1Exec.Start(); err != nil {
- t.Error(err)
- }
- node2Exec = exec.Command("redis-server", node2ConfigPath)
- if err := node2Exec.Start(); err != nil {
- t.Error(err)
- }
- stlExec1 = exec.Command("redis-sentinel", sentinel1ConfigPath)
- if err := stlExec1.Start(); err != nil {
- t.Error(err)
- }
- stlExec2 = exec.Command("redis-sentinel", sentinel2ConfigPath)
- if err := stlExec2.Start(); err != nil {
- t.Error(err)
- }
-}
-
-func testRedisSentinelInitConfig(t *testing.T) {
- var err error
- sentinelConfig, err = config.NewCGRConfigFromPath(engineConfigPath)
- if err != nil {
- t.Error(err)
- }
-}
-
-func testRedisSentinelFlushDb(t *testing.T) {
- if err := engine.InitDataDB(sentinelConfig); err != nil {
- t.Fatal(err)
- }
-}
-
-func testRedisSentinelStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(engineConfigPath, 2000); err != nil {
- t.Fatal(err)
- }
-}
-
-func testRedisSentinelRPCCon(t *testing.T) {
- var err error
- sentinelRPC, err = newRPCClient(sentinelConfig.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal(err)
- }
-}
-
-func testRedisSentinelSetGetAttribute(t *testing.T) {
- alsPrf := &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: "ApierTest",
- FilterIDs: []string{"*string:~*req.Account:1001", "*string:~*opts.*context:*sessions|*cdrs"},
- Attributes: []*engine.Attribute{
- {
- Path: utils.MetaReq + utils.NestingSep + utils.Subject,
- Value: config.NewRSRParsersMustCompile("1001", utils.InfieldSep),
- },
- },
- Weight: 20,
- }
- alsPrf.Compile()
- var result string
- if err := sentinelRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- var reply *engine.AttributeProfile
- if err := sentinelRPC.Call(utils.APIerSv1GetAttributeProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}, &reply); err != nil {
- t.Fatal(err)
- }
- reply.Compile()
- if !reflect.DeepEqual(alsPrf, reply) {
- t.Errorf("Expecting : %+v, received: %+v", alsPrf, reply)
- }
-}
-
-func testRedisSentinelInsertion(t *testing.T) {
- var nrFails1, nrFails2 int
- alsPrf := &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: "ApierTest",
- FilterIDs: []string{"*string:~*reqAccount:1001", "*string:~*opts.*context:*sessions|*cdrs"},
- Attributes: []*engine.Attribute{
- {
- Path: utils.MetaReq + utils.NestingSep + utils.Subject,
- Value: config.NewRSRParsersMustCompile("1001", utils.InfieldSep),
- },
- },
- Weight: 20,
- }
- orgiginID := alsPrf.ID + "_"
- index := 0
- var result string
- addFunc := func(t *testing.T, nrFail *int) {
- alsPrf.ID = orgiginID + strconv.Itoa(index)
- if err := sentinelRPC.Call(utils.APIerSv1SetAttributeProfile, alsPrf, &result); err != nil {
- if err.Error() == "SERVER_ERROR: EOF" {
- *nrFail = *nrFail + 1
- } else {
- t.Error(err)
- }
- }
- index++
- }
- forFunc1 := func(t *testing.T) {
- for i := 0; i < 25; i++ {
- t.Run("add", func(t *testing.T) {
- t.Parallel()
- addFunc(t, &nrFails1)
- })
- if i == 5 {
- t.Run("stop1", func(t *testing.T) {
- t.Parallel()
- if err := node1Exec.Process.Kill(); err != nil {
- t.Error(err)
- }
- if err := stlExec1.Process.Kill(); err != nil {
- t.Error(err)
- }
- })
- }
- if i == 10 {
- t.Run("stop2", func(t *testing.T) {
- t.Parallel()
- if err := node2Exec.Process.Kill(); err != nil {
- t.Error(err)
- }
- if err := stlExec2.Process.Kill(); err != nil {
- t.Error(err)
- }
- })
- }
- t.Run("add2", func(t *testing.T) {
- t.Parallel()
- addFunc(t, &nrFails1)
- })
- }
- }
- forFunc2 := func(t *testing.T) {
- for i := 0; i < 10; i++ {
- t.Run("add", func(t *testing.T) {
- t.Parallel()
- addFunc(t, &nrFails2)
- })
- t.Run("add2", func(t *testing.T) {
- t.Parallel()
- addFunc(t, &nrFails2)
- })
- }
- }
- t.Run("for1", forFunc1)
- if nrFails1 == 0 {
- t.Error("Fail tests in case of failover")
- }
- node1Exec = exec.Command("redis-server", node1ConfigPath)
- if err := node1Exec.Start(); err != nil {
- t.Error(err)
- }
- node2Exec = exec.Command("redis-server", node2ConfigPath)
- if err := node2Exec.Start(); err != nil {
- t.Error(err)
- }
- t.Run("for2", forFunc2)
- if nrFails2 > 19 {
- t.Errorf("Fail tests in case of failback ")
- }
-}
-
-// After we kill node1 check the data if was replicated in node2
-func testRedisSentinelGetAttrAfterFailover(t *testing.T) {
- alsPrf := &engine.AttributeProfile{
- Tenant: "cgrates.org",
- ID: "ApierTest",
- FilterIDs: []string{"*string:~*req.Account:1001", "*string:~*opts.*context:*sessions|*cdrs"},
- Attributes: []*engine.Attribute{
- {
- Path: utils.MetaReq + utils.NestingSep + utils.Subject,
- Value: config.NewRSRParsersMustCompile("1001", utils.InfieldSep),
- },
- },
- Weight: 20,
- }
- alsPrf.Compile()
- var reply *engine.AttributeProfile
- if err := sentinelRPC.Call(utils.APIerSv1GetAttributeProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "ApierTest"}, &reply); err != nil {
- t.Fatal(err)
- }
- reply.Compile()
- if !reflect.DeepEqual(alsPrf, reply) {
- t.Errorf("Expecting : %+v, received: %+v", alsPrf, reply)
- }
-}
-
-func testRedisSentinelKillEngine(t *testing.T) {
- if err := exec.Command("pkill", "redis-server").Run(); err != nil {
- t.Error(err)
- }
- if err := exec.Command("pkill", "redis-sentinel").Run(); err != nil {
- t.Error(err)
- }
- if err := exec.Command("pkill", "redis-ser").Run(); err != nil {
- t.Error(err)
- }
- if err := exec.Command("pkill", "redis-sen").Run(); err != nil {
- t.Error(err)
- }
-
- if err := engine.KillEngine(2000); err != nil {
- t.Error(err)
- }
-}
diff --git a/general_tests/session2_it_test.go b/general_tests/session2_it_test.go
index e40807646..f414631a8 100644
--- a/general_tests/session2_it_test.go
+++ b/general_tests/session2_it_test.go
@@ -21,278 +21,278 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "path"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- ses2CfgDir string
- ses2CfgPath string
- ses2Cfg *config.CGRConfig
- ses2RPC *rpc.Client
+// var (
+// ses2CfgDir string
+// ses2CfgPath string
+// ses2Cfg *config.CGRConfig
+// ses2RPC *rpc.Client
- ses2Tests = []func(t *testing.T){
- testSes2ItLoadConfig,
- testSes2ItResetDataDB,
- testSes2ItResetStorDb,
- testSes2ItStartEngine,
- testSes2ItRPCConn,
- testSes2ItLoadFromFolder,
- testSes2ItInitSession,
- testSes2ItAsActiveSessions,
- testSes2StirAuthenticate,
- testSes2StirInit,
- testSes2STIRAuthenticate,
- testSes2STIRIdentity,
- testSes2ItStopCgrEngine,
- }
-)
+// ses2Tests = []func(t *testing.T){
+// testSes2ItLoadConfig,
+// testSes2ItResetDataDB,
+// testSes2ItResetStorDb,
+// testSes2ItStartEngine,
+// testSes2ItRPCConn,
+// testSes2ItLoadFromFolder,
+// testSes2ItInitSession,
+// testSes2ItAsActiveSessions,
+// testSes2StirAuthenticate,
+// testSes2StirInit,
+// testSes2STIRAuthenticate,
+// testSes2STIRIdentity,
+// testSes2ItStopCgrEngine,
+// }
+// )
-func TestSes2It(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- ses2CfgDir = "tutinternal"
- case utils.MetaMySQL:
- ses2CfgDir = "tutmysql"
- case utils.MetaMongo:
- ses2CfgDir = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range ses2Tests {
- t.Run(ses2CfgDir, stest)
- }
-}
+// func TestSes2It(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// ses2CfgDir = "tutinternal"
+// case utils.MetaMySQL:
+// ses2CfgDir = "tutmysql"
+// case utils.MetaMongo:
+// ses2CfgDir = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range ses2Tests {
+// t.Run(ses2CfgDir, stest)
+// }
+// }
-func testSes2ItLoadConfig(t *testing.T) {
- ses2CfgPath = path.Join(*dataDir, "conf", "samples", ses2CfgDir)
- if ses2Cfg, err = config.NewCGRConfigFromPath(ses2CfgPath); err != nil {
- t.Error(err)
- }
-}
+// func testSes2ItLoadConfig(t *testing.T) {
+// ses2CfgPath = path.Join(*dataDir, "conf", "samples", ses2CfgDir)
+// if ses2Cfg, err = config.NewCGRConfigFromPath(ses2CfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testSes2ItResetDataDB(t *testing.T) {
- if err := engine.InitDataDB(ses2Cfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSes2ItResetDataDB(t *testing.T) {
+// if err := engine.InitDataDB(ses2Cfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSes2ItResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(ses2Cfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSes2ItResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(ses2Cfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSes2ItStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(ses2CfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testSes2ItStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(ses2CfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSes2ItRPCConn(t *testing.T) {
- var err error
- ses2RPC, err = newRPCClient(ses2Cfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testSes2ItRPCConn(t *testing.T) {
+// var err error
+// ses2RPC, err = newRPCClient(ses2Cfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSes2ItLoadFromFolder(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := ses2RPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- }
- time.Sleep(100 * time.Millisecond)
-}
+// func testSes2ItLoadFromFolder(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
+// if err := ses2RPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(100 * time.Millisecond)
+// }
-func testSes2ItInitSession(t *testing.T) {
- // Set balance
- attrSetBalance := utils.AttrSetBalance{
- Tenant: "cgrates.org",
- Account: "1001",
- BalanceType: utils.MetaVoice,
- Value: float64(time.Hour),
- Balance: map[string]interface{}{
- utils.ID: "TestDynamicDebitBalance",
- },
- }
- var reply string
- if err := ses2RPC.Call(utils.APIerSv2SetBalance,
- attrSetBalance, &reply); err != nil {
- t.Fatal(err)
- }
+// func testSes2ItInitSession(t *testing.T) {
+// // Set balance
+// attrSetBalance := utils.AttrSetBalance{
+// Tenant: "cgrates.org",
+// Account: "1001",
+// BalanceType: utils.MetaVoice,
+// Value: float64(time.Hour),
+// Balance: map[string]interface{}{
+// utils.ID: "TestDynamicDebitBalance",
+// },
+// }
+// var reply string
+// if err := ses2RPC.Call(utils.APIerSv2SetBalance,
+// attrSetBalance, &reply); err != nil {
+// t.Fatal(err)
+// }
- // Init session
- initArgs := &sessions.V1InitSessionArgs{
- InitSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: utils.UUIDSha1Prefix(),
- Event: map[string]interface{}{
- utils.EventName: "TEST_EVENT",
- utils.OriginID: utils.UUIDSha1Prefix(),
- utils.ToR: utils.MetaVoice,
- utils.Category: "call",
- utils.Tenant: "cgrates.org",
- utils.AccountField: "1001",
- utils.Subject: "1001",
- utils.Destination: "1002",
- utils.RequestType: utils.MetaPrepaid,
- utils.AnswerTime: time.Date(2016, time.January, 5, 18, 31, 05, 0, time.UTC),
- },
- },
- }
- var initRpl *sessions.V1InitSessionReply
- if err := ses2RPC.Call(utils.SessionSv1InitiateSession,
- initArgs, &initRpl); err != nil {
- t.Fatal(err)
- }
+// // Init session
+// initArgs := &sessions.V1InitSessionArgs{
+// InitSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: utils.UUIDSha1Prefix(),
+// Event: map[string]interface{}{
+// utils.EventName: "TEST_EVENT",
+// utils.OriginID: utils.UUIDSha1Prefix(),
+// utils.ToR: utils.MetaVoice,
+// utils.Category: "call",
+// utils.Tenant: "cgrates.org",
+// utils.AccountField: "1001",
+// utils.Subject: "1001",
+// utils.Destination: "1002",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AnswerTime: time.Date(2016, time.January, 5, 18, 31, 05, 0, time.UTC),
+// },
+// },
+// }
+// var initRpl *sessions.V1InitSessionReply
+// if err := ses2RPC.Call(utils.SessionSv1InitiateSession,
+// initArgs, &initRpl); err != nil {
+// t.Fatal(err)
+// }
-}
+// }
-func testSes2ItAsActiveSessions(t *testing.T) {
- var count int
- if err := ses2RPC.Call(utils.SessionSv1GetActiveSessionsCount, utils.SessionFilter{
- Filters: []string{"*string:~*req.Account:1001"},
- }, &count); err != nil {
- t.Fatal(err)
- } else if count != 2 { // 2 chargers
- t.Errorf("Expected 2 session received %v session(s)", count)
- }
- if err := ses2RPC.Call(utils.SessionSv1GetActiveSessionsCount, utils.SessionFilter{
- Filters: []string{"*string:~*req.Account:1002"},
- }, &count); err != nil {
- t.Fatal(err)
- } else if count != 0 {
- t.Errorf("Expected 0 session received %v session(s)", count)
- }
-}
+// func testSes2ItAsActiveSessions(t *testing.T) {
+// var count int
+// if err := ses2RPC.Call(utils.SessionSv1GetActiveSessionsCount, utils.SessionFilter{
+// Filters: []string{"*string:~*req.Account:1001"},
+// }, &count); err != nil {
+// t.Fatal(err)
+// } else if count != 2 { // 2 chargers
+// t.Errorf("Expected 2 session received %v session(s)", count)
+// }
+// if err := ses2RPC.Call(utils.SessionSv1GetActiveSessionsCount, utils.SessionFilter{
+// Filters: []string{"*string:~*req.Account:1002"},
+// }, &count); err != nil {
+// t.Fatal(err)
+// } else if count != 0 {
+// t.Errorf("Expected 0 session received %v session(s)", count)
+// }
+// }
-func testSes2ItStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testSes2ItStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
-func testSes2StirAuthenticate(t *testing.T) {
- args := &sessions.V1ProcessEventArgs{
- Flags: []string{utils.MetaSTIRAuthenticate},
+// func testSes2StirAuthenticate(t *testing.T) {
+// args := &sessions.V1ProcessEventArgs{
+// Flags: []string{utils.MetaSTIRAuthenticate},
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testSes2StirAuthorize",
- Event: map[string]interface{}{
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "testSes2StirAuthorize",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "ANY2CNT",
- utils.Destination: "1002",
- utils.Usage: 10 * time.Minute,
- },
- APIOpts: map[string]interface{}{
- utils.OptsStirIdentity: "eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiL3Vzci9zaGFyZS9jZ3JhdGVzL3N0aXIvc3Rpcl9wdWJrZXkucGVtIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxMDAyIl19LCJpYXQiOjE1ODcwMzg4MDIsIm9yaWciOnsidG4iOiIxMDAxIn0sIm9yaWdpZCI6IjEyMzQ1NiJ9.cMEMlFnfyTu8uxfeU4RoZTamA7ifFT9Ibwrvi1_LKwL2xAU6fZ_CSIxKbtyOpNhM_sV03x7CfA_v0T4sHkifzg;info=;ppt=shaken",
- },
- },
- }
- var rply sessions.V1ProcessEventReply
- if err := ses2RPC.Call(utils.SessionSv1ProcessEvent,
- args, &rply); err != nil { // no error verificated with success
- t.Error(err)
- }
- // altered originator
- args.APIOpts[utils.OptsStirOriginatorTn] = "1005"
- if err := ses2RPC.Call(utils.SessionSv1ProcessEvent,
- args, &rply); err == nil || err.Error() != "*stir_authenticate: wrong originatorTn" {
- t.Errorf("Expected error :%q ,receved: %v", "*stir_authenticate: wrong originatorTn", err)
- }
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testSes2StirAuthorize",
+// Event: map[string]interface{}{
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "testSes2StirAuthorize",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "ANY2CNT",
+// utils.Destination: "1002",
+// utils.Usage: 10 * time.Minute,
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsStirIdentity: "eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiL3Vzci9zaGFyZS9jZ3JhdGVzL3N0aXIvc3Rpcl9wdWJrZXkucGVtIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxMDAyIl19LCJpYXQiOjE1ODcwMzg4MDIsIm9yaWciOnsidG4iOiIxMDAxIn0sIm9yaWdpZCI6IjEyMzQ1NiJ9.cMEMlFnfyTu8uxfeU4RoZTamA7ifFT9Ibwrvi1_LKwL2xAU6fZ_CSIxKbtyOpNhM_sV03x7CfA_v0T4sHkifzg;info=;ppt=shaken",
+// },
+// },
+// }
+// var rply sessions.V1ProcessEventReply
+// if err := ses2RPC.Call(utils.SessionSv1ProcessEvent,
+// args, &rply); err != nil { // no error verificated with success
+// t.Error(err)
+// }
+// // altered originator
+// args.APIOpts[utils.OptsStirOriginatorTn] = "1005"
+// if err := ses2RPC.Call(utils.SessionSv1ProcessEvent,
+// args, &rply); err == nil || err.Error() != "*stir_authenticate: wrong originatorTn" {
+// t.Errorf("Expected error :%q ,receved: %v", "*stir_authenticate: wrong originatorTn", err)
+// }
- // altered identity
- args.APIOpts[utils.OptsStirIdentity] = "eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiL3Vzci9zaGFyZS9jZ3JhdGVzL3N0aXIvc3Rpcl9wdWJrZXkucGVtIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxMDAyIl19LCJpYXQiOjE1ODcwMzg4MDIsIm9yaWciOnsidG4iOiIxMDA1In0sIm9yaWdpZCI6IjEyMzQ1NiJ9.cMEMlFnfyTu8uxfeU4RoZTamA7ifFT9Ibwrvi1_LKwL2xAU6fZ_CSIxKbtyOpNhM_sV03x7CfA_v0T4sHkifzg;info=;ppt=shaken"
- if err := ses2RPC.Call(utils.SessionSv1ProcessEvent,
- args, &rply); err == nil || err.Error() != "*stir_authenticate: crypto/ecdsa: verification error" {
- t.Errorf("Expected error :%q ,receved: %v", "*stir_authenticate: crypto/ecdsa: verification error", err)
- }
-}
+// // altered identity
+// args.APIOpts[utils.OptsStirIdentity] = "eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiL3Vzci9zaGFyZS9jZ3JhdGVzL3N0aXIvc3Rpcl9wdWJrZXkucGVtIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxMDAyIl19LCJpYXQiOjE1ODcwMzg4MDIsIm9yaWciOnsidG4iOiIxMDA1In0sIm9yaWdpZCI6IjEyMzQ1NiJ9.cMEMlFnfyTu8uxfeU4RoZTamA7ifFT9Ibwrvi1_LKwL2xAU6fZ_CSIxKbtyOpNhM_sV03x7CfA_v0T4sHkifzg;info=;ppt=shaken"
+// if err := ses2RPC.Call(utils.SessionSv1ProcessEvent,
+// args, &rply); err == nil || err.Error() != "*stir_authenticate: crypto/ecdsa: verification error" {
+// t.Errorf("Expected error :%q ,receved: %v", "*stir_authenticate: crypto/ecdsa: verification error", err)
+// }
+// }
-func testSes2StirInit(t *testing.T) {
- args := &sessions.V1ProcessEventArgs{
- Flags: []string{utils.MetaSTIRInitiate},
+// func testSes2StirInit(t *testing.T) {
+// args := &sessions.V1ProcessEventArgs{
+// Flags: []string{utils.MetaSTIRInitiate},
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testSes2StirInit",
- Event: map[string]interface{}{
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "testSes2StirInit",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "ANY2CNT",
- utils.Destination: "1002",
- utils.Usage: 10 * time.Minute,
- },
- APIOpts: map[string]interface{}{
- utils.OptsStirPublicKeyPath: "/usr/share/cgrates/stir/stir_pubkey.pem",
- utils.OptsStirPrivateKeyPath: "/usr/share/cgrates/stir/stir_privatekey.pem",
- },
- },
- }
- var rply sessions.V1ProcessEventReply
- if err := ses2RPC.Call(utils.SessionSv1ProcessEvent,
- args, &rply); err != nil { // no error verificated with success
- t.Error(err)
- }
- if err := sessions.AuthStirShaken(rply.STIRIdentity[utils.MetaRaw], "1001", "", "1002", "", utils.NewStringSet([]string{"A"}), 10*time.Minute); err != nil {
- t.Fatal(err)
- }
-}
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testSes2StirInit",
+// Event: map[string]interface{}{
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "testSes2StirInit",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "ANY2CNT",
+// utils.Destination: "1002",
+// utils.Usage: 10 * time.Minute,
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsStirPublicKeyPath: "/usr/share/cgrates/stir/stir_pubkey.pem",
+// utils.OptsStirPrivateKeyPath: "/usr/share/cgrates/stir/stir_privatekey.pem",
+// },
+// },
+// }
+// var rply sessions.V1ProcessEventReply
+// if err := ses2RPC.Call(utils.SessionSv1ProcessEvent,
+// args, &rply); err != nil { // no error verificated with success
+// t.Error(err)
+// }
+// if err := sessions.AuthStirShaken(rply.STIRIdentity[utils.MetaRaw], "1001", "", "1002", "", utils.NewStringSet([]string{"A"}), 10*time.Minute); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSes2STIRAuthenticate(t *testing.T) {
- var rply string
- if err := ses2RPC.Call(utils.SessionSv1STIRAuthenticate,
- &sessions.V1STIRAuthenticateArgs{
- Attest: []string{"A"},
- PayloadMaxDuration: "-1",
- DestinationTn: "1002",
- Identity: "eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiL3Vzci9zaGFyZS9jZ3JhdGVzL3N0aXIvc3Rpcl9wdWJrZXkucGVtIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxMDAyIl19LCJpYXQiOjE1ODcwMzg4MDIsIm9yaWciOnsidG4iOiIxMDAxIn0sIm9yaWdpZCI6IjEyMzQ1NiJ9.cMEMlFnfyTu8uxfeU4RoZTamA7ifFT9Ibwrvi1_LKwL2xAU6fZ_CSIxKbtyOpNhM_sV03x7CfA_v0T4sHkifzg;info=;ppt=shaken",
- OriginatorTn: "1001",
- }, &rply); err != nil {
- t.Fatal(err)
- } else if rply != utils.OK {
- t.Errorf("Expected: %s ,received: %s", utils.OK, rply)
- }
-}
+// func testSes2STIRAuthenticate(t *testing.T) {
+// var rply string
+// if err := ses2RPC.Call(utils.SessionSv1STIRAuthenticate,
+// &sessions.V1STIRAuthenticateArgs{
+// Attest: []string{"A"},
+// PayloadMaxDuration: "-1",
+// DestinationTn: "1002",
+// Identity: "eyJhbGciOiJFUzI1NiIsInBwdCI6InNoYWtlbiIsInR5cCI6InBhc3Nwb3J0IiwieDV1IjoiL3Vzci9zaGFyZS9jZ3JhdGVzL3N0aXIvc3Rpcl9wdWJrZXkucGVtIn0.eyJhdHRlc3QiOiJBIiwiZGVzdCI6eyJ0biI6WyIxMDAyIl19LCJpYXQiOjE1ODcwMzg4MDIsIm9yaWciOnsidG4iOiIxMDAxIn0sIm9yaWdpZCI6IjEyMzQ1NiJ9.cMEMlFnfyTu8uxfeU4RoZTamA7ifFT9Ibwrvi1_LKwL2xAU6fZ_CSIxKbtyOpNhM_sV03x7CfA_v0T4sHkifzg;info=;ppt=shaken",
+// OriginatorTn: "1001",
+// }, &rply); err != nil {
+// t.Fatal(err)
+// } else if rply != utils.OK {
+// t.Errorf("Expected: %s ,received: %s", utils.OK, rply)
+// }
+// }
-func testSes2STIRIdentity(t *testing.T) {
- payload := &utils.PASSporTPayload{
- Dest: utils.PASSporTDestinationsIdentity{Tn: []string{"1002"}},
- IAT: 1587019822,
- Orig: utils.PASSporTOriginsIdentity{Tn: "1001"},
- OrigID: "123456",
- }
- args := &sessions.V1STIRIdentityArgs{
- Payload: payload,
- PublicKeyPath: "/usr/share/cgrates/stir/stir_pubkey.pem",
- PrivateKeyPath: "/usr/share/cgrates/stir/stir_privatekey.pem",
- OverwriteIAT: true,
- }
- var rply string
- if err := ses2RPC.Call(utils.SessionSv1STIRIdentity,
- args, &rply); err != nil {
- t.Error(err)
- }
- if err := sessions.AuthStirShaken(rply, "1001", "", "1002", "", utils.NewStringSet([]string{"A"}), 10*time.Minute); err != nil {
- t.Fatal(err)
- }
-}
+// func testSes2STIRIdentity(t *testing.T) {
+// payload := &utils.PASSporTPayload{
+// Dest: utils.PASSporTDestinationsIdentity{Tn: []string{"1002"}},
+// IAT: 1587019822,
+// Orig: utils.PASSporTOriginsIdentity{Tn: "1001"},
+// OrigID: "123456",
+// }
+// args := &sessions.V1STIRIdentityArgs{
+// Payload: payload,
+// PublicKeyPath: "/usr/share/cgrates/stir/stir_pubkey.pem",
+// PrivateKeyPath: "/usr/share/cgrates/stir/stir_privatekey.pem",
+// OverwriteIAT: true,
+// }
+// var rply string
+// if err := ses2RPC.Call(utils.SessionSv1STIRIdentity,
+// args, &rply); err != nil {
+// t.Error(err)
+// }
+// if err := sessions.AuthStirShaken(rply, "1001", "", "1002", "", utils.NewStringSet([]string{"A"}), 10*time.Minute); err != nil {
+// t.Fatal(err)
+// }
+// }
diff --git a/general_tests/session3_it_test.go b/general_tests/session3_it_test.go
index 852d8710a..96f108f2c 100644
--- a/general_tests/session3_it_test.go
+++ b/general_tests/session3_it_test.go
@@ -21,402 +21,402 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "path"
- "reflect"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "reflect"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- ses3CfgDir string
- ses3CfgPath string
- ses3Cfg *config.CGRConfig
- ses3RPC *rpc.Client
+// var (
+// ses3CfgDir string
+// ses3CfgPath string
+// ses3Cfg *config.CGRConfig
+// ses3RPC *rpc.Client
- ses3Tests = []func(t *testing.T){
- testSes3ItLoadConfig,
- testSes3ItResetDataDB,
- testSes3ItResetStorDb,
- testSes3ItStartEngine,
- testSes3ItRPCConn,
- testSes3ItLoadFromFolder,
- testSes3ItProcessEvent,
- testSes3ItThreshold1002After,
- testSes3ItStatMetricsAfter,
- testSes3ItProcessEvent,
- testSes3ItThreshold1002After2,
- testSes3ItStatMetricsAfter2,
+// ses3Tests = []func(t *testing.T){
+// testSes3ItLoadConfig,
+// testSes3ItResetDataDB,
+// testSes3ItResetStorDb,
+// testSes3ItStartEngine,
+// testSes3ItRPCConn,
+// testSes3ItLoadFromFolder,
+// testSes3ItProcessEvent,
+// testSes3ItThreshold1002After,
+// testSes3ItStatMetricsAfter,
+// testSes3ItProcessEvent,
+// testSes3ItThreshold1002After2,
+// testSes3ItStatMetricsAfter2,
- testSes3ItAddVoiceBalance,
- testSes3ItTerminatWithoutInit,
- testSes3ItBalance,
- testSes3ItCDRs,
+// testSes3ItAddVoiceBalance,
+// testSes3ItTerminatWithoutInit,
+// testSes3ItBalance,
+// testSes3ItCDRs,
- testSes3ItStopCgrEngine,
- }
-)
+// testSes3ItStopCgrEngine,
+// }
+// )
-func TestSes3ItSessions(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- ses3CfgDir = "sessions_internal"
- case utils.MetaMySQL:
- ses3CfgDir = "sessions_mysql"
- case utils.MetaMongo:
- ses3CfgDir = "sessions_mongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range ses3Tests {
- t.Run(ses3CfgDir, stest)
- }
-}
+// func TestSes3ItSessions(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// ses3CfgDir = "sessions_internal"
+// case utils.MetaMySQL:
+// ses3CfgDir = "sessions_mysql"
+// case utils.MetaMongo:
+// ses3CfgDir = "sessions_mongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range ses3Tests {
+// t.Run(ses3CfgDir, stest)
+// }
+// }
-func testSes3ItLoadConfig(t *testing.T) {
- ses3CfgPath = path.Join(*dataDir, "conf", "samples", ses3CfgDir)
- if ses3Cfg, err = config.NewCGRConfigFromPath(ses3CfgPath); err != nil {
- t.Error(err)
- }
-}
+// func testSes3ItLoadConfig(t *testing.T) {
+// ses3CfgPath = path.Join(*dataDir, "conf", "samples", ses3CfgDir)
+// if ses3Cfg, err = config.NewCGRConfigFromPath(ses3CfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testSes3ItResetDataDB(t *testing.T) {
- if err := engine.InitDataDB(ses3Cfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSes3ItResetDataDB(t *testing.T) {
+// if err := engine.InitDataDB(ses3Cfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSes3ItResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(ses3Cfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSes3ItResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(ses3Cfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSes3ItStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(ses3CfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testSes3ItStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(ses3CfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSes3ItRPCConn(t *testing.T) {
- var err error
- ses3RPC, err = newRPCClient(ses3Cfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testSes3ItRPCConn(t *testing.T) {
+// var err error
+// ses3RPC, err = newRPCClient(ses3Cfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSes3ItLoadFromFolder(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := ses3RPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- }
- time.Sleep(100 * time.Millisecond)
-}
+// func testSes3ItLoadFromFolder(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
+// if err := ses3RPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(100 * time.Millisecond)
+// }
-func testSes3ItProcessEvent(t *testing.T) {
- initUsage := 5 * time.Minute
- args := sessions.V1ProcessMessageArgs{
- AllocateResources: true,
- Debit: true,
- GetAttributes: true,
- ProcessThresholds: true,
- ProcessStats: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestSSv1ItProcessEvent",
- Event: map[string]interface{}{
- utils.CGRID: "c87609aa1cb6e9529ab1836cfeeebaab7aa7ebaf",
- utils.Tenant: "cgrates.org",
- utils.Category: "call",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestSSv1It2",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: initUsage,
- },
- APIOpts: map[string]interface{}{
- utils.OptsAPIKey: "ses12345",
- },
- },
- }
- var rply sessions.V1ProcessMessageReply
- if err := ses3RPC.Call(utils.SessionSv1ProcessMessage,
- args, &rply); err != nil {
- t.Fatal(err)
- }
- if rply.MaxUsage == nil || *rply.MaxUsage != initUsage {
- t.Errorf("Unexpected MaxUsage: %v", rply.MaxUsage)
- }
- if *rply.ResourceAllocation != "RES_ACNT_1001" {
- t.Errorf("Unexpected ResourceAllocation: %s", *rply.ResourceAllocation)
- }
- eAttrs := &engine.AttrSProcessEventReply{
- MatchedProfiles: []string{"cgrates.org:ATTR_ACNT_1001"},
- AlteredFields: []string{"*req.OfficeGroup"},
+// func testSes3ItProcessEvent(t *testing.T) {
+// initUsage := 5 * time.Minute
+// args := sessions.V1ProcessMessageArgs{
+// AllocateResources: true,
+// Debit: true,
+// GetAttributes: true,
+// ProcessThresholds: true,
+// ProcessStats: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestSSv1ItProcessEvent",
+// Event: map[string]interface{}{
+// utils.CGRID: "c87609aa1cb6e9529ab1836cfeeebaab7aa7ebaf",
+// utils.Tenant: "cgrates.org",
+// utils.Category: "call",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestSSv1It2",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: initUsage,
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsAPIKey: "ses12345",
+// },
+// },
+// }
+// var rply sessions.V1ProcessMessageReply
+// if err := ses3RPC.Call(utils.SessionSv1ProcessMessage,
+// args, &rply); err != nil {
+// t.Fatal(err)
+// }
+// if rply.MaxUsage == nil || *rply.MaxUsage != initUsage {
+// t.Errorf("Unexpected MaxUsage: %v", rply.MaxUsage)
+// }
+// if *rply.ResourceAllocation != "RES_ACNT_1001" {
+// t.Errorf("Unexpected ResourceAllocation: %s", *rply.ResourceAllocation)
+// }
+// eAttrs := &engine.AttrSProcessEventReply{
+// MatchedProfiles: []string{"cgrates.org:ATTR_ACNT_1001"},
+// AlteredFields: []string{"*req.OfficeGroup"},
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestSSv1ItProcessEvent",
- Event: map[string]interface{}{
- utils.CGRID: "c87609aa1cb6e9529ab1836cfeeebaab7aa7ebaf",
- utils.Tenant: "cgrates.org",
- utils.Category: "call",
- utils.ToR: utils.MetaVoice,
- utils.AccountField: "1001",
- utils.Destination: "1002",
- "OfficeGroup": "Marketing",
- utils.OriginID: "TestSSv1It2",
- utils.RequestType: utils.MetaPrepaid,
- utils.SetupTime: "2018-01-07T17:00:00Z",
- utils.AnswerTime: "2018-01-07T17:00:10Z",
- utils.Usage: 300000000000.0,
- },
- APIOpts: map[string]interface{}{
- utils.Subsys: utils.MetaSessionS,
- utils.OptsAPIKey: "ses12345",
- utils.MetaEventType: utils.StatUpdate,
- },
- },
- }
- if *encoding == utils.MetaGOB {
- eAttrs.CGREvent.Event[utils.Usage] = 5 * time.Minute
- eAttrs.CGREvent.Event[utils.SetupTime], _ = utils.IfaceAsTime("2018-01-07T17:00:00Z", "")
- eAttrs.CGREvent.Event[utils.AnswerTime], _ = utils.IfaceAsTime("2018-01-07T17:00:10Z", "")
- }
- if !reflect.DeepEqual(*eAttrs, *rply.Attributes) {
- t.Errorf("expecting: %+v, received: %+v",
- utils.ToJSON(eAttrs), utils.ToJSON(rply.Attributes))
- }
-}
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestSSv1ItProcessEvent",
+// Event: map[string]interface{}{
+// utils.CGRID: "c87609aa1cb6e9529ab1836cfeeebaab7aa7ebaf",
+// utils.Tenant: "cgrates.org",
+// utils.Category: "call",
+// utils.ToR: utils.MetaVoice,
+// utils.AccountField: "1001",
+// utils.Destination: "1002",
+// "OfficeGroup": "Marketing",
+// utils.OriginID: "TestSSv1It2",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.SetupTime: "2018-01-07T17:00:00Z",
+// utils.AnswerTime: "2018-01-07T17:00:10Z",
+// utils.Usage: 300000000000.0,
+// },
+// APIOpts: map[string]interface{}{
+// utils.Subsys: utils.MetaSessionS,
+// utils.OptsAPIKey: "ses12345",
+// utils.MetaEventType: utils.StatUpdate,
+// },
+// },
+// }
+// if *encoding == utils.MetaGOB {
+// eAttrs.CGREvent.Event[utils.Usage] = 5 * time.Minute
+// eAttrs.CGREvent.Event[utils.SetupTime], _ = utils.IfaceAsTime("2018-01-07T17:00:00Z", "")
+// eAttrs.CGREvent.Event[utils.AnswerTime], _ = utils.IfaceAsTime("2018-01-07T17:00:10Z", "")
+// }
+// if !reflect.DeepEqual(*eAttrs, *rply.Attributes) {
+// t.Errorf("expecting: %+v, received: %+v",
+// utils.ToJSON(eAttrs), utils.ToJSON(rply.Attributes))
+// }
+// }
-func testSes3ItThreshold1002After(t *testing.T) {
- var td engine.Threshold
- eTd := engine.Threshold{Tenant: "cgrates.org", ID: "THD_ACNT_1001", Hits: 1}
- if err := ses3RPC.Call(utils.ThresholdSv1GetThreshold,
- &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}}, &td); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(eTd.Tenant, td.Tenant) {
- t.Errorf("expecting: %+v, received: %+v", eTd.Tenant, td.Tenant)
- } else if !reflect.DeepEqual(eTd.ID, td.ID) {
- t.Errorf("expecting: %+v, received: %+v", eTd.ID, td.ID)
- } else if !reflect.DeepEqual(eTd.Hits, td.Hits) {
- t.Errorf("expecting: %+v, received: %+v", eTd.Hits, td.Hits)
- }
-}
+// func testSes3ItThreshold1002After(t *testing.T) {
+// var td engine.Threshold
+// eTd := engine.Threshold{Tenant: "cgrates.org", ID: "THD_ACNT_1001", Hits: 1}
+// if err := ses3RPC.Call(utils.ThresholdSv1GetThreshold,
+// &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}}, &td); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(eTd.Tenant, td.Tenant) {
+// t.Errorf("expecting: %+v, received: %+v", eTd.Tenant, td.Tenant)
+// } else if !reflect.DeepEqual(eTd.ID, td.ID) {
+// t.Errorf("expecting: %+v, received: %+v", eTd.ID, td.ID)
+// } else if !reflect.DeepEqual(eTd.Hits, td.Hits) {
+// t.Errorf("expecting: %+v, received: %+v", eTd.Hits, td.Hits)
+// }
+// }
-func testSes3ItStatMetricsAfter(t *testing.T) {
- var metrics map[string]string
- statMetrics := map[string]string{
- utils.MetaACD: "5m0s",
- utils.MetaASR: "100%",
- utils.MetaTCD: "5m0s",
- }
+// func testSes3ItStatMetricsAfter(t *testing.T) {
+// var metrics map[string]string
+// statMetrics := map[string]string{
+// utils.MetaACD: "5m0s",
+// utils.MetaASR: "100%",
+// utils.MetaTCD: "5m0s",
+// }
- if err := ses3RPC.Call(utils.StatSv1GetQueueStringMetrics,
- &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_1"}}, &metrics); err != nil {
- t.Error(err)
- }
- if !reflect.DeepEqual(statMetrics, metrics) {
- t.Errorf("expecting: %+v, received reply: %s", statMetrics, metrics)
- }
-}
+// if err := ses3RPC.Call(utils.StatSv1GetQueueStringMetrics,
+// &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_1"}}, &metrics); err != nil {
+// t.Error(err)
+// }
+// if !reflect.DeepEqual(statMetrics, metrics) {
+// t.Errorf("expecting: %+v, received reply: %s", statMetrics, metrics)
+// }
+// }
-func testSes3ItThreshold1002After2(t *testing.T) {
- var td engine.Threshold
- eTd := engine.Threshold{Tenant: "cgrates.org", ID: "THD_ACNT_1001", Hits: 2}
- if err := ses3RPC.Call(utils.ThresholdSv1GetThreshold,
- &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}}, &td); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(eTd.Tenant, td.Tenant) {
- t.Errorf("expecting: %+v, received: %+v", eTd.Tenant, td.Tenant)
- } else if !reflect.DeepEqual(eTd.ID, td.ID) {
- t.Errorf("expecting: %+v, received: %+v", eTd.ID, td.ID)
- } else if !reflect.DeepEqual(eTd.Hits, td.Hits) {
- t.Errorf("expecting: %+v, received: %+v", eTd.Hits, td.Hits)
- }
-}
+// func testSes3ItThreshold1002After2(t *testing.T) {
+// var td engine.Threshold
+// eTd := engine.Threshold{Tenant: "cgrates.org", ID: "THD_ACNT_1001", Hits: 2}
+// if err := ses3RPC.Call(utils.ThresholdSv1GetThreshold,
+// &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "THD_ACNT_1001"}}, &td); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(eTd.Tenant, td.Tenant) {
+// t.Errorf("expecting: %+v, received: %+v", eTd.Tenant, td.Tenant)
+// } else if !reflect.DeepEqual(eTd.ID, td.ID) {
+// t.Errorf("expecting: %+v, received: %+v", eTd.ID, td.ID)
+// } else if !reflect.DeepEqual(eTd.Hits, td.Hits) {
+// t.Errorf("expecting: %+v, received: %+v", eTd.Hits, td.Hits)
+// }
+// }
-func testSes3ItStatMetricsAfter2(t *testing.T) {
- var metrics map[string]string
- statMetrics := map[string]string{
- utils.MetaACD: "5m0s",
- utils.MetaASR: "100%",
- utils.MetaTCD: "10m0s",
- }
+// func testSes3ItStatMetricsAfter2(t *testing.T) {
+// var metrics map[string]string
+// statMetrics := map[string]string{
+// utils.MetaACD: "5m0s",
+// utils.MetaASR: "100%",
+// utils.MetaTCD: "10m0s",
+// }
- if err := ses3RPC.Call(utils.StatSv1GetQueueStringMetrics,
- &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_1"}}, &metrics); err != nil {
- t.Error(err)
- }
- if !reflect.DeepEqual(statMetrics, metrics) {
- t.Errorf("expecting: %+v, received reply: %s", statMetrics, metrics)
- }
-}
+// if err := ses3RPC.Call(utils.StatSv1GetQueueStringMetrics,
+// &utils.TenantIDWithAPIOpts{TenantID: &utils.TenantID{Tenant: "cgrates.org", ID: "Stat_1"}}, &metrics); err != nil {
+// t.Error(err)
+// }
+// if !reflect.DeepEqual(statMetrics, metrics) {
+// t.Errorf("expecting: %+v, received reply: %s", statMetrics, metrics)
+// }
+// }
-func testSes3ItAddVoiceBalance(t *testing.T) {
- attrSetBalance := utils.AttrSetBalance{
- Tenant: "cgrates.org",
- Account: "1002",
- BalanceType: utils.MetaVoice,
- Value: 5 * float64(time.Second),
- Balance: map[string]interface{}{
- utils.ID: "TestDynamicDebitBalance",
- utils.RatingSubject: "*zero5ms",
- },
- }
- var reply string
- if err := ses3RPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Received: %s", reply)
- }
- var acnt *engine.Account
- attrs := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1002",
- }
- if err := ses3RPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
- t.Error(err)
- } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != float64(5*time.Second) {
- t.Errorf("Expecting: %v, received: %v",
- float64(5*time.Second), rply)
- }
-}
+// func testSes3ItAddVoiceBalance(t *testing.T) {
+// attrSetBalance := utils.AttrSetBalance{
+// Tenant: "cgrates.org",
+// Account: "1002",
+// BalanceType: utils.MetaVoice,
+// Value: 5 * float64(time.Second),
+// Balance: map[string]interface{}{
+// utils.ID: "TestDynamicDebitBalance",
+// utils.RatingSubject: "*zero5ms",
+// },
+// }
+// var reply string
+// if err := ses3RPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Received: %s", reply)
+// }
+// var acnt *engine.Account
+// attrs := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1002",
+// }
+// if err := ses3RPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+// t.Error(err)
+// } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != float64(5*time.Second) {
+// t.Errorf("Expecting: %v, received: %v",
+// float64(5*time.Second), rply)
+// }
+// }
-func testSes3ItTerminatWithoutInit(t *testing.T) {
- go func() { // used in a gorutine to not block the test
- // because it needs to call initSession when the call for Teminate is still active
- args := &sessions.V1TerminateSessionArgs{
- TerminateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestSesItUpdateSession",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.Category: "call",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestTerminate",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1002",
- utils.Subject: "1001",
- utils.Destination: "1001",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 2 * time.Second,
- },
- },
- }
- var rply string
- if err := ses3RPC.Call(utils.SessionSv1TerminateSession,
- args, &rply); err != nil {
- t.Error(err)
- }
- if rply != utils.OK {
- t.Errorf("Unexpected reply: %s", rply)
- }
- }()
+// func testSes3ItTerminatWithoutInit(t *testing.T) {
+// go func() { // used in a gorutine to not block the test
+// // because it needs to call initSession when the call for Teminate is still active
+// args := &sessions.V1TerminateSessionArgs{
+// TerminateSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestSesItUpdateSession",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.Category: "call",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestTerminate",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1002",
+// utils.Subject: "1001",
+// utils.Destination: "1001",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 2 * time.Second,
+// },
+// },
+// }
+// var rply string
+// if err := ses3RPC.Call(utils.SessionSv1TerminateSession,
+// args, &rply); err != nil {
+// t.Error(err)
+// }
+// if rply != utils.OK {
+// t.Errorf("Unexpected reply: %s", rply)
+// }
+// }()
- time.Sleep(3 * time.Millisecond)
- args1 := &sessions.V1InitSessionArgs{
- InitSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestSesItInitiateSession",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.Category: "call",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestTerminate",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1002",
- utils.Subject: "1001",
- utils.Destination: "1001",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 5 * time.Second,
- },
- },
- }
- var rply1 sessions.V1InitSessionReply
- if err := ses3RPC.Call(utils.SessionSv1InitiateSession,
- args1, &rply1); err != nil {
- t.Error(err)
- return
- } else if rply1.MaxUsage != nil && *rply1.MaxUsage != 0 {
- t.Errorf("Unexpected MaxUsage: %v", rply1.MaxUsage)
- }
- time.Sleep(5 * time.Millisecond)
- aSessions := make([]*sessions.ExternalSession, 0)
- if err := ses3RPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
-}
-func testSes3ItBalance(t *testing.T) {
- time.Sleep(10 * time.Millisecond)
- var acnt engine.Account
- attrs := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1002",
- }
- if err := ses3RPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
- t.Error(err)
- } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != float64(3*time.Second) {
- t.Errorf("Expecting: %v, received: %v",
- 3*time.Second, rply)
- }
-}
+// time.Sleep(3 * time.Millisecond)
+// args1 := &sessions.V1InitSessionArgs{
+// InitSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestSesItInitiateSession",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.Category: "call",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestTerminate",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1002",
+// utils.Subject: "1001",
+// utils.Destination: "1001",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 5 * time.Second,
+// },
+// },
+// }
+// var rply1 sessions.V1InitSessionReply
+// if err := ses3RPC.Call(utils.SessionSv1InitiateSession,
+// args1, &rply1); err != nil {
+// t.Error(err)
+// return
+// } else if rply1.MaxUsage != nil && *rply1.MaxUsage != 0 {
+// t.Errorf("Unexpected MaxUsage: %v", rply1.MaxUsage)
+// }
+// time.Sleep(5 * time.Millisecond)
+// aSessions := make([]*sessions.ExternalSession, 0)
+// if err := ses3RPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// }
+// func testSes3ItBalance(t *testing.T) {
+// time.Sleep(10 * time.Millisecond)
+// var acnt engine.Account
+// attrs := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1002",
+// }
+// if err := ses3RPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+// t.Error(err)
+// } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != float64(3*time.Second) {
+// t.Errorf("Expecting: %v, received: %v",
+// 3*time.Second, rply)
+// }
+// }
-func testSes3ItCDRs(t *testing.T) {
- var reply string
- if err := ses3RPC.Call(utils.SessionSv1ProcessCDR, &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestSesItProccesCDR",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.Category: "call",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestTerminate",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1002",
- utils.Subject: "1001",
- utils.Destination: "1001",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 2 * time.Second,
- },
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Received reply: %s", reply)
- }
- time.Sleep(20 * time.Millisecond)
- var cdrs []*engine.ExternalCDR
- req := utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"},
- Accounts: []string{"1002"}}
- if err := ses3RPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if len(cdrs) != 1 {
- t.Error("Unexpected number of CDRs returned: ", len(cdrs))
- } else if cdrs[0].Usage != "2s" {
- t.Errorf("Unexpected CDR Usage received, cdr: %v %+v ", cdrs[0].Usage, cdrs[0])
- }
-}
-func testSes3ItStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testSes3ItCDRs(t *testing.T) {
+// var reply string
+// if err := ses3RPC.Call(utils.SessionSv1ProcessCDR, &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestSesItProccesCDR",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.Category: "call",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestTerminate",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1002",
+// utils.Subject: "1001",
+// utils.Destination: "1001",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 2 * time.Second,
+// },
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Received reply: %s", reply)
+// }
+// time.Sleep(20 * time.Millisecond)
+// var cdrs []*engine.ExternalCDR
+// req := utils.RPCCDRsFilter{RunIDs: []string{"CustomerCharges"},
+// Accounts: []string{"1002"}}
+// if err := ses3RPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if len(cdrs) != 1 {
+// t.Error("Unexpected number of CDRs returned: ", len(cdrs))
+// } else if cdrs[0].Usage != "2s" {
+// t.Errorf("Unexpected CDR Usage received, cdr: %v %+v ", cdrs[0].Usage, cdrs[0])
+// }
+// }
+// func testSes3ItStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/session4_it_test.go b/general_tests/session4_it_test.go
index bf6da598e..9b17b95ab 100644
--- a/general_tests/session4_it_test.go
+++ b/general_tests/session4_it_test.go
@@ -21,152 +21,152 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "path"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- ses4CfgDir string
- ses4CfgPath string
- ses4Cfg *config.CGRConfig
- ses4RPC *rpc.Client
+// var (
+// ses4CfgDir string
+// ses4CfgPath string
+// ses4Cfg *config.CGRConfig
+// ses4RPC *rpc.Client
- ses4Tests = []func(t *testing.T){
- testSes4ItLoadConfig,
- testSes4ItResetDataDB,
- testSes4ItResetStorDb,
- testSes4ItStartEngine,
- testSes4ItRPCConn,
- testSes4ItLoadFromFolder,
+// ses4Tests = []func(t *testing.T){
+// testSes4ItLoadConfig,
+// testSes4ItResetDataDB,
+// testSes4ItResetStorDb,
+// testSes4ItStartEngine,
+// testSes4ItRPCConn,
+// testSes4ItLoadFromFolder,
- testSes4SetAccount,
- testSes4CDRsProcessCDR,
+// testSes4SetAccount,
+// testSes4CDRsProcessCDR,
- testSes4ItStopCgrEngine,
- }
-)
+// testSes4ItStopCgrEngine,
+// }
+// )
-func TestSes4ItSessions(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- ses4CfgDir = "sessions_internal"
- case utils.MetaMySQL:
- ses4CfgDir = "sessions_mysql"
- case utils.MetaMongo:
- ses4CfgDir = "sessions_mongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range ses4Tests {
- t.Run(ses4CfgDir, stest)
- }
-}
+// func TestSes4ItSessions(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// ses4CfgDir = "sessions_internal"
+// case utils.MetaMySQL:
+// ses4CfgDir = "sessions_mysql"
+// case utils.MetaMongo:
+// ses4CfgDir = "sessions_mongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range ses4Tests {
+// t.Run(ses4CfgDir, stest)
+// }
+// }
-func testSes4ItLoadConfig(t *testing.T) {
- ses4CfgPath = path.Join(*dataDir, "conf", "samples", ses4CfgDir)
- if ses4Cfg, err = config.NewCGRConfigFromPath(ses4CfgPath); err != nil {
- t.Error(err)
- }
-}
+// func testSes4ItLoadConfig(t *testing.T) {
+// ses4CfgPath = path.Join(*dataDir, "conf", "samples", ses4CfgDir)
+// if ses4Cfg, err = config.NewCGRConfigFromPath(ses4CfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testSes4ItResetDataDB(t *testing.T) {
- if err := engine.InitDataDB(ses4Cfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSes4ItResetDataDB(t *testing.T) {
+// if err := engine.InitDataDB(ses4Cfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSes4ItResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(ses4Cfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSes4ItResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(ses4Cfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSes4ItStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(ses4CfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testSes4ItStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(ses4CfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSes4ItRPCConn(t *testing.T) {
- var err error
- ses4RPC, err = newRPCClient(ses4Cfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testSes4ItRPCConn(t *testing.T) {
+// var err error
+// ses4RPC, err = newRPCClient(ses4Cfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSes4ItLoadFromFolder(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := ses4RPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- }
- time.Sleep(100 * time.Millisecond)
-}
+// func testSes4ItLoadFromFolder(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
+// if err := ses4RPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(100 * time.Millisecond)
+// }
-func testSes4SetAccount(t *testing.T) {
- var reply string
- attrs := &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "dan7"}
- if err := ses4RPC.Call(utils.APIerSv1SetAccount, attrs, &reply); err != nil {
- t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
- }
-}
+// func testSes4SetAccount(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrSetAccount{Tenant: "cgrates.org", Account: "dan7"}
+// if err := ses4RPC.Call(utils.APIerSv1SetAccount, attrs, &reply); err != nil {
+// t.Error("Got error on APIerSv1.SetAccount: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv1.SetAccount received: %s", reply)
+// }
+// }
-func testSes4CDRsProcessCDR(t *testing.T) {
- // proccess twice the postpaid event that doesn't cost
- // this reproduce the issue #2123:
- // rerate a free postpaid event in the CDRServer
- // will make the BalanceInfo nil and result in a panic
- args := &utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.OriginID: "testV2CDRsProcessCDR1",
- utils.OriginHost: "192.168.1.1",
- utils.Source: "testV2CDRsProcessCDR",
- utils.RequestType: utils.MetaPostpaid,
- utils.Category: "free",
- utils.AccountField: "dan7",
- utils.Subject: "RP_FREE",
- utils.Destination: "0775692",
- utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
- utils.Usage: time.Minute,
- },
- APIOpts: map[string]interface{}{
- // utils.MetaRALs:true,
- utils.OptsCDRsStore: true,
- utils.OptsRouteS: false,
- utils.OptsCDRsRerate: true,
- },
- // Flags: []string{utils.MetaRALs, utils.MetaStore, "*routes:false", utils.MetaRerate},
- }
+// func testSes4CDRsProcessCDR(t *testing.T) {
+// // proccess twice the postpaid event that doesn't cost
+// // this reproduce the issue #2123:
+// // rerate a free postpaid event in the CDRServer
+// // will make the BalanceInfo nil and result in a panic
+// args := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.OriginID: "testV2CDRsProcessCDR1",
+// utils.OriginHost: "192.168.1.1",
+// utils.Source: "testV2CDRsProcessCDR",
+// utils.RequestType: utils.MetaPostpaid,
+// utils.Category: "free",
+// utils.AccountField: "dan7",
+// utils.Subject: "RP_FREE",
+// utils.Destination: "0775692",
+// utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
+// utils.Usage: time.Minute,
+// },
+// APIOpts: map[string]interface{}{
+// // utils.MetaRALs:true,
+// utils.OptsCDRsStore: true,
+// utils.OptsRouteS: false,
+// utils.OptsCDRsRerate: true,
+// },
+// // Flags: []string{utils.MetaRALs, utils.MetaStore, "*routes:false", utils.MetaRerate},
+// }
- var reply string
- if err := ses4RPC.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
+// var reply string
+// if err := ses4RPC.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
- if err := ses4RPC.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
- t.Error("Unexpected error: ", err.Error())
- } else if reply != utils.OK {
- t.Error("Unexpected reply received: ", reply)
- }
-}
+// if err := ses4RPC.Call(utils.CDRsV1ProcessEvent, args, &reply); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// } else if reply != utils.OK {
+// t.Error("Unexpected reply received: ", reply)
+// }
+// }
-func testSes4ItStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testSes4ItStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/session_graceful_shutdown_it_test.go b/general_tests/session_graceful_shutdown_it_test.go
index 896de8355..22be1e63d 100644
--- a/general_tests/session_graceful_shutdown_it_test.go
+++ b/general_tests/session_graceful_shutdown_it_test.go
@@ -20,307 +20,307 @@ along with this program. If not, see
*/
package general_tests
-import (
- "net/rpc"
- "os/exec"
- "path"
- "reflect"
- "syscall"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "os/exec"
+// "path"
+// "reflect"
+// "syscall"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- smgRplcCfgPath1, smgRplcCfgPath2 string
- smgRplcCfgDIR1, smgRplcCfgDIR2 string
- smgRplCfg1, smgRplCfg2 *config.CGRConfig
- smgRplcRPC1, smgRplcRPC2 *rpc.Client
- testEngine1, testEngine2 *exec.Cmd
- sTestsSession1 = []func(t *testing.T){
- testSessionSRplcInitCfg,
- testSessionSRplcResetDB,
- testSessionSRplcStartEngine,
- testSessionSRplcApierRpcConn,
- testSessionSRplcApierGetActiveSessionsNotFound,
- testSessionSRplcApierSetChargerS,
- testSessionSRplcApierGetInitateSessions,
- testSessionSRplcApierGetActiveSessions,
- testSessionSRplcApierGetPassiveSessions,
- testSessionSRplcApierStopSession2,
- testSessionSRplcApierGetPassiveSessionsAfterStop,
- testSessionSRplcStopCgrEngine,
- }
-)
+// var (
+// smgRplcCfgPath1, smgRplcCfgPath2 string
+// smgRplcCfgDIR1, smgRplcCfgDIR2 string
+// smgRplCfg1, smgRplCfg2 *config.CGRConfig
+// smgRplcRPC1, smgRplcRPC2 *rpc.Client
+// testEngine1, testEngine2 *exec.Cmd
+// sTestsSession1 = []func(t *testing.T){
+// testSessionSRplcInitCfg,
+// testSessionSRplcResetDB,
+// testSessionSRplcStartEngine,
+// testSessionSRplcApierRpcConn,
+// testSessionSRplcApierGetActiveSessionsNotFound,
+// testSessionSRplcApierSetChargerS,
+// testSessionSRplcApierGetInitateSessions,
+// testSessionSRplcApierGetActiveSessions,
+// testSessionSRplcApierGetPassiveSessions,
+// testSessionSRplcApierStopSession2,
+// testSessionSRplcApierGetPassiveSessionsAfterStop,
+// testSessionSRplcStopCgrEngine,
+// }
+// )
-func TestSessionSRplcGracefulShutdown(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- smgRplcCfgDIR1 = "rplcTestGracefulShutdown1_internal"
- smgRplcCfgDIR2 = "rplcTestGracefulShutdown2_internal"
- case utils.MetaMySQL:
- smgRplcCfgDIR1 = "rplcTestGracefulShutdown1_mysql"
- smgRplcCfgDIR2 = "rplcTestGracefulShutdown2_mysql"
- case utils.MetaMongo:
- smgRplcCfgDIR1 = "rplcTestGracefulShutdown1_mongo"
- smgRplcCfgDIR2 = "rplcTestGracefulShutdown2_mongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
+// func TestSessionSRplcGracefulShutdown(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// smgRplcCfgDIR1 = "rplcTestGracefulShutdown1_internal"
+// smgRplcCfgDIR2 = "rplcTestGracefulShutdown2_internal"
+// case utils.MetaMySQL:
+// smgRplcCfgDIR1 = "rplcTestGracefulShutdown1_mysql"
+// smgRplcCfgDIR2 = "rplcTestGracefulShutdown2_mysql"
+// case utils.MetaMongo:
+// smgRplcCfgDIR1 = "rplcTestGracefulShutdown1_mongo"
+// smgRplcCfgDIR2 = "rplcTestGracefulShutdown2_mongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
- for _, stest1 := range sTestsSession1 {
- t.Run(*dbType, stest1)
- }
-}
+// for _, stest1 := range sTestsSession1 {
+// t.Run(*dbType, stest1)
+// }
+// }
-//Init Config
-func testSessionSRplcInitCfg(t *testing.T) {
- smgRplcCfgPath1 = path.Join(*dataDir, "conf", "samples", "sessions_replication", smgRplcCfgDIR1)
- if smgRplCfg1, err = config.NewCGRConfigFromPath(smgRplcCfgPath1); err != nil {
- t.Fatal(err)
- }
- smgRplcCfgPath2 = path.Join(*dataDir, "conf", "samples", "sessions_replication", smgRplcCfgDIR2)
- if smgRplCfg2, err = config.NewCGRConfigFromPath(smgRplcCfgPath2); err != nil {
- t.Fatal(err)
- }
-}
+// //Init Config
+// func testSessionSRplcInitCfg(t *testing.T) {
+// smgRplcCfgPath1 = path.Join(*dataDir, "conf", "samples", "sessions_replication", smgRplcCfgDIR1)
+// if smgRplCfg1, err = config.NewCGRConfigFromPath(smgRplcCfgPath1); err != nil {
+// t.Fatal(err)
+// }
+// smgRplcCfgPath2 = path.Join(*dataDir, "conf", "samples", "sessions_replication", smgRplcCfgDIR2)
+// if smgRplCfg2, err = config.NewCGRConfigFromPath(smgRplcCfgPath2); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Remove data in both rating and accounting db
-func testSessionSRplcResetDB(t *testing.T) {
- if err := engine.InitDataDB(smgRplCfg1); err != nil {
- t.Fatal(err)
- }
- if err := engine.InitStorDB(smgRplCfg1); err != nil {
- t.Fatal(err)
- }
-}
+// // Remove data in both rating and accounting db
+// func testSessionSRplcResetDB(t *testing.T) {
+// if err := engine.InitDataDB(smgRplCfg1); err != nil {
+// t.Fatal(err)
+// }
+// if err := engine.InitStorDB(smgRplCfg1); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Start CGR Engine
-func testSessionSRplcStartEngine(t *testing.T) {
- if _, err = engine.StopStartEngine(smgRplcCfgPath1, *waitRater); err != nil {
- t.Fatal(err)
- }
- if testEngine1, err = engine.StartEngine(smgRplcCfgPath2, *waitRater); err != nil {
- t.Fatal(err)
- }
+// // Start CGR Engine
+// func testSessionSRplcStartEngine(t *testing.T) {
+// if _, err = engine.StopStartEngine(smgRplcCfgPath1, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// if testEngine1, err = engine.StartEngine(smgRplcCfgPath2, *waitRater); err != nil {
+// t.Fatal(err)
+// }
-}
+// }
-// Connect rpc client to rater
-func testSessionSRplcApierRpcConn(t *testing.T) {
- if smgRplcRPC1, err = newRPCClient(smgRplCfg1.ListenCfg()); err != nil {
- t.Fatal(err)
- }
- if smgRplcRPC2, err = newRPCClient(smgRplCfg2.ListenCfg()); err != nil {
- t.Fatal(err)
- }
-}
+// // Connect rpc client to rater
+// func testSessionSRplcApierRpcConn(t *testing.T) {
+// if smgRplcRPC1, err = newRPCClient(smgRplCfg1.ListenCfg()); err != nil {
+// t.Fatal(err)
+// }
+// if smgRplcRPC2, err = newRPCClient(smgRplCfg2.ListenCfg()); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSessionSRplcApierGetActiveSessionsNotFound(t *testing.T) {
- aSessions1 := make([]*sessions.ExternalSession, 0)
- expected := "NOT_FOUND"
- if err := smgRplcRPC1.Call(utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions1); err == nil || err.Error() != expected {
- t.Error(err)
- }
- aSessions2 := make([]*sessions.ExternalSession, 0)
- if err := smgRplcRPC2.Call(utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions2); err == nil || err.Error() != expected {
- t.Error(err)
- }
-}
+// func testSessionSRplcApierGetActiveSessionsNotFound(t *testing.T) {
+// aSessions1 := make([]*sessions.ExternalSession, 0)
+// expected := "NOT_FOUND"
+// if err := smgRplcRPC1.Call(utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions1); err == nil || err.Error() != expected {
+// t.Error(err)
+// }
+// aSessions2 := make([]*sessions.ExternalSession, 0)
+// if err := smgRplcRPC2.Call(utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions2); err == nil || err.Error() != expected {
+// t.Error(err)
+// }
+// }
-func testSessionSRplcApierSetChargerS(t *testing.T) {
- chargerProfile1 := &v1.ChargerWithAPIOpts{
- ChargerProfile: &engine.ChargerProfile{
- Tenant: "cgrates.org",
- ID: "Default",
- RunID: utils.MetaDefault,
- AttributeIDs: []string{"*none"},
- Weight: 20,
- },
- }
- var result1 string
- if err := smgRplcRPC1.Call(utils.AdminSv1SetChargerProfile, chargerProfile1, &result1); err != nil {
- t.Error(err)
- } else if result1 != utils.OK {
- t.Error("Unexpected reply returned", result1)
- }
+// func testSessionSRplcApierSetChargerS(t *testing.T) {
+// chargerProfile1 := &v1.ChargerWithAPIOpts{
+// ChargerProfile: &engine.ChargerProfile{
+// Tenant: "cgrates.org",
+// ID: "Default",
+// RunID: utils.MetaDefault,
+// AttributeIDs: []string{"*none"},
+// Weight: 20,
+// },
+// }
+// var result1 string
+// if err := smgRplcRPC1.Call(utils.AdminSv1SetChargerProfile, chargerProfile1, &result1); err != nil {
+// t.Error(err)
+// } else if result1 != utils.OK {
+// t.Error("Unexpected reply returned", result1)
+// }
- chargerProfile2 := &v1.ChargerWithAPIOpts{
- ChargerProfile: &engine.ChargerProfile{
- Tenant: "cgrates.org",
- ID: "Default",
- RunID: utils.MetaDefault,
- AttributeIDs: []string{"*none"},
- Weight: 20,
- },
- }
- var result2 string
- if err := smgRplcRPC2.Call(utils.AdminSv1SetChargerProfile, chargerProfile2, &result2); err != nil {
- t.Error(err)
- } else if result2 != utils.OK {
- t.Error("Unexpected reply returned", result2)
- }
-}
+// chargerProfile2 := &v1.ChargerWithAPIOpts{
+// ChargerProfile: &engine.ChargerProfile{
+// Tenant: "cgrates.org",
+// ID: "Default",
+// RunID: utils.MetaDefault,
+// AttributeIDs: []string{"*none"},
+// Weight: 20,
+// },
+// }
+// var result2 string
+// if err := smgRplcRPC2.Call(utils.AdminSv1SetChargerProfile, chargerProfile2, &result2); err != nil {
+// t.Error(err)
+// } else if result2 != utils.OK {
+// t.Error("Unexpected reply returned", result2)
+// }
+// }
-func testSessionSRplcApierGetInitateSessions(t *testing.T) {
- args := &sessions.V1InitSessionArgs{
- InitSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestSSv1ItInitiateSession",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.RequestType: utils.MetaNone,
- utils.CGRID: "testSessionRplCGRID",
- utils.OriginID: "testSessionRplORIGINID",
- },
- },
- }
- var rply sessions.V1InitSessionReply
- if err := smgRplcRPC2.Call(utils.SessionSv1InitiateSession,
- args, &rply); err != nil {
- t.Error(err)
- }
-}
+// func testSessionSRplcApierGetInitateSessions(t *testing.T) {
+// args := &sessions.V1InitSessionArgs{
+// InitSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestSSv1ItInitiateSession",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.RequestType: utils.MetaNone,
+// utils.CGRID: "testSessionRplCGRID",
+// utils.OriginID: "testSessionRplORIGINID",
+// },
+// },
+// }
+// var rply sessions.V1InitSessionReply
+// if err := smgRplcRPC2.Call(utils.SessionSv1InitiateSession,
+// args, &rply); err != nil {
+// t.Error(err)
+// }
+// }
-func testSessionSRplcApierGetActiveSessions(t *testing.T) {
- expected := []*sessions.ExternalSession{
- {
- CGRID: "testSessionRplCGRID",
- RunID: "*default",
- ToR: "",
- OriginID: "testSessionRplORIGINID",
- OriginHost: "",
- Source: "SessionS_",
- RequestType: utils.MetaNone,
- Tenant: "cgrates.org",
- Category: "",
- Account: "",
- Subject: "",
- Destination: "",
- SetupTime: time.Time{},
- AnswerTime: time.Time{},
- Usage: 0,
- ExtraFields: map[string]string{},
- NodeID: "MasterReplication",
- LoopIndex: 0,
- DurationIndex: 0,
- MaxRate: 0,
- MaxRateUnit: 0,
- MaxCostSoFar: 0,
- DebitInterval: 0,
- NextAutoDebit: time.Time{},
- },
- }
- aSessions2 := make([]*sessions.ExternalSession, 0)
- if err := smgRplcRPC2.Call(utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions2); err != nil {
- t.Error(err)
- }
- if !reflect.DeepEqual(&aSessions2, &expected) {
- t.Errorf("\nExpected <%+v>, \nReceived <%+v>", utils.ToJSON(&aSessions2), utils.ToJSON(&expected))
+// func testSessionSRplcApierGetActiveSessions(t *testing.T) {
+// expected := []*sessions.ExternalSession{
+// {
+// CGRID: "testSessionRplCGRID",
+// RunID: "*default",
+// ToR: "",
+// OriginID: "testSessionRplORIGINID",
+// OriginHost: "",
+// Source: "SessionS_",
+// RequestType: utils.MetaNone,
+// Tenant: "cgrates.org",
+// Category: "",
+// Account: "",
+// Subject: "",
+// Destination: "",
+// SetupTime: time.Time{},
+// AnswerTime: time.Time{},
+// Usage: 0,
+// ExtraFields: map[string]string{},
+// NodeID: "MasterReplication",
+// LoopIndex: 0,
+// DurationIndex: 0,
+// MaxRate: 0,
+// MaxRateUnit: 0,
+// MaxCostSoFar: 0,
+// DebitInterval: 0,
+// NextAutoDebit: time.Time{},
+// },
+// }
+// aSessions2 := make([]*sessions.ExternalSession, 0)
+// if err := smgRplcRPC2.Call(utils.SessionSv1GetActiveSessions, &utils.SessionFilter{}, &aSessions2); err != nil {
+// t.Error(err)
+// }
+// if !reflect.DeepEqual(&aSessions2, &expected) {
+// t.Errorf("\nExpected <%+v>, \nReceived <%+v>", utils.ToJSON(&aSessions2), utils.ToJSON(&expected))
- }
-}
+// }
+// }
-func testSessionSRplcApierGetPassiveSessions(t *testing.T) {
- expected := []*sessions.ExternalSession{
- {
- CGRID: "testSessionRplCGRID",
- RunID: "*default",
- ToR: "",
- OriginID: "testSessionRplORIGINID",
- OriginHost: "",
- Source: "SessionS_",
- RequestType: utils.MetaNone,
- Tenant: "cgrates.org",
- Category: "",
- Account: "",
- Subject: "",
- Destination: "",
- SetupTime: time.Time{},
- AnswerTime: time.Time{},
- Usage: 0,
- ExtraFields: map[string]string{},
- NodeID: "MasterReplication",
- LoopIndex: 0,
- DurationIndex: 0,
- MaxRate: 0,
- MaxRateUnit: 0,
- MaxCostSoFar: 0,
- DebitInterval: 0,
- NextAutoDebit: time.Time{},
- },
- }
- aSessions2 := make([]*sessions.ExternalSession, 0)
- if err := smgRplcRPC1.Call(utils.SessionSv1GetPassiveSessions, &utils.SessionFilter{}, &aSessions2); err != nil {
- t.Error(err)
- }
- if !reflect.DeepEqual(&aSessions2, &expected) {
- t.Errorf("\nExpected <%+v>, \nReceived <%+v>", utils.ToJSON(&aSessions2), utils.ToJSON(&expected))
+// func testSessionSRplcApierGetPassiveSessions(t *testing.T) {
+// expected := []*sessions.ExternalSession{
+// {
+// CGRID: "testSessionRplCGRID",
+// RunID: "*default",
+// ToR: "",
+// OriginID: "testSessionRplORIGINID",
+// OriginHost: "",
+// Source: "SessionS_",
+// RequestType: utils.MetaNone,
+// Tenant: "cgrates.org",
+// Category: "",
+// Account: "",
+// Subject: "",
+// Destination: "",
+// SetupTime: time.Time{},
+// AnswerTime: time.Time{},
+// Usage: 0,
+// ExtraFields: map[string]string{},
+// NodeID: "MasterReplication",
+// LoopIndex: 0,
+// DurationIndex: 0,
+// MaxRate: 0,
+// MaxRateUnit: 0,
+// MaxCostSoFar: 0,
+// DebitInterval: 0,
+// NextAutoDebit: time.Time{},
+// },
+// }
+// aSessions2 := make([]*sessions.ExternalSession, 0)
+// if err := smgRplcRPC1.Call(utils.SessionSv1GetPassiveSessions, &utils.SessionFilter{}, &aSessions2); err != nil {
+// t.Error(err)
+// }
+// if !reflect.DeepEqual(&aSessions2, &expected) {
+// t.Errorf("\nExpected <%+v>, \nReceived <%+v>", utils.ToJSON(&aSessions2), utils.ToJSON(&expected))
- }
-}
+// }
+// }
-func testSessionSRplcApierStopSession2(t *testing.T) {
- err := testEngine1.Process.Signal(syscall.SIGTERM)
- if err != nil {
- t.Error(err)
- }
- err = testEngine1.Wait()
- if err != nil {
- t.Error(err)
- }
-}
+// func testSessionSRplcApierStopSession2(t *testing.T) {
+// err := testEngine1.Process.Signal(syscall.SIGTERM)
+// if err != nil {
+// t.Error(err)
+// }
+// err = testEngine1.Wait()
+// if err != nil {
+// t.Error(err)
+// }
+// }
-func testSessionSRplcApierGetPassiveSessionsAfterStop(t *testing.T) {
- expected := []*sessions.ExternalSession{
- {
- CGRID: "testSessionRplCGRID",
- RunID: "*default",
- ToR: "",
- OriginID: "testSessionRplORIGINID",
- OriginHost: "",
- Source: "SessionS_",
- RequestType: utils.MetaNone,
- Tenant: "cgrates.org",
- Category: "",
- Account: "",
- Subject: "",
- Destination: "",
- SetupTime: time.Time{},
- AnswerTime: time.Time{},
- Usage: 0,
- ExtraFields: map[string]string{},
- NodeID: "MasterReplication",
- LoopIndex: 0,
- DurationIndex: 0,
- MaxRate: 0,
- MaxRateUnit: 0,
- MaxCostSoFar: 0,
- DebitInterval: 0,
- NextAutoDebit: time.Time{},
- },
- }
- aSessions2 := make([]*sessions.ExternalSession, 0)
- if err := smgRplcRPC1.Call(utils.SessionSv1GetPassiveSessions, &utils.SessionFilter{}, &aSessions2); err != nil {
- t.Error(err)
- }
- if !reflect.DeepEqual(&aSessions2, &expected) {
- t.Errorf("\nExpected <%+v>, \nReceived <%+v>", utils.ToJSON(&aSessions2), utils.ToJSON(&expected))
+// func testSessionSRplcApierGetPassiveSessionsAfterStop(t *testing.T) {
+// expected := []*sessions.ExternalSession{
+// {
+// CGRID: "testSessionRplCGRID",
+// RunID: "*default",
+// ToR: "",
+// OriginID: "testSessionRplORIGINID",
+// OriginHost: "",
+// Source: "SessionS_",
+// RequestType: utils.MetaNone,
+// Tenant: "cgrates.org",
+// Category: "",
+// Account: "",
+// Subject: "",
+// Destination: "",
+// SetupTime: time.Time{},
+// AnswerTime: time.Time{},
+// Usage: 0,
+// ExtraFields: map[string]string{},
+// NodeID: "MasterReplication",
+// LoopIndex: 0,
+// DurationIndex: 0,
+// MaxRate: 0,
+// MaxRateUnit: 0,
+// MaxCostSoFar: 0,
+// DebitInterval: 0,
+// NextAutoDebit: time.Time{},
+// },
+// }
+// aSessions2 := make([]*sessions.ExternalSession, 0)
+// if err := smgRplcRPC1.Call(utils.SessionSv1GetPassiveSessions, &utils.SessionFilter{}, &aSessions2); err != nil {
+// t.Error(err)
+// }
+// if !reflect.DeepEqual(&aSessions2, &expected) {
+// t.Errorf("\nExpected <%+v>, \nReceived <%+v>", utils.ToJSON(&aSessions2), utils.ToJSON(&expected))
- }
-}
+// }
+// }
-func testSessionSRplcStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testSessionSRplcStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/session_it_test.go b/general_tests/session_it_test.go
index e4b12f49b..1034fad20 100644
--- a/general_tests/session_it_test.go
+++ b/general_tests/session_it_test.go
@@ -20,206 +20,206 @@ along with this program. If not, see
*/
package general_tests
-import (
- "net/rpc"
- "path"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- sesCfgPath string
- sesCfgDIR string
- sesCfg *config.CGRConfig
- sesRPC *rpc.Client
- sesAccount = "refundAcc"
- sesTenant = "cgrates.org"
+// var (
+// sesCfgPath string
+// sesCfgDIR string
+// sesCfg *config.CGRConfig
+// sesRPC *rpc.Client
+// sesAccount = "refundAcc"
+// sesTenant = "cgrates.org"
- sTestSesIt = []func(t *testing.T){
- testSesItLoadConfig,
- testSesItResetDataDB,
- testSesItResetStorDb,
- testSesItStartEngine,
- testSesItRPCConn,
- testSesItLoadFromFolder,
- testSesItAddVoiceBalance,
- testSesItInitSession,
- testSesItTerminateSession,
- testSesItStopCgrEngine,
- }
-)
+// sTestSesIt = []func(t *testing.T){
+// testSesItLoadConfig,
+// testSesItResetDataDB,
+// testSesItResetStorDb,
+// testSesItStartEngine,
+// testSesItRPCConn,
+// testSesItLoadFromFolder,
+// testSesItAddVoiceBalance,
+// testSesItInitSession,
+// testSesItTerminateSession,
+// testSesItStopCgrEngine,
+// }
+// )
-func TestSesIt(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- sesCfgDIR = "tutinternal"
- case utils.MetaMySQL:
- sesCfgDIR = "tutmysql_internal"
- case utils.MetaMongo:
- sesCfgDIR = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sTestSesIt {
- t.Run(sesCfgDIR, stest)
- }
-}
+// func TestSesIt(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// sesCfgDIR = "tutinternal"
+// case utils.MetaMySQL:
+// sesCfgDIR = "tutmysql_internal"
+// case utils.MetaMongo:
+// sesCfgDIR = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sTestSesIt {
+// t.Run(sesCfgDIR, stest)
+// }
+// }
-// test for 0 balance with session terminate with 1s usage
-func testSesItLoadConfig(t *testing.T) {
- sesCfgPath = path.Join(*dataDir, "conf", "samples", sesCfgDIR)
- if sesCfg, err = config.NewCGRConfigFromPath(sesCfgPath); err != nil {
- t.Error(err)
- }
-}
+// // test for 0 balance with session terminate with 1s usage
+// func testSesItLoadConfig(t *testing.T) {
+// sesCfgPath = path.Join(*dataDir, "conf", "samples", sesCfgDIR)
+// if sesCfg, err = config.NewCGRConfigFromPath(sesCfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testSesItResetDataDB(t *testing.T) {
- if err := engine.InitDataDB(sesCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesItResetDataDB(t *testing.T) {
+// if err := engine.InitDataDB(sesCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesItResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(sesCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesItResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(sesCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesItStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(sesCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesItStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(sesCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesItRPCConn(t *testing.T) {
- var err error
- sesRPC, err = newRPCClient(sesCfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testSesItRPCConn(t *testing.T) {
+// var err error
+// sesRPC, err = newRPCClient(sesCfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesItLoadFromFolder(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := sesRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- }
- time.Sleep(100 * time.Millisecond)
-}
+// func testSesItLoadFromFolder(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
+// if err := sesRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(100 * time.Millisecond)
+// }
-func testAccountBalance2(t *testing.T, sracc, srten, balType string, expected float64) {
- var acnt engine.Account
- attrs := &utils.AttrGetAccount{
- Tenant: srten,
- Account: sracc,
- }
- if err := sesRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
- t.Error(err)
- } else if rply := acnt.BalanceMap[balType].GetTotalValue(); rply != expected {
- t.Errorf("Expecting: %v, received: %v",
- expected, rply)
- }
-}
+// func testAccountBalance2(t *testing.T, sracc, srten, balType string, expected float64) {
+// var acnt engine.Account
+// attrs := &utils.AttrGetAccount{
+// Tenant: srten,
+// Account: sracc,
+// }
+// if err := sesRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+// t.Error(err)
+// } else if rply := acnt.BalanceMap[balType].GetTotalValue(); rply != expected {
+// t.Errorf("Expecting: %v, received: %v",
+// expected, rply)
+// }
+// }
-func testSesItAddVoiceBalance(t *testing.T) {
- attrSetBalance := utils.AttrSetBalance{
- Tenant: sesTenant,
- Account: sesAccount,
- BalanceType: utils.MetaMonetary,
- Value: 0,
- Balance: map[string]interface{}{
- utils.ID: "TestDynamicDebitBalance",
- utils.RatingSubject: "*zero1s",
- },
- }
- var reply string
- if err := sesRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Received: %s", reply)
- }
- t.Run("TestAddVoiceBalance", func(t *testing.T) { testAccountBalance2(t, sesAccount, sesTenant, utils.MetaMonetary, 0) })
-}
+// func testSesItAddVoiceBalance(t *testing.T) {
+// attrSetBalance := utils.AttrSetBalance{
+// Tenant: sesTenant,
+// Account: sesAccount,
+// BalanceType: utils.MetaMonetary,
+// Value: 0,
+// Balance: map[string]interface{}{
+// utils.ID: "TestDynamicDebitBalance",
+// utils.RatingSubject: "*zero1s",
+// },
+// }
+// var reply string
+// if err := sesRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Received: %s", reply)
+// }
+// t.Run("TestAddVoiceBalance", func(t *testing.T) { testAccountBalance2(t, sesAccount, sesTenant, utils.MetaMonetary, 0) })
+// }
-func testSesItInitSession(t *testing.T) {
- args1 := &sessions.V1InitSessionArgs{
- InitSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: sesTenant,
- ID: "TestSesItInitiateSession",
- Event: map[string]interface{}{
- utils.Tenant: sesTenant,
- utils.Category: "call",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestRefund",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: sesAccount,
- utils.Subject: "TEST",
- utils.Destination: "TEST",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 5 * time.Second,
- },
- },
- }
- var rply1 sessions.V1InitSessionReply
- if err := sesRPC.Call(utils.SessionSv1InitiateSession,
- args1, &rply1); err != nil {
- t.Error(err)
- return
- } else if rply1.MaxUsage != nil && *rply1.MaxUsage != 0 {
- t.Errorf("Unexpected MaxUsage: %v", rply1.MaxUsage)
- }
- t.Run("TestInitSession", func(t *testing.T) { testAccountBalance2(t, sesAccount, sesTenant, utils.MetaMonetary, 0) })
-}
+// func testSesItInitSession(t *testing.T) {
+// args1 := &sessions.V1InitSessionArgs{
+// InitSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: sesTenant,
+// ID: "TestSesItInitiateSession",
+// Event: map[string]interface{}{
+// utils.Tenant: sesTenant,
+// utils.Category: "call",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestRefund",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: sesAccount,
+// utils.Subject: "TEST",
+// utils.Destination: "TEST",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 5 * time.Second,
+// },
+// },
+// }
+// var rply1 sessions.V1InitSessionReply
+// if err := sesRPC.Call(utils.SessionSv1InitiateSession,
+// args1, &rply1); err != nil {
+// t.Error(err)
+// return
+// } else if rply1.MaxUsage != nil && *rply1.MaxUsage != 0 {
+// t.Errorf("Unexpected MaxUsage: %v", rply1.MaxUsage)
+// }
+// t.Run("TestInitSession", func(t *testing.T) { testAccountBalance2(t, sesAccount, sesTenant, utils.MetaMonetary, 0) })
+// }
-func testSesItTerminateSession(t *testing.T) {
- args := &sessions.V1TerminateSessionArgs{
- TerminateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: sesTenant,
- ID: "TestSesItUpdateSession",
- Event: map[string]interface{}{
- utils.Tenant: sesTenant,
- utils.Category: "call",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestRefund",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: sesAccount,
- utils.Subject: "TEST",
- utils.Destination: "TEST",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: time.Second,
- },
- },
- }
- var rply string
- if err := sesRPC.Call(utils.SessionSv1TerminateSession,
- args, &rply); err != nil {
- t.Error(err)
- }
- if rply != utils.OK {
- t.Errorf("Unexpected reply: %s", rply)
- }
- aSessions := make([]*sessions.ExternalSession, 0)
- if err := sesRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
- t.Run("TestTerminateSession", func(t *testing.T) { testAccountBalance2(t, sesAccount, sesTenant, utils.MetaMonetary, 0) })
-}
+// func testSesItTerminateSession(t *testing.T) {
+// args := &sessions.V1TerminateSessionArgs{
+// TerminateSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: sesTenant,
+// ID: "TestSesItUpdateSession",
+// Event: map[string]interface{}{
+// utils.Tenant: sesTenant,
+// utils.Category: "call",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestRefund",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: sesAccount,
+// utils.Subject: "TEST",
+// utils.Destination: "TEST",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: time.Second,
+// },
+// },
+// }
+// var rply string
+// if err := sesRPC.Call(utils.SessionSv1TerminateSession,
+// args, &rply); err != nil {
+// t.Error(err)
+// }
+// if rply != utils.OK {
+// t.Errorf("Unexpected reply: %s", rply)
+// }
+// aSessions := make([]*sessions.ExternalSession, 0)
+// if err := sesRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// t.Run("TestTerminateSession", func(t *testing.T) { testAccountBalance2(t, sesAccount, sesTenant, utils.MetaMonetary, 0) })
+// }
-func testSesItStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testSesItStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/session_nonereq_it_test.go b/general_tests/session_nonereq_it_test.go
index 28898760d..ae7ae1457 100644
--- a/general_tests/session_nonereq_it_test.go
+++ b/general_tests/session_nonereq_it_test.go
@@ -21,143 +21,143 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "path"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- sesNoneReqTypeCfgDir string
- sesNoneReqTypeCfgPath string
- sesNoneReqTypeCfg *config.CGRConfig
- sesNoneReqTypeRPC *rpc.Client
+// var (
+// sesNoneReqTypeCfgDir string
+// sesNoneReqTypeCfgPath string
+// sesNoneReqTypeCfg *config.CGRConfig
+// sesNoneReqTypeRPC *rpc.Client
- sesNoneReqTypeTests = []func(t *testing.T){
- testSesNoneReqTypeItLoadConfig,
- testSesNoneReqTypeItResetDataDB,
- testSesNoneReqTypeItResetStorDb,
- testSesNoneReqTypeItStartEngine,
- testSesNoneReqTypeItRPCConn,
+// sesNoneReqTypeTests = []func(t *testing.T){
+// testSesNoneReqTypeItLoadConfig,
+// testSesNoneReqTypeItResetDataDB,
+// testSesNoneReqTypeItResetStorDb,
+// testSesNoneReqTypeItStartEngine,
+// testSesNoneReqTypeItRPCConn,
- testSesNoneReqTypeItAddChargerS,
- testSesNoneReqTypeItInit,
+// testSesNoneReqTypeItAddChargerS,
+// testSesNoneReqTypeItInit,
- testSesNoneReqTypeItStopEngine,
- }
-)
+// testSesNoneReqTypeItStopEngine,
+// }
+// )
-func TestSesNoneReqTypeItSessions(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- sesNoneReqTypeCfgDir = "tutinternal"
- case utils.MetaMySQL:
- sesNoneReqTypeCfgDir = "tutmysql"
- case utils.MetaMongo:
- sesNoneReqTypeCfgDir = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sesNoneReqTypeTests {
- t.Run(sesNoneReqTypeCfgDir, stest)
- }
-}
+// func TestSesNoneReqTypeItSessions(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// sesNoneReqTypeCfgDir = "tutinternal"
+// case utils.MetaMySQL:
+// sesNoneReqTypeCfgDir = "tutmysql"
+// case utils.MetaMongo:
+// sesNoneReqTypeCfgDir = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sesNoneReqTypeTests {
+// t.Run(sesNoneReqTypeCfgDir, stest)
+// }
+// }
-func testSesNoneReqTypeItLoadConfig(t *testing.T) {
- sesNoneReqTypeCfgPath = path.Join(*dataDir, "conf", "samples", sesNoneReqTypeCfgDir)
- if sesNoneReqTypeCfg, err = config.NewCGRConfigFromPath(sesNoneReqTypeCfgPath); err != nil {
- t.Error(err)
- }
-}
+// func testSesNoneReqTypeItLoadConfig(t *testing.T) {
+// sesNoneReqTypeCfgPath = path.Join(*dataDir, "conf", "samples", sesNoneReqTypeCfgDir)
+// if sesNoneReqTypeCfg, err = config.NewCGRConfigFromPath(sesNoneReqTypeCfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testSesNoneReqTypeItResetDataDB(t *testing.T) {
- if err := engine.InitDataDb(sesNoneReqTypeCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesNoneReqTypeItResetDataDB(t *testing.T) {
+// if err := engine.InitDataDb(sesNoneReqTypeCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesNoneReqTypeItResetStorDb(t *testing.T) {
- if err := engine.InitStorDb(sesNoneReqTypeCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesNoneReqTypeItResetStorDb(t *testing.T) {
+// if err := engine.InitStorDb(sesNoneReqTypeCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesNoneReqTypeItStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(sesNoneReqTypeCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesNoneReqTypeItStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(sesNoneReqTypeCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesNoneReqTypeItRPCConn(t *testing.T) {
- var err error
- sesNoneReqTypeRPC, err = newRPCClient(sesNoneReqTypeCfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testSesNoneReqTypeItRPCConn(t *testing.T) {
+// var err error
+// sesNoneReqTypeRPC, err = newRPCClient(sesNoneReqTypeCfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesNoneReqTypeItAddChargerS(t *testing.T) {
- //add a default charger
- chargerProfile := &v1.ChargerWithAPIOpts{
- ChargerProfile: &engine.ChargerProfile{
- Tenant: "cgrates.org",
- ID: "Default",
- RunID: utils.MetaDefault,
- AttributeIDs: []string{"*none"},
- Weight: 20,
- },
- }
- var result string
- if err := sesNoneReqTypeRPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
-}
+// func testSesNoneReqTypeItAddChargerS(t *testing.T) {
+// //add a default charger
+// chargerProfile := &v1.ChargerWithAPIOpts{
+// ChargerProfile: &engine.ChargerProfile{
+// Tenant: "cgrates.org",
+// ID: "Default",
+// RunID: utils.MetaDefault,
+// AttributeIDs: []string{"*none"},
+// Weight: 20,
+// },
+// }
+// var result string
+// if err := sesNoneReqTypeRPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// }
-func testSesNoneReqTypeItInit(t *testing.T) {
- args1 := &sessions.V1InitSessionArgs{
- InitSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.CGRID: "cgrID",
- utils.Category: utils.Call,
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestReqNone",
- utils.RequestType: utils.MetaNone,
- utils.AccountField: "1001",
- utils.Subject: "1001",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 10 * time.Second,
- },
- APIOpts: map[string]interface{}{
- utils.OptsSesDebitInterval: "0s",
- },
- },
- }
- var rply1 sessions.V1InitSessionReply
- if err := sesNoneReqTypeRPC.Call(utils.SessionSv1InitiateSession,
- args1, &rply1); err != nil {
- t.Error(err)
- return
- } else if rply1.MaxUsage != nil && *rply1.MaxUsage != 10*time.Second {
- t.Errorf("Unexpected MaxUsage: %v", rply1.MaxUsage)
- }
-}
+// func testSesNoneReqTypeItInit(t *testing.T) {
+// args1 := &sessions.V1InitSessionArgs{
+// InitSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.CGRID: "cgrID",
+// utils.Category: utils.Call,
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestReqNone",
+// utils.RequestType: utils.MetaNone,
+// utils.AccountField: "1001",
+// utils.Subject: "1001",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 10 * time.Second,
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsSesDebitInterval: "0s",
+// },
+// },
+// }
+// var rply1 sessions.V1InitSessionReply
+// if err := sesNoneReqTypeRPC.Call(utils.SessionSv1InitiateSession,
+// args1, &rply1); err != nil {
+// t.Error(err)
+// return
+// } else if rply1.MaxUsage != nil && *rply1.MaxUsage != 10*time.Second {
+// t.Errorf("Unexpected MaxUsage: %v", rply1.MaxUsage)
+// }
+// }
-func testSesNoneReqTypeItStopEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testSesNoneReqTypeItStopEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/session_replications_automaticdebit_it_test.go b/general_tests/session_replications_automaticdebit_it_test.go
index e141b080b..3eee29f22 100644
--- a/general_tests/session_replications_automaticdebit_it_test.go
+++ b/general_tests/session_replications_automaticdebit_it_test.go
@@ -20,394 +20,394 @@ along with this program. If not, see
*/
package general_tests
-import (
- "fmt"
- "net/rpc"
- "os/exec"
- "path"
- "testing"
- "time"
+// import (
+// "fmt"
+// "net/rpc"
+// "os/exec"
+// "path"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- smgRplcMasterCfgPath, smgRplcSlaveCfgPath string
- smgRplcMasterCfgDIR, smgRplcSlaveCfgDIR string
- smgRplcMasterCfg, smgRplcSlaveCfg *config.CGRConfig
- smgRplcMstrRPC, smgRplcSlvRPC *rpc.Client
- masterEngine *exec.Cmd
- sTestsSession = []func(t *testing.T){
- testSessionSRplInitCfg,
- testSessionSRplResetDB,
- testSessionSRplStartEngine,
- testSessionSRplApierRpcConn,
- testSessionSRplTPFromFolder,
- testSessionSRplAddVoiceBalance,
- testSessionSRplInitiate,
- testSessionSRplActivateSlave,
- testSessionSRplCheckAccount,
- testSessionSRplTerminate,
- testSessionSRplStopCgrEngine,
- }
-)
+// var (
+// smgRplcMasterCfgPath, smgRplcSlaveCfgPath string
+// smgRplcMasterCfgDIR, smgRplcSlaveCfgDIR string
+// smgRplcMasterCfg, smgRplcSlaveCfg *config.CGRConfig
+// smgRplcMstrRPC, smgRplcSlvRPC *rpc.Client
+// masterEngine *exec.Cmd
+// sTestsSession = []func(t *testing.T){
+// testSessionSRplInitCfg,
+// testSessionSRplResetDB,
+// testSessionSRplStartEngine,
+// testSessionSRplApierRpcConn,
+// testSessionSRplTPFromFolder,
+// testSessionSRplAddVoiceBalance,
+// testSessionSRplInitiate,
+// testSessionSRplActivateSlave,
+// testSessionSRplCheckAccount,
+// testSessionSRplTerminate,
+// testSessionSRplStopCgrEngine,
+// }
+// )
-func TestSessionSRpl(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- t.SkipNow()
- case utils.MetaMySQL:
- smgRplcMasterCfgDIR = "smgreplcmaster_mysql"
- smgRplcSlaveCfgDIR = "smgreplcslave_mysql"
- case utils.MetaMongo:
- smgRplcMasterCfgDIR = "smgreplcmaster_mongo"
- smgRplcSlaveCfgDIR = "smgreplcslave_mongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
+// func TestSessionSRpl(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// t.SkipNow()
+// case utils.MetaMySQL:
+// smgRplcMasterCfgDIR = "smgreplcmaster_mysql"
+// smgRplcSlaveCfgDIR = "smgreplcslave_mysql"
+// case utils.MetaMongo:
+// smgRplcMasterCfgDIR = "smgreplcmaster_mongo"
+// smgRplcSlaveCfgDIR = "smgreplcslave_mongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
- for _, stest := range sTestsSession {
- t.Run(*dbType, stest)
- }
-}
+// for _, stest := range sTestsSession {
+// t.Run(*dbType, stest)
+// }
+// }
-//topup
-func testSessionSRplAddVoiceBalance(t *testing.T) {
- attrSetBalance := utils.AttrSetBalance{
- Tenant: "cgrates.org",
- Account: "1005",
- BalanceType: utils.MetaVoice,
- Value: 5 * float64(time.Second), //value -> 20ms for future
- Balance: map[string]interface{}{
- utils.ID: "TestDynamicDebitBalance",
- utils.RatingSubject: "*zero5ms",
- },
- }
- var reply string
- if err := smgRplcMstrRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Received: %s", reply)
- }
- var acnt *engine.Account
- attrs := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1005",
- }
- //get balance
- if err := smgRplcMstrRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
- t.Error(err)
- } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != float64(5*time.Second) {
- t.Errorf("Expecting: %v, received: %v",
- float64(5*time.Second), rply)
- }
-}
+// //topup
+// func testSessionSRplAddVoiceBalance(t *testing.T) {
+// attrSetBalance := utils.AttrSetBalance{
+// Tenant: "cgrates.org",
+// Account: "1005",
+// BalanceType: utils.MetaVoice,
+// Value: 5 * float64(time.Second), //value -> 20ms for future
+// Balance: map[string]interface{}{
+// utils.ID: "TestDynamicDebitBalance",
+// utils.RatingSubject: "*zero5ms",
+// },
+// }
+// var reply string
+// if err := smgRplcMstrRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Received: %s", reply)
+// }
+// var acnt *engine.Account
+// attrs := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1005",
+// }
+// //get balance
+// if err := smgRplcMstrRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+// t.Error(err)
+// } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != float64(5*time.Second) {
+// t.Errorf("Expecting: %v, received: %v",
+// float64(5*time.Second), rply)
+// }
+// }
-//Init Config
-func testSessionSRplInitCfg(t *testing.T) {
- smgRplcMasterCfgPath = path.Join(*dataDir, "conf", "samples", "sessions_replication", smgRplcMasterCfgDIR)
- if smgRplcMasterCfg, err = config.NewCGRConfigFromPath(smgRplcMasterCfgPath); err != nil {
- t.Fatal(err)
- }
- smgRplcSlaveCfgPath = path.Join(*dataDir, "conf", "samples", "sessions_replication", smgRplcSlaveCfgDIR)
- if smgRplcSlaveCfg, err = config.NewCGRConfigFromPath(smgRplcSlaveCfgPath); err != nil {
- t.Fatal(err)
- }
-}
+// //Init Config
+// func testSessionSRplInitCfg(t *testing.T) {
+// smgRplcMasterCfgPath = path.Join(*dataDir, "conf", "samples", "sessions_replication", smgRplcMasterCfgDIR)
+// if smgRplcMasterCfg, err = config.NewCGRConfigFromPath(smgRplcMasterCfgPath); err != nil {
+// t.Fatal(err)
+// }
+// smgRplcSlaveCfgPath = path.Join(*dataDir, "conf", "samples", "sessions_replication", smgRplcSlaveCfgDIR)
+// if smgRplcSlaveCfg, err = config.NewCGRConfigFromPath(smgRplcSlaveCfgPath); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Remove data in both rating and accounting db
-func testSessionSRplResetDB(t *testing.T) {
- if err := engine.InitDataDB(smgRplcMasterCfg); err != nil {
- t.Fatal(err)
- }
- if err := engine.InitStorDB(smgRplcMasterCfg); err != nil {
- t.Fatal(err)
- }
-}
+// // Remove data in both rating and accounting db
+// func testSessionSRplResetDB(t *testing.T) {
+// if err := engine.InitDataDB(smgRplcMasterCfg); err != nil {
+// t.Fatal(err)
+// }
+// if err := engine.InitStorDB(smgRplcMasterCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Start CGR Engine
-func testSessionSRplStartEngine(t *testing.T) {
- if _, err = engine.StopStartEngine(smgRplcSlaveCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
- if masterEngine, err = engine.StartEngine(smgRplcMasterCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
+// // Start CGR Engine
+// func testSessionSRplStartEngine(t *testing.T) {
+// if _, err = engine.StopStartEngine(smgRplcSlaveCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// if masterEngine, err = engine.StartEngine(smgRplcMasterCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
-}
+// }
-// Connect rpc client to rater
-func testSessionSRplApierRpcConn(t *testing.T) {
- if smgRplcMstrRPC, err = newRPCClient(smgRplcMasterCfg.ListenCfg()); err != nil {
- t.Fatal(err)
- }
- if smgRplcSlvRPC, err = newRPCClient(smgRplcSlaveCfg.ListenCfg()); err != nil {
- t.Fatal(err)
- }
-}
+// // Connect rpc client to rater
+// func testSessionSRplApierRpcConn(t *testing.T) {
+// if smgRplcMstrRPC, err = newRPCClient(smgRplcMasterCfg.ListenCfg()); err != nil {
+// t.Fatal(err)
+// }
+// if smgRplcSlvRPC, err = newRPCClient(smgRplcSlaveCfg.ListenCfg()); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Load the tariff plan, creating accounts and their balances
-func testSessionSRplTPFromFolder(t *testing.T) {
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
- var loadInst utils.LoadInstance
- if err := smgRplcMstrRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
- t.Error(err)
- }
- time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
-}
+// // Load the tariff plan, creating accounts and their balances
+// func testSessionSRplTPFromFolder(t *testing.T) {
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
+// var loadInst utils.LoadInstance
+// if err := smgRplcMstrRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &loadInst); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
+// }
-func testSessionSRplInitiate(t *testing.T) {
- var aSessions []*sessions.ExternalSession
- //make sure we don't have active sessions on master and passive on slave
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions,
- new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions,
- new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
+// func testSessionSRplInitiate(t *testing.T) {
+// var aSessions []*sessions.ExternalSession
+// //make sure we don't have active sessions on master and passive on slave
+// if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions,
+// new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions,
+// new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
- argsInit := &sessions.V1InitSessionArgs{
- InitSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestSessionSRplInitiate",
- Event: map[string]interface{}{
- utils.EventName: "TEST_EVENT",
- utils.Tenant: "cgrates.org",
- utils.OriginID: "123451",
- utils.ToR: utils.MetaVoice,
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1005",
- utils.Subject: "1005",
- utils.Destination: "1004",
- utils.Category: "call",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 0,
- },
- },
- }
+// argsInit := &sessions.V1InitSessionArgs{
+// InitSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestSessionSRplInitiate",
+// Event: map[string]interface{}{
+// utils.EventName: "TEST_EVENT",
+// utils.Tenant: "cgrates.org",
+// utils.OriginID: "123451",
+// utils.ToR: utils.MetaVoice,
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1005",
+// utils.Subject: "1005",
+// utils.Destination: "1004",
+// utils.Category: "call",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 0,
+// },
+// },
+// }
- var initRpl sessions.V1InitSessionReply
- if err := smgRplcMstrRPC.Call(utils.SessionSv1InitiateSession,
- argsInit, &initRpl); err != nil {
- t.Error(err)
- }
- //compare the value
- eMaxUsage := 3 * time.Hour // MaxCallDuration from config
- if initRpl.MaxUsage == nil || *initRpl.MaxUsage != eMaxUsage {
- t.Errorf("Expecting : %+v, received: %+v", eMaxUsage, initRpl.MaxUsage)
- }
+// var initRpl sessions.V1InitSessionReply
+// if err := smgRplcMstrRPC.Call(utils.SessionSv1InitiateSession,
+// argsInit, &initRpl); err != nil {
+// t.Error(err)
+// }
+// //compare the value
+// eMaxUsage := 3 * time.Hour // MaxCallDuration from config
+// if initRpl.MaxUsage == nil || *initRpl.MaxUsage != eMaxUsage {
+// t.Errorf("Expecting : %+v, received: %+v", eMaxUsage, initRpl.MaxUsage)
+// }
- //check active session
- time.Sleep(10 * time.Millisecond)
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions,
- utils.SessionFilter{
- Filters: []string{
- fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123451"),
- },
- }, &aSessions); err != nil {
- t.Error(err)
- } else if len(aSessions) != 1 {
- t.Errorf("Unexpected number of sessions received: %+v", utils.ToIJSON(aSessions))
- // a tolerance of +/- 5ms is acceptable
- } else if aSessions[0].Usage < 5*time.Millisecond || aSessions[0].Usage > 15*time.Millisecond {
- t.Errorf("Expecting : ~%+v, received: %+v", 10*time.Millisecond, aSessions[0].Usage) //here
- }
- //check passive session
- var autoDebit1, autoDebit2 time.Time
+// //check active session
+// time.Sleep(10 * time.Millisecond)
+// if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions,
+// utils.SessionFilter{
+// Filters: []string{
+// fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123451"),
+// },
+// }, &aSessions); err != nil {
+// t.Error(err)
+// } else if len(aSessions) != 1 {
+// t.Errorf("Unexpected number of sessions received: %+v", utils.ToIJSON(aSessions))
+// // a tolerance of +/- 5ms is acceptable
+// } else if aSessions[0].Usage < 5*time.Millisecond || aSessions[0].Usage > 15*time.Millisecond {
+// t.Errorf("Expecting : ~%+v, received: %+v", 10*time.Millisecond, aSessions[0].Usage) //here
+// }
+// //check passive session
+// var autoDebit1, autoDebit2 time.Time
- var pSessions []*sessions.ExternalSession
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions,
- utils.SessionFilter{
- Filters: []string{
- fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123451"),
- },
- }, &pSessions); err != nil {
- t.Error(err)
- } else if len(pSessions) != 1 {
- t.Errorf("PassiveSessions: %+v", pSessions)
- } else if pSessions[0].Usage < 5*time.Millisecond || pSessions[0].Usage > 15*time.Millisecond {
- t.Errorf("Expecting : %+v, received: %+v", 10*time.Millisecond, pSessions[0].Usage)
- } else if autoDebit1 = pSessions[0].NextAutoDebit; autoDebit1.IsZero() {
- t.Errorf("unexpected NextAutoDebit: %s", utils.ToIJSON(aSessions[0]))
- }
+// var pSessions []*sessions.ExternalSession
+// if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions,
+// utils.SessionFilter{
+// Filters: []string{
+// fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123451"),
+// },
+// }, &pSessions); err != nil {
+// t.Error(err)
+// } else if len(pSessions) != 1 {
+// t.Errorf("PassiveSessions: %+v", pSessions)
+// } else if pSessions[0].Usage < 5*time.Millisecond || pSessions[0].Usage > 15*time.Millisecond {
+// t.Errorf("Expecting : %+v, received: %+v", 10*time.Millisecond, pSessions[0].Usage)
+// } else if autoDebit1 = pSessions[0].NextAutoDebit; autoDebit1.IsZero() {
+// t.Errorf("unexpected NextAutoDebit: %s", utils.ToIJSON(aSessions[0]))
+// }
- //check active session (II)
- time.Sleep(12 * time.Millisecond)
- if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions,
- utils.SessionFilter{
- Filters: []string{
- fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123451"),
- },
- }, &aSessions); err != nil {
- t.Error(err)
- } else if len(aSessions) != 1 {
- t.Errorf("Unexpected number of sessions received: %+v", utils.ToIJSON(aSessions))
- // a tolerance of +/- 5ms is acceptable
- } else if aSessions[0].Usage < 15*time.Millisecond || aSessions[0].Usage > 25*time.Millisecond {
- t.Errorf("Expecting : ~%+v, received: %+v", 20*time.Millisecond, aSessions[0].Usage) //here
- }
+// //check active session (II)
+// time.Sleep(12 * time.Millisecond)
+// if err := smgRplcMstrRPC.Call(utils.SessionSv1GetActiveSessions,
+// utils.SessionFilter{
+// Filters: []string{
+// fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123451"),
+// },
+// }, &aSessions); err != nil {
+// t.Error(err)
+// } else if len(aSessions) != 1 {
+// t.Errorf("Unexpected number of sessions received: %+v", utils.ToIJSON(aSessions))
+// // a tolerance of +/- 5ms is acceptable
+// } else if aSessions[0].Usage < 15*time.Millisecond || aSessions[0].Usage > 25*time.Millisecond {
+// t.Errorf("Expecting : ~%+v, received: %+v", 20*time.Millisecond, aSessions[0].Usage) //here
+// }
- //check passive session (II)
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions,
- utils.SessionFilter{
- Filters: []string{
- fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123451"),
- },
- }, &pSessions); err != nil {
- t.Error(err)
- } else if len(pSessions) != 1 {
- t.Errorf("PassiveSessions: %+v", pSessions)
- } else if pSessions[0].Usage <= 10*time.Millisecond || pSessions[0].Usage >= 30*time.Millisecond {
- t.Errorf("Expecting : %+v, received: %+v", 20*time.Millisecond, pSessions[0].Usage)
- } else if autoDebit2 = pSessions[0].NextAutoDebit; autoDebit2.IsZero() {
- t.Errorf("unexpected NextAutoDebit: %s", utils.ToIJSON(aSessions[0]))
- } else if autoDebit1 == autoDebit2 {
- t.Error("Expecting NextAutoDebit to be different from the previous one")
- }
+// //check passive session (II)
+// if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions,
+// utils.SessionFilter{
+// Filters: []string{
+// fmt.Sprintf("*string:~*req.%s:%s", utils.OriginID, "123451"),
+// },
+// }, &pSessions); err != nil {
+// t.Error(err)
+// } else if len(pSessions) != 1 {
+// t.Errorf("PassiveSessions: %+v", pSessions)
+// } else if pSessions[0].Usage <= 10*time.Millisecond || pSessions[0].Usage >= 30*time.Millisecond {
+// t.Errorf("Expecting : %+v, received: %+v", 20*time.Millisecond, pSessions[0].Usage)
+// } else if autoDebit2 = pSessions[0].NextAutoDebit; autoDebit2.IsZero() {
+// t.Errorf("unexpected NextAutoDebit: %s", utils.ToIJSON(aSessions[0]))
+// } else if autoDebit1 == autoDebit2 {
+// t.Error("Expecting NextAutoDebit to be different from the previous one")
+// }
- //get balance
- var acnt *engine.Account
- attrs := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1005",
- }
- if err := smgRplcMstrRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
- t.Error(err)
- // a tolerance of +/- 5ms is acceptable
- } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply < float64(5*time.Second-25*time.Millisecond) || rply > float64(5*time.Second-15*time.Millisecond) {
- t.Errorf("Expecting: ~%v, received: %v", float64(5*time.Second-20*time.Millisecond), rply)
- }
-}
+// //get balance
+// var acnt *engine.Account
+// attrs := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1005",
+// }
+// if err := smgRplcMstrRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+// t.Error(err)
+// // a tolerance of +/- 5ms is acceptable
+// } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply < float64(5*time.Second-25*time.Millisecond) || rply > float64(5*time.Second-15*time.Millisecond) {
+// t.Errorf("Expecting: ~%v, received: %v", float64(5*time.Second-20*time.Millisecond), rply)
+// }
+// }
-func testSessionSRplActivateSlave(t *testing.T) {
- //stop the master engine
- if err := masterEngine.Process.Kill(); err != nil {
- t.Error(err)
- }
- // activate sessions on slave
- var rplActivate string
- if err := smgRplcSlvRPC.Call(utils.SessionSv1ActivateSessions, &utils.SessionIDsWithAPIOpts{}, &rplActivate); err != nil {
- t.Error(err)
- }
- time.Sleep(7 * time.Millisecond)
- //check if the active session is on slave now
- var aSessions []*sessions.ExternalSession
- var autoDebit1, autoDebit2 time.Time
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
- t.Error(err)
- } else if len(aSessions) != 1 {
- t.Errorf("Unexpected number of sessions received: %+v", utils.ToIJSON(aSessions))
- // a tolerance of +/- 5ms is acceptable
- } else if aSessions[0].Usage < 20*time.Millisecond || aSessions[0].Usage > 30*time.Millisecond {
- t.Errorf("Expecting : ~%+v, received: %+v", 25*time.Millisecond, aSessions[0].Usage) //here
- } else if autoDebit1 = aSessions[0].NextAutoDebit; autoDebit1.IsZero() {
- t.Errorf("unexpected NextAutoDebit: %s", utils.ToIJSON(aSessions[0]))
- }
- var aSessions2 []*sessions.ExternalSession
- // start the initial engine so the replication can happen normally
- if masterEngine, err = engine.StartEngine(smgRplcMasterCfgPath, 10); err != nil {
- t.Fatal(err)
- }
- time.Sleep(20 * time.Millisecond)
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions2); err != nil {
- t.Error(err)
- } else if len(aSessions2) != 1 {
- t.Errorf("Unexpected number of sessions received: %+v", utils.ToIJSON(aSessions2))
- // a tolerance of +/- 5ms is acceptable
- } else if aSessions2[0].Usage < 20*time.Millisecond || aSessions2[0].Usage > 40*time.Millisecond {
- t.Errorf("Expecting : ~%+v, received: %+v", 40*time.Millisecond, aSessions2[0].Usage) //here
- } else if autoDebit2 = aSessions2[0].NextAutoDebit; autoDebit2.IsZero() {
- t.Errorf("unexpected NextAutoDebit: %s", utils.ToIJSON(aSessions2[0]))
- } else if autoDebit1 == autoDebit2 {
- t.Error("Expecting NextAutoDebit to be different from the previous one")
- t.Errorf("%+v and %+v", autoDebit1, autoDebit2)
- }
-}
+// func testSessionSRplActivateSlave(t *testing.T) {
+// //stop the master engine
+// if err := masterEngine.Process.Kill(); err != nil {
+// t.Error(err)
+// }
+// // activate sessions on slave
+// var rplActivate string
+// if err := smgRplcSlvRPC.Call(utils.SessionSv1ActivateSessions, &utils.SessionIDsWithAPIOpts{}, &rplActivate); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(7 * time.Millisecond)
+// //check if the active session is on slave now
+// var aSessions []*sessions.ExternalSession
+// var autoDebit1, autoDebit2 time.Time
+// if err := smgRplcSlvRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err != nil {
+// t.Error(err)
+// } else if len(aSessions) != 1 {
+// t.Errorf("Unexpected number of sessions received: %+v", utils.ToIJSON(aSessions))
+// // a tolerance of +/- 5ms is acceptable
+// } else if aSessions[0].Usage < 20*time.Millisecond || aSessions[0].Usage > 30*time.Millisecond {
+// t.Errorf("Expecting : ~%+v, received: %+v", 25*time.Millisecond, aSessions[0].Usage) //here
+// } else if autoDebit1 = aSessions[0].NextAutoDebit; autoDebit1.IsZero() {
+// t.Errorf("unexpected NextAutoDebit: %s", utils.ToIJSON(aSessions[0]))
+// }
+// var aSessions2 []*sessions.ExternalSession
+// // start the initial engine so the replication can happen normally
+// if masterEngine, err = engine.StartEngine(smgRplcMasterCfgPath, 10); err != nil {
+// t.Fatal(err)
+// }
+// time.Sleep(20 * time.Millisecond)
+// if err := smgRplcSlvRPC.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions2); err != nil {
+// t.Error(err)
+// } else if len(aSessions2) != 1 {
+// t.Errorf("Unexpected number of sessions received: %+v", utils.ToIJSON(aSessions2))
+// // a tolerance of +/- 5ms is acceptable
+// } else if aSessions2[0].Usage < 20*time.Millisecond || aSessions2[0].Usage > 40*time.Millisecond {
+// t.Errorf("Expecting : ~%+v, received: %+v", 40*time.Millisecond, aSessions2[0].Usage) //here
+// } else if autoDebit2 = aSessions2[0].NextAutoDebit; autoDebit2.IsZero() {
+// t.Errorf("unexpected NextAutoDebit: %s", utils.ToIJSON(aSessions2[0]))
+// } else if autoDebit1 == autoDebit2 {
+// t.Error("Expecting NextAutoDebit to be different from the previous one")
+// t.Errorf("%+v and %+v", autoDebit1, autoDebit2)
+// }
+// }
-func testSessionSRplCheckAccount(t *testing.T) {
- //check de account and make sure the session debit works correctly
- var acnt *engine.Account
- attrs := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1005",
- }
+// func testSessionSRplCheckAccount(t *testing.T) {
+// //check de account and make sure the session debit works correctly
+// var acnt *engine.Account
+// attrs := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1005",
+// }
- expectedBal := 5*time.Second - 40*time.Millisecond
- if err := smgRplcSlvRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
- t.Error(err)
- // a tolerance of +/- 10ms is acceptable
- } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply < float64(expectedBal-10*time.Millisecond) ||
- rply > float64(expectedBal+10*time.Millisecond) {
- t.Errorf("Expecting: ~%v, received: %v", expectedBal, time.Duration(rply))
- }
-}
+// expectedBal := 5*time.Second - 40*time.Millisecond
+// if err := smgRplcSlvRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+// t.Error(err)
+// // a tolerance of +/- 10ms is acceptable
+// } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply < float64(expectedBal-10*time.Millisecond) ||
+// rply > float64(expectedBal+10*time.Millisecond) {
+// t.Errorf("Expecting: ~%v, received: %v", expectedBal, time.Duration(rply))
+// }
+// }
-func testSessionSRplTerminate(t *testing.T) {
- args := &sessions.V1TerminateSessionArgs{
- TerminateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestSessionSRplTerminate",
- Event: map[string]interface{}{
- utils.EventName: "TEST_EVENT",
- utils.Tenant: "cgrates.org",
- utils.OriginID: "123451",
- utils.ToR: utils.MetaVoice,
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1005",
- utils.Subject: "1005",
- utils.Destination: "1004",
- utils.Category: "call",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 2 * time.Second,
- },
- },
- }
- var reply string
- if err := smgRplcSlvRPC.Call(utils.SessionSv1TerminateSession, args, &reply); err != nil {
- t.Error(err)
- }
- time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Wait for the sessions to be populated
- var aSessions []*sessions.ExternalSession
+// func testSessionSRplTerminate(t *testing.T) {
+// args := &sessions.V1TerminateSessionArgs{
+// TerminateSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestSessionSRplTerminate",
+// Event: map[string]interface{}{
+// utils.EventName: "TEST_EVENT",
+// utils.Tenant: "cgrates.org",
+// utils.OriginID: "123451",
+// utils.ToR: utils.MetaVoice,
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1005",
+// utils.Subject: "1005",
+// utils.Destination: "1004",
+// utils.Category: "call",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 2 * time.Second,
+// },
+// },
+// }
+// var reply string
+// if err := smgRplcSlvRPC.Call(utils.SessionSv1TerminateSession, args, &reply); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Wait for the sessions to be populated
+// var aSessions []*sessions.ExternalSession
- //check if the session was terminated on slave
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetActiveSessions,
- new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Errorf("Error: %v with len(aSessions)=%v , session : %+v", err, len(aSessions), utils.ToIJSON(aSessions))
- }
- // check to don't have passive session on slave
- var pSessions []*sessions.ExternalSession
- if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions,
- new(utils.SessionFilter), &pSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
- t.Errorf("Error: %v with len(pSessions)=%v , session : %+v", err, len(pSessions), utils.ToIJSON(pSessions))
- }
+// //check if the session was terminated on slave
+// if err := smgRplcSlvRPC.Call(utils.SessionSv1GetActiveSessions,
+// new(utils.SessionFilter), &aSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Errorf("Error: %v with len(aSessions)=%v , session : %+v", err, len(aSessions), utils.ToIJSON(aSessions))
+// }
+// // check to don't have passive session on slave
+// var pSessions []*sessions.ExternalSession
+// if err := smgRplcSlvRPC.Call(utils.SessionSv1GetPassiveSessions,
+// new(utils.SessionFilter), &pSessions); err == nil || err.Error() != utils.ErrNotFound.Error() {
+// t.Errorf("Error: %v with len(pSessions)=%v , session : %+v", err, len(pSessions), utils.ToIJSON(pSessions))
+// }
- var acnt *engine.Account
- attrs := &utils.AttrGetAccount{
- Tenant: "cgrates.org",
- Account: "1005",
- }
+// var acnt *engine.Account
+// attrs := &utils.AttrGetAccount{
+// Tenant: "cgrates.org",
+// Account: "1005",
+// }
- if err := smgRplcSlvRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
- t.Error(err)
- // a tolerance of +/- 5ms is acceptable
- } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != float64(3*time.Second) {
- t.Errorf("Expecting: ~%v, received: %v", 3*time.Second, rply)
- }
-}
+// if err := smgRplcSlvRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+// t.Error(err)
+// // a tolerance of +/- 5ms is acceptable
+// } else if rply := acnt.BalanceMap[utils.MetaVoice].GetTotalValue(); rply != float64(3*time.Second) {
+// t.Errorf("Expecting: ~%v, received: %v", 3*time.Second, rply)
+// }
+// }
-func testSessionSRplStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testSessionSRplStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/sessionpause_it_test.go b/general_tests/sessionpause_it_test.go
index a0e79a83b..56811e816 100644
--- a/general_tests/sessionpause_it_test.go
+++ b/general_tests/sessionpause_it_test.go
@@ -21,914 +21,914 @@ along with this program. If not, see
package general_tests
-import (
- "encoding/json"
- "net/rpc"
- "path"
- "reflect"
- "testing"
- "time"
+// import (
+// "encoding/json"
+// "net/rpc"
+// "path"
+// "reflect"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- sesPauseCfgDir string
- sesPauseCfgPath string
- sesPauseCfg *config.CGRConfig
- sesPauseRPC *rpc.Client
+// var (
+// sesPauseCfgDir string
+// sesPauseCfgPath string
+// sesPauseCfg *config.CGRConfig
+// sesPauseRPC *rpc.Client
- sesPauseTests = []func(t *testing.T){
- testSesPauseItLoadConfig,
- testSesPauseItResetDataDB,
- testSesPauseItResetStorDb,
- testSesPauseItStartEngine,
- testSesPauseItRPCConn,
- testSesPauseItLoadFromFolder,
+// sesPauseTests = []func(t *testing.T){
+// testSesPauseItLoadConfig,
+// testSesPauseItResetDataDB,
+// testSesPauseItResetStorDb,
+// testSesPauseItStartEngine,
+// testSesPauseItRPCConn,
+// testSesPauseItLoadFromFolder,
- testSesPauseItAllPause,
- testSesPauseItInitPause,
- testSesPauseItInitUpdatePause,
- testSesPauseItUpdatePause,
+// testSesPauseItAllPause,
+// testSesPauseItInitPause,
+// testSesPauseItInitUpdatePause,
+// testSesPauseItUpdatePause,
- testSesPauseItStopCgrEngine,
- }
-)
+// testSesPauseItStopCgrEngine,
+// }
+// )
-func TestSesPauseItSessions(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- sesPauseCfgDir = "tutinternal"
- case utils.MetaMySQL:
- sesPauseCfgDir = "tutmysql"
- case utils.MetaMongo:
- sesPauseCfgDir = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sesPauseTests {
- t.Run(sesPauseCfgDir, stest)
- }
-}
+// func TestSesPauseItSessions(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// sesPauseCfgDir = "tutinternal"
+// case utils.MetaMySQL:
+// sesPauseCfgDir = "tutmysql"
+// case utils.MetaMongo:
+// sesPauseCfgDir = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sesPauseTests {
+// t.Run(sesPauseCfgDir, stest)
+// }
+// }
-func testSesPauseItLoadConfig(t *testing.T) {
- sesPauseCfgPath = path.Join(*dataDir, "conf", "samples", sesPauseCfgDir)
- if sesPauseCfg, err = config.NewCGRConfigFromPath(sesPauseCfgPath); err != nil {
- t.Error(err)
- }
-}
+// func testSesPauseItLoadConfig(t *testing.T) {
+// sesPauseCfgPath = path.Join(*dataDir, "conf", "samples", sesPauseCfgDir)
+// if sesPauseCfg, err = config.NewCGRConfigFromPath(sesPauseCfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testSesPauseItResetDataDB(t *testing.T) {
- if err := engine.InitDataDB(sesPauseCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesPauseItResetDataDB(t *testing.T) {
+// if err := engine.InitDataDB(sesPauseCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesPauseItResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(sesPauseCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesPauseItResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(sesPauseCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesPauseItStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(sesPauseCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesPauseItStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(sesPauseCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesPauseItRPCConn(t *testing.T) {
- var err error
- sesPauseRPC, err = newRPCClient(sesPauseCfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testSesPauseItRPCConn(t *testing.T) {
+// var err error
+// sesPauseRPC, err = newRPCClient(sesPauseCfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesPauseItLoadFromFolder(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := sesPauseRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- }
- time.Sleep(100 * time.Millisecond)
-}
+// func testSesPauseItLoadFromFolder(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
+// if err := sesPauseRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(100 * time.Millisecond)
+// }
-func testSesPauseItInitSession(t *testing.T, cgrID string, chargeable bool, usage time.Duration) {
- args1 := &sessions.V1InitSessionArgs{
- InitSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.CGRID: cgrID,
- utils.Category: utils.Call,
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestDebitIterval",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "1001",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: usage,
- },
- APIOpts: map[string]interface{}{
- utils.OptsSesDebitInterval: "0s",
- utils.OptsSesChargeable: chargeable,
- },
- },
- }
- var rply1 sessions.V1InitSessionReply
- if err := sesPauseRPC.Call(utils.SessionSv1InitiateSession,
- args1, &rply1); err != nil {
- t.Error(err)
- return
- } else if rply1.MaxUsage != nil && *rply1.MaxUsage != usage {
- t.Errorf("Unexpected MaxUsage: %v", rply1.MaxUsage)
- }
-}
+// func testSesPauseItInitSession(t *testing.T, cgrID string, chargeable bool, usage time.Duration) {
+// args1 := &sessions.V1InitSessionArgs{
+// InitSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.CGRID: cgrID,
+// utils.Category: utils.Call,
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestDebitIterval",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "1001",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: usage,
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsSesDebitInterval: "0s",
+// utils.OptsSesChargeable: chargeable,
+// },
+// },
+// }
+// var rply1 sessions.V1InitSessionReply
+// if err := sesPauseRPC.Call(utils.SessionSv1InitiateSession,
+// args1, &rply1); err != nil {
+// t.Error(err)
+// return
+// } else if rply1.MaxUsage != nil && *rply1.MaxUsage != usage {
+// t.Errorf("Unexpected MaxUsage: %v", rply1.MaxUsage)
+// }
+// }
-func testSesPauseItUpdateSession(t *testing.T, cgrID string, chargeable bool, usage time.Duration) {
- updtArgs := &sessions.V1UpdateSessionArgs{
- UpdateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.CGRID: cgrID,
- utils.Category: utils.Call,
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestDebitIterval",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "1001",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: usage,
- },
- APIOpts: map[string]interface{}{
- utils.OptsSesChargeable: chargeable,
- },
- },
- }
+// func testSesPauseItUpdateSession(t *testing.T, cgrID string, chargeable bool, usage time.Duration) {
+// updtArgs := &sessions.V1UpdateSessionArgs{
+// UpdateSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.CGRID: cgrID,
+// utils.Category: utils.Call,
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestDebitIterval",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "1001",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: usage,
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsSesChargeable: chargeable,
+// },
+// },
+// }
- var updtRpl sessions.V1UpdateSessionReply
- if err := sesPauseRPC.Call(utils.SessionSv1UpdateSession, updtArgs, &updtRpl); err != nil {
- t.Error(err)
- }
- if updtRpl.MaxUsage == nil || *updtRpl.MaxUsage != usage {
- t.Errorf("Expecting : %+v, received: %+v", usage, updtRpl.MaxUsage)
- }
-}
+// var updtRpl sessions.V1UpdateSessionReply
+// if err := sesPauseRPC.Call(utils.SessionSv1UpdateSession, updtArgs, &updtRpl); err != nil {
+// t.Error(err)
+// }
+// if updtRpl.MaxUsage == nil || *updtRpl.MaxUsage != usage {
+// t.Errorf("Expecting : %+v, received: %+v", usage, updtRpl.MaxUsage)
+// }
+// }
-func testSesPauseItTerminateSession(t *testing.T, cgrID string, chargeable bool, usage time.Duration) {
- args := &sessions.V1TerminateSessionArgs{
- TerminateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.CGRID: cgrID,
- utils.Category: utils.Call,
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestDebitIterval",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "1002",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: usage,
- },
- APIOpts: map[string]interface{}{
- utils.OptsSesChargeable: chargeable,
- },
- },
- }
- var rply string
- if err := sesPauseRPC.Call(utils.SessionSv1TerminateSession,
- args, &rply); err != nil {
- t.Error(err)
- }
- if rply != utils.OK {
- t.Errorf("Unexpected reply: %s", rply)
- }
- if err := sesPauseRPC.Call(utils.SessionSv1ProcessCDR, &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "testSesPauseItProccesCDR",
- Event: map[string]interface{}{
- utils.CGRID: cgrID,
- utils.Category: utils.Call,
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestDebitIterval",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "1002",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: usage,
- },
- }, &rply); err != nil {
- t.Error(err)
- } else if rply != utils.OK {
- t.Errorf("Received reply: %s", rply)
- }
-}
+// func testSesPauseItTerminateSession(t *testing.T, cgrID string, chargeable bool, usage time.Duration) {
+// args := &sessions.V1TerminateSessionArgs{
+// TerminateSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.CGRID: cgrID,
+// utils.Category: utils.Call,
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestDebitIterval",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "1002",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: usage,
+// },
+// APIOpts: map[string]interface{}{
+// utils.OptsSesChargeable: chargeable,
+// },
+// },
+// }
+// var rply string
+// if err := sesPauseRPC.Call(utils.SessionSv1TerminateSession,
+// args, &rply); err != nil {
+// t.Error(err)
+// }
+// if rply != utils.OK {
+// t.Errorf("Unexpected reply: %s", rply)
+// }
+// if err := sesPauseRPC.Call(utils.SessionSv1ProcessCDR, &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "testSesPauseItProccesCDR",
+// Event: map[string]interface{}{
+// utils.CGRID: cgrID,
+// utils.Category: utils.Call,
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestDebitIterval",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "1002",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: usage,
+// },
+// }, &rply); err != nil {
+// t.Error(err)
+// } else if rply != utils.OK {
+// t.Errorf("Received reply: %s", rply)
+// }
+// }
-func testSesPauseItAllPause(t *testing.T) {
- cgrID := "1b676c7583ceb27ad7c991ded73b2417faa29a6a"
- testSesPauseItInitSession(t, cgrID, false, time.Second)
- testSesPauseItUpdateSession(t, cgrID, false, 2*time.Second)
- testSesPauseItTerminateSession(t, cgrID, false, 5*time.Second)
- time.Sleep(20 * time.Millisecond)
- var cdrs []*engine.ExternalCDR
- req := utils.RPCCDRsFilter{RequestTypes: []string{utils.MetaPrepaid}, CGRIDs: []string{cgrID}}
- if err := sesPauseRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- }
+// func testSesPauseItAllPause(t *testing.T) {
+// cgrID := "1b676c7583ceb27ad7c991ded73b2417faa29a6a"
+// testSesPauseItInitSession(t, cgrID, false, time.Second)
+// testSesPauseItUpdateSession(t, cgrID, false, 2*time.Second)
+// testSesPauseItTerminateSession(t, cgrID, false, 5*time.Second)
+// time.Sleep(20 * time.Millisecond)
+// var cdrs []*engine.ExternalCDR
+// req := utils.RPCCDRsFilter{RequestTypes: []string{utils.MetaPrepaid}, CGRIDs: []string{cgrID}}
+// if err := sesPauseRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// }
- exp := []*engine.ExternalCDR{{
- CGRID: cgrID,
- RunID: "*default",
- OrderID: 0,
- OriginHost: "",
- Source: "",
- OriginID: "TestDebitIterval",
- ToR: "*voice",
- RequestType: "*prepaid",
- Tenant: "cgrates.org",
- Category: "call",
- Account: "1001",
- Subject: "1001",
- Destination: "1002",
- SetupTime: "2018-01-07 17:00:00 +0000 UTC",
- AnswerTime: "2018-01-07 17:00:10 +0000 UTC",
- Usage: "5s",
- ExtraFields: map[string]string{},
- CostSource: "*sessions",
- Cost: 0,
- CostDetails: "",
- ExtraInfo: "",
- PreRated: false,
- }}
- if len(cdrs) == 0 {
- t.Fatal("No cdrs returned")
- }
- cdrs[0].OrderID = 0
- cdString := cdrs[0].CostDetails
- cdrs[0].CostDetails = ""
- var val time.Time
- if val, err = utils.ParseTimeDetectLayout(cdrs[0].AnswerTime, ""); err != nil {
- t.Fatal(err)
- }
- cdrs[0].AnswerTime = val.UTC().String()
- if val, err = utils.ParseTimeDetectLayout(cdrs[0].SetupTime, ""); err != nil {
- t.Fatal(err)
- }
- cdrs[0].SetupTime = val.UTC().String()
- if !reflect.DeepEqual(exp, cdrs) {
- t.Errorf("Expected %s \n received: %s", utils.ToJSON(exp), utils.ToJSON(cdrs))
- }
+// exp := []*engine.ExternalCDR{{
+// CGRID: cgrID,
+// RunID: "*default",
+// OrderID: 0,
+// OriginHost: "",
+// Source: "",
+// OriginID: "TestDebitIterval",
+// ToR: "*voice",
+// RequestType: "*prepaid",
+// Tenant: "cgrates.org",
+// Category: "call",
+// Account: "1001",
+// Subject: "1001",
+// Destination: "1002",
+// SetupTime: "2018-01-07 17:00:00 +0000 UTC",
+// AnswerTime: "2018-01-07 17:00:10 +0000 UTC",
+// Usage: "5s",
+// ExtraFields: map[string]string{},
+// CostSource: "*sessions",
+// Cost: 0,
+// CostDetails: "",
+// ExtraInfo: "",
+// PreRated: false,
+// }}
+// if len(cdrs) == 0 {
+// t.Fatal("No cdrs returned")
+// }
+// cdrs[0].OrderID = 0
+// cdString := cdrs[0].CostDetails
+// cdrs[0].CostDetails = ""
+// var val time.Time
+// if val, err = utils.ParseTimeDetectLayout(cdrs[0].AnswerTime, ""); err != nil {
+// t.Fatal(err)
+// }
+// cdrs[0].AnswerTime = val.UTC().String()
+// if val, err = utils.ParseTimeDetectLayout(cdrs[0].SetupTime, ""); err != nil {
+// t.Fatal(err)
+// }
+// cdrs[0].SetupTime = val.UTC().String()
+// if !reflect.DeepEqual(exp, cdrs) {
+// t.Errorf("Expected %s \n received: %s", utils.ToJSON(exp), utils.ToJSON(cdrs))
+// }
- var cd engine.EventCost
- if err := json.Unmarshal([]byte(cdString), &cd); err != nil {
- t.Fatal(err)
- }
- evCost := engine.EventCost{
- CGRID: cgrID,
- RunID: "*default",
- StartTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- Usage: utils.DurationPointer(5 * time.Second),
- Cost: utils.Float64Pointer(0),
- Charges: []*engine.ChargingInterval{{
- RatingID: utils.MetaPause,
- Increments: []*engine.ChargingIncrement{{
- Usage: time.Second,
- Cost: 0,
- AccountingID: utils.MetaPause,
- CompressFactor: 1,
- }},
- CompressFactor: 1,
- }, {
- RatingID: utils.MetaPause,
- Increments: []*engine.ChargingIncrement{{
- Usage: 2 * time.Second,
- Cost: 0,
- AccountingID: utils.MetaPause,
- CompressFactor: 1,
- }},
- CompressFactor: 2,
- }},
- Rating: engine.Rating{
- utils.MetaPause: {
- ConnectFee: 0,
- RoundingMethod: "*up",
- RoundingDecimals: 5,
- MaxCost: 0,
- MaxCostStrategy: "",
- RatesID: utils.MetaPause,
- RatingFiltersID: utils.MetaPause,
- },
- },
- Accounting: engine.Accounting{
- utils.MetaPause: {
- AccountID: "1001",
- BalanceUUID: "",
- RatingID: utils.MetaPause,
- Units: 0,
- ExtraChargeID: "",
- },
- },
- RatingFilters: engine.RatingFilters{
- utils.MetaPause: {
- utils.DestinationID: "",
- utils.DestinationPrefixName: "",
- utils.RatingPlanID: utils.MetaPause,
- utils.Subject: "",
- },
- },
- Rates: engine.ChargedRates{
- utils.MetaPause: {{
- GroupIntervalStart: 0,
- Value: 0,
- RateIncrement: 1,
- RateUnit: 1,
- }},
- },
- }
- if !reflect.DeepEqual(evCost, cd) {
- t.Errorf("Expected %s \n received: %s", utils.ToJSON(evCost), utils.ToJSON(cd))
- }
-}
-func testSesPauseItInitPause(t *testing.T) {
- cgrID := "1b676c7583ceb27ad7c991ded73b2417faa29a6b"
- testSesPauseItInitSession(t, cgrID, false, time.Second)
- testSesPauseItUpdateSession(t, cgrID, true, 2*time.Second)
- testSesPauseItTerminateSession(t, cgrID, true, 5*time.Second)
- time.Sleep(20 * time.Millisecond)
- var cdrs []*engine.ExternalCDR
- req := utils.RPCCDRsFilter{RequestTypes: []string{utils.MetaPrepaid}, CGRIDs: []string{cgrID}}
- if err := sesPauseRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- }
+// var cd engine.EventCost
+// if err := json.Unmarshal([]byte(cdString), &cd); err != nil {
+// t.Fatal(err)
+// }
+// evCost := engine.EventCost{
+// CGRID: cgrID,
+// RunID: "*default",
+// StartTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// Usage: utils.DurationPointer(5 * time.Second),
+// Cost: utils.Float64Pointer(0),
+// Charges: []*engine.ChargingInterval{{
+// RatingID: utils.MetaPause,
+// Increments: []*engine.ChargingIncrement{{
+// Usage: time.Second,
+// Cost: 0,
+// AccountingID: utils.MetaPause,
+// CompressFactor: 1,
+// }},
+// CompressFactor: 1,
+// }, {
+// RatingID: utils.MetaPause,
+// Increments: []*engine.ChargingIncrement{{
+// Usage: 2 * time.Second,
+// Cost: 0,
+// AccountingID: utils.MetaPause,
+// CompressFactor: 1,
+// }},
+// CompressFactor: 2,
+// }},
+// Rating: engine.Rating{
+// utils.MetaPause: {
+// ConnectFee: 0,
+// RoundingMethod: "*up",
+// RoundingDecimals: 5,
+// MaxCost: 0,
+// MaxCostStrategy: "",
+// RatesID: utils.MetaPause,
+// RatingFiltersID: utils.MetaPause,
+// },
+// },
+// Accounting: engine.Accounting{
+// utils.MetaPause: {
+// AccountID: "1001",
+// BalanceUUID: "",
+// RatingID: utils.MetaPause,
+// Units: 0,
+// ExtraChargeID: "",
+// },
+// },
+// RatingFilters: engine.RatingFilters{
+// utils.MetaPause: {
+// utils.DestinationID: "",
+// utils.DestinationPrefixName: "",
+// utils.RatingPlanID: utils.MetaPause,
+// utils.Subject: "",
+// },
+// },
+// Rates: engine.ChargedRates{
+// utils.MetaPause: {{
+// GroupIntervalStart: 0,
+// Value: 0,
+// RateIncrement: 1,
+// RateUnit: 1,
+// }},
+// },
+// }
+// if !reflect.DeepEqual(evCost, cd) {
+// t.Errorf("Expected %s \n received: %s", utils.ToJSON(evCost), utils.ToJSON(cd))
+// }
+// }
+// func testSesPauseItInitPause(t *testing.T) {
+// cgrID := "1b676c7583ceb27ad7c991ded73b2417faa29a6b"
+// testSesPauseItInitSession(t, cgrID, false, time.Second)
+// testSesPauseItUpdateSession(t, cgrID, true, 2*time.Second)
+// testSesPauseItTerminateSession(t, cgrID, true, 5*time.Second)
+// time.Sleep(20 * time.Millisecond)
+// var cdrs []*engine.ExternalCDR
+// req := utils.RPCCDRsFilter{RequestTypes: []string{utils.MetaPrepaid}, CGRIDs: []string{cgrID}}
+// if err := sesPauseRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// }
- exp := []*engine.ExternalCDR{{
- CGRID: cgrID,
- RunID: "*default",
- OrderID: 0,
- OriginHost: "",
- Source: "",
- OriginID: "TestDebitIterval",
- ToR: "*voice",
- RequestType: "*prepaid",
- Tenant: "cgrates.org",
- Category: "call",
- Account: "1001",
- Subject: "1001",
- Destination: "1002",
- SetupTime: "2018-01-07 17:00:00 +0000 UTC",
- AnswerTime: "2018-01-07 17:00:10 +0000 UTC",
- Usage: "5s",
- ExtraFields: map[string]string{},
- CostSource: "*sessions",
- Cost: 0.2,
- CostDetails: "",
- ExtraInfo: "",
- PreRated: false,
- }}
- if len(cdrs) == 0 {
- t.Fatal("No cdrs returned")
- }
- cdrs[0].OrderID = 0
- cdString := cdrs[0].CostDetails
- cdrs[0].CostDetails = ""
- var val time.Time
- if val, err = utils.ParseTimeDetectLayout(cdrs[0].AnswerTime, ""); err != nil {
- t.Fatal(err)
- }
- cdrs[0].AnswerTime = val.UTC().String()
- if val, err = utils.ParseTimeDetectLayout(cdrs[0].SetupTime, ""); err != nil {
- t.Fatal(err)
- }
- cdrs[0].SetupTime = val.UTC().String()
- if !reflect.DeepEqual(exp, cdrs) {
- t.Errorf("Expected %s \n received: %s", utils.ToJSON(exp), utils.ToJSON(cdrs))
- }
+// exp := []*engine.ExternalCDR{{
+// CGRID: cgrID,
+// RunID: "*default",
+// OrderID: 0,
+// OriginHost: "",
+// Source: "",
+// OriginID: "TestDebitIterval",
+// ToR: "*voice",
+// RequestType: "*prepaid",
+// Tenant: "cgrates.org",
+// Category: "call",
+// Account: "1001",
+// Subject: "1001",
+// Destination: "1002",
+// SetupTime: "2018-01-07 17:00:00 +0000 UTC",
+// AnswerTime: "2018-01-07 17:00:10 +0000 UTC",
+// Usage: "5s",
+// ExtraFields: map[string]string{},
+// CostSource: "*sessions",
+// Cost: 0.2,
+// CostDetails: "",
+// ExtraInfo: "",
+// PreRated: false,
+// }}
+// if len(cdrs) == 0 {
+// t.Fatal("No cdrs returned")
+// }
+// cdrs[0].OrderID = 0
+// cdString := cdrs[0].CostDetails
+// cdrs[0].CostDetails = ""
+// var val time.Time
+// if val, err = utils.ParseTimeDetectLayout(cdrs[0].AnswerTime, ""); err != nil {
+// t.Fatal(err)
+// }
+// cdrs[0].AnswerTime = val.UTC().String()
+// if val, err = utils.ParseTimeDetectLayout(cdrs[0].SetupTime, ""); err != nil {
+// t.Fatal(err)
+// }
+// cdrs[0].SetupTime = val.UTC().String()
+// if !reflect.DeepEqual(exp, cdrs) {
+// t.Errorf("Expected %s \n received: %s", utils.ToJSON(exp), utils.ToJSON(cdrs))
+// }
- var cd engine.EventCost
- if err := json.Unmarshal([]byte(cdString), &cd); err != nil {
- t.Fatal(err)
- }
- evCost := engine.EventCost{
- CGRID: cgrID,
- RunID: "*default",
- StartTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- Usage: utils.DurationPointer(61 * time.Second),
- Cost: utils.Float64Pointer(0.2),
- Charges: []*engine.ChargingInterval{{
- RatingID: utils.MetaPause,
- Increments: []*engine.ChargingIncrement{{
- Usage: time.Second,
- Cost: 0,
- AccountingID: utils.MetaPause,
- CompressFactor: 1,
- }},
- CompressFactor: 1,
- }, {
- RatingID: "6b4139e",
- Increments: []*engine.ChargingIncrement{{
- Usage: 60 * time.Second,
- Cost: 0.2,
- AccountingID: "8305f9f",
- CompressFactor: 1,
- }},
- CompressFactor: 1,
- }},
- AccountSummary: &engine.AccountSummary{
- Tenant: "cgrates.org",
- ID: "1001",
- BalanceSummaries: engine.BalanceSummaries{{
- UUID: "219cabeb-16cb-446c-837c-8cc74230eecf",
- ID: "test",
- Type: "*monetary",
- Initial: 10,
- Value: 9.8,
- }},
- },
- Rating: engine.Rating{
- utils.MetaPause: {
- ConnectFee: 0,
- RoundingMethod: "*up",
- RoundingDecimals: 5,
- MaxCost: 0,
- MaxCostStrategy: "",
- RatesID: utils.MetaPause,
- RatingFiltersID: utils.MetaPause,
- },
- "6b4139e": {
- ConnectFee: 0.4,
- RoundingMethod: "*up",
- RoundingDecimals: 4,
- MaxCost: 0,
- MaxCostStrategy: "",
- RatesID: "3d3179b",
- RatingFiltersID: "00eaefb",
- },
- },
- Accounting: engine.Accounting{
- utils.MetaPause: {
- AccountID: "1001",
- BalanceUUID: "",
- RatingID: utils.MetaPause,
- Units: 0,
- ExtraChargeID: "",
- },
- "8305f9f": {
- AccountID: "cgrates.org:1001",
- BalanceUUID: "219cabeb-16cb-446c-837c-8cc74230eecf",
- RatingID: "",
- Units: 0.2,
- ExtraChargeID: "",
- },
- },
- RatingFilters: engine.RatingFilters{
- utils.MetaPause: {
- utils.DestinationID: "",
- utils.DestinationPrefixName: "",
- utils.RatingPlanID: utils.MetaPause,
- utils.Subject: "",
- },
- "00eaefb": {
- utils.DestinationID: "DST_1002",
- utils.DestinationPrefixName: "1002",
- utils.RatingPlanID: "RP_1001",
- utils.Subject: "*out:cgrates.org:call:1001",
- },
- },
- Rates: engine.ChargedRates{
- utils.MetaPause: {{
- GroupIntervalStart: 0,
- Value: 0,
- RateIncrement: 1,
- RateUnit: 1,
- }},
- "3d3179b": {{
- GroupIntervalStart: 0,
- Value: 0.2,
- RateIncrement: 60 * time.Second,
- RateUnit: 60 * time.Second,
- }, {
- GroupIntervalStart: 60 * time.Second,
- Value: 0.1,
- RateIncrement: time.Second,
- RateUnit: 60 * time.Second,
- }},
- },
- }
- // we already tested that the keys are populated corectly
- // sync the curent keys to better compare
- cd.AccountSummary.BalanceSummaries[0].UUID = evCost.AccountSummary.BalanceSummaries[0].UUID
- for k, ac := range cd.Accounting {
- if k != utils.MetaPause {
- ac.BalanceUUID = evCost.AccountSummary.BalanceSummaries[0].UUID
- }
- }
- cd.SyncKeys(&evCost)
- if !reflect.DeepEqual(evCost, cd) {
- t.Errorf("Expected %s \n received: %s", utils.ToJSON(evCost), utils.ToJSON(cd))
- }
-}
+// var cd engine.EventCost
+// if err := json.Unmarshal([]byte(cdString), &cd); err != nil {
+// t.Fatal(err)
+// }
+// evCost := engine.EventCost{
+// CGRID: cgrID,
+// RunID: "*default",
+// StartTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// Usage: utils.DurationPointer(61 * time.Second),
+// Cost: utils.Float64Pointer(0.2),
+// Charges: []*engine.ChargingInterval{{
+// RatingID: utils.MetaPause,
+// Increments: []*engine.ChargingIncrement{{
+// Usage: time.Second,
+// Cost: 0,
+// AccountingID: utils.MetaPause,
+// CompressFactor: 1,
+// }},
+// CompressFactor: 1,
+// }, {
+// RatingID: "6b4139e",
+// Increments: []*engine.ChargingIncrement{{
+// Usage: 60 * time.Second,
+// Cost: 0.2,
+// AccountingID: "8305f9f",
+// CompressFactor: 1,
+// }},
+// CompressFactor: 1,
+// }},
+// AccountSummary: &engine.AccountSummary{
+// Tenant: "cgrates.org",
+// ID: "1001",
+// BalanceSummaries: engine.BalanceSummaries{{
+// UUID: "219cabeb-16cb-446c-837c-8cc74230eecf",
+// ID: "test",
+// Type: "*monetary",
+// Initial: 10,
+// Value: 9.8,
+// }},
+// },
+// Rating: engine.Rating{
+// utils.MetaPause: {
+// ConnectFee: 0,
+// RoundingMethod: "*up",
+// RoundingDecimals: 5,
+// MaxCost: 0,
+// MaxCostStrategy: "",
+// RatesID: utils.MetaPause,
+// RatingFiltersID: utils.MetaPause,
+// },
+// "6b4139e": {
+// ConnectFee: 0.4,
+// RoundingMethod: "*up",
+// RoundingDecimals: 4,
+// MaxCost: 0,
+// MaxCostStrategy: "",
+// RatesID: "3d3179b",
+// RatingFiltersID: "00eaefb",
+// },
+// },
+// Accounting: engine.Accounting{
+// utils.MetaPause: {
+// AccountID: "1001",
+// BalanceUUID: "",
+// RatingID: utils.MetaPause,
+// Units: 0,
+// ExtraChargeID: "",
+// },
+// "8305f9f": {
+// AccountID: "cgrates.org:1001",
+// BalanceUUID: "219cabeb-16cb-446c-837c-8cc74230eecf",
+// RatingID: "",
+// Units: 0.2,
+// ExtraChargeID: "",
+// },
+// },
+// RatingFilters: engine.RatingFilters{
+// utils.MetaPause: {
+// utils.DestinationID: "",
+// utils.DestinationPrefixName: "",
+// utils.RatingPlanID: utils.MetaPause,
+// utils.Subject: "",
+// },
+// "00eaefb": {
+// utils.DestinationID: "DST_1002",
+// utils.DestinationPrefixName: "1002",
+// utils.RatingPlanID: "RP_1001",
+// utils.Subject: "*out:cgrates.org:call:1001",
+// },
+// },
+// Rates: engine.ChargedRates{
+// utils.MetaPause: {{
+// GroupIntervalStart: 0,
+// Value: 0,
+// RateIncrement: 1,
+// RateUnit: 1,
+// }},
+// "3d3179b": {{
+// GroupIntervalStart: 0,
+// Value: 0.2,
+// RateIncrement: 60 * time.Second,
+// RateUnit: 60 * time.Second,
+// }, {
+// GroupIntervalStart: 60 * time.Second,
+// Value: 0.1,
+// RateIncrement: time.Second,
+// RateUnit: 60 * time.Second,
+// }},
+// },
+// }
+// // we already tested that the keys are populated corectly
+// // sync the curent keys to better compare
+// cd.AccountSummary.BalanceSummaries[0].UUID = evCost.AccountSummary.BalanceSummaries[0].UUID
+// for k, ac := range cd.Accounting {
+// if k != utils.MetaPause {
+// ac.BalanceUUID = evCost.AccountSummary.BalanceSummaries[0].UUID
+// }
+// }
+// cd.SyncKeys(&evCost)
+// if !reflect.DeepEqual(evCost, cd) {
+// t.Errorf("Expected %s \n received: %s", utils.ToJSON(evCost), utils.ToJSON(cd))
+// }
+// }
-func testSesPauseItInitUpdatePause(t *testing.T) {
- cgrID := "1b676c7583ceb27ad7c991ded73b2417faa29a6c"
- testSesPauseItInitSession(t, cgrID, false, time.Second)
- testSesPauseItUpdateSession(t, cgrID, false, 2*time.Second)
- testSesPauseItTerminateSession(t, cgrID, true, 5*time.Second)
- time.Sleep(20 * time.Millisecond)
- var cdrs []*engine.ExternalCDR
- req := utils.RPCCDRsFilter{RequestTypes: []string{utils.MetaPrepaid}, CGRIDs: []string{cgrID}}
- if err := sesPauseRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- }
+// func testSesPauseItInitUpdatePause(t *testing.T) {
+// cgrID := "1b676c7583ceb27ad7c991ded73b2417faa29a6c"
+// testSesPauseItInitSession(t, cgrID, false, time.Second)
+// testSesPauseItUpdateSession(t, cgrID, false, 2*time.Second)
+// testSesPauseItTerminateSession(t, cgrID, true, 5*time.Second)
+// time.Sleep(20 * time.Millisecond)
+// var cdrs []*engine.ExternalCDR
+// req := utils.RPCCDRsFilter{RequestTypes: []string{utils.MetaPrepaid}, CGRIDs: []string{cgrID}}
+// if err := sesPauseRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// }
- exp := []*engine.ExternalCDR{{
- CGRID: cgrID,
- RunID: "*default",
- OrderID: 0,
- OriginHost: "",
- Source: "",
- OriginID: "TestDebitIterval",
- ToR: "*voice",
- RequestType: "*prepaid",
- Tenant: "cgrates.org",
- Category: "call",
- Account: "1001",
- Subject: "1001",
- Destination: "1002",
- SetupTime: "2018-01-07 17:00:00 +0000 UTC",
- AnswerTime: "2018-01-07 17:00:10 +0000 UTC",
- Usage: "5s",
- ExtraFields: map[string]string{},
- CostSource: "*sessions",
- Cost: 0.2,
- CostDetails: "",
- ExtraInfo: "",
- PreRated: false,
- }}
- if len(cdrs) == 0 {
- t.Fatal("No cdrs returned")
- }
- cdrs[0].OrderID = 0
- cdString := cdrs[0].CostDetails
- cdrs[0].CostDetails = ""
- var val time.Time
- if val, err = utils.ParseTimeDetectLayout(cdrs[0].AnswerTime, ""); err != nil {
- t.Fatal(err)
- }
- cdrs[0].AnswerTime = val.UTC().String()
- if val, err = utils.ParseTimeDetectLayout(cdrs[0].SetupTime, ""); err != nil {
- t.Fatal(err)
- }
- cdrs[0].SetupTime = val.UTC().String()
- if !reflect.DeepEqual(exp, cdrs) {
- t.Errorf("Expected %s \n received: %s", utils.ToJSON(exp), utils.ToJSON(cdrs))
- }
+// exp := []*engine.ExternalCDR{{
+// CGRID: cgrID,
+// RunID: "*default",
+// OrderID: 0,
+// OriginHost: "",
+// Source: "",
+// OriginID: "TestDebitIterval",
+// ToR: "*voice",
+// RequestType: "*prepaid",
+// Tenant: "cgrates.org",
+// Category: "call",
+// Account: "1001",
+// Subject: "1001",
+// Destination: "1002",
+// SetupTime: "2018-01-07 17:00:00 +0000 UTC",
+// AnswerTime: "2018-01-07 17:00:10 +0000 UTC",
+// Usage: "5s",
+// ExtraFields: map[string]string{},
+// CostSource: "*sessions",
+// Cost: 0.2,
+// CostDetails: "",
+// ExtraInfo: "",
+// PreRated: false,
+// }}
+// if len(cdrs) == 0 {
+// t.Fatal("No cdrs returned")
+// }
+// cdrs[0].OrderID = 0
+// cdString := cdrs[0].CostDetails
+// cdrs[0].CostDetails = ""
+// var val time.Time
+// if val, err = utils.ParseTimeDetectLayout(cdrs[0].AnswerTime, ""); err != nil {
+// t.Fatal(err)
+// }
+// cdrs[0].AnswerTime = val.UTC().String()
+// if val, err = utils.ParseTimeDetectLayout(cdrs[0].SetupTime, ""); err != nil {
+// t.Fatal(err)
+// }
+// cdrs[0].SetupTime = val.UTC().String()
+// if !reflect.DeepEqual(exp, cdrs) {
+// t.Errorf("Expected %s \n received: %s", utils.ToJSON(exp), utils.ToJSON(cdrs))
+// }
- var cd engine.EventCost
- if err := json.Unmarshal([]byte(cdString), &cd); err != nil {
- t.Fatal(err)
- }
- evCost := engine.EventCost{
- CGRID: cgrID,
- RunID: "*default",
- StartTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- Usage: utils.DurationPointer(63 * time.Second),
- Cost: utils.Float64Pointer(0.2),
- Charges: []*engine.ChargingInterval{{
- RatingID: utils.MetaPause,
- Increments: []*engine.ChargingIncrement{{
- Usage: time.Second,
- Cost: 0,
- AccountingID: utils.MetaPause,
- CompressFactor: 1,
- }},
- CompressFactor: 1,
- }, {
- RatingID: utils.MetaPause,
- Increments: []*engine.ChargingIncrement{{
- Usage: 2 * time.Second,
- Cost: 0,
- AccountingID: utils.MetaPause,
- CompressFactor: 1,
- }},
- CompressFactor: 1,
- }, {
- RatingID: "6b4139e",
- Increments: []*engine.ChargingIncrement{{
- Usage: 60 * time.Second,
- Cost: 0.2,
- AccountingID: "8305f9f",
- CompressFactor: 1,
- }},
- CompressFactor: 1,
- }},
- AccountSummary: &engine.AccountSummary{
- Tenant: "cgrates.org",
- ID: "1001",
- BalanceSummaries: engine.BalanceSummaries{{
- UUID: "219cabeb-16cb-446c-837c-8cc74230eecf",
- ID: "test",
- Type: "*monetary",
- Initial: 9.8,
- Value: 9.6,
- }},
- },
- Rating: engine.Rating{
- utils.MetaPause: {
- ConnectFee: 0,
- RoundingMethod: "*up",
- RoundingDecimals: 5,
- MaxCost: 0,
- MaxCostStrategy: "",
- RatesID: utils.MetaPause,
- RatingFiltersID: utils.MetaPause,
- },
- "6b4139e": {
- ConnectFee: 0.4,
- RoundingMethod: "*up",
- RoundingDecimals: 4,
- MaxCost: 0,
- MaxCostStrategy: "",
- RatesID: "3d3179b",
- RatingFiltersID: "00eaefb",
- },
- },
- Accounting: engine.Accounting{
- utils.MetaPause: {
- AccountID: "1001",
- BalanceUUID: "",
- RatingID: utils.MetaPause,
- Units: 0,
- ExtraChargeID: "",
- },
- "8305f9f": {
- AccountID: "cgrates.org:1001",
- BalanceUUID: "219cabeb-16cb-446c-837c-8cc74230eecf",
- RatingID: "",
- Units: 0.2,
- ExtraChargeID: "",
- },
- },
- RatingFilters: engine.RatingFilters{
- utils.MetaPause: {
- utils.DestinationID: "",
- utils.DestinationPrefixName: "",
- utils.RatingPlanID: utils.MetaPause,
- utils.Subject: "",
- },
- "00eaefb": {
- utils.DestinationID: "DST_1002",
- utils.DestinationPrefixName: "1002",
- utils.RatingPlanID: "RP_1001",
- utils.Subject: "*out:cgrates.org:call:1001",
- },
- },
- Rates: engine.ChargedRates{
- utils.MetaPause: {{
- GroupIntervalStart: 0,
- Value: 0,
- RateIncrement: 1,
- RateUnit: 1,
- }},
- "3d3179b": {{
- GroupIntervalStart: 0,
- Value: 0.2,
- RateIncrement: 60 * time.Second,
- RateUnit: 60 * time.Second,
- }, {
- GroupIntervalStart: 60 * time.Second,
- Value: 0.1,
- RateIncrement: time.Second,
- RateUnit: 60 * time.Second,
- }},
- },
- }
- // we already tested that the keys are populated corectly
- // sync the curent keys to better compare
- cd.AccountSummary.BalanceSummaries[0].UUID = evCost.AccountSummary.BalanceSummaries[0].UUID
- for k, ac := range cd.Accounting {
- if k != utils.MetaPause {
- ac.BalanceUUID = evCost.AccountSummary.BalanceSummaries[0].UUID
- }
- }
- cd.SyncKeys(&evCost)
- if !reflect.DeepEqual(evCost, cd) {
- t.Errorf("Expected %s \n received: %s", utils.ToJSON(evCost), utils.ToJSON(cd))
- }
-}
+// var cd engine.EventCost
+// if err := json.Unmarshal([]byte(cdString), &cd); err != nil {
+// t.Fatal(err)
+// }
+// evCost := engine.EventCost{
+// CGRID: cgrID,
+// RunID: "*default",
+// StartTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// Usage: utils.DurationPointer(63 * time.Second),
+// Cost: utils.Float64Pointer(0.2),
+// Charges: []*engine.ChargingInterval{{
+// RatingID: utils.MetaPause,
+// Increments: []*engine.ChargingIncrement{{
+// Usage: time.Second,
+// Cost: 0,
+// AccountingID: utils.MetaPause,
+// CompressFactor: 1,
+// }},
+// CompressFactor: 1,
+// }, {
+// RatingID: utils.MetaPause,
+// Increments: []*engine.ChargingIncrement{{
+// Usage: 2 * time.Second,
+// Cost: 0,
+// AccountingID: utils.MetaPause,
+// CompressFactor: 1,
+// }},
+// CompressFactor: 1,
+// }, {
+// RatingID: "6b4139e",
+// Increments: []*engine.ChargingIncrement{{
+// Usage: 60 * time.Second,
+// Cost: 0.2,
+// AccountingID: "8305f9f",
+// CompressFactor: 1,
+// }},
+// CompressFactor: 1,
+// }},
+// AccountSummary: &engine.AccountSummary{
+// Tenant: "cgrates.org",
+// ID: "1001",
+// BalanceSummaries: engine.BalanceSummaries{{
+// UUID: "219cabeb-16cb-446c-837c-8cc74230eecf",
+// ID: "test",
+// Type: "*monetary",
+// Initial: 9.8,
+// Value: 9.6,
+// }},
+// },
+// Rating: engine.Rating{
+// utils.MetaPause: {
+// ConnectFee: 0,
+// RoundingMethod: "*up",
+// RoundingDecimals: 5,
+// MaxCost: 0,
+// MaxCostStrategy: "",
+// RatesID: utils.MetaPause,
+// RatingFiltersID: utils.MetaPause,
+// },
+// "6b4139e": {
+// ConnectFee: 0.4,
+// RoundingMethod: "*up",
+// RoundingDecimals: 4,
+// MaxCost: 0,
+// MaxCostStrategy: "",
+// RatesID: "3d3179b",
+// RatingFiltersID: "00eaefb",
+// },
+// },
+// Accounting: engine.Accounting{
+// utils.MetaPause: {
+// AccountID: "1001",
+// BalanceUUID: "",
+// RatingID: utils.MetaPause,
+// Units: 0,
+// ExtraChargeID: "",
+// },
+// "8305f9f": {
+// AccountID: "cgrates.org:1001",
+// BalanceUUID: "219cabeb-16cb-446c-837c-8cc74230eecf",
+// RatingID: "",
+// Units: 0.2,
+// ExtraChargeID: "",
+// },
+// },
+// RatingFilters: engine.RatingFilters{
+// utils.MetaPause: {
+// utils.DestinationID: "",
+// utils.DestinationPrefixName: "",
+// utils.RatingPlanID: utils.MetaPause,
+// utils.Subject: "",
+// },
+// "00eaefb": {
+// utils.DestinationID: "DST_1002",
+// utils.DestinationPrefixName: "1002",
+// utils.RatingPlanID: "RP_1001",
+// utils.Subject: "*out:cgrates.org:call:1001",
+// },
+// },
+// Rates: engine.ChargedRates{
+// utils.MetaPause: {{
+// GroupIntervalStart: 0,
+// Value: 0,
+// RateIncrement: 1,
+// RateUnit: 1,
+// }},
+// "3d3179b": {{
+// GroupIntervalStart: 0,
+// Value: 0.2,
+// RateIncrement: 60 * time.Second,
+// RateUnit: 60 * time.Second,
+// }, {
+// GroupIntervalStart: 60 * time.Second,
+// Value: 0.1,
+// RateIncrement: time.Second,
+// RateUnit: 60 * time.Second,
+// }},
+// },
+// }
+// // we already tested that the keys are populated corectly
+// // sync the curent keys to better compare
+// cd.AccountSummary.BalanceSummaries[0].UUID = evCost.AccountSummary.BalanceSummaries[0].UUID
+// for k, ac := range cd.Accounting {
+// if k != utils.MetaPause {
+// ac.BalanceUUID = evCost.AccountSummary.BalanceSummaries[0].UUID
+// }
+// }
+// cd.SyncKeys(&evCost)
+// if !reflect.DeepEqual(evCost, cd) {
+// t.Errorf("Expected %s \n received: %s", utils.ToJSON(evCost), utils.ToJSON(cd))
+// }
+// }
-func testSesPauseItUpdatePause(t *testing.T) {
- cgrID := "1b676c7583ceb27ad7c991ded73b2417faa29a6d"
- testSesPauseItInitSession(t, cgrID, true, 30*time.Second) // debit 60s( the ratre interval is 60s)
- testSesPauseItUpdateSession(t, cgrID, false, 10*time.Second) // have a pause of 10s
- testSesPauseItUpdateSession(t, cgrID, true, 40*time.Second) // debit the 430s left from previsos debit and 10s extra
- testSesPauseItTerminateSession(t, cgrID, true, 65*time.Second) // end call with less than 80s and refund 10s
- time.Sleep(20 * time.Millisecond)
- var cdrs []*engine.ExternalCDR
- req := utils.RPCCDRsFilter{RequestTypes: []string{utils.MetaPrepaid}, CGRIDs: []string{cgrID}}
- if err := sesPauseRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
- t.Error("Unexpected error: ", err.Error())
- }
+// func testSesPauseItUpdatePause(t *testing.T) {
+// cgrID := "1b676c7583ceb27ad7c991ded73b2417faa29a6d"
+// testSesPauseItInitSession(t, cgrID, true, 30*time.Second) // debit 60s( the ratre interval is 60s)
+// testSesPauseItUpdateSession(t, cgrID, false, 10*time.Second) // have a pause of 10s
+// testSesPauseItUpdateSession(t, cgrID, true, 40*time.Second) // debit the 430s left from previsos debit and 10s extra
+// testSesPauseItTerminateSession(t, cgrID, true, 65*time.Second) // end call with less than 80s and refund 10s
+// time.Sleep(20 * time.Millisecond)
+// var cdrs []*engine.ExternalCDR
+// req := utils.RPCCDRsFilter{RequestTypes: []string{utils.MetaPrepaid}, CGRIDs: []string{cgrID}}
+// if err := sesPauseRPC.Call(utils.APIerSv2GetCDRs, &req, &cdrs); err != nil {
+// t.Error("Unexpected error: ", err.Error())
+// }
- exp := []*engine.ExternalCDR{{
- CGRID: cgrID,
- RunID: "*default",
- OrderID: 0,
- OriginHost: "",
- Source: "",
- OriginID: "TestDebitIterval",
- ToR: "*voice",
- RequestType: "*prepaid",
- Tenant: "cgrates.org",
- Category: "call",
- Account: "1001",
- Subject: "1001",
- Destination: "1002",
- SetupTime: "2018-01-07 17:00:00 +0000 UTC",
- AnswerTime: "2018-01-07 17:00:10 +0000 UTC",
- Usage: "1m5s",
- ExtraFields: map[string]string{},
- CostSource: "*sessions",
- Cost: 0.6,
- CostDetails: "",
- ExtraInfo: "",
- PreRated: false,
- }}
- if len(cdrs) == 0 {
- t.Fatal("No cdrs returned")
- }
- cdrs[0].OrderID = 0
- cdString := cdrs[0].CostDetails
- cdrs[0].CostDetails = ""
- var val time.Time
- if val, err = utils.ParseTimeDetectLayout(cdrs[0].AnswerTime, ""); err != nil {
- t.Fatal(err)
- }
- cdrs[0].AnswerTime = val.UTC().String()
- if val, err = utils.ParseTimeDetectLayout(cdrs[0].SetupTime, ""); err != nil {
- t.Fatal(err)
- }
- cdrs[0].SetupTime = val.UTC().String()
- if !reflect.DeepEqual(exp, cdrs) {
- t.Errorf("Expected %s \n received: %s", utils.ToJSON(exp), utils.ToJSON(cdrs))
- }
+// exp := []*engine.ExternalCDR{{
+// CGRID: cgrID,
+// RunID: "*default",
+// OrderID: 0,
+// OriginHost: "",
+// Source: "",
+// OriginID: "TestDebitIterval",
+// ToR: "*voice",
+// RequestType: "*prepaid",
+// Tenant: "cgrates.org",
+// Category: "call",
+// Account: "1001",
+// Subject: "1001",
+// Destination: "1002",
+// SetupTime: "2018-01-07 17:00:00 +0000 UTC",
+// AnswerTime: "2018-01-07 17:00:10 +0000 UTC",
+// Usage: "1m5s",
+// ExtraFields: map[string]string{},
+// CostSource: "*sessions",
+// Cost: 0.6,
+// CostDetails: "",
+// ExtraInfo: "",
+// PreRated: false,
+// }}
+// if len(cdrs) == 0 {
+// t.Fatal("No cdrs returned")
+// }
+// cdrs[0].OrderID = 0
+// cdString := cdrs[0].CostDetails
+// cdrs[0].CostDetails = ""
+// var val time.Time
+// if val, err = utils.ParseTimeDetectLayout(cdrs[0].AnswerTime, ""); err != nil {
+// t.Fatal(err)
+// }
+// cdrs[0].AnswerTime = val.UTC().String()
+// if val, err = utils.ParseTimeDetectLayout(cdrs[0].SetupTime, ""); err != nil {
+// t.Fatal(err)
+// }
+// cdrs[0].SetupTime = val.UTC().String()
+// if !reflect.DeepEqual(exp, cdrs) {
+// t.Errorf("Expected %s \n received: %s", utils.ToJSON(exp), utils.ToJSON(cdrs))
+// }
- var cd engine.EventCost
- if err := json.Unmarshal([]byte(cdString), &cd); err != nil {
- t.Fatal(err)
- }
- evCost := engine.EventCost{
- CGRID: cgrID,
- RunID: "*default",
- StartTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- Usage: utils.DurationPointer(70 * time.Second),
- Cost: utils.Float64Pointer(0.6),
- Charges: []*engine.ChargingInterval{
- {
- RatingID: "6b4139e",
- Increments: []*engine.ChargingIncrement{
- {
- Usage: 0,
- Cost: 0.4,
- AccountingID: "f2137e2",
- CompressFactor: 1,
- },
- {
- Usage: 60000000000,
- Cost: 0.2,
- AccountingID: "8305f9f",
- CompressFactor: 1,
- }},
- CompressFactor: 1,
- },
- {
- RatingID: "*pause",
- Increments: []*engine.ChargingIncrement{{
- Usage: 10000000000,
- Cost: 0,
- AccountingID: "*pause",
- CompressFactor: 1,
- }},
- CompressFactor: 1,
- },
- },
- AccountSummary: &engine.AccountSummary{
- Tenant: "cgrates.org",
- ID: "1001",
- BalanceSummaries: engine.BalanceSummaries{{
- UUID: "219cabeb-16cb-446c-837c-8cc74230eecf",
- ID: "test",
- Type: "*monetary",
- Initial: 9.6,
- Value: 9.,
- }},
- },
- Rating: engine.Rating{
- utils.MetaPause: {
- ConnectFee: 0,
- RoundingMethod: "*up",
- RoundingDecimals: 5,
- MaxCost: 0,
- MaxCostStrategy: "",
- RatesID: utils.MetaPause,
- RatingFiltersID: utils.MetaPause,
- },
- "6b4139e": {
- ConnectFee: 0.4,
- RoundingMethod: "*up",
- RoundingDecimals: 4,
- MaxCost: 0,
- MaxCostStrategy: "",
- RatesID: "3d3179b",
- RatingFiltersID: "00eaefb",
- },
- },
- Accounting: engine.Accounting{
- utils.MetaPause: {
- AccountID: "1001",
- BalanceUUID: "",
- RatingID: utils.MetaPause,
- Units: 0,
- ExtraChargeID: "",
- },
- "8305f9f": {
- AccountID: "cgrates.org:1001",
- BalanceUUID: "219cabeb-16cb-446c-837c-8cc74230eecf",
- RatingID: "",
- Units: 0.2,
- ExtraChargeID: "",
- },
- "f2137e2": {
- AccountID: "cgrates.org:1001",
- BalanceUUID: "219cabeb-16cb-446c-837c-8cc74230eecf",
- RatingID: "",
- Units: 0.4,
- },
- },
- RatingFilters: engine.RatingFilters{
- utils.MetaPause: {
- utils.DestinationID: "",
- utils.DestinationPrefixName: "",
- utils.RatingPlanID: utils.MetaPause,
- utils.Subject: "",
- },
- "00eaefb": {
- utils.DestinationID: "DST_1002",
- utils.DestinationPrefixName: "1002",
- utils.RatingPlanID: "RP_1001",
- utils.Subject: "*out:cgrates.org:call:1001",
- },
- },
- Rates: engine.ChargedRates{
- utils.MetaPause: {{
- GroupIntervalStart: 0,
- Value: 0,
- RateIncrement: 1,
- RateUnit: 1,
- }},
- "3d3179b": {{
- GroupIntervalStart: 0,
- Value: 0.2,
- RateIncrement: 60 * time.Second,
- RateUnit: 60 * time.Second,
- }, {
- GroupIntervalStart: 60 * time.Second,
- Value: 0.1,
- RateIncrement: time.Second,
- RateUnit: 60 * time.Second,
- }},
- },
- }
- // we already tested that the keys are populated corectly
- // sync the curent keys to better compare
- cd.AccountSummary.BalanceSummaries[0].UUID = evCost.AccountSummary.BalanceSummaries[0].UUID
- for k, ac := range cd.Accounting {
- if k != utils.MetaPause {
- ac.BalanceUUID = evCost.AccountSummary.BalanceSummaries[0].UUID
- }
- }
- cd.SyncKeys(&evCost)
- if !reflect.DeepEqual(evCost, cd) {
- t.Errorf("Expected %s \n received: %s", utils.ToJSON(evCost), utils.ToJSON(cd))
- }
-}
+// var cd engine.EventCost
+// if err := json.Unmarshal([]byte(cdString), &cd); err != nil {
+// t.Fatal(err)
+// }
+// evCost := engine.EventCost{
+// CGRID: cgrID,
+// RunID: "*default",
+// StartTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// Usage: utils.DurationPointer(70 * time.Second),
+// Cost: utils.Float64Pointer(0.6),
+// Charges: []*engine.ChargingInterval{
+// {
+// RatingID: "6b4139e",
+// Increments: []*engine.ChargingIncrement{
+// {
+// Usage: 0,
+// Cost: 0.4,
+// AccountingID: "f2137e2",
+// CompressFactor: 1,
+// },
+// {
+// Usage: 60000000000,
+// Cost: 0.2,
+// AccountingID: "8305f9f",
+// CompressFactor: 1,
+// }},
+// CompressFactor: 1,
+// },
+// {
+// RatingID: "*pause",
+// Increments: []*engine.ChargingIncrement{{
+// Usage: 10000000000,
+// Cost: 0,
+// AccountingID: "*pause",
+// CompressFactor: 1,
+// }},
+// CompressFactor: 1,
+// },
+// },
+// AccountSummary: &engine.AccountSummary{
+// Tenant: "cgrates.org",
+// ID: "1001",
+// BalanceSummaries: engine.BalanceSummaries{{
+// UUID: "219cabeb-16cb-446c-837c-8cc74230eecf",
+// ID: "test",
+// Type: "*monetary",
+// Initial: 9.6,
+// Value: 9.,
+// }},
+// },
+// Rating: engine.Rating{
+// utils.MetaPause: {
+// ConnectFee: 0,
+// RoundingMethod: "*up",
+// RoundingDecimals: 5,
+// MaxCost: 0,
+// MaxCostStrategy: "",
+// RatesID: utils.MetaPause,
+// RatingFiltersID: utils.MetaPause,
+// },
+// "6b4139e": {
+// ConnectFee: 0.4,
+// RoundingMethod: "*up",
+// RoundingDecimals: 4,
+// MaxCost: 0,
+// MaxCostStrategy: "",
+// RatesID: "3d3179b",
+// RatingFiltersID: "00eaefb",
+// },
+// },
+// Accounting: engine.Accounting{
+// utils.MetaPause: {
+// AccountID: "1001",
+// BalanceUUID: "",
+// RatingID: utils.MetaPause,
+// Units: 0,
+// ExtraChargeID: "",
+// },
+// "8305f9f": {
+// AccountID: "cgrates.org:1001",
+// BalanceUUID: "219cabeb-16cb-446c-837c-8cc74230eecf",
+// RatingID: "",
+// Units: 0.2,
+// ExtraChargeID: "",
+// },
+// "f2137e2": {
+// AccountID: "cgrates.org:1001",
+// BalanceUUID: "219cabeb-16cb-446c-837c-8cc74230eecf",
+// RatingID: "",
+// Units: 0.4,
+// },
+// },
+// RatingFilters: engine.RatingFilters{
+// utils.MetaPause: {
+// utils.DestinationID: "",
+// utils.DestinationPrefixName: "",
+// utils.RatingPlanID: utils.MetaPause,
+// utils.Subject: "",
+// },
+// "00eaefb": {
+// utils.DestinationID: "DST_1002",
+// utils.DestinationPrefixName: "1002",
+// utils.RatingPlanID: "RP_1001",
+// utils.Subject: "*out:cgrates.org:call:1001",
+// },
+// },
+// Rates: engine.ChargedRates{
+// utils.MetaPause: {{
+// GroupIntervalStart: 0,
+// Value: 0,
+// RateIncrement: 1,
+// RateUnit: 1,
+// }},
+// "3d3179b": {{
+// GroupIntervalStart: 0,
+// Value: 0.2,
+// RateIncrement: 60 * time.Second,
+// RateUnit: 60 * time.Second,
+// }, {
+// GroupIntervalStart: 60 * time.Second,
+// Value: 0.1,
+// RateIncrement: time.Second,
+// RateUnit: 60 * time.Second,
+// }},
+// },
+// }
+// // we already tested that the keys are populated corectly
+// // sync the curent keys to better compare
+// cd.AccountSummary.BalanceSummaries[0].UUID = evCost.AccountSummary.BalanceSummaries[0].UUID
+// for k, ac := range cd.Accounting {
+// if k != utils.MetaPause {
+// ac.BalanceUUID = evCost.AccountSummary.BalanceSummaries[0].UUID
+// }
+// }
+// cd.SyncKeys(&evCost)
+// if !reflect.DeepEqual(evCost, cd) {
+// t.Errorf("Expected %s \n received: %s", utils.ToJSON(evCost), utils.ToJSON(cd))
+// }
+// }
-func testSesPauseItStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testSesPauseItStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/sessionrefund_it_test.go b/general_tests/sessionrefund_it_test.go
index 0a33bad93..3562ba770 100644
--- a/general_tests/sessionrefund_it_test.go
+++ b/general_tests/sessionrefund_it_test.go
@@ -20,306 +20,306 @@ along with this program. If not, see
*/
package general_tests
-import (
- "net/rpc"
- "path"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- srCfgPath string
- srCfgDIR string
- srCfg *config.CGRConfig
- srrpc *rpc.Client
- sraccount = "refundAcc"
- srtenant = "cgrates.org"
+// var (
+// srCfgPath string
+// srCfgDIR string
+// srCfg *config.CGRConfig
+// srrpc *rpc.Client
+// sraccount = "refundAcc"
+// srtenant = "cgrates.org"
- sTestSrIt = []func(t *testing.T){
- testSrItLoadConfig,
- testSrItResetDataDB,
- testSrItResetStorDb,
- testSrItStartEngine,
- testSrItRPCConn,
- testSrItLoadFromFolder,
- testSrItAddVoiceBalance,
- testSrItInitSession,
- testSrItTerminateSession,
- testSrItAddMonetaryBalance,
- testSrItInitSession2,
- testSrItTerminateSession2,
- testSrItStopCgrEngine,
- }
-)
+// sTestSrIt = []func(t *testing.T){
+// testSrItLoadConfig,
+// testSrItResetDataDB,
+// testSrItResetStorDb,
+// testSrItStartEngine,
+// testSrItRPCConn,
+// testSrItLoadFromFolder,
+// testSrItAddVoiceBalance,
+// testSrItInitSession,
+// testSrItTerminateSession,
+// testSrItAddMonetaryBalance,
+// testSrItInitSession2,
+// testSrItTerminateSession2,
+// testSrItStopCgrEngine,
+// }
+// )
-func TestSrIt(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- srCfgDIR = "tutinternal"
- case utils.MetaMySQL:
- srCfgDIR = "tutmysql_internal"
- case utils.MetaMongo:
- srCfgDIR = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sTestSrIt {
- t.Run(srCfgDIR, stest)
- }
-}
+// func TestSrIt(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// srCfgDIR = "tutinternal"
+// case utils.MetaMySQL:
+// srCfgDIR = "tutmysql_internal"
+// case utils.MetaMongo:
+// srCfgDIR = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sTestSrIt {
+// t.Run(srCfgDIR, stest)
+// }
+// }
-func testSrItLoadConfig(t *testing.T) {
- srCfgPath = path.Join(*dataDir, "conf", "samples", srCfgDIR)
- if srCfg, err = config.NewCGRConfigFromPath(srCfgPath); err != nil {
- t.Error(err)
- }
-}
+// func testSrItLoadConfig(t *testing.T) {
+// srCfgPath = path.Join(*dataDir, "conf", "samples", srCfgDIR)
+// if srCfg, err = config.NewCGRConfigFromPath(srCfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testSrItResetDataDB(t *testing.T) {
- if err := engine.InitDataDB(srCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSrItResetDataDB(t *testing.T) {
+// if err := engine.InitDataDB(srCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSrItResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(srCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSrItResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(srCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSrItStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(srCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testSrItStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(srCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSrItRPCConn(t *testing.T) {
- var err error
- srrpc, err = newRPCClient(srCfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testSrItRPCConn(t *testing.T) {
+// var err error
+// srrpc, err = newRPCClient(srCfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSrItLoadFromFolder(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
- if err := srrpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- }
- time.Sleep(100 * time.Millisecond)
-}
+// func testSrItLoadFromFolder(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
+// if err := srrpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(100 * time.Millisecond)
+// }
-func testAccountBalance(t *testing.T, sracc, srten, balType string, expected float64) {
- var acnt *engine.Account
- attrs := &utils.AttrGetAccount{
- Tenant: srten,
- Account: sracc,
- }
- if err := srrpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
- t.Error(err)
- } else if rply := acnt.BalanceMap[balType].GetTotalValue(); rply != expected {
- t.Errorf("Expecting: %v, received: %v",
- expected, rply)
- }
-}
+// func testAccountBalance(t *testing.T, sracc, srten, balType string, expected float64) {
+// var acnt *engine.Account
+// attrs := &utils.AttrGetAccount{
+// Tenant: srten,
+// Account: sracc,
+// }
+// if err := srrpc.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+// t.Error(err)
+// } else if rply := acnt.BalanceMap[balType].GetTotalValue(); rply != expected {
+// t.Errorf("Expecting: %v, received: %v",
+// expected, rply)
+// }
+// }
-func testSrItAddVoiceBalance(t *testing.T) {
- attrSetBalance := utils.AttrSetBalance{
- Tenant: srtenant,
- Account: sraccount,
- BalanceType: utils.MetaVoice,
- Value: 5 * float64(time.Second),
- Balance: map[string]interface{}{
- utils.ID: "TestDynamicDebitBalance",
- utils.RatingSubject: "*zero5ms",
- },
- }
- var reply string
- if err := srrpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Received: %s", reply)
- }
- t.Run("TestAddVoiceBalance", func(t *testing.T) {
- testAccountBalance(t, sraccount, srtenant, utils.MetaVoice, 5*float64(time.Second))
- })
-}
+// func testSrItAddVoiceBalance(t *testing.T) {
+// attrSetBalance := utils.AttrSetBalance{
+// Tenant: srtenant,
+// Account: sraccount,
+// BalanceType: utils.MetaVoice,
+// Value: 5 * float64(time.Second),
+// Balance: map[string]interface{}{
+// utils.ID: "TestDynamicDebitBalance",
+// utils.RatingSubject: "*zero5ms",
+// },
+// }
+// var reply string
+// if err := srrpc.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Received: %s", reply)
+// }
+// t.Run("TestAddVoiceBalance", func(t *testing.T) {
+// testAccountBalance(t, sraccount, srtenant, utils.MetaVoice, 5*float64(time.Second))
+// })
+// }
-func testSrItInitSession(t *testing.T) {
- args1 := &sessions.V1InitSessionArgs{
- InitSession: true,
+// func testSrItInitSession(t *testing.T) {
+// args1 := &sessions.V1InitSessionArgs{
+// InitSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: srtenant,
- ID: "TestSrItInitiateSession",
- Event: map[string]interface{}{
- utils.Tenant: srtenant,
- utils.Category: "call",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestRefund",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: sraccount,
- utils.Subject: "TEST",
- utils.Destination: "TEST",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 2 * time.Second,
- },
- },
- }
- var rply1 sessions.V1InitSessionReply
- if err := srrpc.Call(utils.SessionSv1InitiateSession,
- args1, &rply1); err != nil {
- t.Error(err)
- return
- } else if rply1.MaxUsage == nil || *rply1.MaxUsage != 2*time.Second {
- t.Errorf("Unexpected MaxUsage: %v", rply1.MaxUsage)
- }
- t.Run("TestInitSession", func(t *testing.T) {
- testAccountBalance(t, sraccount, srtenant, utils.MetaVoice, 3*float64(time.Second))
- })
-}
+// CGREvent: &utils.CGREvent{
+// Tenant: srtenant,
+// ID: "TestSrItInitiateSession",
+// Event: map[string]interface{}{
+// utils.Tenant: srtenant,
+// utils.Category: "call",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestRefund",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: sraccount,
+// utils.Subject: "TEST",
+// utils.Destination: "TEST",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 2 * time.Second,
+// },
+// },
+// }
+// var rply1 sessions.V1InitSessionReply
+// if err := srrpc.Call(utils.SessionSv1InitiateSession,
+// args1, &rply1); err != nil {
+// t.Error(err)
+// return
+// } else if rply1.MaxUsage == nil || *rply1.MaxUsage != 2*time.Second {
+// t.Errorf("Unexpected MaxUsage: %v", rply1.MaxUsage)
+// }
+// t.Run("TestInitSession", func(t *testing.T) {
+// testAccountBalance(t, sraccount, srtenant, utils.MetaVoice, 3*float64(time.Second))
+// })
+// }
-func testSrItTerminateSession(t *testing.T) {
- args := &sessions.V1TerminateSessionArgs{
- TerminateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: srtenant,
- ID: "TestSrItUpdateSession",
- Event: map[string]interface{}{
- utils.Tenant: srtenant,
- utils.Category: "call",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestRefund",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: sraccount,
- utils.Subject: "TEST",
- utils.Destination: "TEST",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 0,
- },
- },
- }
- var rply string
- if err := srrpc.Call(utils.SessionSv1TerminateSession,
- args, &rply); err != nil {
- t.Error(err)
- }
- if rply != utils.OK {
- t.Errorf("Unexpected reply: %s", rply)
- }
- aSessions := make([]*sessions.ExternalSession, 0)
- if err := srrpc.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
- t.Run("TestTerminateSession", func(t *testing.T) {
- testAccountBalance(t, sraccount, srtenant, utils.MetaVoice, 5*float64(time.Second))
- })
-}
+// func testSrItTerminateSession(t *testing.T) {
+// args := &sessions.V1TerminateSessionArgs{
+// TerminateSession: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: srtenant,
+// ID: "TestSrItUpdateSession",
+// Event: map[string]interface{}{
+// utils.Tenant: srtenant,
+// utils.Category: "call",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestRefund",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: sraccount,
+// utils.Subject: "TEST",
+// utils.Destination: "TEST",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 0,
+// },
+// },
+// }
+// var rply string
+// if err := srrpc.Call(utils.SessionSv1TerminateSession,
+// args, &rply); err != nil {
+// t.Error(err)
+// }
+// if rply != utils.OK {
+// t.Errorf("Unexpected reply: %s", rply)
+// }
+// aSessions := make([]*sessions.ExternalSession, 0)
+// if err := srrpc.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// t.Run("TestTerminateSession", func(t *testing.T) {
+// testAccountBalance(t, sraccount, srtenant, utils.MetaVoice, 5*float64(time.Second))
+// })
+// }
-func testSrItAddMonetaryBalance(t *testing.T) {
- sraccount += "2"
- attrs := &utils.AttrSetBalance{
- Tenant: srtenant,
- Account: sraccount,
- BalanceType: utils.MetaMonetary,
- Value: 10.65,
- Balance: map[string]interface{}{
- utils.ID: utils.MetaDefault,
- },
- }
- var reply string
- if err := srrpc.Call(utils.APIerSv2SetBalance, attrs, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Received: %s", reply)
- }
- t.Run("TestAddMonetaryBalance", func(t *testing.T) { testAccountBalance(t, sraccount, srtenant, utils.MetaMonetary, 10.65) })
-}
+// func testSrItAddMonetaryBalance(t *testing.T) {
+// sraccount += "2"
+// attrs := &utils.AttrSetBalance{
+// Tenant: srtenant,
+// Account: sraccount,
+// BalanceType: utils.MetaMonetary,
+// Value: 10.65,
+// Balance: map[string]interface{}{
+// utils.ID: utils.MetaDefault,
+// },
+// }
+// var reply string
+// if err := srrpc.Call(utils.APIerSv2SetBalance, attrs, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Received: %s", reply)
+// }
+// t.Run("TestAddMonetaryBalance", func(t *testing.T) { testAccountBalance(t, sraccount, srtenant, utils.MetaMonetary, 10.65) })
+// }
-func testSrItInitSession2(t *testing.T) {
- args1 := &sessions.V1InitSessionArgs{
- InitSession: true,
+// func testSrItInitSession2(t *testing.T) {
+// args1 := &sessions.V1InitSessionArgs{
+// InitSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: srtenant,
- ID: "TestSrItInitiateSession1",
- Event: map[string]interface{}{
- utils.Tenant: srtenant,
- utils.Category: "call",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestRefund",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: sraccount,
- utils.Subject: "TEST",
- utils.Destination: "1001",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 2 * time.Minute,
- },
- },
- }
- var rply1 sessions.V1InitSessionReply
- if err := srrpc.Call(utils.SessionSv1InitiateSession,
- args1, &rply1); err != nil {
- t.Error(err)
- return
- } else if rply1.MaxUsage == nil || *rply1.MaxUsage != 2*time.Minute {
- t.Errorf("Unexpected MaxUsage: %v", rply1.MaxUsage)
- }
- t.Run("TestInitSession", func(t *testing.T) { testAccountBalance(t, sraccount, srtenant, utils.MetaMonetary, 10.3002) })
-}
+// CGREvent: &utils.CGREvent{
+// Tenant: srtenant,
+// ID: "TestSrItInitiateSession1",
+// Event: map[string]interface{}{
+// utils.Tenant: srtenant,
+// utils.Category: "call",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestRefund",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: sraccount,
+// utils.Subject: "TEST",
+// utils.Destination: "1001",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 2 * time.Minute,
+// },
+// },
+// }
+// var rply1 sessions.V1InitSessionReply
+// if err := srrpc.Call(utils.SessionSv1InitiateSession,
+// args1, &rply1); err != nil {
+// t.Error(err)
+// return
+// } else if rply1.MaxUsage == nil || *rply1.MaxUsage != 2*time.Minute {
+// t.Errorf("Unexpected MaxUsage: %v", rply1.MaxUsage)
+// }
+// t.Run("TestInitSession", func(t *testing.T) { testAccountBalance(t, sraccount, srtenant, utils.MetaMonetary, 10.3002) })
+// }
-func testSrItTerminateSession2(t *testing.T) {
- args := &sessions.V1TerminateSessionArgs{
- TerminateSession: true,
+// func testSrItTerminateSession2(t *testing.T) {
+// args := &sessions.V1TerminateSessionArgs{
+// TerminateSession: true,
- CGREvent: &utils.CGREvent{
- Tenant: srtenant,
- ID: "TestSrItUpdateSession",
- Event: map[string]interface{}{
- utils.Tenant: srtenant,
- utils.Category: "call",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestRefund",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: sraccount,
- utils.Subject: "TEST",
- utils.Destination: "1001",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: 0,
- },
- },
- }
- var rply string
- if err := srrpc.Call(utils.SessionSv1TerminateSession,
- args, &rply); err != nil {
- t.Error(err)
- }
- if rply != utils.OK {
- t.Errorf("Unexpected reply: %s", rply)
- }
- aSessions := make([]*sessions.ExternalSession, 0)
- if err := srrpc.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
- t.Run("TestTerminateSession", func(t *testing.T) { testAccountBalance(t, sraccount, srtenant, utils.MetaMonetary, 10.65) })
-}
+// CGREvent: &utils.CGREvent{
+// Tenant: srtenant,
+// ID: "TestSrItUpdateSession",
+// Event: map[string]interface{}{
+// utils.Tenant: srtenant,
+// utils.Category: "call",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestRefund",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: sraccount,
+// utils.Subject: "TEST",
+// utils.Destination: "1001",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: 0,
+// },
+// },
+// }
+// var rply string
+// if err := srrpc.Call(utils.SessionSv1TerminateSession,
+// args, &rply); err != nil {
+// t.Error(err)
+// }
+// if rply != utils.OK {
+// t.Errorf("Unexpected reply: %s", rply)
+// }
+// aSessions := make([]*sessions.ExternalSession, 0)
+// if err := srrpc.Call(utils.SessionSv1GetActiveSessions, new(utils.SessionFilter), &aSessions); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// t.Run("TestTerminateSession", func(t *testing.T) { testAccountBalance(t, sraccount, srtenant, utils.MetaMonetary, 10.65) })
+// }
-func testSrItStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testSrItStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/sessionroutes_it_test.go b/general_tests/sessionroutes_it_test.go
index 92f8ede99..9ab2e4861 100644
--- a/general_tests/sessionroutes_it_test.go
+++ b/general_tests/sessionroutes_it_test.go
@@ -21,510 +21,510 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "path"
- "reflect"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "reflect"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- sesRoutesCfgDir string
- sesRoutesCfgPath string
- sesRoutesCfg *config.CGRConfig
- sesRoutesRPC *rpc.Client
+// var (
+// sesRoutesCfgDir string
+// sesRoutesCfgPath string
+// sesRoutesCfg *config.CGRConfig
+// sesRoutesRPC *rpc.Client
- sesRoutesTests = []func(t *testing.T){
- testSesRoutesItLoadConfig,
- testSesRoutesItResetDataDB,
- testSesRoutesItResetStorDb,
- testSesRoutesItStartEngine,
- testSesRoutesItRPCConn,
- testSesRoutesItLoadFromFolder,
+// sesRoutesTests = []func(t *testing.T){
+// testSesRoutesItLoadConfig,
+// testSesRoutesItResetDataDB,
+// testSesRoutesItResetStorDb,
+// testSesRoutesItStartEngine,
+// testSesRoutesItRPCConn,
+// testSesRoutesItLoadFromFolder,
- testSesRoutesAuthorizeEvent,
- testSesRoutesProcessMessage,
- testSesRoutesProcessEvent,
+// testSesRoutesAuthorizeEvent,
+// testSesRoutesProcessMessage,
+// testSesRoutesProcessEvent,
- testSesRoutesItStopCgrEngine,
- }
-)
+// testSesRoutesItStopCgrEngine,
+// }
+// )
-func TestSesRoutesItSessions(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- sesRoutesCfgDir = "tutinternal"
- case utils.MetaMySQL:
- sesRoutesCfgDir = "tutmysql"
- case utils.MetaMongo:
- sesRoutesCfgDir = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sesRoutesTests {
- t.Run(sesRoutesCfgDir, stest)
- }
-}
+// func TestSesRoutesItSessions(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// sesRoutesCfgDir = "tutinternal"
+// case utils.MetaMySQL:
+// sesRoutesCfgDir = "tutmysql"
+// case utils.MetaMongo:
+// sesRoutesCfgDir = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sesRoutesTests {
+// t.Run(sesRoutesCfgDir, stest)
+// }
+// }
-func testSesRoutesItLoadConfig(t *testing.T) {
- sesRoutesCfgPath = path.Join(*dataDir, "conf", "samples", sesRoutesCfgDir)
- if sesRoutesCfg, err = config.NewCGRConfigFromPath(sesRoutesCfgPath); err != nil {
- t.Error(err)
- }
-}
+// func testSesRoutesItLoadConfig(t *testing.T) {
+// sesRoutesCfgPath = path.Join(*dataDir, "conf", "samples", sesRoutesCfgDir)
+// if sesRoutesCfg, err = config.NewCGRConfigFromPath(sesRoutesCfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testSesRoutesItResetDataDB(t *testing.T) {
- if err := engine.InitDataDB(sesRoutesCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesRoutesItResetDataDB(t *testing.T) {
+// if err := engine.InitDataDB(sesRoutesCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesRoutesItResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(sesRoutesCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesRoutesItResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(sesRoutesCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesRoutesItStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(sesRoutesCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesRoutesItStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(sesRoutesCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesRoutesItRPCConn(t *testing.T) {
- var err error
- sesRoutesRPC, err = newRPCClient(sesRoutesCfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testSesRoutesItRPCConn(t *testing.T) {
+// var err error
+// sesRoutesRPC, err = newRPCClient(sesRoutesCfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesRoutesItLoadFromFolder(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
- if err := sesRoutesRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- }
- time.Sleep(100 * time.Millisecond)
-}
+// func testSesRoutesItLoadFromFolder(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testit")}
+// if err := sesRoutesRPC.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(100 * time.Millisecond)
+// }
-func testSesRoutesAuthorizeEvent(t *testing.T) {
- cgrEv := &utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.Source: "testV4CDRsProcessCDR",
- utils.OriginID: "testV4CDRsProcessCDR",
- utils.OriginHost: "192.168.1.1",
- utils.RequestType: utils.MetaPostpaid,
- utils.Category: utils.Call,
- utils.AccountField: "1003",
- utils.Subject: "1003",
- utils.Destination: "1002",
- utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
- utils.SetupTime: time.Date(2018, 8, 24, 16, 00, 00, 0, time.UTC),
- utils.Usage: time.Minute,
- },
- APIOpts: map[string]interface{}{utils.OptsRoutesProfileCount: 1},
- }
- args := sessions.NewV1AuthorizeArgs(false, []string{},
- false, []string{}, false, []string{}, false, false,
- true, false, false, cgrEv, utils.Paginator{}, false, "")
+// func testSesRoutesAuthorizeEvent(t *testing.T) {
+// cgrEv := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.Source: "testV4CDRsProcessCDR",
+// utils.OriginID: "testV4CDRsProcessCDR",
+// utils.OriginHost: "192.168.1.1",
+// utils.RequestType: utils.MetaPostpaid,
+// utils.Category: utils.Call,
+// utils.AccountField: "1003",
+// utils.Subject: "1003",
+// utils.Destination: "1002",
+// utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
+// utils.SetupTime: time.Date(2018, 8, 24, 16, 00, 00, 0, time.UTC),
+// utils.Usage: time.Minute,
+// },
+// APIOpts: map[string]interface{}{utils.OptsRoutesProfileCount: 1},
+// }
+// args := sessions.NewV1AuthorizeArgs(false, []string{},
+// false, []string{}, false, []string{}, false, false,
+// true, false, false, cgrEv, utils.Paginator{}, false, "")
- var rply sessions.V1AuthorizeReply
- if err := sesRoutesRPC.Call(utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
- t.Fatal(err)
- }
- expected := sessions.V1AuthorizeReply{
- RouteProfiles: engine.SortedRoutesList{{
- ProfileID: "ROUTE_LEASTCOST_1",
- Sorting: "*lc",
- Routes: []*engine.SortedRoute{
- {
- RouteID: "route3",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Cost": 0.0102,
- "RatingPlanID": "RP_SPECIAL_1002",
- "Weight": 15.,
- },
- }, {
- RouteID: "route1",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Cost": 0.0102,
- "RatingPlanID": "RP_SPECIAL_1002",
- "Weight": 10.,
- },
- }, {
- RouteID: "route2",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Cost": 1.2,
- "RatingPlanID": "RP_RETAIL1",
- "Weight": 20.,
- },
- },
- },
- },
- }}
- if !reflect.DeepEqual(rply, expected) {
- t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
- }
- args = sessions.NewV1AuthorizeArgs(false, []string{},
- false, []string{}, false, []string{}, false, false,
- true, false, false, cgrEv, utils.Paginator{}, false, "2")
+// var rply sessions.V1AuthorizeReply
+// if err := sesRoutesRPC.Call(utils.SessionSv1AuthorizeEvent, args, &rply); err != nil {
+// t.Fatal(err)
+// }
+// expected := sessions.V1AuthorizeReply{
+// RouteProfiles: engine.SortedRoutesList{{
+// ProfileID: "ROUTE_LEASTCOST_1",
+// Sorting: "*lc",
+// Routes: []*engine.SortedRoute{
+// {
+// RouteID: "route3",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Cost": 0.0102,
+// "RatingPlanID": "RP_SPECIAL_1002",
+// "Weight": 15.,
+// },
+// }, {
+// RouteID: "route1",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Cost": 0.0102,
+// "RatingPlanID": "RP_SPECIAL_1002",
+// "Weight": 10.,
+// },
+// }, {
+// RouteID: "route2",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Cost": 1.2,
+// "RatingPlanID": "RP_RETAIL1",
+// "Weight": 20.,
+// },
+// },
+// },
+// },
+// }}
+// if !reflect.DeepEqual(rply, expected) {
+// t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
+// }
+// args = sessions.NewV1AuthorizeArgs(false, []string{},
+// false, []string{}, false, []string{}, false, false,
+// true, false, false, cgrEv, utils.Paginator{}, false, "2")
- rply = sessions.V1AuthorizeReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
- args, &rply); err != nil {
- t.Fatal(err)
- }
+// rply = sessions.V1AuthorizeReply{}
+// if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
+// args, &rply); err != nil {
+// t.Fatal(err)
+// }
- if !reflect.DeepEqual(rply, expected) {
- t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
- }
+// if !reflect.DeepEqual(rply, expected) {
+// t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
+// }
- expected = sessions.V1AuthorizeReply{
- RouteProfiles: engine.SortedRoutesList{{
- ProfileID: "ROUTE_LEASTCOST_1",
- Sorting: "*lc",
- Routes: []*engine.SortedRoute{
- {
- RouteID: "route3",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Cost": 0.0102,
- "RatingPlanID": "RP_SPECIAL_1002",
- "Weight": 15.,
- },
- }, {
- RouteID: "route1",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Cost": 0.0102,
- "RatingPlanID": "RP_SPECIAL_1002",
- "Weight": 10.,
- },
- },
- },
- },
- }}
+// expected = sessions.V1AuthorizeReply{
+// RouteProfiles: engine.SortedRoutesList{{
+// ProfileID: "ROUTE_LEASTCOST_1",
+// Sorting: "*lc",
+// Routes: []*engine.SortedRoute{
+// {
+// RouteID: "route3",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Cost": 0.0102,
+// "RatingPlanID": "RP_SPECIAL_1002",
+// "Weight": 15.,
+// },
+// }, {
+// RouteID: "route1",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Cost": 0.0102,
+// "RatingPlanID": "RP_SPECIAL_1002",
+// "Weight": 10.,
+// },
+// },
+// },
+// },
+// }}
- args = sessions.NewV1AuthorizeArgs(false, []string{},
- false, []string{}, false, []string{}, false, false,
- true, false, false, cgrEv, utils.Paginator{}, false, "1")
+// args = sessions.NewV1AuthorizeArgs(false, []string{},
+// false, []string{}, false, []string{}, false, false,
+// true, false, false, cgrEv, utils.Paginator{}, false, "1")
- rply = sessions.V1AuthorizeReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
- args, &rply); err != nil {
- t.Fatal(err)
- }
+// rply = sessions.V1AuthorizeReply{}
+// if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
+// args, &rply); err != nil {
+// t.Fatal(err)
+// }
- if !reflect.DeepEqual(rply, expected) {
- t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
- }
+// if !reflect.DeepEqual(rply, expected) {
+// t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
+// }
- args = sessions.NewV1AuthorizeArgs(false, []string{},
- false, []string{}, false, []string{}, false, false,
- true, false, true, cgrEv, utils.Paginator{}, false, "")
+// args = sessions.NewV1AuthorizeArgs(false, []string{},
+// false, []string{}, false, []string{}, false, false,
+// true, false, true, cgrEv, utils.Paginator{}, false, "")
- rply = sessions.V1AuthorizeReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
- args, &rply); err != nil {
- t.Fatal(err)
- }
+// rply = sessions.V1AuthorizeReply{}
+// if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
+// args, &rply); err != nil {
+// t.Fatal(err)
+// }
- if !reflect.DeepEqual(rply, expected) {
- t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
- }
-}
+// if !reflect.DeepEqual(rply, expected) {
+// t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
+// }
+// }
-func testSesRoutesProcessMessage(t *testing.T) {
- cgrEv := &utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.Source: "testV4CDRsProcessCDR",
- utils.OriginID: "testV4CDRsProcessCDR",
- utils.OriginHost: "192.168.1.1",
- utils.RequestType: utils.MetaPostpaid,
- utils.Category: utils.Call,
- utils.AccountField: "1003",
- utils.Subject: "1003",
- utils.Destination: "1002",
- utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
- utils.SetupTime: time.Date(2018, 8, 24, 16, 00, 00, 0, time.UTC),
- utils.Usage: time.Minute,
- },
- APIOpts: map[string]interface{}{utils.OptsRoutesProfileCount: 1},
- }
- args := sessions.NewV1ProcessMessageArgs(false, []string{},
- false, []string{}, false, []string{}, false, false,
- true, false, false, cgrEv, utils.Paginator{}, false, "")
+// func testSesRoutesProcessMessage(t *testing.T) {
+// cgrEv := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.Source: "testV4CDRsProcessCDR",
+// utils.OriginID: "testV4CDRsProcessCDR",
+// utils.OriginHost: "192.168.1.1",
+// utils.RequestType: utils.MetaPostpaid,
+// utils.Category: utils.Call,
+// utils.AccountField: "1003",
+// utils.Subject: "1003",
+// utils.Destination: "1002",
+// utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
+// utils.SetupTime: time.Date(2018, 8, 24, 16, 00, 00, 0, time.UTC),
+// utils.Usage: time.Minute,
+// },
+// APIOpts: map[string]interface{}{utils.OptsRoutesProfileCount: 1},
+// }
+// args := sessions.NewV1ProcessMessageArgs(false, []string{},
+// false, []string{}, false, []string{}, false, false,
+// true, false, false, cgrEv, utils.Paginator{}, false, "")
- var rply sessions.V1ProcessMessageReply
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
- args, &rply); err != nil {
- t.Fatal(err)
- }
- expected := sessions.V1ProcessMessageReply{
- RouteProfiles: engine.SortedRoutesList{{
- ProfileID: "ROUTE_LEASTCOST_1",
- Sorting: "*lc",
- Routes: []*engine.SortedRoute{
- {
- RouteID: "route3",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Cost": 0.0102,
- "RatingPlanID": "RP_SPECIAL_1002",
- "Weight": 15.,
- },
- }, {
- RouteID: "route1",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Cost": 0.0102,
- "RatingPlanID": "RP_SPECIAL_1002",
- "Weight": 10.,
- },
- }, {
- RouteID: "route2",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Cost": 1.2,
- "RatingPlanID": "RP_RETAIL1",
- "Weight": 20.,
- },
- },
- },
- },
- }}
- if !reflect.DeepEqual(rply, expected) {
- t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
- }
+// var rply sessions.V1ProcessMessageReply
+// if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
+// args, &rply); err != nil {
+// t.Fatal(err)
+// }
+// expected := sessions.V1ProcessMessageReply{
+// RouteProfiles: engine.SortedRoutesList{{
+// ProfileID: "ROUTE_LEASTCOST_1",
+// Sorting: "*lc",
+// Routes: []*engine.SortedRoute{
+// {
+// RouteID: "route3",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Cost": 0.0102,
+// "RatingPlanID": "RP_SPECIAL_1002",
+// "Weight": 15.,
+// },
+// }, {
+// RouteID: "route1",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Cost": 0.0102,
+// "RatingPlanID": "RP_SPECIAL_1002",
+// "Weight": 10.,
+// },
+// }, {
+// RouteID: "route2",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Cost": 1.2,
+// "RatingPlanID": "RP_RETAIL1",
+// "Weight": 20.,
+// },
+// },
+// },
+// },
+// }}
+// if !reflect.DeepEqual(rply, expected) {
+// t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
+// }
- args = sessions.NewV1ProcessMessageArgs(false, []string{},
- false, []string{}, false, []string{}, false, false,
- true, false, false, cgrEv, utils.Paginator{}, false, "2")
+// args = sessions.NewV1ProcessMessageArgs(false, []string{},
+// false, []string{}, false, []string{}, false, false,
+// true, false, false, cgrEv, utils.Paginator{}, false, "2")
- rply = sessions.V1ProcessMessageReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
- args, &rply); err != nil {
- t.Fatal(err)
- }
+// rply = sessions.V1ProcessMessageReply{}
+// if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
+// args, &rply); err != nil {
+// t.Fatal(err)
+// }
- if !reflect.DeepEqual(rply, expected) {
- t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
- }
+// if !reflect.DeepEqual(rply, expected) {
+// t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
+// }
- expected = sessions.V1ProcessMessageReply{
- RouteProfiles: engine.SortedRoutesList{{
- ProfileID: "ROUTE_LEASTCOST_1",
- Sorting: "*lc",
- Routes: []*engine.SortedRoute{
- {
- RouteID: "route3",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Cost": 0.0102,
- "RatingPlanID": "RP_SPECIAL_1002",
- "Weight": 15.,
- },
- }, {
- RouteID: "route1",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Cost": 0.0102,
- "RatingPlanID": "RP_SPECIAL_1002",
- "Weight": 10.,
- },
- },
- },
- },
- }}
+// expected = sessions.V1ProcessMessageReply{
+// RouteProfiles: engine.SortedRoutesList{{
+// ProfileID: "ROUTE_LEASTCOST_1",
+// Sorting: "*lc",
+// Routes: []*engine.SortedRoute{
+// {
+// RouteID: "route3",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Cost": 0.0102,
+// "RatingPlanID": "RP_SPECIAL_1002",
+// "Weight": 15.,
+// },
+// }, {
+// RouteID: "route1",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Cost": 0.0102,
+// "RatingPlanID": "RP_SPECIAL_1002",
+// "Weight": 10.,
+// },
+// },
+// },
+// },
+// }}
- args = sessions.NewV1ProcessMessageArgs(false, []string{},
- false, []string{}, false, []string{}, false, false,
- true, false, false, cgrEv, utils.Paginator{}, false, "1")
+// args = sessions.NewV1ProcessMessageArgs(false, []string{},
+// false, []string{}, false, []string{}, false, false,
+// true, false, false, cgrEv, utils.Paginator{}, false, "1")
- rply = sessions.V1ProcessMessageReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
- args, &rply); err != nil {
- t.Fatal(err)
- }
+// rply = sessions.V1ProcessMessageReply{}
+// if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
+// args, &rply); err != nil {
+// t.Fatal(err)
+// }
- if !reflect.DeepEqual(rply, expected) {
- t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
- }
+// if !reflect.DeepEqual(rply, expected) {
+// t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
+// }
- args = sessions.NewV1ProcessMessageArgs(false, []string{},
- false, []string{}, false, []string{}, false, false,
- true, false, true, cgrEv, utils.Paginator{}, false, "")
+// args = sessions.NewV1ProcessMessageArgs(false, []string{},
+// false, []string{}, false, []string{}, false, false,
+// true, false, true, cgrEv, utils.Paginator{}, false, "")
- rply = sessions.V1ProcessMessageReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
- args, &rply); err != nil {
- t.Fatal(err)
- }
+// rply = sessions.V1ProcessMessageReply{}
+// if err := sesRoutesRPC.Call(utils.SessionSv1ProcessMessage,
+// args, &rply); err != nil {
+// t.Fatal(err)
+// }
- if !reflect.DeepEqual(rply, expected) {
- t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
- }
-}
+// if !reflect.DeepEqual(rply, expected) {
+// t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
+// }
+// }
-func testSesRoutesProcessEvent(t *testing.T) {
- cgrEv := &utils.CGREvent{
- Tenant: "cgrates.org",
- Event: map[string]interface{}{
- utils.Source: "testV4CDRsProcessCDR",
- utils.OriginID: "testV4CDRsProcessCDR",
- utils.OriginHost: "192.168.1.1",
- utils.RequestType: utils.MetaPostpaid,
- utils.Category: utils.Call,
- utils.AccountField: "1003",
- utils.Subject: "1003",
- utils.Destination: "1002",
- utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
- utils.SetupTime: time.Date(2018, 8, 24, 16, 00, 00, 0, time.UTC),
- utils.Usage: time.Minute,
- },
- APIOpts: map[string]interface{}{utils.OptsRoutesProfileCount: 1},
- }
- args := sessions.V1ProcessEventArgs{
- Flags: []string{"*routes"},
- CGREvent: cgrEv,
- Paginator: utils.Paginator{},
- }
+// func testSesRoutesProcessEvent(t *testing.T) {
+// cgrEv := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// Event: map[string]interface{}{
+// utils.Source: "testV4CDRsProcessCDR",
+// utils.OriginID: "testV4CDRsProcessCDR",
+// utils.OriginHost: "192.168.1.1",
+// utils.RequestType: utils.MetaPostpaid,
+// utils.Category: utils.Call,
+// utils.AccountField: "1003",
+// utils.Subject: "1003",
+// utils.Destination: "1002",
+// utils.AnswerTime: time.Date(2018, 8, 24, 16, 00, 26, 0, time.UTC),
+// utils.SetupTime: time.Date(2018, 8, 24, 16, 00, 00, 0, time.UTC),
+// utils.Usage: time.Minute,
+// },
+// APIOpts: map[string]interface{}{utils.OptsRoutesProfileCount: 1},
+// }
+// args := sessions.V1ProcessEventArgs{
+// Flags: []string{"*routes"},
+// CGREvent: cgrEv,
+// Paginator: utils.Paginator{},
+// }
- var rply sessions.V1ProcessEventReply
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessEvent, args, &rply); err != nil {
- t.Fatal(err)
- }
- expected := sessions.V1ProcessEventReply{
- RouteProfiles: map[string]engine.SortedRoutesList{
- utils.MetaRaw: {{
- ProfileID: "ROUTE_LEASTCOST_1",
- Sorting: "*lc",
- Routes: []*engine.SortedRoute{
- {
- RouteID: "route3",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Cost": 0.0102,
- "RatingPlanID": "RP_SPECIAL_1002",
- "Weight": 15.,
- },
- }, {
- RouteID: "route1",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Cost": 0.0102,
- "RatingPlanID": "RP_SPECIAL_1002",
- "Weight": 10.,
- },
- }, {
- RouteID: "route2",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Cost": 1.2,
- "RatingPlanID": "RP_RETAIL1",
- "Weight": 20.,
- },
- },
- },
- },
- },
- }}
- if !reflect.DeepEqual(rply, expected) {
- t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
- }
+// var rply sessions.V1ProcessEventReply
+// if err := sesRoutesRPC.Call(utils.SessionSv1ProcessEvent, args, &rply); err != nil {
+// t.Fatal(err)
+// }
+// expected := sessions.V1ProcessEventReply{
+// RouteProfiles: map[string]engine.SortedRoutesList{
+// utils.MetaRaw: {{
+// ProfileID: "ROUTE_LEASTCOST_1",
+// Sorting: "*lc",
+// Routes: []*engine.SortedRoute{
+// {
+// RouteID: "route3",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Cost": 0.0102,
+// "RatingPlanID": "RP_SPECIAL_1002",
+// "Weight": 15.,
+// },
+// }, {
+// RouteID: "route1",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Cost": 0.0102,
+// "RatingPlanID": "RP_SPECIAL_1002",
+// "Weight": 10.,
+// },
+// }, {
+// RouteID: "route2",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Cost": 1.2,
+// "RatingPlanID": "RP_RETAIL1",
+// "Weight": 20.,
+// },
+// },
+// },
+// },
+// },
+// }}
+// if !reflect.DeepEqual(rply, expected) {
+// t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
+// }
- args = sessions.V1ProcessEventArgs{
- Flags: []string{"*routes:*maxcost:2"},
- CGREvent: cgrEv,
- Paginator: utils.Paginator{},
- }
+// args = sessions.V1ProcessEventArgs{
+// Flags: []string{"*routes:*maxcost:2"},
+// CGREvent: cgrEv,
+// Paginator: utils.Paginator{},
+// }
- rply = sessions.V1ProcessEventReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessEvent,
- args, &rply); err != nil {
- t.Fatal(err)
- }
+// rply = sessions.V1ProcessEventReply{}
+// if err := sesRoutesRPC.Call(utils.SessionSv1ProcessEvent,
+// args, &rply); err != nil {
+// t.Fatal(err)
+// }
- if !reflect.DeepEqual(rply, expected) {
- t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
- }
+// if !reflect.DeepEqual(rply, expected) {
+// t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
+// }
- expected = sessions.V1ProcessEventReply{
- RouteProfiles: map[string]engine.SortedRoutesList{
- utils.MetaRaw: {{
- ProfileID: "ROUTE_LEASTCOST_1",
- Sorting: "*lc",
- Routes: []*engine.SortedRoute{
- {
- RouteID: "route3",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Cost": 0.0102,
- "RatingPlanID": "RP_SPECIAL_1002",
- "Weight": 15.,
- },
- }, {
- RouteID: "route1",
- RouteParameters: "",
- SortingData: map[string]interface{}{
- "Cost": 0.0102,
- "RatingPlanID": "RP_SPECIAL_1002",
- "Weight": 10.,
- },
- },
- },
- },
- },
- }}
+// expected = sessions.V1ProcessEventReply{
+// RouteProfiles: map[string]engine.SortedRoutesList{
+// utils.MetaRaw: {{
+// ProfileID: "ROUTE_LEASTCOST_1",
+// Sorting: "*lc",
+// Routes: []*engine.SortedRoute{
+// {
+// RouteID: "route3",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Cost": 0.0102,
+// "RatingPlanID": "RP_SPECIAL_1002",
+// "Weight": 15.,
+// },
+// }, {
+// RouteID: "route1",
+// RouteParameters: "",
+// SortingData: map[string]interface{}{
+// "Cost": 0.0102,
+// "RatingPlanID": "RP_SPECIAL_1002",
+// "Weight": 10.,
+// },
+// },
+// },
+// },
+// },
+// }}
- args = sessions.V1ProcessEventArgs{
- Flags: []string{"*routes:*maxcost:1"},
- CGREvent: cgrEv,
- Paginator: utils.Paginator{},
- }
- rply = sessions.V1ProcessEventReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessEvent,
- args, &rply); err != nil {
- t.Fatal(err)
- }
+// args = sessions.V1ProcessEventArgs{
+// Flags: []string{"*routes:*maxcost:1"},
+// CGREvent: cgrEv,
+// Paginator: utils.Paginator{},
+// }
+// rply = sessions.V1ProcessEventReply{}
+// if err := sesRoutesRPC.Call(utils.SessionSv1ProcessEvent,
+// args, &rply); err != nil {
+// t.Fatal(err)
+// }
- if !reflect.DeepEqual(rply, expected) {
- t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
- }
+// if !reflect.DeepEqual(rply, expected) {
+// t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
+// }
- args = sessions.V1ProcessEventArgs{
- Flags: []string{"*routes:*event_cost"},
- CGREvent: cgrEv,
- Paginator: utils.Paginator{},
- }
+// args = sessions.V1ProcessEventArgs{
+// Flags: []string{"*routes:*event_cost"},
+// CGREvent: cgrEv,
+// Paginator: utils.Paginator{},
+// }
- rply = sessions.V1ProcessEventReply{}
- if err := sesRoutesRPC.Call(utils.SessionSv1ProcessEvent,
- args, &rply); err != nil {
- t.Fatal(err)
- }
+// rply = sessions.V1ProcessEventReply{}
+// if err := sesRoutesRPC.Call(utils.SessionSv1ProcessEvent,
+// args, &rply); err != nil {
+// t.Fatal(err)
+// }
- if !reflect.DeepEqual(rply, expected) {
- t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
- }
-}
+// if !reflect.DeepEqual(rply, expected) {
+// t.Errorf("Expected: %s, received: %s", utils.ToJSON(expected), utils.ToJSON(rply))
+// }
+// }
-func testSesRoutesItStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testSesRoutesItStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/sessions_tnt_change_cdr_it_test.go b/general_tests/sessions_tnt_change_cdr_it_test.go
index 78c8f1c23..08ac3ed24 100644
--- a/general_tests/sessions_tnt_change_cdr_it_test.go
+++ b/general_tests/sessions_tnt_change_cdr_it_test.go
@@ -21,213 +21,213 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "path"
- "reflect"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "reflect"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- sesTntChngCdrsCfgDir string
- sesTntChngCdrsCfgPath string
- sesTntChngCdrsCfg *config.CGRConfig
- sesTntChngCdrsRPC *rpc.Client
+// var (
+// sesTntChngCdrsCfgDir string
+// sesTntChngCdrsCfgPath string
+// sesTntChngCdrsCfg *config.CGRConfig
+// sesTntChngCdrsRPC *rpc.Client
- sesTntChngCdrsTests = []func(t *testing.T){
- testSesTntChngCdrsLoadConfig,
- testSesTntChngCdrsResetDataDB,
- testSesTntChngCdrsResetStorDb,
- testSesTntChngCdrsStartEngine,
- testSesTntChngCdrsRPCConn,
- testSesTntChngCdrsSetChargerProfile1,
- testSesTntChngCdrsSetChargerProfile2,
- testChargerSCdrsAuthProcessEventAuth,
- testSesTntChngCdrsStopCgrEngine,
- }
-)
+// sesTntChngCdrsTests = []func(t *testing.T){
+// testSesTntChngCdrsLoadConfig,
+// testSesTntChngCdrsResetDataDB,
+// testSesTntChngCdrsResetStorDb,
+// testSesTntChngCdrsStartEngine,
+// testSesTntChngCdrsRPCConn,
+// testSesTntChngCdrsSetChargerProfile1,
+// testSesTntChngCdrsSetChargerProfile2,
+// testChargerSCdrsAuthProcessEventAuth,
+// testSesTntChngCdrsStopCgrEngine,
+// }
+// )
-func TestSesCdrsTntChange(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- sesTntChngCfgDir = "tutinternal"
- case utils.MetaMySQL:
- sesTntChngCfgDir = "tutmysql"
- case utils.MetaMongo:
- sesTntChngCfgDir = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, sestest := range sesTntChngTests {
- t.Run(sesTntChngCfgDir, sestest)
- }
-}
+// func TestSesCdrsTntChange(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// sesTntChngCfgDir = "tutinternal"
+// case utils.MetaMySQL:
+// sesTntChngCfgDir = "tutmysql"
+// case utils.MetaMongo:
+// sesTntChngCfgDir = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, sestest := range sesTntChngTests {
+// t.Run(sesTntChngCfgDir, sestest)
+// }
+// }
-func testSesTntChngCdrsLoadConfig(t *testing.T) {
- sesTntChngCfgPath = path.Join(*dataDir, "conf", "samples", sesTntChngCfgDir)
- if sesTntChngCfg, err = config.NewCGRConfigFromPath(sesTntChngCfgPath); err != nil {
- t.Error(err)
- }
-}
+// func testSesTntChngCdrsLoadConfig(t *testing.T) {
+// sesTntChngCfgPath = path.Join(*dataDir, "conf", "samples", sesTntChngCfgDir)
+// if sesTntChngCfg, err = config.NewCGRConfigFromPath(sesTntChngCfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testSesTntChngCdrsResetDataDB(t *testing.T) {
- if err := engine.InitDataDb(sesTntChngCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesTntChngCdrsResetDataDB(t *testing.T) {
+// if err := engine.InitDataDb(sesTntChngCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesTntChngCdrsResetStorDb(t *testing.T) {
- if err := engine.InitStorDb(sesTntChngCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesTntChngCdrsResetStorDb(t *testing.T) {
+// if err := engine.InitStorDb(sesTntChngCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesTntChngCdrsStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(sesTntChngCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesTntChngCdrsStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(sesTntChngCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesTntChngCdrsRPCConn(t *testing.T) {
- var err error
- sesTntChngRPC, err = newRPCClient(sesTntChngCfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testSesTntChngCdrsRPCConn(t *testing.T) {
+// var err error
+// sesTntChngRPC, err = newRPCClient(sesTntChngCfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesTntChngCdrsSetChargerProfile1(t *testing.T) {
- var reply *engine.ChargerProfile
- if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "Charger1"}, &reply); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatal(err)
- }
- chargerProfile := &v1.ChargerWithAPIOpts{
- ChargerProfile: &engine.ChargerProfile{
- Tenant: "cgrates.org",
- ID: "Charger1",
- RunID: utils.MetaDefault,
- AttributeIDs: []string{"*constant:*tenant:cgrates.ro;*constant:*req.Account:1234"},
- },
- }
+// func testSesTntChngCdrsSetChargerProfile1(t *testing.T) {
+// var reply *engine.ChargerProfile
+// if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "Charger1"}, &reply); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatal(err)
+// }
+// chargerProfile := &v1.ChargerWithAPIOpts{
+// ChargerProfile: &engine.ChargerProfile{
+// Tenant: "cgrates.org",
+// ID: "Charger1",
+// RunID: utils.MetaDefault,
+// AttributeIDs: []string{"*constant:*tenant:cgrates.ro;*constant:*req.Account:1234"},
+// },
+// }
- var result string
- if err := sesTntChngRPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
+// var result string
+// if err := sesTntChngRPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
- if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "Charger1"}, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply) {
- t.Errorf("Expecting : %+v, received: %+v", chargerProfile.ChargerProfile, reply)
- }
-}
+// if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "Charger1"}, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply) {
+// t.Errorf("Expecting : %+v, received: %+v", chargerProfile.ChargerProfile, reply)
+// }
+// }
-func testSesTntChngCdrsSetChargerProfile2(t *testing.T) {
- var reply *engine.ChargerProfile
- if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "Charger2"}, &reply); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatal(err)
- }
- chargerProfile := &v1.ChargerWithAPIOpts{
- ChargerProfile: &engine.ChargerProfile{
- Tenant: "cgrates.org",
- ID: "Charger2",
- RunID: utils.MetaRaw,
- AttributeIDs: []string{},
- },
- }
+// func testSesTntChngCdrsSetChargerProfile2(t *testing.T) {
+// var reply *engine.ChargerProfile
+// if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "Charger2"}, &reply); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatal(err)
+// }
+// chargerProfile := &v1.ChargerWithAPIOpts{
+// ChargerProfile: &engine.ChargerProfile{
+// Tenant: "cgrates.org",
+// ID: "Charger2",
+// RunID: utils.MetaRaw,
+// AttributeIDs: []string{},
+// },
+// }
- var result string
- if err := sesTntChngRPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
+// var result string
+// if err := sesTntChngRPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
- if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "Charger2"}, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply) {
- t.Errorf("Expecting : %+v, received: %+v", chargerProfile.ChargerProfile, reply)
- }
-}
+// if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "Charger2"}, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply) {
+// t.Errorf("Expecting : %+v, received: %+v", chargerProfile.ChargerProfile, reply)
+// }
+// }
-func testChargerSCdrsAuthProcessEventAuth(t *testing.T) {
- attrSetBalance := utils.AttrSetBalance{
- Tenant: "cgrates.org",
- Account: "1001",
- BalanceType: utils.MetaVoice,
- Value: float64(2 * time.Minute),
- Balance: map[string]interface{}{
- utils.ID: "testSes",
- utils.RatingSubject: "*zero1ms",
- },
- }
- var reply string
- if err := sesTntChngRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Received: %s", reply)
- }
+// func testChargerSCdrsAuthProcessEventAuth(t *testing.T) {
+// attrSetBalance := utils.AttrSetBalance{
+// Tenant: "cgrates.org",
+// Account: "1001",
+// BalanceType: utils.MetaVoice,
+// Value: float64(2 * time.Minute),
+// Balance: map[string]interface{}{
+// utils.ID: "testSes",
+// utils.RatingSubject: "*zero1ms",
+// },
+// }
+// var reply string
+// if err := sesTntChngRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Received: %s", reply)
+// }
- attrSetBalance2 := utils.AttrSetBalance{
- Tenant: "cgrates.ro",
- Account: "1234",
- BalanceType: utils.MetaVoice,
- Value: float64(2 * time.Minute),
- Balance: map[string]interface{}{
- utils.ID: "testSes",
- utils.RatingSubject: "*zero1ms",
- },
- }
- var reply2 string
- if err := sesTntChngRPC.Call(utils.APIerSv2SetBalance, attrSetBalance2, &reply2); err != nil {
- t.Error(err)
- } else if reply2 != utils.OK {
- t.Errorf("Received: %s", reply2)
- }
+// attrSetBalance2 := utils.AttrSetBalance{
+// Tenant: "cgrates.ro",
+// Account: "1234",
+// BalanceType: utils.MetaVoice,
+// Value: float64(2 * time.Minute),
+// Balance: map[string]interface{}{
+// utils.ID: "testSes",
+// utils.RatingSubject: "*zero1ms",
+// },
+// }
+// var reply2 string
+// if err := sesTntChngRPC.Call(utils.APIerSv2SetBalance, attrSetBalance2, &reply2); err != nil {
+// t.Error(err)
+// } else if reply2 != utils.OK {
+// t.Errorf("Received: %s", reply2)
+// }
- ev := &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestEv1",
- Event: map[string]interface{}{
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestEv1",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "1001",
- utils.Destination: "1002",
- utils.Usage: time.Minute,
- },
- }
- var rply sessions.V1AuthorizeReply
- if err := sesTntChngRPC.Call(utils.CDRsV1ProcessEvent, ev, &rply); err != nil {
- t.Fatal(err)
- }
- expected := &sessions.V1AuthorizeReply{
- MaxUsage: (*time.Duration)(utils.Int64Pointer(60000000000)),
- }
- if !reflect.DeepEqual(utils.ToJSON(&expected), utils.ToJSON(&rply)) {
- t.Errorf("Expecting : %+v, received: %+v", utils.ToJSON(&expected), utils.ToJSON(&rply))
- }
-}
+// ev := &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestEv1",
+// Event: map[string]interface{}{
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestEv1",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "1001",
+// utils.Destination: "1002",
+// utils.Usage: time.Minute,
+// },
+// }
+// var rply sessions.V1AuthorizeReply
+// if err := sesTntChngRPC.Call(utils.CDRsV1ProcessEvent, ev, &rply); err != nil {
+// t.Fatal(err)
+// }
+// expected := &sessions.V1AuthorizeReply{
+// MaxUsage: (*time.Duration)(utils.Int64Pointer(60000000000)),
+// }
+// if !reflect.DeepEqual(utils.ToJSON(&expected), utils.ToJSON(&rply)) {
+// t.Errorf("Expecting : %+v, received: %+v", utils.ToJSON(&expected), utils.ToJSON(&rply))
+// }
+// }
-func testSesTntChngCdrsStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testSesTntChngCdrsStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/sessions_tnt_change_it_test.go b/general_tests/sessions_tnt_change_it_test.go
index a36c5559e..5f2276f20 100644
--- a/general_tests/sessions_tnt_change_it_test.go
+++ b/general_tests/sessions_tnt_change_it_test.go
@@ -21,214 +21,214 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "path"
- "reflect"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "reflect"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- sesTntChngCfgDir string
- sesTntChngCfgPath string
- sesTntChngCfg *config.CGRConfig
- sesTntChngRPC *rpc.Client
+// var (
+// sesTntChngCfgDir string
+// sesTntChngCfgPath string
+// sesTntChngCfg *config.CGRConfig
+// sesTntChngRPC *rpc.Client
- sesTntChngTests = []func(t *testing.T){
- testSesTntChngLoadConfig,
- testSesTntChngResetDataDB,
- testSesTntChngResetStorDb,
- testSesTntChngStartEngine,
- testSesTntChngRPCConn,
- testSesTntChngSetChargerProfile1,
- testSesTntChngSetChargerProfile2,
- testChargerSAuthProcessEventAuth,
- testSesTntChngStopCgrEngine,
- }
-)
+// sesTntChngTests = []func(t *testing.T){
+// testSesTntChngLoadConfig,
+// testSesTntChngResetDataDB,
+// testSesTntChngResetStorDb,
+// testSesTntChngStartEngine,
+// testSesTntChngRPCConn,
+// testSesTntChngSetChargerProfile1,
+// testSesTntChngSetChargerProfile2,
+// testChargerSAuthProcessEventAuth,
+// testSesTntChngStopCgrEngine,
+// }
+// )
-func TestSesTntChange(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- sesTntChngCfgDir = "tutinternal"
- case utils.MetaMySQL:
- sesTntChngCfgDir = "tutmysql"
- case utils.MetaMongo:
- sesTntChngCfgDir = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, sestest := range sesTntChngTests {
- t.Run(sesTntChngCfgDir, sestest)
- }
-}
+// func TestSesTntChange(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// sesTntChngCfgDir = "tutinternal"
+// case utils.MetaMySQL:
+// sesTntChngCfgDir = "tutmysql"
+// case utils.MetaMongo:
+// sesTntChngCfgDir = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, sestest := range sesTntChngTests {
+// t.Run(sesTntChngCfgDir, sestest)
+// }
+// }
-func testSesTntChngLoadConfig(t *testing.T) {
- sesTntChngCfgPath = path.Join(*dataDir, "conf", "samples", sesTntChngCfgDir)
- if sesTntChngCfg, err = config.NewCGRConfigFromPath(sesTntChngCfgPath); err != nil {
- t.Error(err)
- }
-}
+// func testSesTntChngLoadConfig(t *testing.T) {
+// sesTntChngCfgPath = path.Join(*dataDir, "conf", "samples", sesTntChngCfgDir)
+// if sesTntChngCfg, err = config.NewCGRConfigFromPath(sesTntChngCfgPath); err != nil {
+// t.Error(err)
+// }
+// }
-func testSesTntChngResetDataDB(t *testing.T) {
- if err := engine.InitDataDb(sesTntChngCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesTntChngResetDataDB(t *testing.T) {
+// if err := engine.InitDataDb(sesTntChngCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesTntChngResetStorDb(t *testing.T) {
- if err := engine.InitStorDb(sesTntChngCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesTntChngResetStorDb(t *testing.T) {
+// if err := engine.InitStorDb(sesTntChngCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesTntChngStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(sesTntChngCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// func testSesTntChngStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(sesTntChngCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesTntChngRPCConn(t *testing.T) {
- var err error
- sesTntChngRPC, err = newRPCClient(sesTntChngCfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testSesTntChngRPCConn(t *testing.T) {
+// var err error
+// sesTntChngRPC, err = newRPCClient(sesTntChngCfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testSesTntChngSetChargerProfile1(t *testing.T) {
- var reply *engine.ChargerProfile
- if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "Charger1"}, &reply); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatal(err)
- }
- chargerProfile := &v1.ChargerWithCache{
- ChargerProfile: &engine.ChargerProfile{
- Tenant: "cgrates.org",
- ID: "Charger1",
- RunID: utils.MetaDefault,
- AttributeIDs: []string{"*constant:*tenant:cgrates.ro;*constant:*req.Account:1234"},
- },
- }
+// func testSesTntChngSetChargerProfile1(t *testing.T) {
+// var reply *engine.ChargerProfile
+// if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "Charger1"}, &reply); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatal(err)
+// }
+// chargerProfile := &v1.ChargerWithCache{
+// ChargerProfile: &engine.ChargerProfile{
+// Tenant: "cgrates.org",
+// ID: "Charger1",
+// RunID: utils.MetaDefault,
+// AttributeIDs: []string{"*constant:*tenant:cgrates.ro;*constant:*req.Account:1234"},
+// },
+// }
- var result string
- if err := sesTntChngRPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
+// var result string
+// if err := sesTntChngRPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
- if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "Charger1"}, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply) {
- t.Errorf("Expecting : %+v, received: %+v", chargerProfile.ChargerProfile, reply)
- }
-}
+// if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "Charger1"}, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply) {
+// t.Errorf("Expecting : %+v, received: %+v", chargerProfile.ChargerProfile, reply)
+// }
+// }
-func testSesTntChngSetChargerProfile2(t *testing.T) {
- var reply *engine.ChargerProfile
- if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "Charger2"}, &reply); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatal(err)
- }
- chargerProfile := &v1.ChargerWithCache{
- ChargerProfile: &engine.ChargerProfile{
- Tenant: "cgrates.org",
- ID: "Charger2",
- RunID: utils.MetaRaw,
- AttributeIDs: []string{},
- },
- }
+// func testSesTntChngSetChargerProfile2(t *testing.T) {
+// var reply *engine.ChargerProfile
+// if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "Charger2"}, &reply); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatal(err)
+// }
+// chargerProfile := &v1.ChargerWithCache{
+// ChargerProfile: &engine.ChargerProfile{
+// Tenant: "cgrates.org",
+// ID: "Charger2",
+// RunID: utils.MetaRaw,
+// AttributeIDs: []string{},
+// },
+// }
- var result string
- if err := sesTntChngRPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
+// var result string
+// if err := sesTntChngRPC.Call(utils.AdminSv1SetChargerProfile, chargerProfile, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
- if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "Charger2"}, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply) {
- t.Errorf("Expecting : %+v, received: %+v", chargerProfile.ChargerProfile, reply)
- }
-}
+// if err := sesTntChngRPC.Call(utils.APIerSv1GetChargerProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "Charger2"}, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(chargerProfile.ChargerProfile, reply) {
+// t.Errorf("Expecting : %+v, received: %+v", chargerProfile.ChargerProfile, reply)
+// }
+// }
-func testChargerSAuthProcessEventAuth(t *testing.T) {
- attrSetBalance := utils.AttrSetBalance{
- Tenant: "cgrates.org",
- Account: "1001",
- BalanceType: utils.VOICE,
- Value: float64(2 * time.Minute),
- Balance: map[string]interface{}{
- utils.ID: "testSes",
- utils.RatingSubject: "*zero1ms",
- },
- }
- var reply string
- if err := sesTntChngRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Received: %s", reply)
- }
+// func testChargerSAuthProcessEventAuth(t *testing.T) {
+// attrSetBalance := utils.AttrSetBalance{
+// Tenant: "cgrates.org",
+// Account: "1001",
+// BalanceType: utils.VOICE,
+// Value: float64(2 * time.Minute),
+// Balance: map[string]interface{}{
+// utils.ID: "testSes",
+// utils.RatingSubject: "*zero1ms",
+// },
+// }
+// var reply string
+// if err := sesTntChngRPC.Call(utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Received: %s", reply)
+// }
- attrSetBalance2 := utils.AttrSetBalance{
- Tenant: "cgrates.ro",
- Account: "1234",
- BalanceType: utils.VOICE,
- Value: float64(2 * time.Minute),
- Balance: map[string]interface{}{
- utils.ID: "testSes",
- utils.RatingSubject: "*zero1ms",
- },
- }
- var reply2 string
- if err := sesTntChngRPC.Call(utils.APIerSv2SetBalance, attrSetBalance2, &reply2); err != nil {
- t.Error(err)
- } else if reply2 != utils.OK {
- t.Errorf("Received: %s", reply2)
- }
+// attrSetBalance2 := utils.AttrSetBalance{
+// Tenant: "cgrates.ro",
+// Account: "1234",
+// BalanceType: utils.VOICE,
+// Value: float64(2 * time.Minute),
+// Balance: map[string]interface{}{
+// utils.ID: "testSes",
+// utils.RatingSubject: "*zero1ms",
+// },
+// }
+// var reply2 string
+// if err := sesTntChngRPC.Call(utils.APIerSv2SetBalance, attrSetBalance2, &reply2); err != nil {
+// t.Error(err)
+// } else if reply2 != utils.OK {
+// t.Errorf("Received: %s", reply2)
+// }
- ev := &sessions.V1AuthorizeArgs{
- GetMaxUsage: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestEv1",
- Event: map[string]interface{}{
- utils.ToR: utils.VOICE,
- utils.OriginID: "TestEv1",
- utils.RequestType: "*prepaid",
- utils.Account: "1001",
- utils.Subject: "1001",
- utils.Destination: "1002",
- utils.Usage: time.Minute,
- },
- },
- }
- var rply sessions.V1AuthorizeReply
- if err := sesTntChngRPC.Call(utils.SessionSv1AuthorizeEvent, ev, &rply); err != nil {
- t.Fatal(err)
- }
- expected := &sessions.V1AuthorizeReply{}
- if !reflect.DeepEqual(utils.ToJSON(&expected), utils.ToJSON(&rply)) {
- t.Errorf("Expecting : %T, received: %T", utils.ToJSON(&expected), utils.ToJSON(&rply))
- }
-}
+// ev := &sessions.V1AuthorizeArgs{
+// GetMaxUsage: true,
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestEv1",
+// Event: map[string]interface{}{
+// utils.ToR: utils.VOICE,
+// utils.OriginID: "TestEv1",
+// utils.RequestType: "*prepaid",
+// utils.Account: "1001",
+// utils.Subject: "1001",
+// utils.Destination: "1002",
+// utils.Usage: time.Minute,
+// },
+// },
+// }
+// var rply sessions.V1AuthorizeReply
+// if err := sesTntChngRPC.Call(utils.SessionSv1AuthorizeEvent, ev, &rply); err != nil {
+// t.Fatal(err)
+// }
+// expected := &sessions.V1AuthorizeReply{}
+// if !reflect.DeepEqual(utils.ToJSON(&expected), utils.ToJSON(&rply)) {
+// t.Errorf("Expecting : %T, received: %T", utils.ToJSON(&expected), utils.ToJSON(&rply))
+// }
+// }
-func testSesTntChngStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testSesTntChngStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/tls_it_test.go b/general_tests/tls_it_test.go
index 55809cf53..785526c93 100644
--- a/general_tests/tls_it_test.go
+++ b/general_tests/tls_it_test.go
@@ -20,154 +20,154 @@ along with this program. If not, see
*/
package general_tests
-import (
- "path"
- "testing"
- "time"
+// import (
+// "path"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/sessions"
- "github.com/cgrates/cgrates/utils"
- "github.com/cgrates/rpcclient"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/sessions"
+// "github.com/cgrates/cgrates/utils"
+// "github.com/cgrates/rpcclient"
+// )
-var (
- tlsCfgPath string
- tlsCfg *config.CGRConfig
- tlsRpcClientJson *rpcclient.RPCClient
- tlsRpcClientGob *rpcclient.RPCClient
- tlsHTTPJson *rpcclient.RPCClient
- tlsConfDIR string //run tests for specific configuration
- tlsDelay int
+// var (
+// tlsCfgPath string
+// tlsCfg *config.CGRConfig
+// tlsRpcClientJson *rpcclient.RPCClient
+// tlsRpcClientGob *rpcclient.RPCClient
+// tlsHTTPJson *rpcclient.RPCClient
+// tlsConfDIR string //run tests for specific configuration
+// tlsDelay int
- sTestsTLS = []func(t *testing.T){
- testTLSLoadConfig,
- testTLSInitDataDb,
- testTLSStartEngine,
- testTLSRpcConn,
- testTLSPing,
- testTLSStopEngine,
- }
-)
+// sTestsTLS = []func(t *testing.T){
+// testTLSLoadConfig,
+// testTLSInitDataDb,
+// testTLSStartEngine,
+// testTLSRpcConn,
+// testTLSPing,
+// testTLSStopEngine,
+// }
+// )
-// Test start here
-func TestTLS(t *testing.T) {
- tlsConfDIR = "tls"
- for _, stest := range sTestsTLS {
- t.Run(tlsConfDIR, stest)
- }
-}
+// // Test start here
+// func TestTLS(t *testing.T) {
+// tlsConfDIR = "tls"
+// for _, stest := range sTestsTLS {
+// t.Run(tlsConfDIR, stest)
+// }
+// }
-func testTLSLoadConfig(t *testing.T) {
- var err error
- tlsCfgPath = path.Join(*dataDir, "conf", "samples", tlsConfDIR)
- if *encoding == utils.MetaGOB {
- tlsCfgPath = path.Join(*dataDir, "conf", "samples", tlsConfDIR+"_gob")
- }
- if tlsCfg, err = config.NewCGRConfigFromPath(tlsCfgPath); err != nil {
- t.Error(err)
- }
- tlsDelay = 2000
-}
+// func testTLSLoadConfig(t *testing.T) {
+// var err error
+// tlsCfgPath = path.Join(*dataDir, "conf", "samples", tlsConfDIR)
+// if *encoding == utils.MetaGOB {
+// tlsCfgPath = path.Join(*dataDir, "conf", "samples", tlsConfDIR+"_gob")
+// }
+// if tlsCfg, err = config.NewCGRConfigFromPath(tlsCfgPath); err != nil {
+// t.Error(err)
+// }
+// tlsDelay = 2000
+// }
-func testTLSInitDataDb(t *testing.T) {
- if err := engine.InitDataDB(tlsCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testTLSInitDataDb(t *testing.T) {
+// if err := engine.InitDataDB(tlsCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testTLSStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(tlsCfgPath, tlsDelay); err != nil {
- t.Fatal(err)
- }
-}
+// func testTLSStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(tlsCfgPath, tlsDelay); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testTLSRpcConn(t *testing.T) {
- var err error
- tlsRpcClientJson, err = rpcclient.NewRPCClient(utils.TCP, "localhost:2022", true, tlsCfg.TLSCfg().ClientKey,
- tlsCfg.TLSCfg().ClientCerificate, tlsCfg.TLSCfg().CaCertificate, 3, 3,
- time.Second, 5*time.Minute, rpcclient.JSONrpc, nil, false, nil)
- if err != nil {
- t.Errorf("Error: %s when dialing", err)
- }
+// func testTLSRpcConn(t *testing.T) {
+// var err error
+// tlsRpcClientJson, err = rpcclient.NewRPCClient(utils.TCP, "localhost:2022", true, tlsCfg.TLSCfg().ClientKey,
+// tlsCfg.TLSCfg().ClientCerificate, tlsCfg.TLSCfg().CaCertificate, 3, 3,
+// time.Second, 5*time.Minute, rpcclient.JSONrpc, nil, false, nil)
+// if err != nil {
+// t.Errorf("Error: %s when dialing", err)
+// }
- tlsRpcClientGob, err = rpcclient.NewRPCClient(utils.TCP, "localhost:2023", true, tlsCfg.TLSCfg().ClientKey,
- tlsCfg.TLSCfg().ClientCerificate, tlsCfg.TLSCfg().CaCertificate, 3, 3,
- time.Second, 5*time.Minute, rpcclient.GOBrpc, nil, false, nil)
- if err != nil {
- t.Errorf("Error: %s when dialing", err)
- }
+// tlsRpcClientGob, err = rpcclient.NewRPCClient(utils.TCP, "localhost:2023", true, tlsCfg.TLSCfg().ClientKey,
+// tlsCfg.TLSCfg().ClientCerificate, tlsCfg.TLSCfg().CaCertificate, 3, 3,
+// time.Second, 5*time.Minute, rpcclient.GOBrpc, nil, false, nil)
+// if err != nil {
+// t.Errorf("Error: %s when dialing", err)
+// }
- tlsHTTPJson, err = rpcclient.NewRPCClient(utils.TCP, "https://localhost:2280/jsonrpc", true, tlsCfg.TLSCfg().ClientKey,
- tlsCfg.TLSCfg().ClientCerificate, tlsCfg.TLSCfg().CaCertificate, 3, 3,
- time.Second, 5*time.Minute, rpcclient.HTTPjson, nil, false, nil)
- if err != nil {
- t.Errorf("Error: %s when dialing", err)
- }
-}
+// tlsHTTPJson, err = rpcclient.NewRPCClient(utils.TCP, "https://localhost:2280/jsonrpc", true, tlsCfg.TLSCfg().ClientKey,
+// tlsCfg.TLSCfg().ClientCerificate, tlsCfg.TLSCfg().CaCertificate, 3, 3,
+// time.Second, 5*time.Minute, rpcclient.HTTPjson, nil, false, nil)
+// if err != nil {
+// t.Errorf("Error: %s when dialing", err)
+// }
+// }
-func testTLSPing(t *testing.T) {
- var reply string
+// func testTLSPing(t *testing.T) {
+// var reply string
- if err := tlsRpcClientJson.Call(utils.ThresholdSv1Ping, new(utils.CGREvent), &reply); err != nil {
- t.Error(err)
- } else if reply != utils.Pong {
- t.Errorf("Received: %s", reply)
- }
- if err := tlsRpcClientGob.Call(utils.ThresholdSv1Ping, new(utils.CGREvent), &reply); err != nil {
- t.Error(err)
- } else if reply != utils.Pong {
- t.Errorf("Received: %s", reply)
- }
- if err := tlsHTTPJson.Call(utils.ThresholdSv1Ping, new(utils.CGREvent), &reply); err != nil {
- t.Error(err)
- } else if reply != utils.Pong {
- t.Errorf("Received: %s", reply)
- }
- if err := tlsRpcClientJson.Call(utils.DispatcherSv1Ping, "", &reply); err == nil {
- t.Error(err)
- }
- if err := tlsRpcClientGob.Call(utils.DispatcherSv1Ping, "", &reply); err == nil {
- t.Error(err)
- }
- if err := tlsHTTPJson.Call(utils.DispatcherSv1Ping, "", &reply); err == nil {
- t.Error(err)
- }
+// if err := tlsRpcClientJson.Call(utils.ThresholdSv1Ping, new(utils.CGREvent), &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.Pong {
+// t.Errorf("Received: %s", reply)
+// }
+// if err := tlsRpcClientGob.Call(utils.ThresholdSv1Ping, new(utils.CGREvent), &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.Pong {
+// t.Errorf("Received: %s", reply)
+// }
+// if err := tlsHTTPJson.Call(utils.ThresholdSv1Ping, new(utils.CGREvent), &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.Pong {
+// t.Errorf("Received: %s", reply)
+// }
+// if err := tlsRpcClientJson.Call(utils.DispatcherSv1Ping, "", &reply); err == nil {
+// t.Error(err)
+// }
+// if err := tlsRpcClientGob.Call(utils.DispatcherSv1Ping, "", &reply); err == nil {
+// t.Error(err)
+// }
+// if err := tlsHTTPJson.Call(utils.DispatcherSv1Ping, "", &reply); err == nil {
+// t.Error(err)
+// }
- initUsage := 5 * time.Minute
- args := &sessions.V1InitSessionArgs{
- InitSession: true,
- AllocateResources: true,
- GetAttributes: true,
+// initUsage := 5 * time.Minute
+// args := &sessions.V1InitSessionArgs{
+// InitSession: true,
+// AllocateResources: true,
+// GetAttributes: true,
- CGREvent: &utils.CGREvent{
- Tenant: "cgrates.org",
- ID: "TestSSv1ItInitiateSession",
- Event: map[string]interface{}{
- utils.Tenant: "cgrates.org",
- utils.Category: "call",
- utils.ToR: utils.MetaVoice,
- utils.OriginID: "TestSSv1It1",
- utils.RequestType: utils.MetaPrepaid,
- utils.AccountField: "1001",
- utils.Subject: "ANY2CNT",
- utils.Destination: "1002",
- utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
- utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
- utils.Usage: initUsage,
- },
- },
- }
- var rply sessions.V1InitReplyWithDigest
- if err := tlsHTTPJson.Call(utils.SessionSv1InitiateSessionWithDigest,
- args, &rply); err == nil {
- t.Error(err)
- }
-}
+// CGREvent: &utils.CGREvent{
+// Tenant: "cgrates.org",
+// ID: "TestSSv1ItInitiateSession",
+// Event: map[string]interface{}{
+// utils.Tenant: "cgrates.org",
+// utils.Category: "call",
+// utils.ToR: utils.MetaVoice,
+// utils.OriginID: "TestSSv1It1",
+// utils.RequestType: utils.MetaPrepaid,
+// utils.AccountField: "1001",
+// utils.Subject: "ANY2CNT",
+// utils.Destination: "1002",
+// utils.SetupTime: time.Date(2018, time.January, 7, 16, 60, 0, 0, time.UTC),
+// utils.AnswerTime: time.Date(2018, time.January, 7, 16, 60, 10, 0, time.UTC),
+// utils.Usage: initUsage,
+// },
+// },
+// }
+// var rply sessions.V1InitReplyWithDigest
+// if err := tlsHTTPJson.Call(utils.SessionSv1InitiateSessionWithDigest,
+// args, &rply); err == nil {
+// t.Error(err)
+// }
+// }
-func testTLSStopEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testTLSStopEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/tp_it_test.go b/general_tests/tp_it_test.go
index 79091ac05..973af8bbe 100644
--- a/general_tests/tp_it_test.go
+++ b/general_tests/tp_it_test.go
@@ -21,426 +21,426 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "path"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- tpCfgPath string
- tpCfgDIR string
- tpCfg *config.CGRConfig
- tpRPC *rpc.Client
- tpLoadInst utils.LoadInstance // Share load information between tests
+// var (
+// tpCfgPath string
+// tpCfgDIR string
+// tpCfg *config.CGRConfig
+// tpRPC *rpc.Client
+// tpLoadInst utils.LoadInstance // Share load information between tests
- sTestTp = []func(t *testing.T){
- testTpInitCfg,
- testTpResetDataDb,
- testTpResetStorDb,
- testTpStartEngine,
- testTpRpcConn,
- testTpLoadTariffPlanFromFolder,
- testTpBalanceCounter,
- testTpActionTriggers,
- testTpZeroCost,
- testTpZeroNegativeCost,
- testTpExecuteActionCgrRpc,
- testTpExecuteActionCgrRpcAcc,
- //testTpExecuteActionCgrRpcCdrStats,
- testTpCreateExecuteActionMatch,
- testTpSetRemoveActions,
- testTpRemoveActionsRefenced,
- testTpApierResetAccountActionTriggers,
- testTpStopCgrEngine,
- }
-)
+// sTestTp = []func(t *testing.T){
+// testTpInitCfg,
+// testTpResetDataDb,
+// testTpResetStorDb,
+// testTpStartEngine,
+// testTpRpcConn,
+// testTpLoadTariffPlanFromFolder,
+// testTpBalanceCounter,
+// testTpActionTriggers,
+// testTpZeroCost,
+// testTpZeroNegativeCost,
+// testTpExecuteActionCgrRpc,
+// testTpExecuteActionCgrRpcAcc,
+// //testTpExecuteActionCgrRpcCdrStats,
+// testTpCreateExecuteActionMatch,
+// testTpSetRemoveActions,
+// testTpRemoveActionsRefenced,
+// testTpApierResetAccountActionTriggers,
+// testTpStopCgrEngine,
+// }
+// )
-func TestTp(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- tpCfgDIR = "tutinternal"
- case utils.MetaMySQL:
- tpCfgDIR = "tutmysql"
- case utils.MetaMongo:
- tpCfgDIR = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sTestTp {
- t.Run(tpCfgDIR, stest)
- }
-}
-func testTpInitCfg(t *testing.T) {
- tpCfgPath = path.Join(*dataDir, "conf", "samples", tpCfgDIR)
- // Init config first
- var err error
- tpCfg, err = config.NewCGRConfigFromPath(tpCfgPath)
- if err != nil {
- t.Error(err)
- }
-}
+// func TestTp(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// tpCfgDIR = "tutinternal"
+// case utils.MetaMySQL:
+// tpCfgDIR = "tutmysql"
+// case utils.MetaMongo:
+// tpCfgDIR = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sTestTp {
+// t.Run(tpCfgDIR, stest)
+// }
+// }
+// func testTpInitCfg(t *testing.T) {
+// tpCfgPath = path.Join(*dataDir, "conf", "samples", tpCfgDIR)
+// // Init config first
+// var err error
+// tpCfg, err = config.NewCGRConfigFromPath(tpCfgPath)
+// if err != nil {
+// t.Error(err)
+// }
+// }
-// Remove data in both rating and accounting db
-func testTpResetDataDb(t *testing.T) {
- if err := engine.InitDataDB(tpCfg); err != nil {
- t.Fatal(err)
- }
-}
+// // Remove data in both rating and accounting db
+// func testTpResetDataDb(t *testing.T) {
+// if err := engine.InitDataDB(tpCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Wipe out the cdr database
-func testTpResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(tpCfg); err != nil {
- t.Fatal(err)
- }
-}
+// // Wipe out the cdr database
+// func testTpResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(tpCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Start CGR Engine
-func testTpStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(tpCfgPath, 1000); err != nil {
- t.Fatal(err)
- }
-}
+// // Start CGR Engine
+// func testTpStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(tpCfgPath, 1000); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Connect rpc client to rater
-func testTpRpcConn(t *testing.T) {
- var err error
- tpRPC, err = newRPCClient(tpCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal(err)
- }
-}
+// // Connect rpc client to rater
+// func testTpRpcConn(t *testing.T) {
+// var err error
+// tpRPC, err = newRPCClient(tpCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-// Load the tariff plan, creating accounts and their balances
-func testTpLoadTariffPlanFromFolder(t *testing.T) {
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testtp")}
- if err := tpRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &tpLoadInst); err != nil {
- t.Error(err)
- }
- time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
-}
+// // Load the tariff plan, creating accounts and their balances
+// func testTpLoadTariffPlanFromFolder(t *testing.T) {
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "testtp")}
+// if err := tpRPC.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &tpLoadInst); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
+// }
-func testTpBalanceCounter(t *testing.T) {
- tStart := time.Date(2016, 3, 31, 0, 0, 0, 0, time.UTC)
- cd := &engine.CallDescriptorWithAPIOpts{
- CallDescriptor: &engine.CallDescriptor{
- Category: "call",
- Tenant: "cgrates.org",
- Subject: "1001",
- Destination: "+49",
- DurationIndex: 0,
- TimeStart: tStart,
- TimeEnd: tStart.Add(20 * time.Second),
- },
- }
- var cc engine.CallCost
- if err := tpRPC.Call(utils.ResponderDebit, cd, &cc); err != nil {
- t.Error("Got error on Responder.GetCost: ", err.Error())
- } else if cc.GetDuration() != 20*time.Second {
- t.Errorf("Calling Responder.MaxDebit got callcost: %v", cc.GetDuration())
- }
- var acnt *engine.Account
- attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
- if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
- t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
- } else if acnt.UnitCounters[utils.MetaMonetary][1].Counters[0].Value != 20.0 {
- t.Errorf("Calling APIerSv2.GetBalance received: %s", utils.ToIJSON(acnt))
- }
-}
+// func testTpBalanceCounter(t *testing.T) {
+// tStart := time.Date(2016, 3, 31, 0, 0, 0, 0, time.UTC)
+// cd := &engine.CallDescriptorWithAPIOpts{
+// CallDescriptor: &engine.CallDescriptor{
+// Category: "call",
+// Tenant: "cgrates.org",
+// Subject: "1001",
+// Destination: "+49",
+// DurationIndex: 0,
+// TimeStart: tStart,
+// TimeEnd: tStart.Add(20 * time.Second),
+// },
+// }
+// var cc engine.CallCost
+// if err := tpRPC.Call(utils.ResponderDebit, cd, &cc); err != nil {
+// t.Error("Got error on Responder.GetCost: ", err.Error())
+// } else if cc.GetDuration() != 20*time.Second {
+// t.Errorf("Calling Responder.MaxDebit got callcost: %v", cc.GetDuration())
+// }
+// var acnt *engine.Account
+// attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"}
+// if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+// t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
+// } else if acnt.UnitCounters[utils.MetaMonetary][1].Counters[0].Value != 20.0 {
+// t.Errorf("Calling APIerSv2.GetBalance received: %s", utils.ToIJSON(acnt))
+// }
+// }
-func testTpActionTriggers(t *testing.T) {
- var atrs engine.ActionTriggers
- if err := tpRPC.Call(utils.APIerSv1GetActionTriggers, &v1.AttrGetActionTriggers{GroupIDs: []string{}}, &atrs); err != nil {
- t.Error("Got error on APIerSv1.GetActionTriggers: ", err.Error())
- } else if len(atrs) != 4 {
- t.Errorf("Calling v1.GetActionTriggers got: %v", atrs)
- }
- var reply string
- if err := tpRPC.Call(utils.APIerSv1SetActionTrigger, v1.AttrSetActionTrigger{
- GroupID: "TestATR",
- UniqueID: "Unique atr id",
- ActionTrigger: map[string]interface{}{
- utils.BalanceID: utils.StringPointer("BID1"),
- },
- }, &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Errorf("Calling v1.SetActionTrigger got: %v", reply)
- }
- if err := tpRPC.Call(utils.APIerSv1GetActionTriggers, &v1.AttrGetActionTriggers{GroupIDs: []string{}}, &atrs); err != nil {
- t.Error(err)
- } else if len(atrs) != 5 {
- t.Errorf("Calling v1.GetActionTriggers got: %v", atrs)
- }
- if err := tpRPC.Call(utils.APIerSv1GetActionTriggers, &v1.AttrGetActionTriggers{GroupIDs: []string{"TestATR"}}, &atrs); err != nil {
- t.Error("Got error on APIerSv1.GetActionTriggers: ", err.Error())
- } else if len(atrs) != 1 {
- t.Errorf("Calling v1.GetActionTriggers got: %v", atrs)
- }
- if atrs == nil {
- t.Errorf("Expecting atrs to not be nil")
- // atrs shoud not be nil so exit function
- // to avoid nil segmentation fault;
- // if this happens try to run this test manualy
- return
- }
- if atrs[0].ID != "TestATR" ||
- atrs[0].UniqueID != "Unique atr id" ||
- *atrs[0].Balance.ID != "BID1" {
- t.Error("Wrong action trigger set: ", utils.ToIJSON(atrs[0]))
- }
-}
+// func testTpActionTriggers(t *testing.T) {
+// var atrs engine.ActionTriggers
+// if err := tpRPC.Call(utils.APIerSv1GetActionTriggers, &v1.AttrGetActionTriggers{GroupIDs: []string{}}, &atrs); err != nil {
+// t.Error("Got error on APIerSv1.GetActionTriggers: ", err.Error())
+// } else if len(atrs) != 4 {
+// t.Errorf("Calling v1.GetActionTriggers got: %v", atrs)
+// }
+// var reply string
+// if err := tpRPC.Call(utils.APIerSv1SetActionTrigger, v1.AttrSetActionTrigger{
+// GroupID: "TestATR",
+// UniqueID: "Unique atr id",
+// ActionTrigger: map[string]interface{}{
+// utils.BalanceID: utils.StringPointer("BID1"),
+// },
+// }, &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Errorf("Calling v1.SetActionTrigger got: %v", reply)
+// }
+// if err := tpRPC.Call(utils.APIerSv1GetActionTriggers, &v1.AttrGetActionTriggers{GroupIDs: []string{}}, &atrs); err != nil {
+// t.Error(err)
+// } else if len(atrs) != 5 {
+// t.Errorf("Calling v1.GetActionTriggers got: %v", atrs)
+// }
+// if err := tpRPC.Call(utils.APIerSv1GetActionTriggers, &v1.AttrGetActionTriggers{GroupIDs: []string{"TestATR"}}, &atrs); err != nil {
+// t.Error("Got error on APIerSv1.GetActionTriggers: ", err.Error())
+// } else if len(atrs) != 1 {
+// t.Errorf("Calling v1.GetActionTriggers got: %v", atrs)
+// }
+// if atrs == nil {
+// t.Errorf("Expecting atrs to not be nil")
+// // atrs shoud not be nil so exit function
+// // to avoid nil segmentation fault;
+// // if this happens try to run this test manualy
+// return
+// }
+// if atrs[0].ID != "TestATR" ||
+// atrs[0].UniqueID != "Unique atr id" ||
+// *atrs[0].Balance.ID != "BID1" {
+// t.Error("Wrong action trigger set: ", utils.ToIJSON(atrs[0]))
+// }
+// }
-func testTpZeroCost(t *testing.T) {
- var acnt *engine.Account
- attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1012"}
- if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
- t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
- }
- if acnt == nil {
- t.Errorf("Expecting acnt to not be nil")
- // acnt shoud not be nil so exit function
- // to avoid nil segmentation fault;
- // if this happens try to run this test manualy
- return
- }
- balanceValueBefore := acnt.BalanceMap[utils.MetaMonetary][0].Value
- tStart := time.Date(2016, 3, 31, 0, 0, 0, 0, time.UTC)
- cd := &engine.CallDescriptorWithAPIOpts{
- CallDescriptor: &engine.CallDescriptor{
- Category: "call",
- Tenant: "cgrates.org",
- Subject: "free",
- Account: "1012",
- Destination: "+49",
- DurationIndex: 0,
- TimeStart: tStart,
- TimeEnd: tStart.Add(20 * time.Second),
- },
- }
- var cc engine.CallCost
- if err := tpRPC.Call(utils.ResponderDebit, cd, &cc); err != nil {
- t.Error("Got error on Responder.Debit: ", err.Error())
- } else if cc.GetDuration() != 20*time.Second {
- t.Errorf("Calling Responder.MaxDebit got callcost: %v", utils.ToIJSON(cc))
- }
- if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
- t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
- } else if acnt.BalanceMap[utils.MetaMonetary][0].Value != balanceValueBefore {
- t.Errorf("Calling APIerSv2.GetAccount received: %s", utils.ToIJSON(acnt))
- }
-}
+// func testTpZeroCost(t *testing.T) {
+// var acnt *engine.Account
+// attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1012"}
+// if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+// t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
+// }
+// if acnt == nil {
+// t.Errorf("Expecting acnt to not be nil")
+// // acnt shoud not be nil so exit function
+// // to avoid nil segmentation fault;
+// // if this happens try to run this test manualy
+// return
+// }
+// balanceValueBefore := acnt.BalanceMap[utils.MetaMonetary][0].Value
+// tStart := time.Date(2016, 3, 31, 0, 0, 0, 0, time.UTC)
+// cd := &engine.CallDescriptorWithAPIOpts{
+// CallDescriptor: &engine.CallDescriptor{
+// Category: "call",
+// Tenant: "cgrates.org",
+// Subject: "free",
+// Account: "1012",
+// Destination: "+49",
+// DurationIndex: 0,
+// TimeStart: tStart,
+// TimeEnd: tStart.Add(20 * time.Second),
+// },
+// }
+// var cc engine.CallCost
+// if err := tpRPC.Call(utils.ResponderDebit, cd, &cc); err != nil {
+// t.Error("Got error on Responder.Debit: ", err.Error())
+// } else if cc.GetDuration() != 20*time.Second {
+// t.Errorf("Calling Responder.MaxDebit got callcost: %v", utils.ToIJSON(cc))
+// }
+// if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+// t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
+// } else if acnt.BalanceMap[utils.MetaMonetary][0].Value != balanceValueBefore {
+// t.Errorf("Calling APIerSv2.GetAccount received: %s", utils.ToIJSON(acnt))
+// }
+// }
-func testTpZeroNegativeCost(t *testing.T) {
- tStart := time.Date(2016, 3, 31, 0, 0, 0, 0, time.UTC)
- cd := &engine.CallDescriptorWithAPIOpts{
- CallDescriptor: &engine.CallDescriptor{
- Category: "call",
- Tenant: "cgrates.org",
- Subject: "free",
- Account: "1013",
- Destination: "+4915",
- DurationIndex: 0,
- TimeStart: tStart,
- TimeEnd: tStart.Add(20 * time.Second),
- },
- }
- var cc engine.CallCost
- if err := tpRPC.Call(utils.ResponderDebit, cd, &cc); err != nil {
- t.Error("Got error on Responder.GetCost: ", err.Error())
- } else if cc.GetDuration() != 20*time.Second {
- t.Errorf("Calling Responder.MaxDebit got callcost: %v", utils.ToIJSON(cc))
- }
- var acnt engine.Account
- attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1013"}
- if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
- t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
- } else if acnt.BalanceMap[utils.MetaVoice][0].Value != 100.0 {
- t.Errorf("Calling APIerSv2.GetAccount received: %s", utils.ToIJSON(acnt))
- }
-}
+// func testTpZeroNegativeCost(t *testing.T) {
+// tStart := time.Date(2016, 3, 31, 0, 0, 0, 0, time.UTC)
+// cd := &engine.CallDescriptorWithAPIOpts{
+// CallDescriptor: &engine.CallDescriptor{
+// Category: "call",
+// Tenant: "cgrates.org",
+// Subject: "free",
+// Account: "1013",
+// Destination: "+4915",
+// DurationIndex: 0,
+// TimeStart: tStart,
+// TimeEnd: tStart.Add(20 * time.Second),
+// },
+// }
+// var cc engine.CallCost
+// if err := tpRPC.Call(utils.ResponderDebit, cd, &cc); err != nil {
+// t.Error("Got error on Responder.GetCost: ", err.Error())
+// } else if cc.GetDuration() != 20*time.Second {
+// t.Errorf("Calling Responder.MaxDebit got callcost: %v", utils.ToIJSON(cc))
+// }
+// var acnt engine.Account
+// attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1013"}
+// if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+// t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
+// } else if acnt.BalanceMap[utils.MetaVoice][0].Value != 100.0 {
+// t.Errorf("Calling APIerSv2.GetAccount received: %s", utils.ToIJSON(acnt))
+// }
+// }
-func testTpExecuteActionCgrRpc(t *testing.T) {
- var reply string
- if err := tpRPC.Call(utils.APIerSv2ExecuteAction, utils.AttrExecuteAction{ActionsId: "RPC"}, &reply); err != nil {
- t.Error("Got error on APIerSv2.ExecuteAction: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling ExecuteAction got reply: %s", reply)
- }
- var acnt engine.Account
- attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1013"}
- if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
- t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
- }
-}
+// func testTpExecuteActionCgrRpc(t *testing.T) {
+// var reply string
+// if err := tpRPC.Call(utils.APIerSv2ExecuteAction, utils.AttrExecuteAction{ActionsId: "RPC"}, &reply); err != nil {
+// t.Error("Got error on APIerSv2.ExecuteAction: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling ExecuteAction got reply: %s", reply)
+// }
+// var acnt engine.Account
+// attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1013"}
+// if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+// t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
+// }
+// }
-func testTpExecuteActionCgrRpcAcc(t *testing.T) {
- var reply string
- if err := tpRPC.Call(utils.APIerSv2ExecuteAction, utils.AttrExecuteAction{
- Tenant: "cgrates.org",
- Account: "1016",
- ActionsId: "RPC_DEST",
- }, &reply); err != nil {
- t.Error("Got error on APIerSv2.ExecuteAction: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling ExecuteAction got reply: %s", reply)
- }
- var dests []*engine.Destination
- attrs := &v2.AttrGetDestinations{DestinationIDs: []string{}}
- if err := tpRPC.Call(utils.APIerSv2GetDestinations, attrs, &dests); err != nil {
- t.Error("Got error on APIerSv2.GetDestinations: ", err.Error())
- }
-}
+// func testTpExecuteActionCgrRpcAcc(t *testing.T) {
+// var reply string
+// if err := tpRPC.Call(utils.APIerSv2ExecuteAction, utils.AttrExecuteAction{
+// Tenant: "cgrates.org",
+// Account: "1016",
+// ActionsId: "RPC_DEST",
+// }, &reply); err != nil {
+// t.Error("Got error on APIerSv2.ExecuteAction: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling ExecuteAction got reply: %s", reply)
+// }
+// var dests []*engine.Destination
+// attrs := &v2.AttrGetDestinations{DestinationIDs: []string{}}
+// if err := tpRPC.Call(utils.APIerSv2GetDestinations, attrs, &dests); err != nil {
+// t.Error("Got error on APIerSv2.GetDestinations: ", err.Error())
+// }
+// }
-func testTpCreateExecuteActionMatch(t *testing.T) {
- var reply string
- if err := tpRPC.Call(utils.APIerSv2SetActions, &utils.AttrSetActions{
- ActionsId: "PAYMENT_2056bd2fe137082970f97102b64e42fd",
- Actions: []*utils.TPAction{
- {
- BalanceType: "*monetary",
- Identifier: "*topup",
- RatingSubject: "",
- Units: "10.500000",
- Weight: 10,
- },
- },
- }, &reply); err != nil {
- t.Error("Got error on APIerSv2.SetActions: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv2.SetActions got reply: %s", reply)
- }
- if err := tpRPC.Call(utils.APIerSv2ExecuteAction, utils.AttrExecuteAction{
- Tenant: "cgrates.org",
- Account: "1015",
- ActionsId: "PAYMENT_2056bd2fe137082970f97102b64e42fd",
- }, &reply); err != nil {
- t.Error("Got error on APIerSv2.ExecuteAction: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling ExecuteAction got reply: %s", reply)
- }
- if err := tpRPC.Call(utils.APIerSv2ExecuteAction, utils.AttrExecuteAction{
- Tenant: "cgrates.org",
- Account: "1015",
- ActionsId: "PAYMENT_2056bd2fe137082970f97102b64e42fd",
- }, &reply); err != nil {
- t.Error("Got error on APIerSv2.ExecuteAction: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling ExecuteAction got reply: %s", reply)
- }
- var acnt engine.Account
- attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1015"}
- if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
- t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
- }
- if len(acnt.BalanceMap) != 1 ||
- len(acnt.BalanceMap[utils.MetaMonetary]) != 1 ||
- acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != 21 {
- t.Error("error matching previous created balance: ", utils.ToIJSON(acnt.BalanceMap))
- }
-}
+// func testTpCreateExecuteActionMatch(t *testing.T) {
+// var reply string
+// if err := tpRPC.Call(utils.APIerSv2SetActions, &utils.AttrSetActions{
+// ActionsId: "PAYMENT_2056bd2fe137082970f97102b64e42fd",
+// Actions: []*utils.TPAction{
+// {
+// BalanceType: "*monetary",
+// Identifier: "*topup",
+// RatingSubject: "",
+// Units: "10.500000",
+// Weight: 10,
+// },
+// },
+// }, &reply); err != nil {
+// t.Error("Got error on APIerSv2.SetActions: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv2.SetActions got reply: %s", reply)
+// }
+// if err := tpRPC.Call(utils.APIerSv2ExecuteAction, utils.AttrExecuteAction{
+// Tenant: "cgrates.org",
+// Account: "1015",
+// ActionsId: "PAYMENT_2056bd2fe137082970f97102b64e42fd",
+// }, &reply); err != nil {
+// t.Error("Got error on APIerSv2.ExecuteAction: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling ExecuteAction got reply: %s", reply)
+// }
+// if err := tpRPC.Call(utils.APIerSv2ExecuteAction, utils.AttrExecuteAction{
+// Tenant: "cgrates.org",
+// Account: "1015",
+// ActionsId: "PAYMENT_2056bd2fe137082970f97102b64e42fd",
+// }, &reply); err != nil {
+// t.Error("Got error on APIerSv2.ExecuteAction: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling ExecuteAction got reply: %s", reply)
+// }
+// var acnt engine.Account
+// attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1015"}
+// if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+// t.Error("Got error on APIerSv2.GetAccount: ", err.Error())
+// }
+// if len(acnt.BalanceMap) != 1 ||
+// len(acnt.BalanceMap[utils.MetaMonetary]) != 1 ||
+// acnt.BalanceMap[utils.MetaMonetary].GetTotalValue() != 21 {
+// t.Error("error matching previous created balance: ", utils.ToIJSON(acnt.BalanceMap))
+// }
+// }
-func testTpSetRemoveActions(t *testing.T) {
- var reply string
- if err := tpRPC.Call(utils.APIerSv2SetActions, &utils.AttrSetActions{
- ActionsId: "TO_BE_DELETED",
- Actions: []*utils.TPAction{
- {
- BalanceType: "*monetary",
- Identifier: "*topup",
- RatingSubject: "",
- Units: "10.500000",
- Weight: 10,
- },
- },
- }, &reply); err != nil {
- t.Error("Got error on APIerSv2.SetActions: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv2.SetActions got reply: %s", reply)
- }
- actionsMap := make(map[string]engine.Actions)
- if err := tpRPC.Call(utils.APIerSv2GetActions, &v2.AttrGetActions{
- ActionIDs: []string{"PAYMENT_2056bd2fe137082970f97102b64e42fd"},
- }, &actionsMap); err != nil {
- t.Error("Got error on APIerSv2.GetActions: ", err.Error())
- } else if len(actionsMap) != 1 {
- t.Errorf("Calling APIerSv2.GetActions got reply: %s", utils.ToIJSON(actionsMap))
- }
- if err := tpRPC.Call(utils.APIerSv2RemoveActions, v1.AttrRemoveActions{
- ActionIDs: []string{"PAYMENT_2056bd2fe137082970f97102b64e42fd"},
- }, &reply); err != nil {
- t.Error("Got error on APIerSv2.RemoveActions: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv2.RemoveActions got reply: %s", reply)
- }
- if err := tpRPC.Call(utils.APIerSv2GetActions, &v2.AttrGetActions{
- ActionIDs: []string{"PAYMENT_2056bd2fe137082970f97102b64e42fd"},
- }, &actionsMap); err == nil {
- t.Error("no error on APIerSv2.GetActions: ", err)
- }
-}
+// func testTpSetRemoveActions(t *testing.T) {
+// var reply string
+// if err := tpRPC.Call(utils.APIerSv2SetActions, &utils.AttrSetActions{
+// ActionsId: "TO_BE_DELETED",
+// Actions: []*utils.TPAction{
+// {
+// BalanceType: "*monetary",
+// Identifier: "*topup",
+// RatingSubject: "",
+// Units: "10.500000",
+// Weight: 10,
+// },
+// },
+// }, &reply); err != nil {
+// t.Error("Got error on APIerSv2.SetActions: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv2.SetActions got reply: %s", reply)
+// }
+// actionsMap := make(map[string]engine.Actions)
+// if err := tpRPC.Call(utils.APIerSv2GetActions, &v2.AttrGetActions{
+// ActionIDs: []string{"PAYMENT_2056bd2fe137082970f97102b64e42fd"},
+// }, &actionsMap); err != nil {
+// t.Error("Got error on APIerSv2.GetActions: ", err.Error())
+// } else if len(actionsMap) != 1 {
+// t.Errorf("Calling APIerSv2.GetActions got reply: %s", utils.ToIJSON(actionsMap))
+// }
+// if err := tpRPC.Call(utils.APIerSv2RemoveActions, v1.AttrRemoveActions{
+// ActionIDs: []string{"PAYMENT_2056bd2fe137082970f97102b64e42fd"},
+// }, &reply); err != nil {
+// t.Error("Got error on APIerSv2.RemoveActions: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv2.RemoveActions got reply: %s", reply)
+// }
+// if err := tpRPC.Call(utils.APIerSv2GetActions, &v2.AttrGetActions{
+// ActionIDs: []string{"PAYMENT_2056bd2fe137082970f97102b64e42fd"},
+// }, &actionsMap); err == nil {
+// t.Error("no error on APIerSv2.GetActions: ", err)
+// }
+// }
-func testTpRemoveActionsRefenced(t *testing.T) {
- actionsMap := make(map[string]engine.Actions)
- if err := tpRPC.Call(utils.APIerSv2GetActions, &v2.AttrGetActions{
- ActionIDs: []string{"TOPUP_VOICE"},
- }, &actionsMap); err != nil {
- t.Error("Got error on APIerSv2.GetActions: ", err.Error())
- } else if len(actionsMap) != 1 {
- t.Errorf("Calling APIerSv2.GetActions got reply: %s", utils.ToIJSON(actionsMap))
- }
- var reply string
- if err := tpRPC.Call(utils.APIerSv2RemoveActions, v1.AttrRemoveActions{
- ActionIDs: []string{"TOPUP_VOICE"},
- }, &reply); err != nil {
- t.Error("Error on APIerSv2.RemoveActions: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv2.RemoveActions got reply: %s", reply)
- }
- /*
- if err := tpRPC.Call(utils.APIerSv2GetActions, v2.AttrGetActions{
- ActionIDs: []string{"PAYMENT_2056bd2fe137082970f97102b64e42fd"},
- }, &actionsMap); err == nil {
- t.Error("no error on APIerSv2.GetActions: ", err)
- }
- */
-}
+// func testTpRemoveActionsRefenced(t *testing.T) {
+// actionsMap := make(map[string]engine.Actions)
+// if err := tpRPC.Call(utils.APIerSv2GetActions, &v2.AttrGetActions{
+// ActionIDs: []string{"TOPUP_VOICE"},
+// }, &actionsMap); err != nil {
+// t.Error("Got error on APIerSv2.GetActions: ", err.Error())
+// } else if len(actionsMap) != 1 {
+// t.Errorf("Calling APIerSv2.GetActions got reply: %s", utils.ToIJSON(actionsMap))
+// }
+// var reply string
+// if err := tpRPC.Call(utils.APIerSv2RemoveActions, v1.AttrRemoveActions{
+// ActionIDs: []string{"TOPUP_VOICE"},
+// }, &reply); err != nil {
+// t.Error("Error on APIerSv2.RemoveActions: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv2.RemoveActions got reply: %s", reply)
+// }
+// /*
+// if err := tpRPC.Call(utils.APIerSv2GetActions, v2.AttrGetActions{
+// ActionIDs: []string{"PAYMENT_2056bd2fe137082970f97102b64e42fd"},
+// }, &actionsMap); err == nil {
+// t.Error("no error on APIerSv2.GetActions: ", err)
+// }
+// */
+// }
-func testTpApierResetAccountActionTriggers(t *testing.T) {
- var acnt engine.Account
- attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1005"}
- if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
- t.Error(err)
- } else if acnt.ActionTriggers[0].Executed != true {
- t.Skip("Skipping test since Executed is not yet true")
- }
- var reply string
- if err := tpRPC.Call(utils.APIerSv2ResetAccountActionTriggers, v1.AttrResetAccountActionTriggers{
- Tenant: "cgrates.org",
- Account: "1005",
- GroupID: "STANDARD_TRIGGERS",
- Executed: true,
- }, &reply); err != nil {
- t.Error("Error on APIerSv2.ResetAccountActionTriggers: ", err.Error())
- } else if reply != utils.OK {
- t.Errorf("Calling APIerSv2.ResetAccountActionTriggers got reply: %s", reply)
- }
- if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
- t.Error(err)
- } else if acnt.ActionTriggers[0].Executed == false {
- t.Errorf("wrong action trigger executed flag: %s", utils.ToIJSON(acnt.ActionTriggers))
- }
-}
+// func testTpApierResetAccountActionTriggers(t *testing.T) {
+// var acnt engine.Account
+// attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1005"}
+// if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.ActionTriggers[0].Executed != true {
+// t.Skip("Skipping test since Executed is not yet true")
+// }
+// var reply string
+// if err := tpRPC.Call(utils.APIerSv2ResetAccountActionTriggers, v1.AttrResetAccountActionTriggers{
+// Tenant: "cgrates.org",
+// Account: "1005",
+// GroupID: "STANDARD_TRIGGERS",
+// Executed: true,
+// }, &reply); err != nil {
+// t.Error("Error on APIerSv2.ResetAccountActionTriggers: ", err.Error())
+// } else if reply != utils.OK {
+// t.Errorf("Calling APIerSv2.ResetAccountActionTriggers got reply: %s", reply)
+// }
+// if err := tpRPC.Call(utils.APIerSv2GetAccount, attrs, &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.ActionTriggers[0].Executed == false {
+// t.Errorf("wrong action trigger executed flag: %s", utils.ToIJSON(acnt.ActionTriggers))
+// }
+// }
-func testTpStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testTpStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/tut_smgeneric_it_test.go b/general_tests/tut_smgeneric_it_test.go
index c867cff04..3d3395292 100644
--- a/general_tests/tut_smgeneric_it_test.go
+++ b/general_tests/tut_smgeneric_it_test.go
@@ -21,162 +21,162 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "path"
- "reflect"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "reflect"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
- "github.com/cgrates/ltcache"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// "github.com/cgrates/ltcache"
+// )
-var (
- tutSMGCfgPath string
- tutSMGCfgDIR string
- tutSMGCfg *config.CGRConfig
- tutSMGRpc *rpc.Client
- smgLoadInst utils.LoadInstance // Share load information between tests
+// var (
+// tutSMGCfgPath string
+// tutSMGCfgDIR string
+// tutSMGCfg *config.CGRConfig
+// tutSMGRpc *rpc.Client
+// smgLoadInst utils.LoadInstance // Share load information between tests
- sTestTutSMG = []func(t *testing.T){
- testTutSMGInitCfg,
- testTutSMGResetDataDb,
- testTutSMGResetStorDb,
- testTutSMGStartEngine,
- testTutSMGRpcConn,
- testTutSMGLoadTariffPlanFromFolder,
- testTutSMGCacheStats,
- testTutSMGStopCgrEngine,
- }
-)
+// sTestTutSMG = []func(t *testing.T){
+// testTutSMGInitCfg,
+// testTutSMGResetDataDb,
+// testTutSMGResetStorDb,
+// testTutSMGStartEngine,
+// testTutSMGRpcConn,
+// testTutSMGLoadTariffPlanFromFolder,
+// testTutSMGCacheStats,
+// testTutSMGStopCgrEngine,
+// }
+// )
-func TestTutSMG(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- t.SkipNow()
- case utils.MetaMySQL:
- tutSMGCfgDIR = "sessions_mysql"
- case utils.MetaMongo:
- t.SkipNow()
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- //mongo and sql tutmongo tutmysql
- for _, stest := range sTestTutSMG {
- t.Run(tutSMGCfgDIR, stest)
- }
-}
+// func TestTutSMG(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// t.SkipNow()
+// case utils.MetaMySQL:
+// tutSMGCfgDIR = "sessions_mysql"
+// case utils.MetaMongo:
+// t.SkipNow()
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// //mongo and sql tutmongo tutmysql
+// for _, stest := range sTestTutSMG {
+// t.Run(tutSMGCfgDIR, stest)
+// }
+// }
-func testTutSMGInitCfg(t *testing.T) {
- tutSMGCfgPath = path.Join(*dataDir, "conf", "samples", tutSMGCfgDIR)
- // Init config first
- var err error
- tutSMGCfg, err = config.NewCGRConfigFromPath(tutSMGCfgPath)
- if err != nil {
- t.Error(err)
- }
-}
+// func testTutSMGInitCfg(t *testing.T) {
+// tutSMGCfgPath = path.Join(*dataDir, "conf", "samples", tutSMGCfgDIR)
+// // Init config first
+// var err error
+// tutSMGCfg, err = config.NewCGRConfigFromPath(tutSMGCfgPath)
+// if err != nil {
+// t.Error(err)
+// }
+// }
-// Remove data in both rating and accounting db
-func testTutSMGResetDataDb(t *testing.T) {
- if err := engine.InitDataDB(tutSMGCfg); err != nil {
- t.Fatal(err)
- }
-}
+// // Remove data in both rating and accounting db
+// func testTutSMGResetDataDb(t *testing.T) {
+// if err := engine.InitDataDB(tutSMGCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Wipe out the cdr database
-func testTutSMGResetStorDb(t *testing.T) {
- if err := engine.InitStorDB(tutSMGCfg); err != nil {
- t.Fatal(err)
- }
-}
+// // Wipe out the cdr database
+// func testTutSMGResetStorDb(t *testing.T) {
+// if err := engine.InitStorDB(tutSMGCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Start CGR Engine
-func testTutSMGStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(tutSMGCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// // Start CGR Engine
+// func testTutSMGStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(tutSMGCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-// Connect rpc client to rater
-func testTutSMGRpcConn(t *testing.T) {
- var err error
- tutSMGRpc, err = newRPCClient(tutSMGCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal(err)
- }
-}
+// // Connect rpc client to rater
+// func testTutSMGRpcConn(t *testing.T) {
+// var err error
+// tutSMGRpc, err = newRPCClient(tutSMGCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-// Load the tariff plan, creating accounts and their balances
-func testTutSMGLoadTariffPlanFromFolder(t *testing.T) {
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
- if err := tutSMGRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &smgLoadInst); err != nil {
- t.Error(err)
- }
- time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
-}
+// // Load the tariff plan, creating accounts and their balances
+// func testTutSMGLoadTariffPlanFromFolder(t *testing.T) {
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "oldtutorial")}
+// if err := tutSMGRpc.Call(utils.APIerSv2LoadTariffPlanFromFolder, attrs, &smgLoadInst); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(time.Duration(*waitRater) * time.Millisecond) // Give time for scheduler to execute topups
+// }
-// Check loaded stats
-func testTutSMGCacheStats(t *testing.T) {
- var reply string
- if err := tutSMGRpc.Call(utils.CacheSv1LoadCache, utils.NewAttrReloadCacheWithOpts(), &reply); err != nil {
- t.Error(err)
- } else if reply != utils.OK {
- t.Error(reply)
- }
- // expectedStats := &utils.CacheStats{Destinations: 5, ReverseDestinations: 7, RatingPlans: 4, RatingProfiles: 5,
- // Actions: 9, ActionPlans: 4, AccountActionPlans: 5, SharedGroups: 1, ResourceProfiles: 3,
- // Resources: 3, StatQueues: 1, StatQueueProfiles: 1, Thresholds: 7, ThresholdProfiles: 7, Filters: 15,
- // SupplierProfiles: 3, AttributeProfiles: 2}
- var rcvStats map[string]*ltcache.CacheStats
- expectedStats := engine.GetDefaultEmptyCacheStats()
- expectedStats[utils.CacheRatingPlans].Items = 4
- expectedStats[utils.CacheRatingProfiles].Items = 5
- expectedStats[utils.CacheActions].Items = 9
- expectedStats[utils.CacheActionPlans].Items = 4
- expectedStats[utils.CacheSharedGroups].Items = 1
- expectedStats[utils.CacheResourceProfiles].Items = 3
- expectedStats[utils.CacheResources].Items = 3
- expectedStats[utils.CacheStatQueues].Items = 1
- expectedStats[utils.CacheStatQueueProfiles].Items = 1
- expectedStats[utils.CacheThresholds].Items = 7
- expectedStats[utils.CacheThresholdProfiles].Items = 7
- expectedStats[utils.CacheFilters].Items = 15
- expectedStats[utils.CacheRouteProfiles].Items = 3
- expectedStats[utils.CacheAttributeProfiles].Items = 2
- expectedStats[utils.MetaDefault].Items = 1
- expectedStats[utils.CacheActionTriggers].Items = 1
- expectedStats[utils.CacheLoadIDs].Items = 33
- expectedStats[utils.CacheChargerProfiles].Items = 1
- expectedStats[utils.CacheRPCConnections].Items = 2
- expectedStats[utils.CacheThresholdFilterIndexes].Items = 10
- expectedStats[utils.CacheThresholdFilterIndexes].Groups = 1
- expectedStats[utils.CacheStatFilterIndexes].Items = 2
- expectedStats[utils.CacheStatFilterIndexes].Groups = 1
- expectedStats[utils.CacheRouteFilterIndexes].Items = 6
- expectedStats[utils.CacheRouteFilterIndexes].Groups = 1
- expectedStats[utils.CacheResourceFilterIndexes].Items = 6
- expectedStats[utils.CacheResourceFilterIndexes].Groups = 1
- expectedStats[utils.CacheChargerFilterIndexes].Items = 1
- expectedStats[utils.CacheChargerFilterIndexes].Groups = 1
- expectedStats[utils.CacheAttributeFilterIndexes].Items = 3
- expectedStats[utils.CacheAttributeFilterIndexes].Groups = 2
- expectedStats[utils.CacheReverseFilterIndexes].Items = 15
- expectedStats[utils.CacheReverseFilterIndexes].Groups = 13
- if err := tutSMGRpc.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
- t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
- } else if !reflect.DeepEqual(expectedStats, rcvStats) {
- t.Errorf("Calling APIerSv2.CacheSv1 expected: %+v,\n received: %+v", utils.ToJSON(expectedStats), utils.ToJSON(rcvStats))
- }
-}
+// // Check loaded stats
+// func testTutSMGCacheStats(t *testing.T) {
+// var reply string
+// if err := tutSMGRpc.Call(utils.CacheSv1LoadCache, utils.NewAttrReloadCacheWithOpts(), &reply); err != nil {
+// t.Error(err)
+// } else if reply != utils.OK {
+// t.Error(reply)
+// }
+// // expectedStats := &utils.CacheStats{Destinations: 5, ReverseDestinations: 7, RatingPlans: 4, RatingProfiles: 5,
+// // Actions: 9, ActionPlans: 4, AccountActionPlans: 5, SharedGroups: 1, ResourceProfiles: 3,
+// // Resources: 3, StatQueues: 1, StatQueueProfiles: 1, Thresholds: 7, ThresholdProfiles: 7, Filters: 15,
+// // SupplierProfiles: 3, AttributeProfiles: 2}
+// var rcvStats map[string]*ltcache.CacheStats
+// expectedStats := engine.GetDefaultEmptyCacheStats()
+// expectedStats[utils.CacheRatingPlans].Items = 4
+// expectedStats[utils.CacheRatingProfiles].Items = 5
+// expectedStats[utils.CacheActions].Items = 9
+// expectedStats[utils.CacheActionPlans].Items = 4
+// expectedStats[utils.CacheSharedGroups].Items = 1
+// expectedStats[utils.CacheResourceProfiles].Items = 3
+// expectedStats[utils.CacheResources].Items = 3
+// expectedStats[utils.CacheStatQueues].Items = 1
+// expectedStats[utils.CacheStatQueueProfiles].Items = 1
+// expectedStats[utils.CacheThresholds].Items = 7
+// expectedStats[utils.CacheThresholdProfiles].Items = 7
+// expectedStats[utils.CacheFilters].Items = 15
+// expectedStats[utils.CacheRouteProfiles].Items = 3
+// expectedStats[utils.CacheAttributeProfiles].Items = 2
+// expectedStats[utils.MetaDefault].Items = 1
+// expectedStats[utils.CacheActionTriggers].Items = 1
+// expectedStats[utils.CacheLoadIDs].Items = 33
+// expectedStats[utils.CacheChargerProfiles].Items = 1
+// expectedStats[utils.CacheRPCConnections].Items = 2
+// expectedStats[utils.CacheThresholdFilterIndexes].Items = 10
+// expectedStats[utils.CacheThresholdFilterIndexes].Groups = 1
+// expectedStats[utils.CacheStatFilterIndexes].Items = 2
+// expectedStats[utils.CacheStatFilterIndexes].Groups = 1
+// expectedStats[utils.CacheRouteFilterIndexes].Items = 6
+// expectedStats[utils.CacheRouteFilterIndexes].Groups = 1
+// expectedStats[utils.CacheResourceFilterIndexes].Items = 6
+// expectedStats[utils.CacheResourceFilterIndexes].Groups = 1
+// expectedStats[utils.CacheChargerFilterIndexes].Items = 1
+// expectedStats[utils.CacheChargerFilterIndexes].Groups = 1
+// expectedStats[utils.CacheAttributeFilterIndexes].Items = 3
+// expectedStats[utils.CacheAttributeFilterIndexes].Groups = 2
+// expectedStats[utils.CacheReverseFilterIndexes].Items = 15
+// expectedStats[utils.CacheReverseFilterIndexes].Groups = 13
+// if err := tutSMGRpc.Call(utils.CacheSv1GetCacheStats, new(utils.AttrCacheIDsWithAPIOpts), &rcvStats); err != nil {
+// t.Error("Got error on CacheSv1.GetCacheStats: ", err.Error())
+// } else if !reflect.DeepEqual(expectedStats, rcvStats) {
+// t.Errorf("Calling APIerSv2.CacheSv1 expected: %+v,\n received: %+v", utils.ToJSON(expectedStats), utils.ToJSON(rcvStats))
+// }
+// }
-func testTutSMGStopCgrEngine(t *testing.T) {
- if err := engine.KillEngine(100); err != nil {
- t.Error(err)
- }
-}
+// func testTutSMGStopCgrEngine(t *testing.T) {
+// if err := engine.KillEngine(100); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/tutorial2_it_test.go b/general_tests/tutorial2_it_test.go
index 29be2a777..aa9d354e1 100644
--- a/general_tests/tutorial2_it_test.go
+++ b/general_tests/tutorial2_it_test.go
@@ -21,358 +21,358 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "path"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- tutCfgPath string
- tutCfg *config.CGRConfig
- tutRpc *rpc.Client
- tutCfgDir string //run tests for specific configuration
- tutDelay int
-)
+// var (
+// tutCfgPath string
+// tutCfg *config.CGRConfig
+// tutRpc *rpc.Client
+// tutCfgDir string //run tests for specific configuration
+// tutDelay int
+// )
-var sTutTests = []func(t *testing.T){
- testTutLoadConfig,
- testTutResetDB,
- testTutStartEngine,
- testTutRpcConn,
- testTutFromFolder,
- testTutGetCost,
- testTutAccounts,
- testTutStopEngine,
-}
+// var sTutTests = []func(t *testing.T){
+// testTutLoadConfig,
+// testTutResetDB,
+// testTutStartEngine,
+// testTutRpcConn,
+// testTutFromFolder,
+// testTutGetCost,
+// testTutAccounts,
+// testTutStopEngine,
+// }
-//Test start here
-func TestTutorial2(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- tutCfgDir = "tutinternal"
- case utils.MetaMySQL:
- tutCfgDir = "tutmysql2"
- case utils.MetaMongo:
- tutCfgDir = "tutmongo2"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- if *encoding == utils.MetaGOB {
- tutCfgDir += "_gob"
- }
+// //Test start here
+// func TestTutorial2(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// tutCfgDir = "tutinternal"
+// case utils.MetaMySQL:
+// tutCfgDir = "tutmysql2"
+// case utils.MetaMongo:
+// tutCfgDir = "tutmongo2"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// if *encoding == utils.MetaGOB {
+// tutCfgDir += "_gob"
+// }
- for _, stest := range sTutTests {
- t.Run(tutCfgDir, stest)
- }
-}
+// for _, stest := range sTutTests {
+// t.Run(tutCfgDir, stest)
+// }
+// }
-func testTutLoadConfig(t *testing.T) {
- var err error
- tutCfgPath = path.Join(*dataDir, "conf", "samples", tutCfgDir)
- if tutCfg, err = config.NewCGRConfigFromPath(tutCfgPath); err != nil {
- t.Error(err)
- }
- tutDelay = 2000
-}
+// func testTutLoadConfig(t *testing.T) {
+// var err error
+// tutCfgPath = path.Join(*dataDir, "conf", "samples", tutCfgDir)
+// if tutCfg, err = config.NewCGRConfigFromPath(tutCfgPath); err != nil {
+// t.Error(err)
+// }
+// tutDelay = 2000
+// }
-func testTutResetDB(t *testing.T) {
- if err := engine.InitDataDB(tutCfg); err != nil {
- t.Fatal(err)
- }
- if err := engine.InitStorDB(tutCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testTutResetDB(t *testing.T) {
+// if err := engine.InitDataDB(tutCfg); err != nil {
+// t.Fatal(err)
+// }
+// if err := engine.InitStorDB(tutCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testTutStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(tutCfgPath, tutDelay); err != nil {
- t.Fatal(err)
- }
-}
+// func testTutStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(tutCfgPath, tutDelay); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testTutStopEngine(t *testing.T) {
- if err := engine.KillEngine(tutDelay); err != nil {
- t.Error(err)
- }
-}
+// func testTutStopEngine(t *testing.T) {
+// if err := engine.KillEngine(tutDelay); err != nil {
+// t.Error(err)
+// }
+// }
-func testTutRpcConn(t *testing.T) {
- var err error
- if tutRpc, err = newRPCClient(tutCfg.ListenCfg()); err != nil {
- t.Fatal("could not connect to rater: ", err.Error())
- }
-}
+// func testTutRpcConn(t *testing.T) {
+// var err error
+// if tutRpc, err = newRPCClient(tutCfg.ListenCfg()); err != nil {
+// t.Fatal("could not connect to rater: ", err.Error())
+// }
+// }
-func testTutFromFolder(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{
- FolderPath: path.Join(*dataDir, "tariffplans", "tutorial2")}
- if err := tutRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder,
- attrs, &reply); err != nil {
- t.Error(err)
- }
- time.Sleep(100 * time.Millisecond)
-}
+// func testTutFromFolder(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{
+// FolderPath: path.Join(*dataDir, "tariffplans", "tutorial2")}
+// if err := tutRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder,
+// attrs, &reply); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(100 * time.Millisecond)
+// }
-func testTutGetCost(t *testing.T) {
- // Standard pricing for 1001->1002
- attrs := v1.AttrGetCost{
- Subject: "1001",
- Destination: "1002",
- AnswerTime: "*now",
- Usage: "45s",
- }
- var rply *engine.EventCost
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
- t.Error("Unexpected nil error received: ", err.Error())
- } else if *rply.Cost != 0.550000 {
- t.Errorf("Unexpected cost received: %f", *rply.Cost)
- }
- // Fallback pricing from *any, Usage will be rounded to 60s
- attrs = v1.AttrGetCost{
- Subject: "1001",
- Destination: "1003",
- AnswerTime: "2019-03-11T09:00:00Z",
- Usage: "45s",
- }
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
- t.Error("Unexpected nil error received: ", err.Error())
- } else if *rply.Cost != 1.4 {
- t.Errorf("Unexpected cost received: %f", *rply.Cost)
- }
- // Fallback pricing from *any, Usage will be rounded to 60s
- attrs = v1.AttrGetCost{
- Subject: "1001",
- Destination: "1003",
- AnswerTime: "2019-03-11T21:00:00Z",
- Usage: "45s",
- }
- // *any to 2001
- attrs = v1.AttrGetCost{
- Subject: "1002",
- Destination: "2001",
- AnswerTime: "*now",
- Usage: "45s",
- }
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
- t.Error("Unexpected nil error received: ", err.Error())
- } else if *rply.Cost != 1.4 {
- t.Errorf("Unexpected cost received: %f", *rply.Cost)
- }
- // *any to 2001 on NEW_YEAR
- attrs = v1.AttrGetCost{
- Subject: "1002",
- Destination: "2001",
- AnswerTime: "2020-01-01T21:00:00Z",
- Usage: "45s",
- }
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
- t.Error("Unexpected nil error received: ", err.Error())
- } else if *rply.Cost != 0.55 {
- t.Errorf("Unexpected cost received: %f", *rply.Cost)
- }
- // Fallback pricing from *any, Usage will be rounded to 60s
- attrs = v1.AttrGetCost{
- Subject: "1001",
- Destination: "1003",
- AnswerTime: "2019-03-11T21:00:00Z",
- Usage: "45s",
- }
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
- t.Error("Unexpected nil error received: ", err.Error())
- } else if *rply.Cost != 0.55 {
- t.Errorf("Unexpected cost received: %f", *rply.Cost)
- }
- // Unauthorized destination
- attrs = v1.AttrGetCost{
- Subject: "1001",
- Destination: "4003",
- AnswerTime: "2019-03-11T09:00:00Z",
- Usage: "1m",
- }
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err == nil ||
- err.Error() != "SERVER_ERROR: UNAUTHORIZED_DESTINATION" {
- t.Error("Unexpected nil error received: ", err)
- }
- // Data charging
- attrs = v1.AttrGetCost{
- Category: "data",
- Subject: "1001",
- AnswerTime: "*now",
- Usage: "2048",
- }
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
- t.Error("Unexpected nil error received: ", err.Error())
- } else if *rply.Cost != 2.0 { // FixMe: missing ConnectFee out of Cost
- t.Errorf("Unexpected cost received: %f", *rply.Cost)
- }
- // SMS charging 1002
- attrs = v1.AttrGetCost{
- Category: "sms",
- Subject: "1003",
- Destination: "1002",
- AnswerTime: "*now",
- Usage: "1",
- }
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
- t.Error("Unexpected nil error received: ", err.Error())
- } else if *rply.Cost != 0.1 {
- t.Errorf("Unexpected cost received: %f", *rply.Cost)
- }
- // SMS charging 10
- attrs = v1.AttrGetCost{
- Category: "sms",
- Subject: "1001",
- Destination: "1003",
- AnswerTime: "*now",
- Usage: "1",
- }
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
- t.Error("Unexpected nil error received: ", err.Error())
- } else if *rply.Cost != 0.2 {
- t.Errorf("Unexpected cost received: %f", *rply.Cost)
- }
- // SMS charging UNAUTHORIZED
- attrs = v1.AttrGetCost{
- Category: "sms",
- Subject: "1001",
- Destination: "2001",
- AnswerTime: "*now",
- Usage: "1",
- }
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err == nil ||
- err.Error() != "SERVER_ERROR: UNAUTHORIZED_DESTINATION" {
- t.Error("Unexpected nil error received: ", err)
- }
- // Per call charges
- attrs = v1.AttrGetCost{
- Category: "call",
- Subject: "RPF_SPECIAL_BLC",
- Destination: "1002",
- AnswerTime: "*now",
- Usage: "5m",
- }
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
- t.Error("Unexpected nil error received: ", err.Error())
- } else if *rply.Cost != 0.1 {
- t.Errorf("Unexpected cost received: %f", *rply.Cost)
- }
- // reseller1 pricing for 1001->1002
- attrs = v1.AttrGetCost{
- Subject: "1001",
- Destination: "1002",
- AnswerTime: "*now",
- Usage: "45s",
- Category: "reseller1",
- }
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
- t.Error("Unexpected nil error received: ", err.Error())
- } else if *rply.Cost != 0.1 {
- t.Errorf("Unexpected cost received: %f", *rply.Cost)
- }
- // reseller1 pricing for 1001->1002 duration independent
- attrs = v1.AttrGetCost{
- Subject: "1001",
- Destination: "1002",
- AnswerTime: "*now",
- Usage: "10m45s",
- Category: "reseller1",
- }
- if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
- t.Error("Unexpected nil error received: ", err.Error())
- } else if *rply.Cost != 0.1 {
- t.Errorf("Unexpected cost received: %f", *rply.Cost)
- }
-}
+// func testTutGetCost(t *testing.T) {
+// // Standard pricing for 1001->1002
+// attrs := v1.AttrGetCost{
+// Subject: "1001",
+// Destination: "1002",
+// AnswerTime: "*now",
+// Usage: "45s",
+// }
+// var rply *engine.EventCost
+// if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+// t.Error("Unexpected nil error received: ", err.Error())
+// } else if *rply.Cost != 0.550000 {
+// t.Errorf("Unexpected cost received: %f", *rply.Cost)
+// }
+// // Fallback pricing from *any, Usage will be rounded to 60s
+// attrs = v1.AttrGetCost{
+// Subject: "1001",
+// Destination: "1003",
+// AnswerTime: "2019-03-11T09:00:00Z",
+// Usage: "45s",
+// }
+// if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+// t.Error("Unexpected nil error received: ", err.Error())
+// } else if *rply.Cost != 1.4 {
+// t.Errorf("Unexpected cost received: %f", *rply.Cost)
+// }
+// // Fallback pricing from *any, Usage will be rounded to 60s
+// attrs = v1.AttrGetCost{
+// Subject: "1001",
+// Destination: "1003",
+// AnswerTime: "2019-03-11T21:00:00Z",
+// Usage: "45s",
+// }
+// // *any to 2001
+// attrs = v1.AttrGetCost{
+// Subject: "1002",
+// Destination: "2001",
+// AnswerTime: "*now",
+// Usage: "45s",
+// }
+// if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+// t.Error("Unexpected nil error received: ", err.Error())
+// } else if *rply.Cost != 1.4 {
+// t.Errorf("Unexpected cost received: %f", *rply.Cost)
+// }
+// // *any to 2001 on NEW_YEAR
+// attrs = v1.AttrGetCost{
+// Subject: "1002",
+// Destination: "2001",
+// AnswerTime: "2020-01-01T21:00:00Z",
+// Usage: "45s",
+// }
+// if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+// t.Error("Unexpected nil error received: ", err.Error())
+// } else if *rply.Cost != 0.55 {
+// t.Errorf("Unexpected cost received: %f", *rply.Cost)
+// }
+// // Fallback pricing from *any, Usage will be rounded to 60s
+// attrs = v1.AttrGetCost{
+// Subject: "1001",
+// Destination: "1003",
+// AnswerTime: "2019-03-11T21:00:00Z",
+// Usage: "45s",
+// }
+// if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+// t.Error("Unexpected nil error received: ", err.Error())
+// } else if *rply.Cost != 0.55 {
+// t.Errorf("Unexpected cost received: %f", *rply.Cost)
+// }
+// // Unauthorized destination
+// attrs = v1.AttrGetCost{
+// Subject: "1001",
+// Destination: "4003",
+// AnswerTime: "2019-03-11T09:00:00Z",
+// Usage: "1m",
+// }
+// if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err == nil ||
+// err.Error() != "SERVER_ERROR: UNAUTHORIZED_DESTINATION" {
+// t.Error("Unexpected nil error received: ", err)
+// }
+// // Data charging
+// attrs = v1.AttrGetCost{
+// Category: "data",
+// Subject: "1001",
+// AnswerTime: "*now",
+// Usage: "2048",
+// }
+// if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+// t.Error("Unexpected nil error received: ", err.Error())
+// } else if *rply.Cost != 2.0 { // FixMe: missing ConnectFee out of Cost
+// t.Errorf("Unexpected cost received: %f", *rply.Cost)
+// }
+// // SMS charging 1002
+// attrs = v1.AttrGetCost{
+// Category: "sms",
+// Subject: "1003",
+// Destination: "1002",
+// AnswerTime: "*now",
+// Usage: "1",
+// }
+// if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+// t.Error("Unexpected nil error received: ", err.Error())
+// } else if *rply.Cost != 0.1 {
+// t.Errorf("Unexpected cost received: %f", *rply.Cost)
+// }
+// // SMS charging 10
+// attrs = v1.AttrGetCost{
+// Category: "sms",
+// Subject: "1001",
+// Destination: "1003",
+// AnswerTime: "*now",
+// Usage: "1",
+// }
+// if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+// t.Error("Unexpected nil error received: ", err.Error())
+// } else if *rply.Cost != 0.2 {
+// t.Errorf("Unexpected cost received: %f", *rply.Cost)
+// }
+// // SMS charging UNAUTHORIZED
+// attrs = v1.AttrGetCost{
+// Category: "sms",
+// Subject: "1001",
+// Destination: "2001",
+// AnswerTime: "*now",
+// Usage: "1",
+// }
+// if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err == nil ||
+// err.Error() != "SERVER_ERROR: UNAUTHORIZED_DESTINATION" {
+// t.Error("Unexpected nil error received: ", err)
+// }
+// // Per call charges
+// attrs = v1.AttrGetCost{
+// Category: "call",
+// Subject: "RPF_SPECIAL_BLC",
+// Destination: "1002",
+// AnswerTime: "*now",
+// Usage: "5m",
+// }
+// if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+// t.Error("Unexpected nil error received: ", err.Error())
+// } else if *rply.Cost != 0.1 {
+// t.Errorf("Unexpected cost received: %f", *rply.Cost)
+// }
+// // reseller1 pricing for 1001->1002
+// attrs = v1.AttrGetCost{
+// Subject: "1001",
+// Destination: "1002",
+// AnswerTime: "*now",
+// Usage: "45s",
+// Category: "reseller1",
+// }
+// if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+// t.Error("Unexpected nil error received: ", err.Error())
+// } else if *rply.Cost != 0.1 {
+// t.Errorf("Unexpected cost received: %f", *rply.Cost)
+// }
+// // reseller1 pricing for 1001->1002 duration independent
+// attrs = v1.AttrGetCost{
+// Subject: "1001",
+// Destination: "1002",
+// AnswerTime: "*now",
+// Usage: "10m45s",
+// Category: "reseller1",
+// }
+// if err := tutRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+// t.Error("Unexpected nil error received: ", err.Error())
+// } else if *rply.Cost != 0.1 {
+// t.Errorf("Unexpected cost received: %f", *rply.Cost)
+// }
+// }
-func testTutAccounts(t *testing.T) {
- // make sure Account was created
- var acnt *engine.Account
- if err := tutRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"},
- &acnt); err != nil {
- t.Fatal(err)
- }
- if len(acnt.BalanceMap) != 4 ||
- len(acnt.BalanceMap[utils.MetaMonetary]) != 1 ||
- acnt.BalanceMap[utils.MetaMonetary][0].Value != 10 ||
- len(acnt.BalanceMap[utils.MetaVoice]) != 2 ||
- len(acnt.BalanceMap[utils.MetaSMS]) != 1 ||
- acnt.BalanceMap[utils.MetaSMS][0].Value != 100 ||
- len(acnt.BalanceMap[utils.MetaData]) != 1 ||
- acnt.BalanceMap[utils.MetaData][0].Value != 1024 ||
- len(acnt.ActionTriggers) != 2 ||
- acnt.Disabled {
- t.Errorf("received account: %s", utils.ToIJSON(acnt))
- }
+// func testTutAccounts(t *testing.T) {
+// // make sure Account was created
+// var acnt *engine.Account
+// if err := tutRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"},
+// &acnt); err != nil {
+// t.Fatal(err)
+// }
+// if len(acnt.BalanceMap) != 4 ||
+// len(acnt.BalanceMap[utils.MetaMonetary]) != 1 ||
+// acnt.BalanceMap[utils.MetaMonetary][0].Value != 10 ||
+// len(acnt.BalanceMap[utils.MetaVoice]) != 2 ||
+// len(acnt.BalanceMap[utils.MetaSMS]) != 1 ||
+// acnt.BalanceMap[utils.MetaSMS][0].Value != 100 ||
+// len(acnt.BalanceMap[utils.MetaData]) != 1 ||
+// acnt.BalanceMap[utils.MetaData][0].Value != 1024 ||
+// len(acnt.ActionTriggers) != 2 ||
+// acnt.Disabled {
+// t.Errorf("received account: %s", utils.ToIJSON(acnt))
+// }
- // test ActionTriggers
- attrBlc := utils.AttrSetBalance{
- Tenant: "cgrates.org",
- Account: "1001",
- BalanceType: utils.MetaMonetary,
- Value: 1,
- Balance: map[string]interface{}{
- utils.ID: utils.MetaDefault,
- },
- }
- var rplySetBlc string
- if err := tutRpc.Call(utils.APIerSv1SetBalance, attrBlc, &rplySetBlc); err != nil {
- t.Error("Got error on APIerSv1.SetBalance: ", err.Error())
- }
- if err := tutRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"},
- &acnt); err != nil {
- t.Error(err)
- } else if len(acnt.BalanceMap[utils.MetaSMS]) != 2 ||
- acnt.GetBalanceWithID(utils.MetaSMS, "BONUS_SMSes").Value != 10 {
- t.Errorf("account: %s", utils.ToIJSON(acnt))
- }
- attrBlc = utils.AttrSetBalance{
- Tenant: "cgrates.org",
- Account: "1001",
- BalanceType: utils.MetaMonetary,
- Value: 101,
- Balance: map[string]interface{}{
- utils.ID: utils.MetaDefault,
- },
- }
- if err := tutRpc.Call(utils.APIerSv1SetBalance, attrBlc, &rplySetBlc); err != nil {
- t.Error("Got error on APIerSv1.SetBalance: ", err.Error())
- }
- if err := tutRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"},
- &acnt); err != nil {
- t.Error(err)
- } else if !acnt.Disabled {
- t.Errorf("account: %s", utils.ToIJSON(acnt))
- }
- // enable the account again
- var rplySetAcnt string
- if err := tutRpc.Call(utils.APIerSv2SetAccount,
- &v2.AttrSetAccount{
- Tenant: "cgrates.org",
- Account: "1001",
- ExtraOptions: map[string]bool{
- utils.Disabled: false,
- },
- }, &rplySetAcnt); err != nil {
- t.Error(err)
- }
- acnt = new(engine.Account)
- if err := tutRpc.Call(utils.APIerSv2GetAccount,
- &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"},
- &acnt); err != nil {
- t.Error(err)
- } else if acnt.Disabled {
- t.Errorf("account: %s", utils.ToJSON(acnt))
- }
-}
+// // test ActionTriggers
+// attrBlc := utils.AttrSetBalance{
+// Tenant: "cgrates.org",
+// Account: "1001",
+// BalanceType: utils.MetaMonetary,
+// Value: 1,
+// Balance: map[string]interface{}{
+// utils.ID: utils.MetaDefault,
+// },
+// }
+// var rplySetBlc string
+// if err := tutRpc.Call(utils.APIerSv1SetBalance, attrBlc, &rplySetBlc); err != nil {
+// t.Error("Got error on APIerSv1.SetBalance: ", err.Error())
+// }
+// if err := tutRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"},
+// &acnt); err != nil {
+// t.Error(err)
+// } else if len(acnt.BalanceMap[utils.MetaSMS]) != 2 ||
+// acnt.GetBalanceWithID(utils.MetaSMS, "BONUS_SMSes").Value != 10 {
+// t.Errorf("account: %s", utils.ToIJSON(acnt))
+// }
+// attrBlc = utils.AttrSetBalance{
+// Tenant: "cgrates.org",
+// Account: "1001",
+// BalanceType: utils.MetaMonetary,
+// Value: 101,
+// Balance: map[string]interface{}{
+// utils.ID: utils.MetaDefault,
+// },
+// }
+// if err := tutRpc.Call(utils.APIerSv1SetBalance, attrBlc, &rplySetBlc); err != nil {
+// t.Error("Got error on APIerSv1.SetBalance: ", err.Error())
+// }
+// if err := tutRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"},
+// &acnt); err != nil {
+// t.Error(err)
+// } else if !acnt.Disabled {
+// t.Errorf("account: %s", utils.ToIJSON(acnt))
+// }
+// // enable the account again
+// var rplySetAcnt string
+// if err := tutRpc.Call(utils.APIerSv2SetAccount,
+// &v2.AttrSetAccount{
+// Tenant: "cgrates.org",
+// Account: "1001",
+// ExtraOptions: map[string]bool{
+// utils.Disabled: false,
+// },
+// }, &rplySetAcnt); err != nil {
+// t.Error(err)
+// }
+// acnt = new(engine.Account)
+// if err := tutRpc.Call(utils.APIerSv2GetAccount,
+// &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1001"},
+// &acnt); err != nil {
+// t.Error(err)
+// } else if acnt.Disabled {
+// t.Errorf("account: %s", utils.ToJSON(acnt))
+// }
+// }
diff --git a/general_tests/tutorial_it_test.go b/general_tests/tutorial_it_test.go
index f0825286b..564f2d38d 100644
--- a/general_tests/tutorial_it_test.go
+++ b/general_tests/tutorial_it_test.go
@@ -21,131 +21,131 @@ along with this program. If not, see
package general_tests
-import (
- "flag"
- "net/rpc"
- "path"
- "testing"
- "time"
+// import (
+// "flag"
+// "net/rpc"
+// "path"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/config"
- "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/utils"
-)
+// "github.com/cgrates/cgrates/config"
+// "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/utils"
+// )
-var (
- itTestMongoAtalas = flag.Bool("mongo_atlas", false, "Run the test with mongo atalas connection")
- tutorialCfgPath string
- tutorialCfg *config.CGRConfig
- tutorialRpc *rpc.Client
- tutorialConfDIR string //run tests for specific configuration
- tutorialDelay int
+// var (
+// itTestMongoAtalas = flag.Bool("mongo_atlas", false, "Run the test with mongo atalas connection")
+// tutorialCfgPath string
+// tutorialCfg *config.CGRConfig
+// tutorialRpc *rpc.Client
+// tutorialConfDIR string //run tests for specific configuration
+// tutorialDelay int
- sTestsTutorials = []func(t *testing.T){
- testTutorialLoadConfig,
- testTutorialResetDB,
- testTutorialStartEngine,
- testTutorialRpcConn,
- testTutorialFromFolder,
- testTutorialGetCost,
- testTutorialStopEngine,
- }
-)
+// sTestsTutorials = []func(t *testing.T){
+// testTutorialLoadConfig,
+// testTutorialResetDB,
+// testTutorialStartEngine,
+// testTutorialRpcConn,
+// testTutorialFromFolder,
+// testTutorialGetCost,
+// testTutorialStopEngine,
+// }
+// )
-//Test start here
-func TestTutorialMongoAtlas(t *testing.T) {
- if !*itTestMongoAtalas {
- return
- }
- tutorialConfDIR = "mongoatlas"
- for _, stest := range sTestsTutorials {
- t.Run(tutorialConfDIR, stest)
- }
-}
+// //Test start here
+// func TestTutorialMongoAtlas(t *testing.T) {
+// if !*itTestMongoAtalas {
+// return
+// }
+// tutorialConfDIR = "mongoatlas"
+// for _, stest := range sTestsTutorials {
+// t.Run(tutorialConfDIR, stest)
+// }
+// }
-func TestTutorial(t *testing.T) {
- switch *dbType {
- case utils.MetaInternal:
- tutorialConfDIR = "tutinternal"
- case utils.MetaMySQL:
- tutorialConfDIR = "tutmysql"
- case utils.MetaMongo:
- tutorialConfDIR = "tutmongo"
- case utils.MetaPostgres:
- t.SkipNow()
- default:
- t.Fatal("Unknown Database type")
- }
- for _, stest := range sTestsTutorials {
- t.Run(tutorialConfDIR, stest)
- }
-}
+// func TestTutorial(t *testing.T) {
+// switch *dbType {
+// case utils.MetaInternal:
+// tutorialConfDIR = "tutinternal"
+// case utils.MetaMySQL:
+// tutorialConfDIR = "tutmysql"
+// case utils.MetaMongo:
+// tutorialConfDIR = "tutmongo"
+// case utils.MetaPostgres:
+// t.SkipNow()
+// default:
+// t.Fatal("Unknown Database type")
+// }
+// for _, stest := range sTestsTutorials {
+// t.Run(tutorialConfDIR, stest)
+// }
+// }
-func testTutorialLoadConfig(t *testing.T) {
- var err error
- tutorialCfgPath = path.Join(*dataDir, "conf", "samples", tutorialConfDIR)
- if tutorialCfg, err = config.NewCGRConfigFromPath(tutorialCfgPath); err != nil {
- t.Error(err)
- }
- switch tutorialConfDIR {
- case "mongoatlas": // Mongo needs more time to reset db
- tutorialDelay = 4000
- default:
- tutorialDelay = 2000
- }
-}
+// func testTutorialLoadConfig(t *testing.T) {
+// var err error
+// tutorialCfgPath = path.Join(*dataDir, "conf", "samples", tutorialConfDIR)
+// if tutorialCfg, err = config.NewCGRConfigFromPath(tutorialCfgPath); err != nil {
+// t.Error(err)
+// }
+// switch tutorialConfDIR {
+// case "mongoatlas": // Mongo needs more time to reset db
+// tutorialDelay = 4000
+// default:
+// tutorialDelay = 2000
+// }
+// }
-func testTutorialResetDB(t *testing.T) {
- if err := engine.InitDataDB(tutorialCfg); err != nil {
- t.Fatal(err)
- }
- if err := engine.InitStorDB(tutorialCfg); err != nil {
- t.Fatal(err)
- }
-}
+// func testTutorialResetDB(t *testing.T) {
+// if err := engine.InitDataDB(tutorialCfg); err != nil {
+// t.Fatal(err)
+// }
+// if err := engine.InitStorDB(tutorialCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testTutorialStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(tutorialCfgPath, tutorialDelay); err != nil {
- t.Fatal(err)
- }
-}
+// func testTutorialStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(tutorialCfgPath, tutorialDelay); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testTutorialRpcConn(t *testing.T) {
- var err error
- tutorialRpc, err = newRPCClient(tutorialCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
- if err != nil {
- t.Fatal("Could not connect to rater: ", err.Error())
- }
-}
+// func testTutorialRpcConn(t *testing.T) {
+// var err error
+// tutorialRpc, err = newRPCClient(tutorialCfg.ListenCfg()) // We connect over JSON so we can also troubleshoot if needed
+// if err != nil {
+// t.Fatal("Could not connect to rater: ", err.Error())
+// }
+// }
-func testTutorialFromFolder(t *testing.T) {
- var reply string
- attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
- if err := tutorialRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
- t.Error(err)
- }
- time.Sleep(100 * time.Millisecond)
-}
+// func testTutorialFromFolder(t *testing.T) {
+// var reply string
+// attrs := &utils.AttrLoadTpFromFolder{FolderPath: path.Join(*dataDir, "tariffplans", "tutorial")}
+// if err := tutorialRpc.Call(utils.APIerSv1LoadTariffPlanFromFolder, attrs, &reply); err != nil {
+// t.Error(err)
+// }
+// time.Sleep(100 * time.Millisecond)
+// }
-func testTutorialGetCost(t *testing.T) {
- attrs := v1.AttrGetCost{
- Tenant: "cgrates.org",
- Category: "call",
- Subject: "1001",
- Destination: "1002",
- AnswerTime: "*now",
- Usage: "2m10s",
- }
- var rply *engine.EventCost
- if err := tutorialRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
- t.Error("Unexpected nil error received: ", err.Error())
- } else if *rply.Cost != 0.716900 {
- t.Errorf("Unexpected cost received: %f", *rply.Cost)
- }
-}
+// func testTutorialGetCost(t *testing.T) {
+// attrs := v1.AttrGetCost{
+// Tenant: "cgrates.org",
+// Category: "call",
+// Subject: "1001",
+// Destination: "1002",
+// AnswerTime: "*now",
+// Usage: "2m10s",
+// }
+// var rply *engine.EventCost
+// if err := tutorialRpc.Call(utils.APIerSv1GetCost, &attrs, &rply); err != nil {
+// t.Error("Unexpected nil error received: ", err.Error())
+// } else if *rply.Cost != 0.716900 {
+// t.Errorf("Unexpected cost received: %f", *rply.Cost)
+// }
+// }
-func testTutorialStopEngine(t *testing.T) {
- if err := engine.KillEngine(tutorialDelay); err != nil {
- t.Error(err)
- }
-}
+// func testTutorialStopEngine(t *testing.T) {
+// if err := engine.KillEngine(tutorialDelay); err != nil {
+// t.Error(err)
+// }
+// }
diff --git a/general_tests/twoengines_it_test.go b/general_tests/twoengines_it_test.go
index 65278dfa0..5bf6b726b 100644
--- a/general_tests/twoengines_it_test.go
+++ b/general_tests/twoengines_it_test.go
@@ -21,253 +21,253 @@ along with this program. If not, see
package general_tests
-import (
- "net/rpc"
- "path"
- "reflect"
- "testing"
- "time"
+// import (
+// "net/rpc"
+// "path"
+// "reflect"
+// "testing"
+// "time"
- "github.com/cgrates/cgrates/utils"
+// "github.com/cgrates/cgrates/utils"
- "github.com/cgrates/cgrates/engine"
+// "github.com/cgrates/cgrates/engine"
- "github.com/cgrates/cgrates/config"
-)
+// "github.com/cgrates/cgrates/config"
+// )
-var (
- engineOneCfgPath string
- engineOneCfg *config.CGRConfig
- engineOneRpc *rpc.Client
+// var (
+// engineOneCfgPath string
+// engineOneCfg *config.CGRConfig
+// engineOneRpc *rpc.Client
- engineTwoCfgPath string
- engineTwoCfg *config.CGRConfig
- engineTwoRpc *rpc.Client
-)
+// engineTwoCfgPath string
+// engineTwoCfg *config.CGRConfig
+// engineTwoRpc *rpc.Client
+// )
-var sTestsTwoEnginesIT = []func(t *testing.T){
- testTwoEnginesInitConfig,
- testTwoEnginesInitDataDB,
- testTwoEnginesInitStorDB,
- testTwoEnginesStartEngine,
- testTwoEnginesRPC,
- testTwoEnginesCheckCacheBeforeSet,
- testTwoEnginesSetThreshold,
- testTwoEnginesCheckCacheAfterSet,
- testTwoEnginesUpdateThreshold,
- testTwoEnginesKillEngines,
-}
+// var sTestsTwoEnginesIT = []func(t *testing.T){
+// testTwoEnginesInitConfig,
+// testTwoEnginesInitDataDB,
+// testTwoEnginesInitStorDB,
+// testTwoEnginesStartEngine,
+// testTwoEnginesRPC,
+// testTwoEnginesCheckCacheBeforeSet,
+// testTwoEnginesSetThreshold,
+// testTwoEnginesCheckCacheAfterSet,
+// testTwoEnginesUpdateThreshold,
+// testTwoEnginesKillEngines,
+// }
-func TestTwoEngines(t *testing.T) {
- for _, test := range sTestsTwoEnginesIT {
- t.Run("TestTwoEngines", test)
- }
-}
+// func TestTwoEngines(t *testing.T) {
+// for _, test := range sTestsTwoEnginesIT {
+// t.Run("TestTwoEngines", test)
+// }
+// }
-func testTwoEnginesInitConfig(t *testing.T) {
- engineOneCfgPath = path.Join(*dataDir, "conf", "samples", "twoengines", "engine1")
- if engineOneCfg, err = config.NewCGRConfigFromPath(engineOneCfgPath); err != nil {
- t.Fatal(err)
- }
- engineTwoCfgPath = path.Join(*dataDir, "conf", "samples", "twoengines", "engine2")
- if engineTwoCfg, err = config.NewCGRConfigFromPath(engineTwoCfgPath); err != nil {
- t.Fatal(err)
- }
+// func testTwoEnginesInitConfig(t *testing.T) {
+// engineOneCfgPath = path.Join(*dataDir, "conf", "samples", "twoengines", "engine1")
+// if engineOneCfg, err = config.NewCGRConfigFromPath(engineOneCfgPath); err != nil {
+// t.Fatal(err)
+// }
+// engineTwoCfgPath = path.Join(*dataDir, "conf", "samples", "twoengines", "engine2")
+// if engineTwoCfg, err = config.NewCGRConfigFromPath(engineTwoCfgPath); err != nil {
+// t.Fatal(err)
+// }
-}
-func testTwoEnginesInitDataDB(t *testing.T) {
- if err := engine.InitDataDB(engineOneCfg); err != nil {
- t.Fatal(err)
- }
-}
-func testTwoEnginesInitStorDB(t *testing.T) {
- if err := engine.InitStorDB(engineOneCfg); err != nil {
- t.Fatal(err)
- }
-}
-func testTwoEnginesStartEngine(t *testing.T) {
- if _, err := engine.StopStartEngine(engineOneCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
- if _, err := engine.StartEngine(engineTwoCfgPath, *waitRater); err != nil {
- t.Fatal(err)
- }
-}
+// }
+// func testTwoEnginesInitDataDB(t *testing.T) {
+// if err := engine.InitDataDB(engineOneCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
+// func testTwoEnginesInitStorDB(t *testing.T) {
+// if err := engine.InitStorDB(engineOneCfg); err != nil {
+// t.Fatal(err)
+// }
+// }
+// func testTwoEnginesStartEngine(t *testing.T) {
+// if _, err := engine.StopStartEngine(engineOneCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// if _, err := engine.StartEngine(engineTwoCfgPath, *waitRater); err != nil {
+// t.Fatal(err)
+// }
+// }
-func testTwoEnginesRPC(t *testing.T) {
- var err error
- engineOneRpc, err = newRPCClient(engineOneCfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
- engineTwoRpc, err = newRPCClient(engineTwoCfg.ListenCfg())
- if err != nil {
- t.Fatal(err)
- }
-}
+// func testTwoEnginesRPC(t *testing.T) {
+// var err error
+// engineOneRpc, err = newRPCClient(engineOneCfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// engineTwoRpc, err = newRPCClient(engineTwoCfg.ListenCfg())
+// if err != nil {
+// t.Fatal(err)
+// }
+// }
-func testTwoEnginesCheckCacheBeforeSet(t *testing.T) {
- var reply bool
- argHasItem := utils.ArgsGetCacheItem{
- CacheID: utils.CacheThresholdProfiles,
- ItemID: "cgrates.org:THD_TwoEnginesTest",
- }
- if err := engineOneRpc.Call(utils.CacheSv1HasItem, argHasItem, &reply); err != nil {
- t.Error(err)
- } else if reply {
- t.Errorf("Expected: false , received: %v ", reply)
- }
- var rcvKeys []string
- argGetItemIDs := utils.ArgsGetCacheItemIDs{
- CacheID: utils.CacheThresholdProfiles,
- }
- if err := engineOneRpc.Call(utils.CacheSv1GetItemIDs, argGetItemIDs, &rcvKeys); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Expected error: %s received error: %s and reply: %v ", utils.ErrNotFound, err.Error(), rcvKeys)
- }
+// func testTwoEnginesCheckCacheBeforeSet(t *testing.T) {
+// var reply bool
+// argHasItem := utils.ArgsGetCacheItem{
+// CacheID: utils.CacheThresholdProfiles,
+// ItemID: "cgrates.org:THD_TwoEnginesTest",
+// }
+// if err := engineOneRpc.Call(utils.CacheSv1HasItem, argHasItem, &reply); err != nil {
+// t.Error(err)
+// } else if reply {
+// t.Errorf("Expected: false , received: %v ", reply)
+// }
+// var rcvKeys []string
+// argGetItemIDs := utils.ArgsGetCacheItemIDs{
+// CacheID: utils.CacheThresholdProfiles,
+// }
+// if err := engineOneRpc.Call(utils.CacheSv1GetItemIDs, argGetItemIDs, &rcvKeys); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Expected error: %s received error: %s and reply: %v ", utils.ErrNotFound, err.Error(), rcvKeys)
+// }
- if err := engineTwoRpc.Call(utils.CacheSv1HasItem, argHasItem, &reply); err != nil {
- t.Error(err)
- } else if reply {
- t.Errorf("Expected: false , received: %v ", reply)
- }
- if err := engineTwoRpc.Call(utils.CacheSv1GetItemIDs, argGetItemIDs, &rcvKeys); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Fatalf("Expected error: %s received error: %s and reply: %v ", utils.ErrNotFound, err.Error(), rcvKeys)
- }
-}
+// if err := engineTwoRpc.Call(utils.CacheSv1HasItem, argHasItem, &reply); err != nil {
+// t.Error(err)
+// } else if reply {
+// t.Errorf("Expected: false , received: %v ", reply)
+// }
+// if err := engineTwoRpc.Call(utils.CacheSv1GetItemIDs, argGetItemIDs, &rcvKeys); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Fatalf("Expected error: %s received error: %s and reply: %v ", utils.ErrNotFound, err.Error(), rcvKeys)
+// }
+// }
-func testTwoEnginesSetThreshold(t *testing.T) {
- var reply *engine.ThresholdProfile
- // enforce caching with nil on engine2 so CacheSv1.ReloadCache load correctly the threshold
- if err := engineTwoRpc.Call(utils.APIerSv1GetThresholdProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "THD_TwoEnginesTest"}, &reply); err == nil ||
- err.Error() != utils.ErrNotFound.Error() {
- t.Error(err)
- }
- var result string
- tPrfl := &engine.ThresholdProfileWithAPIOpts{
- ThresholdProfile: &engine.ThresholdProfile{
- Tenant: "cgrates.org",
- ID: "THD_TwoEnginesTest",
- FilterIDs: []string{"*string:~*req.Account:1001"},
- MaxHits: -1,
- MinSleep: 5 * time.Minute,
- Blocker: false,
- Weight: 20.0,
- ActionProfileIDs: []string{"ACT_1"},
- Async: true,
- },
- }
- if err := engineOneRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := engineOneRpc.Call(utils.APIerSv1GetThresholdProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "THD_TwoEnginesTest"}, &reply); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
- t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, reply)
- }
-}
+// func testTwoEnginesSetThreshold(t *testing.T) {
+// var reply *engine.ThresholdProfile
+// // enforce caching with nil on engine2 so CacheSv1.ReloadCache load correctly the threshold
+// if err := engineTwoRpc.Call(utils.APIerSv1GetThresholdProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "THD_TwoEnginesTest"}, &reply); err == nil ||
+// err.Error() != utils.ErrNotFound.Error() {
+// t.Error(err)
+// }
+// var result string
+// tPrfl := &engine.ThresholdProfileWithAPIOpts{
+// ThresholdProfile: &engine.ThresholdProfile{
+// Tenant: "cgrates.org",
+// ID: "THD_TwoEnginesTest",
+// FilterIDs: []string{"*string:~*req.Account:1001"},
+// MaxHits: -1,
+// MinSleep: 5 * time.Minute,
+// Blocker: false,
+// Weight: 20.0,
+// ActionProfileIDs: []string{"ACT_1"},
+// Async: true,
+// },
+// }
+// if err := engineOneRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := engineOneRpc.Call(utils.APIerSv1GetThresholdProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "THD_TwoEnginesTest"}, &reply); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, reply) {
+// t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, reply)
+// }
+// }
-func testTwoEnginesCheckCacheAfterSet(t *testing.T) {
- var reply bool
- expected := true
- argHasItem := utils.ArgsGetCacheItem{
- CacheID: utils.CacheThresholdProfiles,
- ItemID: "cgrates.org:THD_TwoEnginesTest",
- }
- if err := engineOneRpc.Call(utils.CacheSv1HasItem, argHasItem, &reply); err != nil {
- t.Error(err)
- } else if !reply {
- t.Errorf("Expected: %v , received:%v", expected, reply)
- }
- var rcvKeys []string
- expKeys := []string{"cgrates.org:THD_TwoEnginesTest"}
- argGetItemIDs := utils.ArgsGetCacheItemIDs{
- CacheID: utils.CacheThresholdProfiles,
- }
- if err := engineOneRpc.Call(utils.CacheSv1GetItemIDs, argGetItemIDs, &rcvKeys); err != nil {
- t.Fatalf("Got error on APIerSv1.GetCacheStats: %s ", err.Error())
- } else if !reflect.DeepEqual(expKeys, rcvKeys) {
- t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
- }
+// func testTwoEnginesCheckCacheAfterSet(t *testing.T) {
+// var reply bool
+// expected := true
+// argHasItem := utils.ArgsGetCacheItem{
+// CacheID: utils.CacheThresholdProfiles,
+// ItemID: "cgrates.org:THD_TwoEnginesTest",
+// }
+// if err := engineOneRpc.Call(utils.CacheSv1HasItem, argHasItem, &reply); err != nil {
+// t.Error(err)
+// } else if !reply {
+// t.Errorf("Expected: %v , received:%v", expected, reply)
+// }
+// var rcvKeys []string
+// expKeys := []string{"cgrates.org:THD_TwoEnginesTest"}
+// argGetItemIDs := utils.ArgsGetCacheItemIDs{
+// CacheID: utils.CacheThresholdProfiles,
+// }
+// if err := engineOneRpc.Call(utils.CacheSv1GetItemIDs, argGetItemIDs, &rcvKeys); err != nil {
+// t.Fatalf("Got error on APIerSv1.GetCacheStats: %s ", err.Error())
+// } else if !reflect.DeepEqual(expKeys, rcvKeys) {
+// t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
+// }
- if err := engineTwoRpc.Call(utils.CacheSv1HasItem, argHasItem, &reply); err != nil {
- t.Error(err)
- } else if !reply {
- t.Errorf("Expected: %v , received:%v", expected, reply)
- }
- if err := engineTwoRpc.Call(utils.CacheSv1GetItemIDs, argGetItemIDs, &rcvKeys); err != nil {
- t.Fatalf("Got error on APIerSv1.GetCacheStats: %s ", err.Error())
- } else if !reflect.DeepEqual(expKeys, rcvKeys) {
- t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
- }
- // after we verify the cache make sure it was set correctly there
- tPrfl := &engine.ThresholdProfileWithAPIOpts{
- ThresholdProfile: &engine.ThresholdProfile{
- Tenant: "cgrates.org",
- ID: "THD_TwoEnginesTest",
- FilterIDs: []string{"*string:~*req.Account:1001"},
- MaxHits: -1,
- MinSleep: 5 * time.Minute,
- Blocker: false,
- Weight: 20.0,
- ActionProfileIDs: []string{"ACT_1"},
- Async: true,
- },
- }
- var rplTh *engine.ThresholdProfile
- if err := engineTwoRpc.Call(utils.APIerSv1GetThresholdProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "THD_TwoEnginesTest"}, &rplTh); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rplTh) {
- t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, rplTh)
- }
-}
+// if err := engineTwoRpc.Call(utils.CacheSv1HasItem, argHasItem, &reply); err != nil {
+// t.Error(err)
+// } else if !reply {
+// t.Errorf("Expected: %v , received:%v", expected, reply)
+// }
+// if err := engineTwoRpc.Call(utils.CacheSv1GetItemIDs, argGetItemIDs, &rcvKeys); err != nil {
+// t.Fatalf("Got error on APIerSv1.GetCacheStats: %s ", err.Error())
+// } else if !reflect.DeepEqual(expKeys, rcvKeys) {
+// t.Errorf("Expected: %+v, received: %+v", expKeys, rcvKeys)
+// }
+// // after we verify the cache make sure it was set correctly there
+// tPrfl := &engine.ThresholdProfileWithAPIOpts{
+// ThresholdProfile: &engine.ThresholdProfile{
+// Tenant: "cgrates.org",
+// ID: "THD_TwoEnginesTest",
+// FilterIDs: []string{"*string:~*req.Account:1001"},
+// MaxHits: -1,
+// MinSleep: 5 * time.Minute,
+// Blocker: false,
+// Weight: 20.0,
+// ActionProfileIDs: []string{"ACT_1"},
+// Async: true,
+// },
+// }
+// var rplTh *engine.ThresholdProfile
+// if err := engineTwoRpc.Call(utils.APIerSv1GetThresholdProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "THD_TwoEnginesTest"}, &rplTh); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rplTh) {
+// t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, rplTh)
+// }
+// }
-func testTwoEnginesUpdateThreshold(t *testing.T) {
- var rplTh *engine.ThresholdProfile
- var result string
- tPrfl := &engine.ThresholdProfileWithAPIOpts{
- ThresholdProfile: &engine.ThresholdProfile{
- Tenant: "cgrates.org",
- ID: "THD_TwoEnginesTest",
- FilterIDs: []string{"*string:~*req.Account:10"},
- MaxHits: -1,
- MinSleep: time.Minute,
- Blocker: false,
- Weight: 50.0,
- ActionProfileIDs: []string{"ACT_1.1"},
- Async: true,
- },
- APIOpts: map[string]interface{}{
- utils.CacheOpt: utils.MetaReload,
- },
- }
- if err := engineOneRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
- t.Error(err)
- } else if result != utils.OK {
- t.Error("Unexpected reply returned", result)
- }
- if err := engineOneRpc.Call(utils.APIerSv1GetThresholdProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "THD_TwoEnginesTest"}, &rplTh); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rplTh) {
- t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, rplTh)
- }
- if err := engineTwoRpc.Call(utils.APIerSv1GetThresholdProfile,
- &utils.TenantID{Tenant: "cgrates.org", ID: "THD_TwoEnginesTest"}, &rplTh); err != nil {
- t.Error(err)
- } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rplTh) {
- t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, rplTh)
- }
-}
+// func testTwoEnginesUpdateThreshold(t *testing.T) {
+// var rplTh *engine.ThresholdProfile
+// var result string
+// tPrfl := &engine.ThresholdProfileWithAPIOpts{
+// ThresholdProfile: &engine.ThresholdProfile{
+// Tenant: "cgrates.org",
+// ID: "THD_TwoEnginesTest",
+// FilterIDs: []string{"*string:~*req.Account:10"},
+// MaxHits: -1,
+// MinSleep: time.Minute,
+// Blocker: false,
+// Weight: 50.0,
+// ActionProfileIDs: []string{"ACT_1.1"},
+// Async: true,
+// },
+// APIOpts: map[string]interface{}{
+// utils.CacheOpt: utils.MetaReload,
+// },
+// }
+// if err := engineOneRpc.Call(utils.APIerSv1SetThresholdProfile, tPrfl, &result); err != nil {
+// t.Error(err)
+// } else if result != utils.OK {
+// t.Error("Unexpected reply returned", result)
+// }
+// if err := engineOneRpc.Call(utils.APIerSv1GetThresholdProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "THD_TwoEnginesTest"}, &rplTh); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rplTh) {
+// t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, rplTh)
+// }
+// if err := engineTwoRpc.Call(utils.APIerSv1GetThresholdProfile,
+// &utils.TenantID{Tenant: "cgrates.org", ID: "THD_TwoEnginesTest"}, &rplTh); err != nil {
+// t.Error(err)
+// } else if !reflect.DeepEqual(tPrfl.ThresholdProfile, rplTh) {
+// t.Errorf("Expecting: %+v, received: %+v", tPrfl.ThresholdProfile, rplTh)
+// }
+// }
-func testTwoEnginesKillEngines(t *testing.T) {
- if err := engine.KillEngine(*waitRater); err != nil {
- t.Error(err)
- }
-}
+// func testTwoEnginesKillEngines(t *testing.T) {
+// if err := engine.KillEngine(*waitRater); err != nil {
+// t.Error(err)
+// }
+// }