Test for syncSessions skip if aSessions length 0

This commit is contained in:
andronache
2021-10-25 15:59:22 +03:00
committed by Dan Christian Bogos
parent 94edb432e5
commit 7ff28dccd2

View File

@@ -4495,3 +4495,62 @@ func TestBiRPCv1GetCost(t *testing.T) {
*/
}
func TestSyncSessionsSync(t *testing.T) {
log.SetOutput(io.Discard)
tmp := engine.Cache
engine.Cache.Clear(nil)
sTestMock := &testMockClients{
calls: map[string]func(args interface{}, reply interface{}) error{
utils.ResourceSv1ReleaseResources: func(args interface{}, reply interface{}) error {
return utils.ErrNotImplemented
},
utils.CacheSv1ReplicateSet: func(args interface{}, reply interface{}) error {
return utils.ErrNotImplemented
},
},
}
chanInternal := make(chan rpcclient.ClientConnector, 1)
chanInternal <- sTestMock
cfg := config.NewDefaultCGRConfig()
//cfg.GeneralCfg().ReplyTimeout = 1
cfg.SessionSCfg().ResSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)}
cfg.CacheCfg().ReplicationConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator)}
cfg.CacheCfg().Partitions[utils.CacheClosedSessions] = &config.CacheParamCfg{
Replicate: true,
}
data := engine.NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
connMgr := engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources): chanInternal})
dm := engine.NewDataManager(data, cfg.CacheCfg(), connMgr)
sessions := NewSessionS(cfg, dm, connMgr)
sTestMock1 := &testMockClientSyncSessions{}
sessions.RegisterIntBiJConn(sTestMock1, utils.EmptyString)
sessions.aSessions = map[string]*Session{}
sessions.syncSessions()
sessions.cgrCfg.GeneralCfg().ReplyTimeout = 1
cacheS := engine.NewCacheS(cfg, nil, nil)
engine.Cache = cacheS
connMgr = engine.NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator): chanInternal})
engine.SetConnManager(connMgr)
sessions.aSessions = map[string]*Session{
"ORIGIN_ID": {},
}
var reply string
if err := sessions.BiRPCv1SyncSessions(nil, nil, &reply); err != nil {
t.Error(err)
} else if reply != utils.OK {
t.Errorf("Expected to be OK")
}
engine.Cache = tmp
//There are no sessions to be removed
sessions.terminateSyncSessions([]string{"no_sesssion"})
}