Tests in services

This commit is contained in:
andronache
2021-02-19 09:41:01 +02:00
committed by Dan Christian Bogos
parent 904a43ded4
commit ecc52c353e
2 changed files with 60 additions and 4 deletions

View File

@@ -130,7 +130,7 @@ func (resp *ResponderService) ShouldRun() bool {
return resp.cfg.RalsCfg().Enabled
}
// RegisterSyncChan used by dependent subsystems to register a chanel to reload only the responder(thread safe)
// RegisterSyncChan used by dependent subsystems to register a channel to reload only the responder(thread safe)
func (resp *ResponderService) RegisterSyncChan(srv string, c chan *engine.Responder) {
resp.Lock()
resp.syncChans[srv] = c
@@ -140,7 +140,7 @@ func (resp *ResponderService) RegisterSyncChan(srv string, c chan *engine.Respon
resp.Unlock()
}
// UnregisterSyncChan used by dependent subsystems to unregister a chanel
// UnregisterSyncChan used by dependent subsystems to unregister a channel
func (resp *ResponderService) UnregisterSyncChan(srv string) {
resp.Lock()
c, has := resp.syncChans[srv]
@@ -151,7 +151,7 @@ func (resp *ResponderService) UnregisterSyncChan(srv string) {
resp.Unlock()
}
// sync sends the responder over syncChansv (not thrad safe)
// sync sends the responder over syncChansv (not thread safe)
func (resp *ResponderService) sync() {
if resp.isRunning() {
for _, c := range resp.syncChans {

View File

@@ -75,7 +75,9 @@ func TestResponderSReload(t *testing.T) {
if err != nil {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", nil, err)
}
srv.syncChans = map[string]chan *engine.Responder{
"srv": make(chan *engine.Responder, 1),
}
err = srv.Shutdown()
if err != nil {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", nil, err)
@@ -86,3 +88,57 @@ func TestResponderSReload(t *testing.T) {
}
}
func TestResponderSReload2(t *testing.T) {
// utils.Logger.SetLogLevel(7)
cfg := config.NewDefaultCGRConfig()
utils.Logger, _ = utils.Newlogger(utils.MetaSysLog, cfg.GeneralCfg().NodeID)
utils.Logger.SetLogLevel(7)
cfg.ThresholdSCfg().Enabled = true
filterSChan := make(chan *engine.FilterS, 1)
filterSChan <- nil
shdChan := utils.NewSyncedChan()
server := cores.NewServer(nil)
srvDep := map[string]*sync.WaitGroup{utils.DataDB: new(sync.WaitGroup)}
anz := NewAnalyzerService(cfg, server, filterSChan, shdChan, make(chan rpcclient.ClientConnector, 1), srvDep)
internalChan := make(chan rpcclient.ClientConnector, 1)
srv := NewResponderService(cfg, server, internalChan,
shdChan, anz, srvDep)
srvName := srv.ServiceName()
if srvName != utils.ResponderS {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", utils.ResponderS, srvName)
}
if srv.IsRunning() {
t.Errorf("Expected service to be down")
}
err := srv.Start()
if err != nil {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", nil, err)
}
if !srv.IsRunning() {
t.Errorf("Expected service to be running")
}
err = srv.Start()
if err != utils.ErrServiceAlreadyRunning {
t.Errorf("\nExpected <%+v>, \nReceived <%+v>", utils.ErrServiceAlreadyRunning, err)
}
srv.syncChans = map[string]chan *engine.Responder{
"srv": make(chan *engine.Responder, 1),
}
srv.resp = &engine.Responder{
ShdChan: shdChan,
Timeout: 1,
Timezone: "",
MaxComputedUsage: nil,
}
srv.sync()
srv.RegisterSyncChan("srv", make(chan *engine.Responder, 1))
srv.resp = nil
}