mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-22 15:48:44 +05:00
Tests in services
This commit is contained in:
committed by
Dan Christian Bogos
parent
4decf835ca
commit
64c5fd3212
@@ -500,3 +500,155 @@ func TestDataDBReload6(t *testing.T) {
|
||||
shdChan.CloseOnce()
|
||||
time.Sleep(10 * time.Millisecond)
|
||||
}
|
||||
|
||||
/*
|
||||
func TestDataDBReload7(t *testing.T) {
|
||||
dataDir := flag.String("data_dir", "/usr/share/cgrates", "CGR data dir path here")
|
||||
var versionsConfigDIR string
|
||||
cfg, err := config.NewCGRConfigFromPath(path.Join(*dataDir, "conf", "samples", versionsConfigDIR))
|
||||
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 {
|
||||
log.Fatal(err)
|
||||
}
|
||||
dm3 := engine.NewDataManager(dbConn, cfg.CacheCfg(), nil)
|
||||
var test string
|
||||
var currentVersion engine.Versions
|
||||
var testVersion engine.Versions
|
||||
dataDbVersions := engine.CurrentDataDBVersions()
|
||||
storDbVersions := engine.CurrentStorDBVersions()
|
||||
|
||||
allVersions := make(engine.Versions)
|
||||
for k, v := range dataDbVersions {
|
||||
allVersions[k] = v
|
||||
}
|
||||
for k, v := range storDbVersions {
|
||||
allVersions[k] = v
|
||||
}
|
||||
|
||||
storType := dm3.DataDB().GetStorageType()
|
||||
switch storType {
|
||||
case utils.INTERNAL:
|
||||
currentVersion = allVersions
|
||||
testVersion = allVersions
|
||||
testVersion[utils.Accounts] = 1
|
||||
test = "Migration needed: please backup cgr data and run : <cgr-migrator -exec=*accounts>"
|
||||
case utils.Mongo, utils.Redis:
|
||||
currentVersion = dataDbVersions
|
||||
testVersion = dataDbVersions
|
||||
testVersion[utils.Accounts] = 1
|
||||
|
||||
test = "Migration needed: please backup cgr data and run : <cgr-migrator -exec=*accounts>"
|
||||
}
|
||||
|
||||
//dataDB
|
||||
if _, rcvErr := dm3.DataDB().GetVersions(""); rcvErr != utils.ErrNotFound {
|
||||
t.Error(rcvErr)
|
||||
}
|
||||
if err := engine.CheckVersions(dm3.DataDB()); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if rcv, err := dm3.DataDB().GetVersions(""); err != nil {
|
||||
t.Error(err)
|
||||
} else if len(currentVersion) != len(rcv) {
|
||||
t.Errorf("Expecting: %v, received: %v", currentVersion, rcv)
|
||||
}
|
||||
if err = dm3.DataDB().RemoveVersions(currentVersion); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if _, rcvErr := dm3.DataDB().GetVersions(""); rcvErr != utils.ErrNotFound {
|
||||
t.Error(rcvErr)
|
||||
}
|
||||
if err := dm3.DataDB().SetVersions(testVersion, false); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if err := engine.CheckVersions(dm3.DataDB()); err.Error() != test {
|
||||
t.Error(err)
|
||||
}
|
||||
if err = dm3.DataDB().RemoveVersions(testVersion); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
var storageDb engine.Storage
|
||||
storType = storageDb.GetStorageType()
|
||||
switch storType {
|
||||
case utils.INTERNAL:
|
||||
currentVersion = allVersions
|
||||
testVersion = allVersions
|
||||
testVersion[utils.Accounts] = 1
|
||||
test = "Migration needed: please backup cgr data and run : <cgr-migrator -exec=*accounts>"
|
||||
case utils.Mongo, utils.Postgres, utils.MySQL:
|
||||
currentVersion = storDbVersions
|
||||
testVersion = allVersions
|
||||
testVersion[utils.CostDetails] = 1
|
||||
test = "Migration needed: please backup cgr data and run : <cgr-migrator -exec=*cost_details>"
|
||||
}
|
||||
utils.Logger, _ = utils.Newlogger(utils.MetaSysLog, cfg.GeneralCfg().NodeID)
|
||||
utils.Logger.SetLogLevel(7)
|
||||
shdChan := utils.NewSyncedChan()
|
||||
shdWg := new(sync.WaitGroup)
|
||||
chS := engine.NewCacheS(cfg, nil, nil)
|
||||
filterSChan := make(chan *engine.FilterS, 1)
|
||||
filterSChan <- nil
|
||||
close(chS.GetPrecacheChannel(utils.CacheAttributeProfiles))
|
||||
close(chS.GetPrecacheChannel(utils.CacheAttributeFilterIndexes))
|
||||
server := cores.NewServer(nil)
|
||||
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
|
||||
srvMngr := servmanager.NewServiceManager(cfg, shdChan, shdWg)
|
||||
cM := engine.NewConnManager(cfg, nil)
|
||||
db := NewDataDBService(cfg, cM, srvDep)
|
||||
anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
|
||||
srvMngr.AddServices(NewAttributeService(cfg, db,
|
||||
chS, filterSChan, server, make(chan rpcclient.ClientConnector, 1), anz, srvDep),
|
||||
NewLoaderService(cfg, db, filterSChan, server, make(chan rpcclient.ClientConnector, 1), nil, anz, srvDep), db)
|
||||
if err := srvMngr.StartServices(); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if db.IsRunning() {
|
||||
t.Errorf("Expected service to be down")
|
||||
}
|
||||
var reply string
|
||||
cfg.AttributeSCfg().Enabled = true
|
||||
if err := cfg.V1ReloadConfig(&config.ReloadArgs{
|
||||
Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
|
||||
Section: config.DATADB_JSN,
|
||||
}, &reply); err != nil {
|
||||
t.Error(err)
|
||||
} else if reply != utils.OK {
|
||||
t.Errorf("Expecting OK ,received %s", reply)
|
||||
}
|
||||
time.Sleep(10 * time.Millisecond) //need to switch to gorutine
|
||||
if !db.IsRunning() {
|
||||
t.Errorf("Expected service to be running")
|
||||
}
|
||||
|
||||
err = db.Reload()
|
||||
if err != nil {
|
||||
t.Errorf("\nExpecting <nil>,\n Received <%+v>", err)
|
||||
}
|
||||
if err := cfg.V1ReloadConfig(&config.ReloadArgs{
|
||||
Path: path.Join("/usr", "share", "cgrates", "conf", "samples", "tutmongo"),
|
||||
Section: config.DATADB_JSN,
|
||||
}, &reply); err != nil {
|
||||
t.Error(err)
|
||||
} else if reply != utils.OK {
|
||||
t.Errorf("Expecting OK ,received %s", reply)
|
||||
}
|
||||
|
||||
time.Sleep(10 * time.Millisecond)
|
||||
err = db.Reload()
|
||||
if err != nil {
|
||||
t.Errorf("\nExpecting <nil>,\n Received <%+v>", err)
|
||||
}
|
||||
|
||||
cfg.DataDbCfg().DataDbType = utils.MySQL
|
||||
|
||||
shdChan.CloseOnce()
|
||||
time.Sleep(10 * time.Millisecond)
|
||||
}
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user