From 8020fa16144b674b89417ac5fcdc7887770b6e8d Mon Sep 17 00:00:00 2001 From: adragusin Date: Tue, 19 Nov 2019 17:45:25 +0200 Subject: [PATCH] Replaced MapStorage with InternalDB in unit tests --- agents/agentreq_test.go | 42 ++++++++-------- agents/diamagent_test.go | 2 +- apier/v1/accounts_test.go | 4 +- cdrc/csv_test.go | 4 +- cdrc/xml_test.go | 4 +- engine/account.go | 4 +- engine/account_test.go | 47 ++++++++++++++++++ engine/calldesc.go | 2 +- engine/cdr_test.go | 2 +- engine/datamanager.go | 2 +- engine/loader_csv_test.go | 2 +- engine/sharedgroup.go | 28 +++++++++++ engine/sharedgroup_test.go | 81 +++++++++++++++++++++++++++++++ engine/storage_internal_datadb.go | 4 +- general_tests/acntacts_test.go | 3 +- general_tests/auth_test.go | 3 +- general_tests/costs1_test.go | 3 +- general_tests/datachrg1_test.go | 3 +- general_tests/ddazmbl1_test.go | 2 +- general_tests/ddazmbl2_test.go | 2 +- general_tests/ddazmbl3_test.go | 2 +- general_tests/smschrg1_test.go | 2 +- loaders/loader_test.go | 22 ++++----- services/rals.go | 2 +- sessions/sessions_test.go | 2 +- 25 files changed, 214 insertions(+), 60 deletions(-) diff --git a/agents/agentreq_test.go b/agents/agentreq_test.go index 1bd400487..145bcfa0d 100644 --- a/agents/agentreq_test.go +++ b/agents/agentreq_test.go @@ -37,7 +37,7 @@ import ( ) func TestAgReqAsNavigableMap(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -133,7 +133,7 @@ func TestAgReqAsNavigableMap(t *testing.T) { } func TestAgReqMaxCost(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -177,7 +177,7 @@ func TestAgReqParseFieldDiameter(t *testing.T) { }}) //create diameterDataProvider dP := newDADataProvider(nil, m) - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -227,7 +227,7 @@ func TestAgReqParseFieldRadius(t *testing.T) { } //create radiusDataProvider dP := newRADataProvider(pkt) - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -267,7 +267,7 @@ Host: api.cgrates.org } //create radiusDataProvider dP, _ := newHTTPUrlDP(req) - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -338,7 +338,7 @@ func TestAgReqParseFieldHttpXml(t *testing.T) { } //create radiusDataProvider dP, _ := newHTTPXmlDP(req) - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -367,7 +367,7 @@ func TestAgReqParseFieldHttpXml(t *testing.T) { } func TestAgReqEmptyFilter(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -410,7 +410,7 @@ func TestAgReqEmptyFilter(t *testing.T) { } func TestAgReqMetaExponent(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -436,7 +436,7 @@ func TestAgReqMetaExponent(t *testing.T) { } func TestAgReqCGRActiveRequest(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -479,7 +479,7 @@ func TestAgReqCGRActiveRequest(t *testing.T) { } func TestAgReqFieldAsNone(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -516,7 +516,7 @@ func TestAgReqFieldAsNone(t *testing.T) { } func TestAgReqFieldAsNone2(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -556,7 +556,7 @@ func TestAgReqFieldAsNone2(t *testing.T) { } func TestAgReqAsNavigableMap2(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -613,7 +613,7 @@ func TestAgReqAsNavigableMap2(t *testing.T) { } func TestAgReqFieldAsInterface(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -660,7 +660,7 @@ func TestAgReqFieldAsInterface(t *testing.T) { } func TestAgReqNewARWithCGRRplyAndRply(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -710,7 +710,7 @@ func TestAgReqNewARWithCGRRplyAndRply(t *testing.T) { } func TestAgReqSetCGRReplyWithError(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -751,7 +751,7 @@ func (ev myEv) AsNavigableMap(tpl []*config.FCTemplate) (*config.NavigableMap, e } func TestAgReqSetCGRReplyWithoutError(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -813,7 +813,7 @@ func TestAgReqParseFieldMetaCCUsage(t *testing.T) { }}) //create diameterDataProvider dP := newDADataProvider(nil, m) - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -891,7 +891,7 @@ func TestAgReqParseFieldMetaUsageDifference(t *testing.T) { }}) //create diameterDataProvider dP := newDADataProvider(nil, m) - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -957,7 +957,7 @@ func TestAgReqParseFieldMetaSum(t *testing.T) { }}) //create diameterDataProvider dP := newDADataProvider(nil, m) - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -1001,7 +1001,7 @@ func TestAgReqParseFieldMetaDifference(t *testing.T) { }}) //create diameterDataProvider dP := newDADataProvider(nil, m) - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) @@ -1045,7 +1045,7 @@ func TestAgReqParseFieldMetaValueExponent(t *testing.T) { }}) //create diameterDataProvider dP := newDADataProvider(nil, m) - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) cfg, _ := config.NewDefaultCGRConfig() filterS := engine.NewFilterS(cfg, nil, nil, nil, dm) diff --git a/agents/diamagent_test.go b/agents/diamagent_test.go index d84f06ecf..528767f29 100644 --- a/agents/diamagent_test.go +++ b/agents/diamagent_test.go @@ -49,7 +49,7 @@ func (s *testMockSessionConn) Call(method string, arg interface{}, rply interfac } func TestProcessRequest(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) filters := engine.NewFilterS(config.CgrConfig(), nil, nil, nil, dm) // no need for filterS but stiil try to configure the dm :D diff --git a/apier/v1/accounts_test.go b/apier/v1/accounts_test.go index 4425e52ac..2f0012709 100644 --- a/apier/v1/accounts_test.go +++ b/apier/v1/accounts_test.go @@ -28,11 +28,11 @@ import ( var ( apierAcnts *ApierV1 - apierAcntsAcntStorage *engine.MapStorage + apierAcntsAcntStorage *engine.InternalDB ) func init() { - apierAcntsAcntStorage, _ = engine.NewMapStorage() + apierAcntsAcntStorage = engine.NewInternalDB(nil, nil) cfg, _ := config.NewDefaultCGRConfig() apierAcnts = &ApierV1{DataManager: engine.NewDataManager(apierAcntsAcntStorage, config.CgrConfig().CacheCfg(), nil, nil), Config: cfg} } diff --git a/cdrc/csv_test.go b/cdrc/csv_test.go index 9a34a93da..3a87cff9e 100644 --- a/cdrc/csv_test.go +++ b/cdrc/csv_test.go @@ -74,7 +74,7 @@ func TestCsvRecordToCDR(t *testing.T) { func TestCsvDataMultiplyFactor(t *testing.T) { cgrConfig, _ := config.NewDefaultCGRConfig() cdrcConfig := cgrConfig.CdrcProfiles["/var/spool/cgrates/cdrc/in"][0] - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, cgrConfig.CacheCfg(), nil, nil) filterS := engine.NewFilterS(cgrConfig, nil, nil, nil, dm) cdrcConfig.CdrSourceId = "TEST_CDRC" @@ -159,7 +159,7 @@ func TestCsvPairToRecord(t *testing.T) { func TestCsvSecondUsage(t *testing.T) { cgrConfig, _ := config.NewDefaultCGRConfig() cdrcConfig := cgrConfig.CdrcProfiles["/var/spool/cgrates/cdrc/in"][0] - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) dm := engine.NewDataManager(data, cgrConfig.CacheCfg(), nil, nil) filterS := engine.NewFilterS(cgrConfig, nil, nil, nil, dm) cdrcConfig.CdrSourceId = "TEST_CDRC" diff --git a/cdrc/xml_test.go b/cdrc/xml_test.go index 7d3dd78b1..6b8ad4ee1 100644 --- a/cdrc/xml_test.go +++ b/cdrc/xml_test.go @@ -314,7 +314,7 @@ func TestXMLRPProcessWithNewFilters(t *testing.T) { }, }, } - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) defaultCfg, err := config.NewDefaultCGRConfig() if err != nil { t.Errorf("Error: %+v", err) @@ -581,7 +581,7 @@ func TestXMLRPNestingSeparator(t *testing.T) { }, }, } - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) defaultCfg, err := config.NewDefaultCGRConfig() if err != nil { t.Errorf("Error: %+v", err) diff --git a/engine/account.go b/engine/account.go index f525fcbc6..85b11d593 100644 --- a/engine/account.go +++ b/engine/account.go @@ -835,12 +835,14 @@ func (account *Account) GetUniqueSharedGroupMembers(cd *CallDescriptor) (utils.S func (acc *Account) Clone() *Account { newAcc := &Account{ ID: acc.ID, - BalanceMap: make(map[string]Balances, len(acc.BalanceMap)), UnitCounters: nil, // not used when cloned (dryRun) ActionTriggers: nil, // not used when cloned (dryRun) AllowNegative: acc.AllowNegative, Disabled: acc.Disabled, } + if acc.BalanceMap != nil { + newAcc.BalanceMap = make(map[string]Balances, len(acc.BalanceMap)) + } for key, balanceChain := range acc.BalanceMap { newAcc.BalanceMap[key] = balanceChain.Clone() } diff --git a/engine/account_test.go b/engine/account_test.go index 71b888590..18ee3f000 100644 --- a/engine/account_test.go +++ b/engine/account_test.go @@ -2327,6 +2327,53 @@ func TestAccountAsNavigableMap(t *testing.T) { } } +func TestAccountClone(t *testing.T) { + //empty check + // account := &Account{} + // eOut := &Account{} + // if rcv := account.Clone(); reflect.DeepEqual(eOut, rcv) { + // t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(eOut), utils.ToJSON(rcv)) + // } + //normal check + account := &Account{ + ID: "testID", + BalanceMap: map[string]Balances{ + utils.MONETARY: {&Balance{Value: 10, Weight: 10}}}, + ActionTriggers: []*ActionTrigger{ + &ActionTrigger{ + ID: "ActionTriggerID1", + }, + &ActionTrigger{ + ID: "ActionTriggerID2", + }, + }, + AllowNegative: true, + Disabled: true, + executingTriggers: true, + } + eOut := &Account{ + ID: "testID", + BalanceMap: map[string]Balances{ + utils.MONETARY: {&Balance{Value: 10, Weight: 10}}}, + ActionTriggers: []*ActionTrigger{ + &ActionTrigger{ + ID: "ActionTriggerID1", + }, + &ActionTrigger{ + ID: "ActionTriggerID2", + }, + }, + AllowNegative: true, + Disabled: true, + executingTriggers: true, + } + + if rcv := account.Clone(); reflect.DeepEqual(eOut, rcv) { + t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(eOut), utils.ToJSON(rcv)) + } + +} + /*********************************** Benchmarks *******************************/ func BenchmarkGetSecondForPrefix(b *testing.B) { diff --git a/engine/calldesc.go b/engine/calldesc.go index c988238d8..b7ac9058c 100644 --- a/engine/calldesc.go +++ b/engine/calldesc.go @@ -47,7 +47,7 @@ func init() { cgrCfg, _ = config.NewDefaultCGRConfig() config.SetCgrConfig(cgrCfg) } - data, _ = NewMapStorage() + data = NewInternalDB(nil, nil) } dm = NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) } diff --git a/engine/cdr_test.go b/engine/cdr_test.go index 6c227ccce..8b685e78b 100644 --- a/engine/cdr_test.go +++ b/engine/cdr_test.go @@ -662,7 +662,7 @@ func TestCDRAsExportRecord(t *testing.T) { } else if expRecord[0] != "1" { t.Errorf("Expecting:\n%s\nReceived:\n%s", "1", expRecord[0]) } - data, _ := NewMapStorage() + data := NewInternalDB(nil, nil) dmForCDR := NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) defaultCfg, err := config.NewDefaultCGRConfig() if err != nil { diff --git a/engine/datamanager.go b/engine/datamanager.go index 713e5c38d..2233eb7f1 100644 --- a/engine/datamanager.go +++ b/engine/datamanager.go @@ -118,7 +118,7 @@ func (dm *DataManager) DataDB() DataDB { func (dm *DataManager) LoadDataDBCache(dstIDs, rvDstIDs, rplIDs, rpfIDs, actIDs, aplIDs, aaPlIDs, atrgIDs, sgIDs, rpIDs, resIDs, stqIDs, stqpIDs, thIDs, thpIDs, fltrIDs, splPrflIDs, alsPrfIDs, cppIDs, dppIDs, dphIDs []string) (err error) { - if dm.DataDB().GetStorageType() == utils.MAPSTOR { + if dm.DataDB().GetStorageType() == utils.INTERNAL { if dm.cacheCfg == nil { return } diff --git a/engine/loader_csv_test.go b/engine/loader_csv_test.go index ff51549bd..c0f8b971c 100644 --- a/engine/loader_csv_test.go +++ b/engine/loader_csv_test.go @@ -795,7 +795,7 @@ func TestLoadSharedGroups(t *testing.T) { }, } if !reflect.DeepEqual(sg2, expected) { - t.Error("Error loading shared group: ", sg2.AccountParameters) + t.Errorf("Expected: %s, received %s ", utils.ToJSON(expected), utils.ToJSON(sg2)) } /*sg, _ := dataStorage.GetSharedGroup("SG1", false) if len(sg.Members) != 0 { diff --git a/engine/sharedgroup.go b/engine/sharedgroup.go index c9b905509..1cbdb74fb 100644 --- a/engine/sharedgroup.go +++ b/engine/sharedgroup.go @@ -49,6 +49,34 @@ type SharingParameters struct { RatingSubject string } +// Clone clones *SharedGroup +func (sg *SharedGroup) Clone() (sharedGroup *SharedGroup) { + if sg == nil { + return + } + sharedGroup = &SharedGroup{ + Id: sg.Id, + } + if sg.AccountParameters != nil { + sharedGroup.AccountParameters = make(map[string]*SharingParameters, len(sg.AccountParameters)) + } + if sg.MemberIds != nil { + sharedGroup.MemberIds = sg.MemberIds.Clone() + } + for id, _ := range sg.AccountParameters { + sharedGroup.AccountParameters[id] = sg.AccountParameters[id].Clone() + } + return +} + +//Clone clones *SharingParameters +func (sp *SharingParameters) Clone() *SharingParameters { + return &SharingParameters{ + Strategy: sp.Strategy, + RatingSubject: sp.RatingSubject, + } +} + func (sg *SharedGroup) SortBalancesByStrategy(myBalance *Balance, bc Balances) Balances { sharingParameters := sg.AccountParameters[utils.ANY] if sp, hasParamsForAccount := sg.AccountParameters[myBalance.account.ID]; hasParamsForAccount { diff --git a/engine/sharedgroup_test.go b/engine/sharedgroup_test.go index f20d5a64d..1a7529831 100644 --- a/engine/sharedgroup_test.go +++ b/engine/sharedgroup_test.go @@ -24,6 +24,87 @@ import ( "github.com/cgrates/cgrates/utils" ) +func TestSharedGroupClone(t *testing.T) { + //empty check + sharedGroup := &SharedGroup{} + eOut := &SharedGroup{} + if rcv := sharedGroup.Clone(); !reflect.DeepEqual(eOut, rcv) { + t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(eOut), utils.ToJSON(rcv)) + } + //normal check + sharedGroup = &SharedGroup{ + Id: "testID", + AccountParameters: map[string]*SharingParameters{ + "string1": &SharingParameters{ + Strategy: "strategyTEST1", + RatingSubject: "RatingSubjectTEST1", + }, + "string2": &SharingParameters{ + Strategy: "strategyTEST2", + RatingSubject: "RatingSubjectTEST2", + }, + }, + MemberIds: utils.StringMap{ + "string1": true, + "string2": false, + }, + } + eOut = &SharedGroup{ + Id: "testID", + AccountParameters: map[string]*SharingParameters{ + "string1": &SharingParameters{ + Strategy: "strategyTEST1", + RatingSubject: "RatingSubjectTEST1", + }, + "string2": &SharingParameters{ + Strategy: "strategyTEST2", + RatingSubject: "RatingSubjectTEST2", + }, + }, + MemberIds: utils.StringMap{ + "string1": true, + "string2": false, + }, + } + rcv := sharedGroup.Clone() + if !reflect.DeepEqual(eOut, rcv) { + t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(eOut), utils.ToJSON(rcv)) + } + //double check + rcv.AccountParameters["string1"].Strategy = "updated" + if sharedGroup.AccountParameters["string1"].Strategy == "updated" { + t.Errorf("Original SharedGroup was modified") + } + +} + +func TestSharingParametersClone(t *testing.T) { + //nil check + sharingParameters := &SharingParameters{} + eOut := &SharingParameters{} + if rcv := sharingParameters.Clone(); !reflect.DeepEqual(eOut, rcv) { + t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(eOut), utils.ToJSON(rcv)) + } + //empty check + sharingParameters = &SharingParameters{Strategy: "", RatingSubject: ""} + eOut = &SharingParameters{Strategy: "", RatingSubject: ""} + if rcv := sharingParameters.Clone(); !reflect.DeepEqual(eOut, rcv) { + t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(eOut), utils.ToJSON(rcv)) + } + //normal check + sharingParameters = &SharingParameters{ + Strategy: "StrategyTEST", + RatingSubject: "RatingSubjectTEST", + } + eOut = &SharingParameters{ + Strategy: "StrategyTEST", + RatingSubject: "RatingSubjectTEST", + } + if rcv := sharingParameters.Clone(); !reflect.DeepEqual(eOut, rcv) { + t.Errorf("Expecting: %+v, received: %+v", utils.ToJSON(eOut), utils.ToJSON(rcv)) + } +} + func TestSharedSetGet(t *testing.T) { id := "TEST_SG100" sg := &SharedGroup{ diff --git a/engine/storage_internal_datadb.go b/engine/storage_internal_datadb.go index 960eff626..ba68d2e9a 100644 --- a/engine/storage_internal_datadb.go +++ b/engine/storage_internal_datadb.go @@ -466,7 +466,7 @@ func (iDB *InternalDB) GetSharedGroupDrv(id string) (sh *SharedGroup, err error) if !ok || x == nil { return nil, utils.ErrNotFound } - return x.(*SharedGroup), nil + return x.(*SharedGroup).Clone(), nil } func (iDB *InternalDB) SetSharedGroupDrv(sh *SharedGroup) (err error) { @@ -667,7 +667,7 @@ func (iDB *InternalDB) GetAccountDrv(id string) (acc *Account, err error) { if !ok || x == nil { return nil, utils.ErrNotFound } - return x.(*Account), nil + return x.(*Account).Clone(), nil } func (iDB *InternalDB) SetAccount(acc *Account) (err error) { diff --git a/general_tests/acntacts_test.go b/general_tests/acntacts_test.go index 5d49cf616..75f18a62e 100644 --- a/general_tests/acntacts_test.go +++ b/general_tests/acntacts_test.go @@ -29,8 +29,7 @@ import ( var dbAcntActs *engine.DataManager func TestAcntActsSetStorage(t *testing.T) { - data, _ := engine.NewMapStorageJson() - dbAcntActs = engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) + dbAcntActs = engine.NewDataManager(engine.NewInternalDB(nil, nil), config.CgrConfig().CacheCfg(), nil, nil) engine.SetDataStorage(dbAcntActs) } diff --git a/general_tests/auth_test.go b/general_tests/auth_test.go index 93ae5996e..75b02797a 100644 --- a/general_tests/auth_test.go +++ b/general_tests/auth_test.go @@ -31,8 +31,7 @@ var rsponder *engine.Responder func TestAuthSetStorage(t *testing.T) { config.CgrConfig().CacheCfg()[utils.CacheRatingPlans].Precache = true // precache rating plan - data, _ := engine.NewMapStorageJson() - dbAuth = engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) + dbAuth = engine.NewDataManager(engine.NewInternalDB(nil, nil), config.CgrConfig().CacheCfg(), nil, nil) engine.SetDataStorage(dbAuth) rsponder = &engine.Responder{ MaxComputedUsage: config.CgrConfig().RalsCfg().MaxComputedUsage} diff --git a/general_tests/costs1_test.go b/general_tests/costs1_test.go index bca3df37e..fc8e31661 100644 --- a/general_tests/costs1_test.go +++ b/general_tests/costs1_test.go @@ -28,8 +28,7 @@ import ( func TestCosts1SetStorage(t *testing.T) { config.CgrConfig().CacheCfg()[utils.CacheRatingPlans].Precache = true // precache rating plan - data, _ := engine.NewMapStorageJson() - dataDB = engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) + dataDB = engine.NewDataManager(engine.NewInternalDB(nil, nil), config.CgrConfig().CacheCfg(), nil, nil) engine.SetDataStorage(dataDB) } diff --git a/general_tests/datachrg1_test.go b/general_tests/datachrg1_test.go index 856e3979a..dcc122a9e 100644 --- a/general_tests/datachrg1_test.go +++ b/general_tests/datachrg1_test.go @@ -27,8 +27,7 @@ import ( ) func TestSetStorageDtChrg1(t *testing.T) { - data, _ := engine.NewMapStorageJson() - dataDB = engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) + dataDB = engine.NewDataManager(engine.NewInternalDB(nil, nil), config.CgrConfig().CacheCfg(), nil, nil) engine.SetDataStorage(dataDB) } diff --git a/general_tests/ddazmbl1_test.go b/general_tests/ddazmbl1_test.go index b1237560f..a51cc4410 100644 --- a/general_tests/ddazmbl1_test.go +++ b/general_tests/ddazmbl1_test.go @@ -30,7 +30,7 @@ import ( var dataDB *engine.DataManager func TestDZ1SetStorage(t *testing.T) { - data, _ := engine.NewMapStorageJson() + data := engine.NewInternalDB(nil, nil) dataDB = engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) engine.SetDataStorage(dataDB) } diff --git a/general_tests/ddazmbl2_test.go b/general_tests/ddazmbl2_test.go index bc83a10b2..61f03a7a3 100644 --- a/general_tests/ddazmbl2_test.go +++ b/general_tests/ddazmbl2_test.go @@ -30,7 +30,7 @@ import ( var dataDB2 *engine.DataManager func TestSetStorage2(t *testing.T) { - data, _ := engine.NewMapStorageJson() + data := engine.NewInternalDB(nil, nil) dataDB2 = engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) engine.SetDataStorage(dataDB2) } diff --git a/general_tests/ddazmbl3_test.go b/general_tests/ddazmbl3_test.go index d84795f7c..d69b3ce08 100644 --- a/general_tests/ddazmbl3_test.go +++ b/general_tests/ddazmbl3_test.go @@ -30,7 +30,7 @@ import ( var dataDB3 *engine.DataManager func TestSetStorage3(t *testing.T) { - data, _ := engine.NewMapStorageJson() + data := engine.NewInternalDB(nil, nil) dataDB3 = engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) engine.SetDataStorage(dataDB3) } diff --git a/general_tests/smschrg1_test.go b/general_tests/smschrg1_test.go index 412e24923..7a919fb76 100644 --- a/general_tests/smschrg1_test.go +++ b/general_tests/smschrg1_test.go @@ -28,7 +28,7 @@ import ( func TestSMSSetStorageSmsChrg1(t *testing.T) { config.CgrConfig().CacheCfg()[utils.CacheRatingPlans].Precache = true // precache rating plan - data, _ := engine.NewMapStorageJson() + data := engine.NewInternalDB(nil, nil) dataDB = engine.NewDataManager(data, config.CgrConfig().CacheCfg(), nil, nil) engine.SetDataStorage(dataDB) } diff --git a/loaders/loader_test.go b/loaders/loader_test.go index 818cc1a09..50bb86a8b 100644 --- a/loaders/loader_test.go +++ b/loaders/loader_test.go @@ -33,7 +33,7 @@ import ( ) func TestLoaderProcessContentSingleFile(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) ldr := &Loader{ ldrID: "TestLoaderProcessContent", bufLoaderData: make(map[string][]LoaderData), @@ -139,7 +139,7 @@ func TestLoaderProcessContentSingleFile(t *testing.T) { func TestLoaderProcessContentMultiFiles(t *testing.T) { file1CSV := `ignored,ignored,ignored,ignored,ignored,,Subject,1001,ignored,ignored` file2CSV := `ignored,TestLoader2` - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) ldr := &Loader{ ldrID: "TestLoaderProcessContentMultiFiles", bufLoaderData: make(map[string][]LoaderData), @@ -217,7 +217,7 @@ func TestLoaderProcessContentMultiFiles(t *testing.T) { } func TestLoaderProcessResource(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) ldr := &Loader{ ldrID: "TestLoaderProcessResources", bufLoaderData: make(map[string][]LoaderData), @@ -335,7 +335,7 @@ func TestLoaderProcessResource(t *testing.T) { } func TestLoaderProcessFilters(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) ldr := &Loader{ ldrID: "TestLoaderProcessFilters", bufLoaderData: make(map[string][]LoaderData), @@ -446,7 +446,7 @@ func TestLoaderProcessFilters(t *testing.T) { } func TestLoaderProcessThresholds(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) ldr := &Loader{ ldrID: "TestLoaderProcessContent", bufLoaderData: make(map[string][]LoaderData), @@ -544,7 +544,7 @@ func TestLoaderProcessThresholds(t *testing.T) { } func TestLoaderProcessStats(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) ldr := &Loader{ ldrID: "TestLoaderProcessContent", bufLoaderData: make(map[string][]LoaderData), @@ -666,7 +666,7 @@ func TestLoaderProcessStats(t *testing.T) { } func TestLoaderProcessSuppliers(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) ldr := &Loader{ ldrID: "TestLoaderProcessContent", bufLoaderData: make(map[string][]LoaderData), @@ -793,7 +793,7 @@ func TestLoaderProcessSuppliers(t *testing.T) { } func TestLoaderProcessChargers(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) ldr := &Loader{ ldrID: "TestLoaderProcessContent", bufLoaderData: make(map[string][]LoaderData), @@ -871,7 +871,7 @@ func TestLoaderProcessChargers(t *testing.T) { } func TestLoaderProcessDispatches(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) ldr := &Loader{ ldrID: "TestLoaderProcessContent", bufLoaderData: make(map[string][]LoaderData), @@ -1023,7 +1023,7 @@ func TestLoaderProcessDispatches(t *testing.T) { } func TestLoaderProcessDispatcheHosts(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) ldr := &Loader{ ldrID: "TestLoaderProcessContent", bufLoaderData: make(map[string][]LoaderData), @@ -1111,7 +1111,7 @@ func TestLoaderProcessDispatcheHosts(t *testing.T) { } func TestLoaderRemoveContentSingleFile(t *testing.T) { - data, _ := engine.NewMapStorage() + data := engine.NewInternalDB(nil, nil) ldr := &Loader{ ldrID: "TestLoaderProcessContent", bufLoaderData: make(map[string][]LoaderData), diff --git a/services/rals.go b/services/rals.go index 14eb7d98b..49838110f 100644 --- a/services/rals.go +++ b/services/rals.go @@ -176,4 +176,4 @@ func (rals *RalService) GetAPIv2() servmanager.Service { // GetResponder returns the responder service func (rals *RalService) GetResponder() servmanager.Service { return rals.responder -} \ No newline at end of file +} diff --git a/sessions/sessions_test.go b/sessions/sessions_test.go index b660abcf7..ff1c651de 100644 --- a/sessions/sessions_test.go +++ b/sessions/sessions_test.go @@ -1535,7 +1535,7 @@ func TestSessionSNewV1AuthorizeArgsWithArgDispatcher2(t *testing.T) { func TestSessionSGetIndexedFilters(t *testing.T) { sSCfg, _ := config.NewDefaultCGRConfig() - mpStr, _ := engine.NewMapStorage() + mpStr := engine.NewInternalDB(nil, nil) sS := NewSessionS(sSCfg, nil, nil, nil, nil, nil, nil, nil, nil, nil, engine.NewDataManager(mpStr, config.CgrConfig().CacheCfg(), nil, nil)) expIndx := map[string][]string{} expUindx := []*engine.FilterRule{