From 9ed3888fd242c70a02b62ce7cb6c6affc6da8cbd Mon Sep 17 00:00:00 2001 From: andronache Date: Fri, 8 Oct 2021 18:47:53 +0300 Subject: [PATCH] Test for cdrs Processevent --- engine/cdrs_test.go | 144 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 144 insertions(+) diff --git a/engine/cdrs_test.go b/engine/cdrs_test.go index 12fe09654..9755a26d4 100644 --- a/engine/cdrs_test.go +++ b/engine/cdrs_test.go @@ -1206,3 +1206,147 @@ func TestCDRsEESProcessEventMock(t *testing.T) { t.Errorf("\nExpected <%+v> \n,received <%+v>", expected, cgrEv) } } + +func TestCDRsProcessEventMock(t *testing.T) { + testCache := Cache + tmpC := config.CgrConfig() + tmpCM := connMgr + defer func() { + Cache = testCache + config.SetCgrConfig(tmpC) + connMgr = tmpCM + }() + + var sent StorDB + cfg := config.NewDefaultCGRConfig() + cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, + utils.MetaEEs)} + storDBChan := make(chan StorDB, 1) + storDBChan <- sent + data := NewInternalDB(nil, nil, true) + connMng := NewConnManager(cfg) + dm := NewDataManager(data, cfg.CacheCfg(), nil) + fltrs := NewFilterS(cfg, nil, dm) + Cache = NewCacheS(cfg, dm, nil) + newCDRSrv := NewCDRServer(cfg, storDBChan, dm, fltrs, connMng) + ccM := &ccMock{ + calls: map[string]func(ctx *context.Context, args interface{}, reply interface{}) error{ + utils.EeSv1ProcessEvent: func(ctx *context.Context, args, reply interface{}) error { + *reply.(*map[string]map[string]interface{}) = map[string]map[string]interface{}{} + return utils.ErrNotFound + }, + }, + } + rpcInternal := make(chan birpc.ClientConnector, 1) + rpcInternal <- ccM + newCDRSrv.connMgr.AddInternalConn(utils.ConcatenatedKey(utils.MetaInternal, + utils.MetaEEs), utils.ThresholdSv1, rpcInternal) + + cgrEv := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testID", + Event: map[string]interface{}{ + "Resources": "ResourceProfile1", + utils.AnswerTime: time.Date(2014, 7, 14, 14, 30, 0, 0, time.UTC), + "UsageInterval": "1s", + "PddInterval": "1s", + utils.Weight: "20.0", + utils.Usage: 135 * time.Second, + utils.Cost: 123.0, + }, + APIOpts: nil, + } + _, err := newCDRSrv.processEvent(context.Background(), cgrEv) + if err != nil { + t.Errorf("\nExpected <%+v> \n, received <%+v>", nil, err) + } + expected := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testID", + Event: map[string]interface{}{ + "Resources": "ResourceProfile1", + utils.AnswerTime: time.Date(2014, 7, 14, 14, 30, 0, 0, time.UTC), + "UsageInterval": "1s", + "PddInterval": "1s", + utils.Weight: "20.0", + utils.Usage: 135 * time.Second, + utils.Cost: 123.0, + }, + APIOpts: nil, + } + if !reflect.DeepEqual(expected, cgrEv) { + t.Errorf("\nExpected <%+v> \n,received <%+v>", expected, cgrEv) + } +} + +func TestCDRsProcessEventMockStats(t *testing.T) { + testCache := Cache + tmpC := config.CgrConfig() + tmpCM := connMgr + defer func() { + Cache = testCache + config.SetCgrConfig(tmpC) + connMgr = tmpCM + }() + + var sent StorDB + cfg := config.NewDefaultCGRConfig() + cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, + utils.MetaEEs)} + storDBChan := make(chan StorDB, 1) + storDBChan <- sent + data := NewInternalDB(nil, nil, true) + connMng := NewConnManager(cfg) + dm := NewDataManager(data, cfg.CacheCfg(), nil) + fltrs := NewFilterS(cfg, nil, dm) + Cache = NewCacheS(cfg, dm, nil) + newCDRSrv := NewCDRServer(cfg, storDBChan, dm, fltrs, connMng) + ccM := &ccMock{ + calls: map[string]func(ctx *context.Context, args interface{}, reply interface{}) error{ + utils.EeSv1ProcessEvent: func(ctx *context.Context, args, reply interface{}) error { + *reply.(*map[string]map[string]interface{}) = map[string]map[string]interface{}{} + return utils.ErrNotFound + }, + }, + } + rpcInternal := make(chan birpc.ClientConnector, 1) + rpcInternal <- ccM + newCDRSrv.connMgr.AddInternalConn(utils.ConcatenatedKey(utils.MetaInternal, + utils.MetaEEs), utils.ThresholdSv1, rpcInternal) + + cgrEv := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testID", + Event: map[string]interface{}{ + "Resources": "ResourceProfile1", + utils.AnswerTime: time.Date(2014, 7, 14, 14, 30, 0, 0, time.UTC), + "UsageInterval": "1s", + "PddInterval": "1s", + utils.Weight: "20.0", + utils.Usage: 135 * time.Second, + utils.Cost: 123.0, + }, + APIOpts: nil, + } + _, err := newCDRSrv.processEvent(context.Background(), cgrEv) + if err != nil { + t.Errorf("\nExpected <%+v> \n, received <%+v>", nil, err) + } + expected := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "testID", + Event: map[string]interface{}{ + "Resources": "ResourceProfile1", + utils.AnswerTime: time.Date(2014, 7, 14, 14, 30, 0, 0, time.UTC), + "UsageInterval": "1s", + "PddInterval": "1s", + utils.Weight: "20.0", + utils.Usage: 135 * time.Second, + utils.Cost: 123.0, + }, + APIOpts: nil, + } + if !reflect.DeepEqual(expected, cgrEv) { + t.Errorf("\nExpected <%+v> \n,received <%+v>", expected, cgrEv) + } +}