diff --git a/dispatchers/dispatchers_test.go b/dispatchers/dispatchers_test.go index ff8d5261e..704175d5b 100644 --- a/dispatchers/dispatchers_test.go +++ b/dispatchers/dispatchers_test.go @@ -172,3 +172,28 @@ func TestDispatcherAuthorizeError2(t *testing.T) { t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) } } + +/* +func TestDispatcherDispatchCache(t *testing.T) { + cacheInit := engine.Cache + cfg := config.NewDefaultCGRConfig() + cfg.DispatcherSCfg().PrefixIndexedFields = &[]string{"pf"} + cfg.DispatcherSCfg().StringIndexedFields = &[]string{"indx"} + cfg.DispatcherSCfg().SuffixIndexedFields = &[]string{"sfx"} + cfg.DispatcherSCfg().IndexedSelects = true + cfg.DispatcherSCfg().NestedFields = true + dm := engine.NewDataManager(nil, nil, nil) + newCache := engine.NewCacheS(cfg, dm, nil) + engine.Cache = newCache + cfg.GeneralCfg().DefaultTenant = utils.EmptyString + dsp := NewDispatcherService(nil, cfg, nil, nil) + err := dsp.Dispatch(&utils.CGREvent{ + Tenant: "tenant", + }, utils.MetaSessionS, utils.SessionSv1GetActiveSessions, "", "") + expected := "" + if err == nil || err.Error() != expected { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) + } + engine.Cache = cacheInit +} +*/ diff --git a/dispatchers/libdispatcher_test.go b/dispatchers/libdispatcher_test.go index db1caf943..cbe478f11 100644 --- a/dispatchers/libdispatcher_test.go +++ b/dispatchers/libdispatcher_test.go @@ -743,9 +743,37 @@ func TestLibDispatcherLoadStrategyDispatchCaseHosts(t *testing.T) { } } -/* func TestLibDispatcherLoadStrategyDispatchCaseHostsError(t *testing.T) { wgDsp := &loadStrategyDispatcher{ + hosts: engine.DispatcherHostProfiles{ + { + ID: "testID2", + FilterIDs: []string{"filterID"}, + Weight: 4, + Params: map[string]interface{}{ + utils.MetaRatio: 1, + }, + Blocker: false, + }, + }, + defaultRatio: 1, + } + err := wgDsp.dispatch(nil, "", "", "", []string{"testID2"}, "", "", "") + expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION" + if err == nil || err.Error() != expected { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) + } +} + +func TestLibDispatcherLoadStrategyDispatchCaseHostsCastError(t *testing.T) { + cacheInit := engine.Cache + cfg := config.NewDefaultCGRConfig() + newCache := engine.NewCacheS(cfg, nil, nil) + engine.Cache = newCache + engine.Cache.SetWithoutReplicate(utils.CacheDispatcherLoads, "testID", + false, nil, true, utils.NonTransactional) + wgDsp := &loadStrategyDispatcher{ + tntID: "testID", hosts: engine.DispatcherHostProfiles{ { ID: "testID", @@ -760,9 +788,59 @@ func TestLibDispatcherLoadStrategyDispatchCaseHostsError(t *testing.T) { defaultRatio: 1, } err := wgDsp.dispatch(nil, "", "", "", []string{"testID"}, "", "", "") - expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION" + expected := "cannot cast false to *LoadMetrics" + if err == nil || err.Error() != expected { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) + } + engine.Cache = cacheInit +} + +func TestLibDispatcherLoadStrategyDispatchCaseHostsCastError2(t *testing.T) { + wgDsp := &loadStrategyDispatcher{ + tntID: "testID", + hosts: engine.DispatcherHostProfiles{ + { + ID: "testID", + FilterIDs: []string{"filterID"}, + Weight: 4, + Params: map[string]interface{}{ + utils.MetaRatio: false, + }, + Blocker: false, + }, + }, + defaultRatio: 1, + } + err := wgDsp.dispatch(nil, "", "", "", []string{"testID"}, "", "", "") + expected := "cannot convert field: false to int" if err == nil || err.Error() != expected { t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) } } -*/ + +func TestLibDispatcherSingleResultStrategyDispatcherCastError(t *testing.T) { + cacheInit := engine.Cache + cfg := config.NewDefaultCGRConfig() + dm := engine.NewDataManager(nil, nil, nil) + newCache := engine.NewCacheS(cfg, dm, nil) + engine.Cache = newCache + value := &engine.DispatcherHost{ + Tenant: "testTenant", + RemoteHost: &config.RemoteHost{ + ID: "testID", + Address: "", + Transport: "", + Synchronous: false, + TLS: false, + }, + } + engine.Cache.SetWithoutReplicate(utils.CacheDispatcherRoutes, "testID:*attributes", + value, nil, true, utils.NonTransactional) + wgDsp := &singleResultstrategyDispatcher{} + err := wgDsp.dispatch(nil, "testID", utils.MetaAttributes, "testTenant", []string{"testID"}, "", "", "") + expected := "DISPATCHER_ERROR:NO_DATABASE_CONNECTION" + if err == nil || err.Error() != expected { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) + } + engine.Cache = cacheInit +}