From ab8622e3a0853233bff3b443c2bf0d20cd01f65a Mon Sep 17 00:00:00 2001 From: andronache Date: Thu, 4 Mar 2021 13:44:54 +0200 Subject: [PATCH] Refactored tests in services/datadb_test.g to not use servmanager --- services/datadb_it_test.go | 167 +++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) diff --git a/services/datadb_it_test.go b/services/datadb_it_test.go index c4a174998..210c37d40 100644 --- a/services/datadb_it_test.go +++ b/services/datadb_it_test.go @@ -565,3 +565,170 @@ func TestDataDBReloadVersion(t *testing.T) { shdChan.CloseOnce() time.Sleep(10 * time.Millisecond) } + +func TestDataDBReloadCastError(t *testing.T) { + cfg, err := config.NewCGRConfigFromPath(path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo")) + if err != nil { + t.Fatal(err) + } + dbConn, err := engine.NewDataDBConn(cfg.DataDbCfg().DataDbType, + cfg.DataDbCfg().DataDbHost, cfg.DataDbCfg().DataDbPort, + cfg.DataDbCfg().DataDbName, cfg.DataDbCfg().DataDbUser, + cfg.DataDbCfg().DataDbPass, cfg.GeneralCfg().DBDataEncoding, + cfg.DataDbCfg().Opts) + if err != nil { + t.Fatal(err) + } + defer func() { + dbConn.Flush("") + dbConn.Close() + }() + + err = dbConn.SetVersions(engine.Versions{ + utils.StatS: 4, + utils.Accounts: 3, + utils.Actions: 2, + utils.ActionTriggers: 2, + utils.ActionPlans: 3, + utils.SharedGroups: 2, + utils.Thresholds: 4, + utils.Routes: 2, + // old version for Attributes + utils.Attributes: 5, + utils.Timing: 1, + utils.RQF: 5, + utils.Resource: 1, + utils.Subscribers: 1, + utils.Destinations: 1, + utils.ReverseDestinations: 1, + utils.RatingPlan: 1, + utils.RatingProfile: 1, + utils.Chargers: 2, + utils.Dispatchers: 2, + utils.LoadIDsVrs: 1, + utils.RateProfiles: 1, + utils.ActionProfiles: 1, + }, true) + if err != nil { + t.Fatal(err) + } + utils.Logger, _ = utils.Newlogger(utils.MetaSysLog, cfg.GeneralCfg().NodeID) + utils.Logger.SetLogLevel(7) + shdChan := utils.NewSyncedChan() + filterSChan := make(chan *engine.FilterS, 1) + filterSChan <- nil + srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)} + cM := engine.NewConnManager(cfg, nil) + db := NewDataDBService(cfg, cM, srvDep) + db.oldDBCfg = &config.DataDbCfg{ + DataDbType: utils.Mongo, + DataDbHost: "127.0.0.1", + DataDbPort: "27017", + DataDbName: "10", + DataDbUser: "cgrates", + Opts: map[string]interface{}{ + utils.QueryTimeoutCfg: "10s", + utils.RedisClusterOnDownDelayCfg: "0", + utils.RedisClusterSyncCfg: "5s", + utils.RedisClusterCfg: false, + utils.RedisSentinelNameCfg: "", + utils.RedisTLS: false, + utils.RedisClientCertificate: "", + utils.RedisClientKey: "", + utils.RedisCACertificate: "", + }, + RmtConns: []string{}, + RplConns: []string{}, + Items: map[string]*config.ItemOpt{ + utils.MetaAccounts: { + Replicate: false, + Remote: false}, + utils.MetaReverseDestinations: { + Replicate: false, + Remote: false}, + utils.MetaDestinations: { + Replicate: false, + Remote: false}, + utils.MetaRatingPlans: { + Replicate: false, + Remote: false}, + utils.MetaRatingProfiles: { + Replicate: false, + Remote: false}, + utils.MetaActions: { + Replicate: false, + Remote: false}, + utils.MetaActionPlans: { + Replicate: false, + Remote: false}, + utils.MetaAccountActionPlans: { + Replicate: false, + Remote: false}, + utils.MetaActionTriggers: { + Replicate: false, + Remote: false}, + utils.MetaSharedGroups: { + Replicate: false, + Remote: false}, + utils.MetaTimings: { + Replicate: false, + Remote: false}, + utils.MetaResourceProfile: { + Replicate: false, + Remote: false}, + utils.MetaStatQueues: { + Replicate: false, + Remote: false}, + utils.MetaResources: { + Replicate: false, + Remote: false}, + utils.MetaStatQueueProfiles: { + Replicate: false, + Remote: false}, + utils.MetaThresholds: { + Replicate: false, + Remote: false}, + utils.MetaThresholdProfiles: { + Replicate: false, + Remote: false}, + utils.MetaFilters: { + Replicate: false, + Remote: false}, + utils.MetaRouteProfiles: { + Replicate: false, + Remote: false}, + utils.MetaAttributeProfiles: { + Replicate: false, + Remote: false}, + utils.MetaDispatcherHosts: { + Replicate: false, + Remote: false}, + utils.MetaChargerProfiles: { + Replicate: false, + Remote: false}, + utils.MetaDispatcherProfiles: { + Replicate: false, + Remote: false}, + utils.MetaLoadIDs: { + Replicate: false, + Remote: false}, + utils.MetaIndexes: { + Replicate: false, + Remote: false}, + utils.MetaRateProfiles: { + Replicate: false, + Remote: false}, + utils.MetaActionProfiles: { + Replicate: false, + Remote: false}, + }, + } + + db.dm = nil + err = db.Reload() + if err == nil || err.Error() != "can't conver DataDB of type mongo to MongoStorage" { + t.Fatal(err) + } + shdChan.CloseOnce() + time.Sleep(10 * time.Millisecond) +}