From 7ff28dccd2debbea11057be1a73898de26661b08 Mon Sep 17 00:00:00 2001 From: andronache Date: Mon, 25 Oct 2021 15:59:22 +0300 Subject: [PATCH] Test for syncSessions skip if aSessions length 0 --- sessions/sessionscover_test.go | 59 ++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/sessions/sessionscover_test.go b/sessions/sessionscover_test.go index a04200009..6dffe8868 100644 --- a/sessions/sessionscover_test.go +++ b/sessions/sessionscover_test.go @@ -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"}) +}