From 5116a23f5b17e0fe8c013c660aed111197f03f30 Mon Sep 17 00:00:00 2001 From: ionutboangiu Date: Tue, 2 Apr 2024 19:13:36 +0300 Subject: [PATCH] Set ChargerProfile through TPs instead of API in tests Only for agents/ers tests. Done to prevent cyclic imports when adding ers APIs to apier package. In case of v2.AttrSetAccount, use a literal struct instead. --- agents/diam_it_test.go | 53 ++++++++++++++------------------------ ers/filefwv_it_test.go | 30 +++++++++++---------- ers/filejson_it_test.go | 42 ++++++++++++++---------------- ers/flatstore_it_test.go | 30 +++++++++++---------- ers/partial_csv_it_test.go | 30 +++++++++++---------- 5 files changed, 88 insertions(+), 97 deletions(-) diff --git a/agents/diam_it_test.go b/agents/diam_it_test.go index b23b650d9..9d53cce6b 100644 --- a/agents/diam_it_test.go +++ b/agents/diam_it_test.go @@ -24,6 +24,7 @@ package agents import ( "flag" "fmt" + "os" "os/exec" "path" "strings" @@ -33,7 +34,6 @@ import ( "github.com/cgrates/birpc" "github.com/cgrates/birpc/context" - v1 "github.com/cgrates/cgrates/apier/v1" "github.com/cgrates/cgrates/config" "github.com/cgrates/cgrates/engine" "github.com/cgrates/cgrates/utils" @@ -1469,39 +1469,27 @@ func testDiamItEmulateTerminate(t *testing.T) { if diamConfigDIR == "dispatchers/diamagent" { t.SkipNow() } - var result string - //add the second charger - chargerProfile := &v1.ChargerWithAPIOpts{ - ChargerProfile: &engine.ChargerProfile{ - Tenant: "cgrates.com", - ID: "CustomCharger", - RunID: "CustomCharger", - AttributeIDs: []string{"*constant:*req.Category:custom_charger"}, - Weight: 20, - }, + //add a default charger + tpDirPath := t.TempDir() + filePath := path.Join(tpDirPath, utils.ChargersCsv) + err := os.WriteFile(filePath, + []byte(`cgrates.com,CustomCharger,,,CustomCharger,*constant:*req.Category:custom_charger,20 +cgrates.com,Default,,,*default,*none,20`), + 0644) + if err != nil { + t.Errorf("could not write to file %s: %v", + filePath, err) + } + var reply string + args := &utils.AttrLoadTpFromFolder{FolderPath: tpDirPath} + err = apierRpc.Call(context.Background(), + utils.APIerSv1LoadTariffPlanFromFolder, + args, &reply) + if err != nil { + t.Errorf("%s call failed for path %s: %v", + utils.APIerSv1LoadTariffPlanFromFolder, tpDirPath, err) } - if err := apierRpc.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil { - t.Error(err) - } else if result != utils.OK { - t.Error("Unexpected reply returned", result) - } - //add the second charger - chargerProfile2 := &v1.ChargerWithAPIOpts{ - ChargerProfile: &engine.ChargerProfile{ - Tenant: "cgrates.com", - ID: "Default", - RunID: "*default", - AttributeIDs: []string{"*none"}, - Weight: 20, - }, - } - - if err := apierRpc.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile2, &result); err != nil { - t.Error(err) - } else if result != utils.OK { - t.Error("Unexpected reply returned", result) - } //set the account attrSetBalance := utils.AttrSetBalance{ Tenant: "cgrates.com", @@ -1513,7 +1501,6 @@ func testDiamItEmulateTerminate(t *testing.T) { utils.Categories: "custom_charger", }, } - var reply string if err := apierRpc.Call(context.Background(), utils.APIerSv2SetBalance, attrSetBalance, &reply); err != nil { t.Error(err) } else if reply != utils.OK { diff --git a/ers/filefwv_it_test.go b/ers/filefwv_it_test.go index 7e33cbe62..eec5787f8 100644 --- a/ers/filefwv_it_test.go +++ b/ers/filefwv_it_test.go @@ -32,7 +32,6 @@ import ( "github.com/cgrates/birpc/context" "github.com/cgrates/birpc" - v1 "github.com/cgrates/cgrates/apier/v1" "github.com/cgrates/cgrates/config" "github.com/cgrates/cgrates/engine" "github.com/cgrates/cgrates/utils" @@ -117,20 +116,23 @@ func testFWVITRpcConn(t *testing.T) { func testFWVITLoadTPFromFolder(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, - }, + tpDirPath := t.TempDir() + filePath := path.Join(tpDirPath, utils.ChargersCsv) + err := os.WriteFile(filePath, + []byte(`cgrates.org,Default,,,*default,*none,20`), + 0644) + if err != nil { + t.Errorf("could not write to file %s: %v", + filePath, err) } - var result string - if err := fwvRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil { - t.Error(err) - } else if result != utils.OK { - t.Error("Unexpected reply returned", result) + var reply string + args := &utils.AttrLoadTpFromFolder{FolderPath: tpDirPath} + err = fwvRPC.Call(context.Background(), + utils.APIerSv1LoadTariffPlanFromFolder, + args, &reply) + if err != nil { + t.Errorf("%s call failed for path %s: %v", + utils.APIerSv1LoadTariffPlanFromFolder, tpDirPath, err) } } diff --git a/ers/filejson_it_test.go b/ers/filejson_it_test.go index 2ba1a2209..f7bb00553 100644 --- a/ers/filejson_it_test.go +++ b/ers/filejson_it_test.go @@ -33,8 +33,6 @@ import ( "github.com/cgrates/birpc/context" "github.com/cgrates/birpc" - v1 "github.com/cgrates/cgrates/apier/v1" - v2 "github.com/cgrates/cgrates/apier/v2" "github.com/cgrates/cgrates/engine" @@ -133,30 +131,30 @@ func testJSONRpcConn(t *testing.T) { } func testJSONAddData(t *testing.T) { - var reply string //add a charger - chargerProfile := &v1.ChargerWithAPIOpts{ - ChargerProfile: &engine.ChargerProfile{ - Tenant: "cgrates.org", - ID: "Default", - ActivationInterval: &utils.ActivationInterval{ - ActivationTime: time.Date(2014, 7, 14, 14, 35, 0, 0, time.UTC), - }, - RunID: utils.MetaDefault, - AttributeIDs: []string{"*none"}, - Weight: 20, - }, - APIOpts: map[string]any{ - utils.CacheOpt: utils.MetaReload, - }, + tpDirPath := t.TempDir() + filePath := path.Join(tpDirPath, utils.ChargersCsv) + err := os.WriteFile(filePath, + []byte("cgrates.org,Default,,2014-07-14T14:35:00Z,*default,*none,20"), + 0644) + if err != nil { + t.Errorf("could not write to file %s: %v", + filePath, err) } - if err := jsonRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &reply); err != nil { - t.Error(err) - } else if reply != utils.OK { - t.Error("Unexpected reply returned", reply) + var reply string + args := &utils.AttrLoadTpFromFolder{FolderPath: tpDirPath} + err = jsonRPC.Call(context.Background(), + utils.APIerSv1LoadTariffPlanFromFolder, + args, &reply) + if err != nil { + t.Errorf("%s call failed for path %s: %v", + utils.APIerSv1LoadTariffPlanFromFolder, tpDirPath, err) } - attrSetAcnt := v2.AttrSetAccount{ + attrSetAcnt := struct { + Tenant string + Account string + }{ Tenant: "cgrates.org", Account: "voiceAccount", } diff --git a/ers/flatstore_it_test.go b/ers/flatstore_it_test.go index 4cd302b66..d6c51aa03 100644 --- a/ers/flatstore_it_test.go +++ b/ers/flatstore_it_test.go @@ -31,7 +31,6 @@ import ( "github.com/cgrates/birpc/context" "github.com/cgrates/birpc" - v1 "github.com/cgrates/cgrates/apier/v1" "github.com/cgrates/cgrates/config" "github.com/cgrates/cgrates/engine" @@ -159,20 +158,23 @@ func testFlatstoreITRpcConn(t *testing.T) { func testFlatstoreITLoadTPFromFolder(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, - }, + tpDirPath := t.TempDir() + filePath := path.Join(tpDirPath, utils.ChargersCsv) + err := os.WriteFile(filePath, + []byte("cgrates.org,Default,,,*default,*none,20"), + 0644) + if err != nil { + t.Errorf("could not write to file %s: %v", + filePath, err) } - var result string - if err := flatstoreRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil { - t.Error(err) - } else if result != utils.OK { - t.Error("Unexpected reply returned", result) + var reply string + args := &utils.AttrLoadTpFromFolder{FolderPath: tpDirPath} + err = flatstoreRPC.Call(context.Background(), + utils.APIerSv1LoadTariffPlanFromFolder, + args, &reply) + if err != nil { + t.Errorf("%s call failed for path %s: %v", + utils.APIerSv1LoadTariffPlanFromFolder, tpDirPath, err) } } diff --git a/ers/partial_csv_it_test.go b/ers/partial_csv_it_test.go index 53037a92b..88dced705 100644 --- a/ers/partial_csv_it_test.go +++ b/ers/partial_csv_it_test.go @@ -31,7 +31,6 @@ import ( "github.com/cgrates/birpc/context" "github.com/cgrates/birpc" - v1 "github.com/cgrates/cgrates/apier/v1" "github.com/cgrates/cgrates/config" "github.com/cgrates/cgrates/engine" @@ -128,20 +127,23 @@ func testPartITRpcConn(t *testing.T) { func testPartITLoadTPFromFolder(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, - }, + tpDirPath := t.TempDir() + filePath := path.Join(tpDirPath, utils.ChargersCsv) + err := os.WriteFile(filePath, + []byte("cgrates.org,Default,,,*default,*none,20"), + 0644) + if err != nil { + t.Errorf("could not write to file %s: %v", + filePath, err) } - var result string - if err := partRPC.Call(context.Background(), utils.APIerSv1SetChargerProfile, chargerProfile, &result); err != nil { - t.Error(err) - } else if result != utils.OK { - t.Error("Unexpected reply returned", result) + var reply string + args := &utils.AttrLoadTpFromFolder{FolderPath: tpDirPath} + err = partRPC.Call(context.Background(), + utils.APIerSv1LoadTariffPlanFromFolder, + args, &reply) + if err != nil { + t.Errorf("%s call failed for path %s: %v", + utils.APIerSv1LoadTariffPlanFromFolder, tpDirPath, err) } }