From 8869de64eea615a3bd5d062b936f78ba84d1d415 Mon Sep 17 00:00:00 2001 From: andronache Date: Wed, 14 Apr 2021 10:27:30 +0300 Subject: [PATCH] Cover tests in Dispatchers --- dispatchers/dispatchers_test.go | 71 +++++++++++++++++++++++++++++++ dispatchers/libdispatcher_test.go | 68 +++++++++++++++++++++++++++++ 2 files changed, 139 insertions(+) diff --git a/dispatchers/dispatchers_test.go b/dispatchers/dispatchers_test.go index fc59c1a2c..98699b39f 100644 --- a/dispatchers/dispatchers_test.go +++ b/dispatchers/dispatchers_test.go @@ -21,6 +21,9 @@ package dispatchers import ( "testing" + "github.com/cgrates/cgrates/config" + "github.com/cgrates/cgrates/engine" + "github.com/cgrates/cgrates/utils" "github.com/cgrates/rpcclient" ) @@ -51,3 +54,71 @@ func TestDispatcherCall2(t *testing.T) { } dS.Shutdown() } + +func TestDispatcherauthorizeEvent(t *testing.T) { + dm := &engine.DataManager{} + cfg := config.NewDefaultCGRConfig() + fltr := &engine.FilterS{} + connMgr := &engine.ConnManager{} + dsp := NewDispatcherService(dm, cfg, fltr, connMgr) + ev := &utils.CGREvent{} + reply := &engine.AttrSProcessEventReply{} + err := dsp.authorizeEvent(ev, reply) + expected := "MANDATORY_IE_MISSING: [connIDs]" + if err == nil || err.Error() != expected { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) + } +} + +func TestDispatcherAuthorizeEventErr(t *testing.T) { + dm := &engine.DataManager{} + cfg := config.NewDefaultCGRConfig() + fltr := &engine.FilterS{} + connMgr := &engine.ConnManager{} + dsp := NewDispatcherService(dm, cfg, fltr, connMgr) + ev := &utils.CGREvent{} + reply := &engine.AttrSProcessEventReply{} + err := dsp.authorizeEvent(ev, reply) + expected := "MANDATORY_IE_MISSING: [connIDs]" + if err == nil || err.Error() != expected { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) + } +} + +func TestDispatcherV1GetProfileForEventErr(t *testing.T) { + cfg := config.NewDefaultCGRConfig() + cfg.GeneralCfg().DefaultTenant = utils.EmptyString + dsp := NewDispatcherService(nil, cfg, nil, nil) + ev := &utils.CGREvent{} + dPfl := &engine.DispatcherProfile{} + err := dsp.V1GetProfileForEvent(ev, dPfl) + expected := "DISPATCHER_ERROR:NOT_FOUND" + if err == nil || err.Error() != expected { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) + } +} + +func TestDispatcherV1GetProfileForEvent(t *testing.T) { + cfg := config.NewDefaultCGRConfig() + cfg.GeneralCfg().DefaultTenant = utils.EmptyString + dsp := NewDispatcherService(nil, cfg, nil, nil) + ev := &utils.CGREvent{} + dPfl := &engine.DispatcherProfile{} + err := dsp.V1GetProfileForEvent(ev, dPfl) + expected := "DISPATCHER_ERROR:NOT_FOUND" + if err == nil || err.Error() != expected { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) + } +} + +func TestDispatcherDispatch(t *testing.T) { + cfg := config.NewDefaultCGRConfig() + cfg.GeneralCfg().DefaultTenant = utils.EmptyString + dsp := NewDispatcherService(nil, cfg, nil, nil) + ev := &utils.CGREvent{} + err := dsp.Dispatch(ev, "", "", "", "") + expected := "DISPATCHER_ERROR:NOT_FOUND" + if err == nil || err.Error() != expected { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) + } +} diff --git a/dispatchers/libdispatcher_test.go b/dispatchers/libdispatcher_test.go index 62ac92614..34974f97d 100644 --- a/dispatchers/libdispatcher_test.go +++ b/dispatchers/libdispatcher_test.go @@ -23,6 +23,8 @@ import ( "sync" "testing" + "github.com/cgrates/cgrates/config" + "github.com/cgrates/cgrates/engine" "github.com/cgrates/cgrates/utils" "github.com/cgrates/rpcclient" @@ -650,3 +652,69 @@ func TestLibDispatcherRoundRobinDispatch(t *testing.T) { t.Errorf("\nExpected <%+v>, \nReceived <%+v>", nil, result) } } + +func TestLibDispatcherSingleResultstrategyDispatcherDispatch(t *testing.T) { + wgDsp := &singleResultstrategyDispatcher{} + dataDB := engine.NewInternalDB(nil, nil, true) + dM := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), nil) + err := wgDsp.dispatch(dM, "", "", "", []string{""}, "", "", "") + expected := "HOST_NOT_FOUND" + if err == nil || err.Error() != expected { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) + } +} + +func TestLibDispatcherSingleResultstrategyDispatcherDispatchRouteID(t *testing.T) { + wgDsp := &singleResultstrategyDispatcher{} + dataDB := engine.NewInternalDB(nil, nil, true) + dM := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), nil) + err := wgDsp.dispatch(dM, "routeID", "", "", []string{""}, "", "", "") + expected := "HOST_NOT_FOUND" + if err == nil || err.Error() != expected { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) + } +} + +func TestLibDispatcherBroadcastStrategyDispatcherDispatch(t *testing.T) { + wgDsp := &broadcastStrategyDispatcher{} + dataDB := engine.NewInternalDB(nil, nil, true) + dM := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), nil) + err := wgDsp.dispatch(dM, "", "", "", []string{""}, "", "", "") + expected := "HOST_NOT_FOUND" + if err == nil || err.Error() != expected { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) + } +} + +func TestLibDispatcherBroadcastStrategyDispatcherDispatchRouteID(t *testing.T) { + wgDsp := &broadcastStrategyDispatcher{} + dataDB := engine.NewInternalDB(nil, nil, true) + dM := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), nil) + err := wgDsp.dispatch(dM, "routeID", "", "", []string{""}, "", "", "") + expected := "HOST_NOT_FOUND" + if err == nil || err.Error() != expected { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) + } +} + +func TestLibDispatcherLoadStrategyDispatcherDispatch(t *testing.T) { + wgDsp := &loadStrategyDispatcher{} + dataDB := engine.NewInternalDB(nil, nil, true) + dM := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), nil) + err := wgDsp.dispatch(dM, "", "", "", []string{""}, "", "", "") + expected := "HOST_NOT_FOUND" + if err == nil || err.Error() != expected { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) + } +} + +func TestLibDispatcherLoadStrategyDispatcherDispatchHostsID(t *testing.T) { + wgDsp := &loadStrategyDispatcher{} + dataDB := engine.NewInternalDB(nil, nil, true) + dM := engine.NewDataManager(dataDB, config.CgrConfig().CacheCfg(), nil) + err := wgDsp.dispatch(dM, "routeID", "", "", []string{"hostID1", "hostID2"}, "", "", "") + expected := "HOST_NOT_FOUND" + if err == nil || err.Error() != expected { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) + } +}