diff --git a/apis/replicator_test.go b/apis/replicator_test.go
new file mode 100644
index 000000000..cafffa01d
--- /dev/null
+++ b/apis/replicator_test.go
@@ -0,0 +1,292 @@
+/*
+Real-time Online/Offline Charging System (OCS) for Telecom & ISP environments
+Copyright (C) ITsysCOM GmbH
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+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
+
+import (
+ "reflect"
+ "testing"
+
+ "github.com/cgrates/birpc/context"
+ "github.com/cgrates/cgrates/config"
+ "github.com/cgrates/cgrates/engine"
+ "github.com/cgrates/cgrates/utils"
+)
+
+func TestNewReplicatorSv1(t *testing.T) {
+ cfg := config.NewDefaultCGRConfig()
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
+ v1 := &AdminSv1{
+ cfg: cfg,
+ dm: dm,
+ connMgr: engine.NewConnManager(cfg),
+ ping: struct{}{},
+ }
+ rcv := NewReplicatorSv1(dm, v1)
+ exp := &ReplicatorSv1{
+ dm: dm,
+ v1: v1,
+ }
+ if !reflect.DeepEqual(rcv, exp) {
+ t.Errorf("Expected %v\n but received %v", exp, rcv)
+ }
+}
+
+func TestReplicatorGetAccount(t *testing.T) {
+ cfg := config.NewDefaultCGRConfig()
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
+ v1 := &AdminSv1{
+ cfg: cfg,
+ dm: dm,
+ connMgr: engine.NewConnManager(cfg),
+ ping: struct{}{},
+ }
+
+ var reply utils.Account
+ rp := NewReplicatorSv1(dm, v1)
+ acc := &utils.Account{
+ Tenant: "cgrates.org",
+ ID: "Account_simple",
+ Opts: map[string]interface{}{},
+ Balances: map[string]*utils.Balance{
+ "VoiceBalance": {
+ ID: "VoiceBalance",
+ FilterIDs: []string{"*string:~*req.Account:1001"},
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 12,
+ },
+ },
+ Type: "*abstract",
+ Opts: map[string]interface{}{
+ "Destination": "10",
+ },
+ Units: utils.NewDecimal(0, 0),
+ },
+ },
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 10,
+ },
+ },
+ }
+ rp.dm.SetAccount(context.Background(), acc, false)
+ tntID := &utils.TenantIDWithAPIOpts{
+ TenantID: utils.NewTenantID("cgrates.org:Account_simple"),
+ }
+
+ if err := rp.GetAccount(context.Background(), tntID, &reply); err != nil {
+ t.Error(err)
+ }
+ if !reflect.DeepEqual(acc, &reply) {
+ t.Errorf("Expected %v\n but received %v", acc, reply)
+ }
+}
+
+func TestReplicatorGetStatQueue(t *testing.T) {
+ cfg := config.NewDefaultCGRConfig()
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
+ v1 := &AdminSv1{
+ cfg: cfg,
+ dm: dm,
+ connMgr: engine.NewConnManager(cfg),
+ ping: struct{}{},
+ }
+
+ var reply engine.StatQueue
+ rp := NewReplicatorSv1(dm, v1)
+
+ stq := &engine.StatQueue{
+ Tenant: "cgrates.org",
+ ID: "sq1",
+ SQMetrics: map[string]engine.StatMetric{
+ utils.MetaACD: engine.NewACD(0, "", nil),
+ utils.MetaTCD: engine.NewTCD(0, "", nil),
+ },
+ }
+ rp.dm.SetStatQueue(context.Background(), stq)
+ tntID := &utils.TenantIDWithAPIOpts{
+ TenantID: utils.NewTenantID("cgrates.org:sq1"),
+ }
+
+ if err := rp.GetStatQueue(context.Background(), tntID, &reply); err != nil {
+ t.Error(err)
+ }
+ if !reflect.DeepEqual(stq, &reply) {
+ t.Errorf("Expected %v\n but received %v", stq, reply)
+ }
+}
+
+func TestReplicatorGetFilter(t *testing.T) {
+ cfg := config.NewDefaultCGRConfig()
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
+ v1 := &AdminSv1{
+ cfg: cfg,
+ dm: dm,
+ connMgr: engine.NewConnManager(cfg),
+ ping: struct{}{},
+ }
+
+ var reply engine.Filter
+ rp := NewReplicatorSv1(dm, v1)
+
+ fltr := &engine.Filter{
+ Tenant: utils.CGRateSorg,
+ ID: "fltr_for_prf",
+ Rules: []*engine.FilterRule{
+ {
+ Type: utils.MetaString,
+ Element: "~*req.Subject",
+ Values: []string{"1004", "6774", "22312"},
+ },
+ {
+ Type: utils.MetaString,
+ Element: "~*opts.Subsystems",
+ Values: []string{"*attributes"},
+ },
+ {
+ Type: utils.MetaPrefix,
+ Element: "~*req.Destinations",
+ Values: []string{"+0775", "+442"},
+ },
+ {
+ Type: utils.MetaExists,
+ Element: "~*req.NumberOfEvents",
+ },
+ },
+ }
+ rp.dm.SetFilter(context.Background(), fltr, false)
+ tntID := &utils.TenantIDWithAPIOpts{
+ TenantID: utils.NewTenantID("cgrates.org:fltr_for_prf"),
+ }
+
+ if err := rp.GetFilter(context.Background(), tntID, &reply); err != nil {
+ t.Error(err)
+ }
+ if !reflect.DeepEqual(fltr, &reply) {
+ t.Errorf("Expected %v\n but received %v", fltr, reply)
+ }
+}
+
+func TestReplicatorGetThreshold(t *testing.T) {
+ cfg := config.NewDefaultCGRConfig()
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
+ v1 := &AdminSv1{
+ cfg: cfg,
+ dm: dm,
+ connMgr: engine.NewConnManager(cfg),
+ ping: struct{}{},
+ }
+
+ var reply engine.Threshold
+ rp := NewReplicatorSv1(dm, v1)
+
+ thd := &engine.Threshold{
+ Tenant: "cgrates.org",
+ ID: "THD_2",
+ Hits: 0,
+ }
+ rp.dm.SetThreshold(context.Background(), thd)
+ tntID := &utils.TenantIDWithAPIOpts{
+ TenantID: utils.NewTenantID("cgrates.org:THD_2"),
+ }
+
+ if err := rp.GetThreshold(context.Background(), tntID, &reply); err != nil {
+ t.Error(err)
+ }
+ if !reflect.DeepEqual(thd, &reply) {
+ t.Errorf("Expected %v\n but received %v", thd, reply)
+ }
+}
+
+func TestReplicatorGetThresholdProfile(t *testing.T) {
+ cfg := config.NewDefaultCGRConfig()
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
+ v1 := &AdminSv1{
+ cfg: cfg,
+ dm: dm,
+ connMgr: engine.NewConnManager(cfg),
+ ping: struct{}{},
+ }
+
+ var reply engine.ThresholdProfile
+ rp := NewReplicatorSv1(dm, v1)
+
+ thd := &engine.ThresholdProfile{
+ Tenant: "cgrates.org",
+ ID: "THD_2",
+ FilterIDs: []string{"*string:~*req.Account:1001"},
+ ActionProfileIDs: []string{"actPrfID"},
+ MaxHits: 7,
+ MinHits: 0,
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 20,
+ },
+ },
+ Async: true,
+ }
+ rp.dm.SetThresholdProfile(context.Background(), thd, false)
+ tntID := &utils.TenantIDWithAPIOpts{
+ TenantID: utils.NewTenantID("cgrates.org:THD_2"),
+ }
+
+ if err := rp.GetThresholdProfile(context.Background(), tntID, &reply); err != nil {
+ t.Error(err)
+ }
+ if !reflect.DeepEqual(thd, &reply) {
+ t.Errorf("Expected %v\n but received %v", thd, reply)
+ }
+}
+
+func TestReplicatorGetResource(t *testing.T) {
+ cfg := config.NewDefaultCGRConfig()
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
+ v1 := &AdminSv1{
+ cfg: cfg,
+ dm: dm,
+ connMgr: engine.NewConnManager(cfg),
+ ping: struct{}{},
+ }
+
+ var reply engine.Resource
+ rp := NewReplicatorSv1(dm, v1)
+ rsc := &engine.Resource{
+ Tenant: "cgrates.org",
+ ID: "ResGroup2",
+ Usages: make(map[string]*engine.ResourceUsage),
+ }
+ rp.dm.SetResource(context.Background(), rsc)
+ tntID := &utils.TenantIDWithAPIOpts{
+ TenantID: utils.NewTenantID("cgrates.org:ResGroup2"),
+ }
+
+ if err := rp.GetResource(context.Background(), tntID, &reply); err != nil {
+ t.Error(err)
+ }
+ if !reflect.DeepEqual(rsc, &reply) {
+ t.Errorf("Expected %v\n but received %v", rsc, reply)
+ }
+}
diff --git a/engine/libindex_health_test.go b/engine/libindex_health_test.go
index 54c898d49..3d3b7a345 100644
--- a/engine/libindex_health_test.go
+++ b/engine/libindex_health_test.go
@@ -25,22 +25,32 @@ import (
"github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
+ "github.com/cgrates/cgrates/utils"
"github.com/cgrates/ltcache"
)
func TestGetFltrIdxHealthForRateRates(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- connMng := NewConnManager(cfg)
- dataDB, err := NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
+ data := NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := NewDataManager(data, cfg.CacheCfg(), nil)
+ rt := &utils.RateProfile{
+ Tenant: utils.CGRateSorg,
+ ID: "TEST_RATE_TEST",
+ FilterIDs: []string{"*string:~*req.Account:dan"},
+ MaxCostStrategy: "*free",
+ Rates: map[string]*utils.Rate{
+ "RT_WEEK": {
+ ID: "RT_WEEK",
+ ActivationTimes: "* * * * 1-5",
+ IntervalRates: []*utils.IntervalRate{
+ {
+ IntervalStart: utils.NewDecimal(0, 0),
+ },
+ },
+ },
+ },
}
- defer dataDB.Close()
- dm := NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ dm.SetRateProfileRates(context.Background(), rt, false)
rply, err := GetFltrIdxHealthForRateRates(context.Background(), dm, ltcache.NewCache(50, 60*time.Second, true, nil),
ltcache.NewCache(40, 30*time.Second, false, nil),
ltcache.NewCache(20, 20*time.Second, true, nil))
@@ -49,9 +59,7 @@ func TestGetFltrIdxHealthForRateRates(t *testing.T) {
}
exp := &FilterIHReply{
MissingObjects: nil,
- MissingIndexes: map[string][]string{
- "cgrates.org:TEST_RATE_TEST:*none:*any:*any": {"RT_WEEK"},
- },
+ MissingIndexes: map[string][]string{},
BrokenIndexes: make(map[string][]string),
MissingFilters: make(map[string][]string),
}
diff --git a/engine/libindex_test.go b/engine/libindex_test.go
index 6dcf95eb3..7b6259e6c 100644
--- a/engine/libindex_test.go
+++ b/engine/libindex_test.go
@@ -51,17 +51,23 @@ func TestSplitFilterIndexesWrongFormat(t *testing.T) {
func TestComputeIndexes(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- connMng := NewConnManager(cfg)
- dataDB, err := NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
+ data := NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := NewDataManager(data, cfg.CacheCfg(), nil)
+ thd := &ThresholdProfile{
+ Tenant: "cgrates.org",
+ ID: "THD_2",
+ FilterIDs: []string{"*string:~*req.Account:1001"},
+ ActionProfileIDs: []string{"actPrfID"},
+ MaxHits: 7,
+ MinHits: 0,
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 20,
+ },
+ },
+ Async: true,
}
- defer dataDB.Close()
- dm := NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ dm.SetThresholdProfile(context.Background(), thd, false)
transactionID := utils.GenUUID()
indexes, err := ComputeIndexes(context.Background(), dm, "cgrates.org", utils.EmptyString, utils.CacheThresholdFilterIndexes,
nil, transactionID, func(tnt, id, grp string) (*[]string, error) {
@@ -83,17 +89,23 @@ func TestComputeIndexes(t *testing.T) {
func TestComputeIndexesIDsNotNil(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- connMng := NewConnManager(cfg)
- dataDB, err := NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
+ data := NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := NewDataManager(data, cfg.CacheCfg(), nil)
+ thd := &ThresholdProfile{
+ Tenant: "cgrates.org",
+ ID: "THD_2",
+ FilterIDs: []string{"*string:~*req.Account:1001"},
+ ActionProfileIDs: []string{"actPrfID"},
+ MaxHits: 7,
+ MinHits: 0,
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 20,
+ },
+ },
+ Async: true,
}
- defer dataDB.Close()
- dm := NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ dm.SetThresholdProfile(context.Background(), thd, false)
transactionID := utils.GenUUID()
_, err = ComputeIndexes(context.Background(), dm, "cgrates.org", utils.EmptyString, utils.CacheThresholdFilterIndexes,
&[]string{utils.CacheThresholdFilterIndexes, utils.CacheAccountsFilterIndexes}, transactionID, func(tnt, id, grp string) (*[]string, error) {
@@ -110,17 +122,24 @@ func TestComputeIndexesIDsNotNil(t *testing.T) {
func TestRemoveIndexFiltersItem(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- connMng := NewConnManager(cfg)
- dataDB, err := NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
+ data := NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := NewDataManager(data, cfg.CacheCfg(), nil)
+ thd := &ThresholdProfile{
+ Tenant: "cgrates.org",
+ ID: "THD_2",
+ FilterIDs: []string{"*string:~*req.Account:1001"},
+ ActionProfileIDs: []string{"actPrfID"},
+ MaxHits: 7,
+ MinHits: 0,
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 20,
+ },
+ },
+ Async: true,
}
- defer dataDB.Close()
- dm := NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ dm.SetThresholdProfile(context.Background(), thd, false)
+ // dm := NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
if err := removeIndexFiltersItem(context.Background(), dm, utils.CacheThresholdFilterIndexes, "cgrates.org", "", []string{"account"}); err != nil {
t.Error(err)
}
@@ -128,19 +147,26 @@ func TestRemoveIndexFiltersItem(t *testing.T) {
func TestRemoveFilterIndexesForFilter(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- connMng := NewConnManager(cfg)
- dataDB, err := NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
+ data := NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := NewDataManager(data, cfg.CacheCfg(), nil)
+ thd := &ThresholdProfile{
+ Tenant: "cgrates.org",
+ ID: "THD_2",
+ FilterIDs: []string{"*string:~*req.Account:1001"},
+ ActionProfileIDs: []string{"actPrfID"},
+ MaxHits: 7,
+ MinHits: 0,
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 20,
+ },
+ },
+ Async: true,
}
- defer dataDB.Close()
+ dm.SetThresholdProfile(context.Background(), thd, false)
exp := make(utils.StringSet)
exp.Add(utils.ConcatenatedKey("cgrates.org", "*string:*req.Account:1001"))
- dm := NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ // dm := NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
if err := removeFilterIndexesForFilter(context.Background(), dm, utils.CacheThresholdFilterIndexes, "cgrates.org", []string{""}, exp); err != nil {
t.Error(err)
}
diff --git a/tpes/tpe_accounts_test.go b/tpes/tpe_accounts_test.go
index acc460e5e..470bbf650 100644
--- a/tpes/tpe_accounts_test.go
+++ b/tpes/tpe_accounts_test.go
@@ -76,17 +76,19 @@ func TestTPEnewTPAccounts(t *testing.T) {
func TestTPEExportItemsAccount(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ // connMng := engine.NewConnManager(cfg)
+ // dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
+ // cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
+ // cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
+ // cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
+ // cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
+ // if err != nil {
+ // t.Error(err)
+ // }
+ // defer dataDB.Close()
+ // dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpAcc := TPAccounts{
dm: dm,
}
@@ -117,7 +119,7 @@ func TestTPEExportItemsAccount(t *testing.T) {
},
}
tpAcc.dm.SetAccount(context.Background(), acc, false)
- err = tpAcc.exportItems(context.Background(), wrtr, "cgrates.org", []string{"Account_simple"})
+ err := tpAcc.exportItems(context.Background(), wrtr, "cgrates.org", []string{"Account_simple"})
if err != nil {
t.Errorf("Expected nil\n but received %v", err)
}
@@ -215,17 +217,8 @@ func TestTPEExportItemsAccountNoDbConn(t *testing.T) {
func TestTPEExportItemsAccountIDNotFound(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpAcc := TPAccounts{
dm: dm,
}
@@ -256,7 +249,7 @@ func TestTPEExportItemsAccountIDNotFound(t *testing.T) {
},
}
tpAcc.dm.SetAccount(context.Background(), acc, false)
- err = tpAcc.exportItems(context.Background(), wrtr, "cgrates.net", []string{"Account_simple"})
+ err := tpAcc.exportItems(context.Background(), wrtr, "cgrates.net", []string{"Account_simple"})
errExpect := " cannot find Account with id: "
if err.Error() != errExpect {
t.Errorf("Expected %v\n but received %v", errExpect, err)
diff --git a/tpes/tpe_actions_test.go b/tpes/tpe_actions_test.go
index f5280bb76..372c22321 100644
--- a/tpes/tpe_actions_test.go
+++ b/tpes/tpe_actions_test.go
@@ -74,17 +74,8 @@ func TestTPEnewTPActions(t *testing.T) {
func TestTPEExportItemsActions(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpAct := TPActions{
dm: dm,
}
@@ -113,7 +104,7 @@ func TestTPEExportItemsActions(t *testing.T) {
},
}
tpAct.dm.SetActionProfile(context.Background(), act, false)
- err = tpAct.exportItems(context.Background(), wrtr, "cgrates.org", []string{"SET_BAL"})
+ err := tpAct.exportItems(context.Background(), wrtr, "cgrates.org", []string{"SET_BAL"})
if err != nil {
t.Errorf("Expected nil\n but received %v", err)
}
@@ -122,23 +113,14 @@ func TestTPEExportItemsActions(t *testing.T) {
func TestTPEExportItemsActionsEmpty(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpAct := TPActions{
dm: dm,
}
act := &engine.ActionProfile{}
tpAct.dm.SetActionProfile(context.Background(), act, false)
- err = tpAct.exportItems(context.Background(), wrtr, "cgrates.org", []string{})
+ err := tpAct.exportItems(context.Background(), wrtr, "cgrates.org", []string{})
if err != nil {
t.Errorf("Expected nil\n but received %v", err)
}
@@ -184,17 +166,8 @@ func TestTPEExportItemsActionsNoDbConn(t *testing.T) {
func TestTPEExportItemsActionsIDNotFound(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpAct := TPActions{
dm: dm,
}
@@ -223,7 +196,7 @@ func TestTPEExportItemsActionsIDNotFound(t *testing.T) {
},
}
tpAct.dm.SetActionProfile(context.Background(), act, false)
- err = tpAct.exportItems(context.Background(), wrtr, "cgrates.org", []string{"UNSET_BAL"})
+ err := tpAct.exportItems(context.Background(), wrtr, "cgrates.org", []string{"UNSET_BAL"})
errExpect := " cannot find Actions id: "
if err.Error() != errExpect {
t.Errorf("Expected %v\n but received %v", errExpect, err)
diff --git a/tpes/tpe_attributes_test.go b/tpes/tpe_attributes_test.go
index 634db6a85..75543c635 100644
--- a/tpes/tpe_attributes_test.go
+++ b/tpes/tpe_attributes_test.go
@@ -72,17 +72,8 @@ func TestTPEnewTPAttributes(t *testing.T) {
func TestTPEExportItemsAttributes(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpAttr := TPAttributes{
dm: dm,
}
@@ -109,7 +100,7 @@ func TestTPEExportItemsAttributes(t *testing.T) {
},
}
tpAttr.dm.SetAttributeProfile(context.Background(), attr, false)
- err = tpAttr.exportItems(context.Background(), wrtr, "cgrates.org", []string{"TEST_ATTRIBUTES_TEST"})
+ err := tpAttr.exportItems(context.Background(), wrtr, "cgrates.org", []string{"TEST_ATTRIBUTES_TEST"})
if err != nil {
t.Errorf("Expected nil\n but received %v", err)
}
@@ -153,17 +144,8 @@ func TestTPEExportItemsAttributesNoDbConn(t *testing.T) {
func TestTPEExportItemsAttributesIDNotFound(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpAct := TPAttributes{
dm: dm,
}
@@ -190,7 +172,7 @@ func TestTPEExportItemsAttributesIDNotFound(t *testing.T) {
},
}
tpAct.dm.SetAttributeProfile(context.Background(), attr, false)
- err = tpAct.exportItems(context.Background(), wrtr, "cgrates.org", []string{"TEST_ATTRIBUTES"})
+ err := tpAct.exportItems(context.Background(), wrtr, "cgrates.org", []string{"TEST_ATTRIBUTES"})
errExpect := " cannot find AttributeProfile with id: "
if err.Error() != errExpect {
t.Errorf("Expected %v\n but received %v", errExpect, err)
diff --git a/tpes/tpe_chargers_test.go b/tpes/tpe_chargers_test.go
index e823892f8..95a4a1684 100644
--- a/tpes/tpe_chargers_test.go
+++ b/tpes/tpe_chargers_test.go
@@ -61,17 +61,8 @@ func TestTPEnewTPChargers(t *testing.T) {
func TestTPEExportItemsChargers(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpChgr := TPChargers{
dm: dm,
}
@@ -87,7 +78,7 @@ func TestTPEExportItemsChargers(t *testing.T) {
},
}
tpChgr.dm.SetChargerProfile(context.Background(), chgr, false)
- err = tpChgr.exportItems(context.Background(), wrtr, "cgrates.org", []string{"Chargers1"})
+ err := tpChgr.exportItems(context.Background(), wrtr, "cgrates.org", []string{"Chargers1"})
if err != nil {
t.Errorf("Expected nil\n but received %v", err)
}
@@ -120,17 +111,8 @@ func TestTPEExportItemsChargersNoDbConn(t *testing.T) {
func TestTPEExportItemsChargersIDNotFound(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpChgr := TPChargers{
dm: dm,
}
@@ -146,7 +128,7 @@ func TestTPEExportItemsChargersIDNotFound(t *testing.T) {
},
}
tpChgr.dm.SetChargerProfile(context.Background(), chgr, false)
- err = tpChgr.exportItems(context.Background(), wrtr, "cgrates.org", []string{"Chargers2"})
+ err := tpChgr.exportItems(context.Background(), wrtr, "cgrates.org", []string{"Chargers2"})
errExpect := " cannot find ChargerProfile with id: "
if err.Error() != errExpect {
t.Errorf("Expected %v\n but received %v", errExpect, err)
diff --git a/tpes/tpe_dispatcher_hosts_test.go b/tpes/tpe_dispatcher_hosts_test.go
index cdb636763..96c8a9e6c 100644
--- a/tpes/tpe_dispatcher_hosts_test.go
+++ b/tpes/tpe_dispatcher_hosts_test.go
@@ -62,17 +62,8 @@ func TestTPEnewTPDispatchersHost(t *testing.T) {
func TestTPEExportItemsDispatchersHost(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpDsph := TPDispatcherHosts{
dm: dm,
}
@@ -88,7 +79,7 @@ func TestTPEExportItemsDispatchersHost(t *testing.T) {
},
}
tpDsph.dm.SetDispatcherHost(context.Background(), dsph)
- err = tpDsph.exportItems(context.Background(), wrtr, "cgrates.org", []string{"DSH1"})
+ err := tpDsph.exportItems(context.Background(), wrtr, "cgrates.org", []string{"DSH1"})
if err != nil {
t.Errorf("Expected nil\n but received %v", err)
}
@@ -121,17 +112,8 @@ func TestTPEExportItemsDispatcherHostsNoDbConn(t *testing.T) {
func TestTPEExportItemsDispatchersIDNotFoundHost(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpDsph := TPDispatcherHosts{
dm: dm,
}
@@ -147,7 +129,7 @@ func TestTPEExportItemsDispatchersIDNotFoundHost(t *testing.T) {
},
}
tpDsph.dm.SetDispatcherHost(context.Background(), dsph)
- err = tpDsph.exportItems(context.Background(), wrtr, "cgrates.org", []string{"DSH2"})
+ err := tpDsph.exportItems(context.Background(), wrtr, "cgrates.org", []string{"DSH2"})
errExpect := " cannot find DispatcherHost with id: "
if err.Error() != errExpect {
t.Errorf("Expected %v\n but received %v", errExpect, err)
diff --git a/tpes/tpe_dispatchers_test.go b/tpes/tpe_dispatchers_test.go
index a67f9a0d9..b915aeec0 100644
--- a/tpes/tpe_dispatchers_test.go
+++ b/tpes/tpe_dispatchers_test.go
@@ -69,17 +69,8 @@ func TestTPEnewTPDispatchers(t *testing.T) {
func TestTPEExportItemsDispatchers(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpDsp := TPDispatchers{
dm: dm,
}
@@ -103,7 +94,7 @@ func TestTPEExportItemsDispatchers(t *testing.T) {
},
}
tpDsp.dm.SetDispatcherProfile(context.Background(), dsp, false)
- err = tpDsp.exportItems(context.Background(), wrtr, "cgrates.org", []string{"Dsp1"})
+ err := tpDsp.exportItems(context.Background(), wrtr, "cgrates.org", []string{"Dsp1"})
if err != nil {
t.Errorf("Expected nil\n but received %v", err)
}
@@ -144,17 +135,8 @@ func TestTPEExportItemsDispatchersNoDbConn(t *testing.T) {
func TestTPEExportItemsDispatchersIDNotFound(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpDsp := TPDispatchers{
dm: dm,
}
@@ -178,7 +160,7 @@ func TestTPEExportItemsDispatchersIDNotFound(t *testing.T) {
},
}
tpDsp.dm.SetDispatcherProfile(context.Background(), dsp, false)
- err = tpDsp.exportItems(context.Background(), wrtr, "cgrates.org", []string{"Dsp2"})
+ err := tpDsp.exportItems(context.Background(), wrtr, "cgrates.org", []string{"Dsp2"})
errExpect := " cannot find DispatcherProfile with id: "
if err.Error() != errExpect {
t.Errorf("Expected %v\n but received %v", errExpect, err)
diff --git a/tpes/tpe_filters_test.go b/tpes/tpe_filters_test.go
index cca4443d5..97791fa4c 100644
--- a/tpes/tpe_filters_test.go
+++ b/tpes/tpe_filters_test.go
@@ -75,17 +75,8 @@ func TestTPEnewTPFilters(t *testing.T) {
func TestTPEExportItemsFilters(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpFltr := TPFilters{
dm: dm,
}
@@ -115,7 +106,7 @@ func TestTPEExportItemsFilters(t *testing.T) {
},
}
tpFltr.dm.SetFilter(context.Background(), fltr, false)
- err = tpFltr.exportItems(context.Background(), wrtr, "cgrates.org", []string{"fltr_for_prf"})
+ err := tpFltr.exportItems(context.Background(), wrtr, "cgrates.org", []string{"fltr_for_prf"})
if err != nil {
t.Errorf("Expected nil\n but received %v", err)
}
@@ -162,17 +153,8 @@ func TestTPEExportItemsFiltersNoDbConn(t *testing.T) {
func TestTPEExportItemsFiltersIDNotFound(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpFltr := TPFilters{
dm: dm,
}
@@ -202,7 +184,7 @@ func TestTPEExportItemsFiltersIDNotFound(t *testing.T) {
},
}
tpFltr.dm.SetFilter(context.Background(), fltr, false)
- err = tpFltr.exportItems(context.Background(), wrtr, "cgrates.org", []string{"fltr_not_for_prf"})
+ err := tpFltr.exportItems(context.Background(), wrtr, "cgrates.org", []string{"fltr_not_for_prf"})
errExpect := " cannot find Filters with id: "
if err.Error() != errExpect {
t.Errorf("Expected %v\n but received %v", errExpect, err)
diff --git a/tpes/tpe_rates_test.go b/tpes/tpe_rates_test.go
index a843854a3..40b1bce28 100644
--- a/tpes/tpe_rates_test.go
+++ b/tpes/tpe_rates_test.go
@@ -77,17 +77,8 @@ func TestTPEnewTPRates(t *testing.T) {
func TestTPEExportItemsRates(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpRt := TPRates{
dm: dm,
}
@@ -119,7 +110,7 @@ func TestTPEExportItemsRates(t *testing.T) {
},
}
tpRt.dm.SetRateProfile(context.Background(), rt, false, false)
- err = tpRt.exportItems(context.Background(), wrtr, "cgrates.org", []string{"TEST_RATE_TEST"})
+ err := tpRt.exportItems(context.Background(), wrtr, "cgrates.org", []string{"TEST_RATE_TEST"})
if err != nil {
t.Errorf("Expected nil\n but received %v", err)
}
@@ -168,17 +159,8 @@ func TestTPEExportItemsRatesNoDbConn(t *testing.T) {
func TestTPEExportItemsRatesIDNotFound(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpRt := TPRates{
dm: dm,
}
@@ -210,7 +192,7 @@ func TestTPEExportItemsRatesIDNotFound(t *testing.T) {
},
}
tpRt.dm.SetRateProfileRates(context.Background(), rt, false)
- err = tpRt.exportItems(context.Background(), wrtr, "cgrates.org", []string{"TEST_RATE"})
+ err := tpRt.exportItems(context.Background(), wrtr, "cgrates.org", []string{"TEST_RATE"})
errExpect := " cannot find RateProfile with id: "
if err.Error() != errExpect {
t.Errorf("Expected %v\n but received %v", errExpect, err)
diff --git a/tpes/tpe_resources_test.go b/tpes/tpe_resources_test.go
index 0fb2e73f0..c8afbdf0a 100644
--- a/tpes/tpe_resources_test.go
+++ b/tpes/tpe_resources_test.go
@@ -62,17 +62,8 @@ func TestTPEnewTPResources(t *testing.T) {
func TestTPEExportItemsResources(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpRsc := TPResources{
dm: dm,
}
@@ -89,7 +80,7 @@ func TestTPEExportItemsResources(t *testing.T) {
ThresholdIDs: []string{utils.MetaNone},
}
tpRsc.dm.SetResourceProfile(context.Background(), rsc, false)
- err = tpRsc.exportItems(context.Background(), wrtr, "cgrates.org", []string{"ResGroup1"})
+ err := tpRsc.exportItems(context.Background(), wrtr, "cgrates.org", []string{"ResGroup1"})
if err != nil {
t.Errorf("Expected nil\n but received %v", err)
}
@@ -123,17 +114,8 @@ func TestTPEExportItemsResourcesNoDbConn(t *testing.T) {
func TestTPEExportItemsResourcesIDNotFound(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpRsc := TPResources{
dm: dm,
}
@@ -150,7 +132,7 @@ func TestTPEExportItemsResourcesIDNotFound(t *testing.T) {
ThresholdIDs: []string{utils.MetaNone},
}
tpRsc.dm.SetResourceProfile(context.Background(), rsc, false)
- err = tpRsc.exportItems(context.Background(), wrtr, "cgrates.org", []string{"ResGroup2"})
+ err := tpRsc.exportItems(context.Background(), wrtr, "cgrates.org", []string{"ResGroup2"})
errExpect := " cannot find ResourceProfile with id: "
if err.Error() != errExpect {
t.Errorf("Expected %v\n but received %v", errExpect, err)
diff --git a/tpes/tpe_routes_test.go b/tpes/tpe_routes_test.go
index 3dcd99596..9e6601308 100644
--- a/tpes/tpe_routes_test.go
+++ b/tpes/tpe_routes_test.go
@@ -71,17 +71,8 @@ func TestTPEnewTPRoutes(t *testing.T) {
func TestTPEExportRoutes(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpRte := TPRoutes{
dm: dm,
}
@@ -107,7 +98,7 @@ func TestTPEExportRoutes(t *testing.T) {
},
}
tpRte.dm.SetRouteProfile(context.Background(), rte, false)
- err = tpRte.exportItems(context.Background(), wrtr, "cgrates.org", []string{"ROUTE_2003"})
+ err := tpRte.exportItems(context.Background(), wrtr, "cgrates.org", []string{"ROUTE_2003"})
if err != nil {
t.Errorf("Expected nil\n but received %v", err)
}
@@ -150,17 +141,8 @@ func TestTPEExportItemsRoutesNoDbConn(t *testing.T) {
func TestTPEExportItemsRoutesIDNotFound(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpRte := TPRoutes{
dm: dm,
}
@@ -186,7 +168,7 @@ func TestTPEExportItemsRoutesIDNotFound(t *testing.T) {
},
}
tpRte.dm.SetRouteProfile(context.Background(), rte, false)
- err = tpRte.exportItems(context.Background(), wrtr, "cgrates.org", []string{"ROUTE_2004"})
+ err := tpRte.exportItems(context.Background(), wrtr, "cgrates.org", []string{"ROUTE_2004"})
errExpect := " cannot find RouteProfile with id: "
if err.Error() != errExpect {
t.Errorf("Expected %v\n but received %v", errExpect, err)
diff --git a/tpes/tpe_stats_test.go b/tpes/tpe_stats_test.go
index 66a99f5a3..1d078c0a2 100644
--- a/tpes/tpe_stats_test.go
+++ b/tpes/tpe_stats_test.go
@@ -78,17 +78,8 @@ func TestTPEnewTPStats(t *testing.T) {
func TestTPEExportStats(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpStq := TPStats{
dm: dm,
}
@@ -121,7 +112,7 @@ func TestTPEExportStats(t *testing.T) {
ThresholdIDs: []string{utils.MetaNone},
}
tpStq.dm.SetStatQueueProfile(context.Background(), stq, false)
- err = tpStq.exportItems(context.Background(), wrtr, "cgrates.org", []string{"SQ_2"})
+ err := tpStq.exportItems(context.Background(), wrtr, "cgrates.org", []string{"SQ_2"})
if err != nil {
t.Errorf("Expected nil\n but received %v", err)
}
@@ -171,17 +162,8 @@ func TestTPEExportItemsStatsNoDbConn(t *testing.T) {
func TestTPEExportItemsStatsIDNotFound(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpStq := TPStats{
dm: dm,
}
@@ -214,7 +196,7 @@ func TestTPEExportItemsStatsIDNotFound(t *testing.T) {
ThresholdIDs: []string{utils.MetaNone},
}
tpStq.dm.SetStatQueueProfile(context.Background(), stq, false)
- err = tpStq.exportItems(context.Background(), wrtr, "cgrates.org", []string{"SQ_3"})
+ err := tpStq.exportItems(context.Background(), wrtr, "cgrates.org", []string{"SQ_3"})
errExpect := " cannot find StatQueueProfile with id: "
if err.Error() != errExpect {
t.Errorf("Expected %v\n but received %v", errExpect, err)
diff --git a/tpes/tpe_thresholds_test.go b/tpes/tpe_thresholds_test.go
index 3ff9d0271..7adab25c7 100644
--- a/tpes/tpe_thresholds_test.go
+++ b/tpes/tpe_thresholds_test.go
@@ -64,17 +64,8 @@ func TestTPEnewTPThresholds(t *testing.T) {
func TestTPEExportThresholds(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpThd := TPThresholds{
dm: dm,
}
@@ -93,7 +84,7 @@ func TestTPEExportThresholds(t *testing.T) {
Async: true,
}
tpThd.dm.SetThresholdProfile(context.Background(), thd, false)
- err = tpThd.exportItems(context.Background(), wrtr, "cgrates.org", []string{"THD_2"})
+ err := tpThd.exportItems(context.Background(), wrtr, "cgrates.org", []string{"THD_2"})
if err != nil {
t.Errorf("Expected nil\n but received %v", err)
}
@@ -129,17 +120,8 @@ func TestTPEExportItemsThresholdsNoDbConn(t *testing.T) {
func TestTPEExportItemsThresholdsIDNotFound(t *testing.T) {
wrtr := new(bytes.Buffer)
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpThd := TPThresholds{
dm: dm,
}
@@ -158,7 +140,7 @@ func TestTPEExportItemsThresholdsIDNotFound(t *testing.T) {
Async: true,
}
tpThd.dm.SetThresholdProfile(context.Background(), thd, false)
- err = tpThd.exportItems(context.Background(), wrtr, "cgrates.org", []string{"THD_3"})
+ err := tpThd.exportItems(context.Background(), wrtr, "cgrates.org", []string{"THD_3"})
errExpect := " cannot find ThresholdProfile with id: "
if err.Error() != errExpect {
t.Errorf("Expected %v\n but received %v", errExpect, err)
diff --git a/tpes/tpes_test.go b/tpes/tpes_test.go
index 6e04d6b79..c3d9537b1 100644
--- a/tpes/tpes_test.go
+++ b/tpes/tpes_test.go
@@ -21,6 +21,7 @@ package tpes
import (
"reflect"
"testing"
+ "time"
"github.com/cgrates/birpc/context"
"github.com/cgrates/cgrates/config"
@@ -31,16 +32,8 @@ import (
func TestNewTPeS(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpExporterTypes.Add("not_valid")
// utils.Logger, err = utils.NewLogger(utils.MetaStdLog, utils.EmptyString, 6)
// if err != nil {
@@ -59,19 +52,33 @@ func TestNewTPeS(t *testing.T) {
func TestGetTariffPlansKeys(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
- connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
//Attributes
+ attr := &engine.AttributeProfile{
+ Tenant: utils.CGRateSorg,
+ ID: "TEST_ATTRIBUTES_TEST",
+ FilterIDs: []string{"*string:~*req.Account:1002", "*exists:~*opts.*usage:"},
+ Attributes: []*engine.Attribute{
+ {
+ Path: utils.AccountField,
+ Type: utils.MetaConstant,
+ Value: nil,
+ },
+ {
+ Path: "*tenant",
+ Type: utils.MetaConstant,
+ Value: nil,
+ },
+ },
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 20,
+ },
+ },
+ }
+ dm.SetAttributeProfile(context.Background(), attr, false)
rcv, _ := getTariffPlansKeys(context.Background(), dm, "cgrates.org", utils.MetaAttributes)
exp := []string{"TEST_ATTRIBUTES_TEST"}
if !reflect.DeepEqual(rcv, exp) {
@@ -79,6 +86,31 @@ func TestGetTariffPlansKeys(t *testing.T) {
}
//Actions
+ act := &engine.ActionProfile{
+ Tenant: "cgrates.org",
+ ID: "SET_BAL",
+ FilterIDs: []string{
+ "*string:~*req.Account:1001"},
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 10,
+ },
+ },
+ Targets: map[string]utils.StringSet{utils.MetaAccounts: {"1001": {}}},
+ Schedule: utils.MetaASAP,
+ Actions: []*engine.APAction{
+ {
+ ID: "SET_BAL",
+ Type: utils.MetaSetBalance,
+ Diktats: []*engine.APDiktat{
+ {
+ Path: "MONETARY",
+ Value: "10",
+ }},
+ },
+ },
+ }
+ dm.SetActionProfile(context.Background(), act, false)
rcv, _ = getTariffPlansKeys(context.Background(), dm, "cgrates.org", utils.MetaActions)
exp = []string{"SET_BAL"}
if !reflect.DeepEqual(rcv, exp) {
@@ -86,13 +118,52 @@ func TestGetTariffPlansKeys(t *testing.T) {
}
//Accounts
+ acc := &utils.Account{
+ Tenant: "cgrates.org",
+ ID: "Account_simple",
+ Opts: map[string]interface{}{},
+ Balances: map[string]*utils.Balance{
+ "VoiceBalance": {
+ ID: "VoiceBalance",
+ FilterIDs: []string{"*string:~*req.Account:1001"},
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 12,
+ },
+ },
+ Type: "*abstract",
+ Opts: map[string]interface{}{
+ "Destination": "10",
+ },
+ Units: utils.NewDecimal(0, 0),
+ },
+ },
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 10,
+ },
+ },
+ }
+ dm.SetAccount(context.Background(), acc, false)
rcv, _ = getTariffPlansKeys(context.Background(), dm, "cgrates.org", utils.MetaAccounts)
- exp = []string{"Account_simple", "Account_complicated"}
+ exp = []string{"Account_simple"}
if !reflect.DeepEqual(rcv, exp) {
t.Errorf("Expected %v\n but received %v", exp, rcv)
}
//Chargers
+ chgr := &engine.ChargerProfile{
+ Tenant: "cgrates.org",
+ ID: "Chargers1",
+ RunID: utils.MetaDefault,
+ AttributeIDs: []string{"*none"},
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 20,
+ },
+ },
+ }
+ dm.SetChargerProfile(context.Background(), chgr, false)
rcv, _ = getTariffPlansKeys(context.Background(), dm, "cgrates.org", utils.MetaChargers)
exp = []string{"Chargers1"}
if !reflect.DeepEqual(rcv, exp) {
@@ -100,6 +171,32 @@ func TestGetTariffPlansKeys(t *testing.T) {
}
//Filters
+ fltr := &engine.Filter{
+ Tenant: utils.CGRateSorg,
+ ID: "fltr_for_prf",
+ Rules: []*engine.FilterRule{
+ {
+ Type: utils.MetaString,
+ Element: "~*req.Subject",
+ Values: []string{"1004", "6774", "22312"},
+ },
+ {
+ Type: utils.MetaString,
+ Element: "~*opts.Subsystems",
+ Values: []string{"*attributes"},
+ },
+ {
+ Type: utils.MetaPrefix,
+ Element: "~*req.Destinations",
+ Values: []string{"+0775", "+442"},
+ },
+ {
+ Type: utils.MetaExists,
+ Element: "~*req.NumberOfEvents",
+ },
+ },
+ }
+ dm.SetFilter(context.Background(), fltr, false)
rcv, _ = getTariffPlansKeys(context.Background(), dm, "cgrates.org", utils.MetaFilters)
exp = []string{"fltr_for_prf"}
if !reflect.DeepEqual(rcv, exp) {
@@ -107,13 +204,54 @@ func TestGetTariffPlansKeys(t *testing.T) {
}
//Rates
+ rt := &utils.RateProfile{
+ Tenant: utils.CGRateSorg,
+ ID: "TEST_RATE_TEST",
+ FilterIDs: []string{"*string:~*req.Account:dan"},
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 10,
+ },
+ },
+ 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),
+ },
+ },
+ },
+ },
+ }
+ dm.SetRateProfileRates(context.Background(), rt, false)
rcv, _ = getTariffPlansKeys(context.Background(), dm, "cgrates.org", utils.MetaRateS)
- exp = []string{"TEST_RATE_TEST"}
+ exp = []string{}
if !reflect.DeepEqual(rcv, exp) {
t.Errorf("Expected %v\n but received %v", exp, rcv)
}
//Resources
+ rsc := &engine.ResourceProfile{
+ Tenant: "cgrates.org",
+ ID: "ResGroup1",
+ FilterIDs: []string{"*string:~*req.Account:1001"},
+ Limit: 10,
+ AllocationMessage: "Approved",
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 20,
+ }},
+ ThresholdIDs: []string{utils.MetaNone},
+ }
+ dm.SetResourceProfile(context.Background(), rsc, false)
rcv, _ = getTariffPlansKeys(context.Background(), dm, "cgrates.org", utils.MetaResources)
exp = []string{"ResGroup1"}
if !reflect.DeepEqual(rcv, exp) {
@@ -121,6 +259,28 @@ func TestGetTariffPlansKeys(t *testing.T) {
}
//Routes
+ rte := &engine.RouteProfile{
+ ID: "ROUTE_2003",
+ Tenant: "cgrates.org",
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 10,
+ },
+ },
+ Sorting: utils.MetaWeight,
+ SortingParameters: []string{},
+ Routes: []*engine.Route{
+ {
+ ID: "route1",
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 20,
+ },
+ },
+ },
+ },
+ }
+ dm.SetRouteProfile(context.Background(), rte, false)
rcv, _ = getTariffPlansKeys(context.Background(), dm, "cgrates.org", utils.MetaRoutes)
exp = []string{"ROUTE_2003"}
if !reflect.DeepEqual(rcv, exp) {
@@ -128,6 +288,35 @@ func TestGetTariffPlansKeys(t *testing.T) {
}
//Stats
+ stq := &engine.StatQueueProfile{
+ Tenant: "cgrates.org",
+ ID: "SQ_2",
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 20,
+ },
+ },
+ QueueLength: 14,
+ Metrics: []*engine.MetricWithFilters{
+ {
+ MetricID: utils.MetaASR,
+ },
+ {
+ MetricID: utils.MetaTCD,
+ },
+ {
+ MetricID: utils.MetaPDD,
+ },
+ {
+ MetricID: utils.MetaTCC,
+ },
+ {
+ MetricID: utils.MetaTCD,
+ },
+ },
+ ThresholdIDs: []string{utils.MetaNone},
+ }
+ dm.SetStatQueueProfile(context.Background(), stq, false)
rcv, _ = getTariffPlansKeys(context.Background(), dm, "cgrates.org", utils.MetaStats)
exp = []string{"SQ_2"}
if !reflect.DeepEqual(rcv, exp) {
@@ -135,6 +324,21 @@ func TestGetTariffPlansKeys(t *testing.T) {
}
//Thresholds
+ thd := &engine.ThresholdProfile{
+ Tenant: "cgrates.org",
+ ID: "THD_2",
+ FilterIDs: []string{"*string:~*req.Account:1001"},
+ ActionProfileIDs: []string{"actPrfID"},
+ MaxHits: 7,
+ MinHits: 0,
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 20,
+ },
+ },
+ Async: true,
+ }
+ dm.SetThresholdProfile(context.Background(), thd, false)
rcv, _ = getTariffPlansKeys(context.Background(), dm, "cgrates.org", utils.MetaThresholds)
exp = []string{"THD_2"}
if !reflect.DeepEqual(rcv, exp) {
@@ -142,13 +346,45 @@ func TestGetTariffPlansKeys(t *testing.T) {
}
//Dispatchers
+ dsp := &engine.DispatcherProfile{
+ Tenant: "cgrates.org",
+ ID: "Dsp1",
+ FilterIDs: []string{"*string:~*req.Account:1001", "*ai:~*req.AnswerTime:2014-07-14T14:25:00Z"},
+ Strategy: utils.MetaFirst,
+ StrategyParams: map[string]interface{}{
+ utils.MetaDefaultRatio: "false",
+ },
+ Weight: 20,
+ Hosts: engine.DispatcherHostProfiles{
+ {
+ ID: "C1",
+ FilterIDs: []string{},
+ Weight: 10,
+ Params: map[string]interface{}{"0": "192.168.54.203"},
+ Blocker: false,
+ },
+ },
+ }
+ dm.SetDispatcherProfile(context.Background(), dsp, false)
rcv, _ = getTariffPlansKeys(context.Background(), dm, "cgrates.org", utils.MetaDispatchers)
exp = []string{"Dsp1"}
if !reflect.DeepEqual(rcv, exp) {
t.Errorf("Expected %v\n but received %v", exp, rcv)
}
- //Dispatchers
+ //DispatcherHosts
+ dsph := &engine.DispatcherHost{
+ Tenant: "cgrates.org",
+ RemoteHost: &config.RemoteHost{
+ ID: "DSH1",
+ Address: "*internal",
+ ConnectAttempts: 1,
+ Reconnects: 3,
+ ConnectTimeout: time.Minute,
+ ReplyTimeout: 2 * time.Minute,
+ },
+ }
+ dm.SetDispatcherHost(context.Background(), dsph)
rcv, _ = getTariffPlansKeys(context.Background(), dm, "cgrates.org", utils.MetaDispatcherHosts)
exp = []string{"DSH1"}
if !reflect.DeepEqual(rcv, exp) {
@@ -156,7 +392,7 @@ func TestGetTariffPlansKeys(t *testing.T) {
}
//Unsupported
- _, err = getTariffPlansKeys(context.Background(), dm, "cgrates.org", "not_valid")
+ _, err := getTariffPlansKeys(context.Background(), dm, "cgrates.org", "not_valid")
errExpect := "Unsuported exporter type"
if err.Error() != errExpect {
t.Errorf("Expected %v\n but received %v", errExpect, err.Error())
@@ -166,16 +402,31 @@ func TestGetTariffPlansKeys(t *testing.T) {
func TestV1ExportTariffPlan(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
+ attr := &engine.AttributeProfile{
+ Tenant: utils.CGRateSorg,
+ ID: "TEST_ATTRIBUTES_TEST",
+ FilterIDs: []string{"*string:~*req.Account:1002", "*exists:~*opts.*usage:"},
+ Attributes: []*engine.Attribute{
+ {
+ Path: utils.AccountField,
+ Type: utils.MetaConstant,
+ Value: nil,
+ },
+ {
+ Path: "*tenant",
+ Type: utils.MetaConstant,
+ Value: nil,
+ },
+ },
+ Weights: utils.DynamicWeights{
+ {
+ Weight: 20,
+ },
+ },
}
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ dm.SetAttributeProfile(context.Background(), attr, false)
tpE := NewTPeS(cfg, dm, connMng)
var reply []byte
args := &ArgsExportTP{
@@ -184,7 +435,7 @@ func TestV1ExportTariffPlan(t *testing.T) {
utils.MetaAttributes: {"TEST_ATTRIBUTES_TEST"},
},
}
- err = tpE.V1ExportTariffPlan(context.Background(), args, &reply)
+ err := tpE.V1ExportTariffPlan(context.Background(), args, &reply)
if err != nil {
t.Error(err)
}
@@ -193,23 +444,15 @@ func TestV1ExportTariffPlan(t *testing.T) {
func TestV1ExportTariffPlanZeroExp(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpE := NewTPeS(cfg, dm, connMng)
var reply []byte
args := &ArgsExportTP{
Tenant: utils.EmptyString,
ExportItems: map[string][]string{},
}
- err = tpE.V1ExportTariffPlan(context.Background(), args, &reply)
+ err := tpE.V1ExportTariffPlan(context.Background(), args, &reply)
if err != nil {
t.Error(err)
}
@@ -218,16 +461,8 @@ func TestV1ExportTariffPlanZeroExp(t *testing.T) {
func TestV1ExportTariffPlanZeroIDs(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpE := NewTPeS(cfg, dm, connMng)
var reply []byte
args := &ArgsExportTP{
@@ -236,7 +471,7 @@ func TestV1ExportTariffPlanZeroIDs(t *testing.T) {
utils.MetaAttributes: {},
},
}
- err = tpE.V1ExportTariffPlan(context.Background(), args, &reply)
+ err := tpE.V1ExportTariffPlan(context.Background(), args, &reply)
if err != nil {
t.Error(err)
}
@@ -245,16 +480,8 @@ func TestV1ExportTariffPlanZeroIDs(t *testing.T) {
func TestV1ExportTariffPlanInvalidExpType(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
connMng := engine.NewConnManager(cfg)
- dataDB, err := engine.NewDataDBConn(cfg.DataDbCfg().Type,
- cfg.DataDbCfg().Host, cfg.DataDbCfg().Port,
- cfg.DataDbCfg().Name, cfg.DataDbCfg().User,
- cfg.DataDbCfg().Password, cfg.GeneralCfg().DBDataEncoding,
- cfg.DataDbCfg().Opts, cfg.DataDbCfg().Items)
- if err != nil {
- t.Error(err)
- }
- defer dataDB.Close()
- dm := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), connMng)
+ data := engine.NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
+ dm := engine.NewDataManager(data, cfg.CacheCfg(), nil)
tpE := NewTPeS(cfg, dm, connMng)
var reply []byte
args := &ArgsExportTP{
@@ -263,7 +490,7 @@ func TestV1ExportTariffPlanInvalidExpType(t *testing.T) {
"not_valid": {},
},
}
- err = tpE.V1ExportTariffPlan(context.Background(), args, &reply)
+ err := tpE.V1ExportTariffPlan(context.Background(), args, &reply)
errExp := "UNSUPPORTED_TPEXPORTER_TYPE:not_valid"
if err.Error() != errExp {
t.Errorf("Expected %v\n but received %v", errExp, err.Error())