From b181c512115956481614d006108dee5185d8556d Mon Sep 17 00:00:00 2001 From: andronache Date: Fri, 7 May 2021 16:42:34 +0300 Subject: [PATCH] Test in Dispatchers --- dispatchers/dispatchers_it_test.go | 63 ++++++++++++++++++++++++++++++ dispatchers/dispatchers_test.go | 25 ++++++++++++ 2 files changed, 88 insertions(+) diff --git a/dispatchers/dispatchers_it_test.go b/dispatchers/dispatchers_it_test.go index 837ac6552..3c5f84596 100644 --- a/dispatchers/dispatchers_it_test.go +++ b/dispatchers/dispatchers_it_test.go @@ -20,6 +20,16 @@ along with this program. If not, see package dispatchers +import ( + "testing" + "time" + + "github.com/cgrates/cgrates/config" + "github.com/cgrates/cgrates/engine" + "github.com/cgrates/cgrates/utils" + "github.com/cgrates/rpcclient" +) + // for the moment we dispable Apier through dispatcher // until we figured out a better sollution in case of gob server /* @@ -130,3 +140,56 @@ func testDspApierUnkownAPiKey(t *testing.T) { } } */ +func TestDispatcherServiceDispatcherProfileForEventGetDispatchertWithoutAuthentification(t *testing.T) { + cfg := config.NewDefaultCGRConfig() + cfg.DispatcherSCfg().IndexedSelects = false + rpcCl := map[string]chan rpcclient.ClientConnector{} + connMng := engine.NewConnManager(cfg, rpcCl) + dm := engine.NewDataManager(&engine.DataDBMock{ + GetKeysForPrefixF: func(string) ([]string, error) { + return []string{"dpp_cgrates.org:123"}, nil + }, + }, nil, connMng) + dsp := &engine.DispatcherProfile{ + ID: "321", + Subsystems: []string{utils.MetaAccounts}, + FilterIDs: []string{"filter"}, + ActivationInterval: &utils.ActivationInterval{}, + Strategy: "", + StrategyParams: nil, + Weight: 0, + Hosts: nil, + } + err := dm.SetDispatcherProfile(dsp, false) + if err == nil { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", utils.ErrNotImplemented, err) + } + fltr := &engine.Filter{ + ID: "filter", + Rules: nil, + ActivationInterval: &utils.ActivationInterval{ + ActivationTime: time.Date(1999, 2, 3, 4, 5, 6, 700000000, time.UTC), + ExpiryTime: time.Date(2000, 2, 3, 4, 5, 6, 700000000, time.UTC), + }, + } + err = dm.SetFilter(fltr, false) + if err == nil { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", utils.ErrNotImplemented, err) + } + fltrs := engine.NewFilterS(cfg, connMng, dm) + dss := NewDispatcherService(dm, cfg, fltrs, connMng) + ev := &utils.CGREvent{ + ID: "321", + Event: map[string]interface{}{ + utils.AccountField: "1001", + "Password": "CGRateS.org", + "RunID": utils.MetaDefault, + }, + } + tnt := ev.Tenant + _, err = dss.dispatcherProfileForEvent(tnt, ev, utils.MetaAccounts) + expected := utils.ErrNotImplemented + if err == nil || err != expected { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) + } +} diff --git a/dispatchers/dispatchers_test.go b/dispatchers/dispatchers_test.go index f9a8362ab..2d6d92720 100644 --- a/dispatchers/dispatchers_test.go +++ b/dispatchers/dispatchers_test.go @@ -1271,3 +1271,28 @@ func TestDispatcherServiceCall4(t *testing.T) { t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) } } + +func TestDispatcherServiceCallWithoutAuthentification(t *testing.T) { + cfg := config.NewDefaultCGRConfig() + rpcCl := map[string]chan rpcclient.ClientConnector{} + connMng := engine.NewConnManager(cfg, rpcCl) + dm := engine.NewDataManager(nil, nil, nil) + dsp := NewDispatcherService(dm, cfg, nil, connMng) + reply := "reply" + args := &utils.CGREvent{ + Tenant: "", + ID: "123", + Time: nil, + Event: map[string]interface{}{ + utils.AccountField: "1001", + "Password": "CGRateS.org", + "RunID": utils.MetaDefault, + }, + APIOpts: map[string]interface{}{}, + } + err := dsp.Call("DispatcherService.Test3", args, &reply) + expected := "SERVER_ERROR" + if err == nil || err.Error() != expected { + t.Errorf("\nExpected <%+v>, \nReceived <%+v>", expected, err) + } +}