From cf720550cb83d8836fbeb771d555d4bb46770d83 Mon Sep 17 00:00:00 2001 From: gezimbll Date: Thu, 3 Aug 2023 10:56:40 -0400 Subject: [PATCH] Improving coverage tests --- engine/exportrequest_test.go | 39 +++++++++++++++-- engine/routes_test.go | 81 ++++++++++++++++++++++++++++++++++++ 2 files changed, 117 insertions(+), 3 deletions(-) diff --git a/engine/exportrequest_test.go b/engine/exportrequest_test.go index 2e20a1f3b..b04b760c2 100644 --- a/engine/exportrequest_test.go +++ b/engine/exportrequest_test.go @@ -563,9 +563,7 @@ func TestExportRequestSetFields(t *testing.T) { } onm.Append(fullPath, val) cfg := config.NewDefaultCGRConfig() - db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items) - dm := NewDataManager(db, config.CgrConfig().CacheCfg(), nil) eeR := &ExportRequest{ inData: map[string]utils.DataStorage{ @@ -591,7 +589,6 @@ func TestExportRequestSetFields(t *testing.T) { Path: "<*uch;*opts>", }, } - if err = eeR.SetFields(fctTemp); err == nil || err.Error() != fmt.Sprint("unsupported field prefix: <*uch*opts> when set field") { t.Error(err) } @@ -634,3 +631,39 @@ func TestExportRequestParseFieldErr(t *testing.T) { } } + +func TestExportRequestSetFields2(t *testing.T) { + + inData := map[string]utils.DataStorage{ + utils.MetaReq: utils.MapStorage{ + "Account": "1001", + "Usage": "10m", + }, + } + onm := utils.NewOrderedNavigableMap() + + fullPath := &utils.FullPath{ + PathSlice: []string{utils.MetaReq, utils.MetaTenant}, + Path: utils.MetaTenant, + } + val := &utils.DataLeaf{ + Data: "value1", + } + onm.Append(fullPath, val) + expData := map[string]*utils.OrderedNavigableMap{ + utils.MetaReq: onm, + } + eventReq := NewExportRequest(inData, "cgrates.org", nil, expData) + tpFields := []*config.FCTemplate{ + { + Tag: "Tenant", + Path: utils.MetaReq + utils.NestingSep + utils.AccountField, + Type: utils.MetaGroup, + Value: config.NewRSRParsersMustCompile("cgrates.org", utils.InfieldSep), + }, + } + tpFields[0].ComputePath() + if err := eventReq.SetFields(tpFields); err != nil { + t.Error(err) + } +} diff --git a/engine/routes_test.go b/engine/routes_test.go index 46284bf79..e12eaf301 100644 --- a/engine/routes_test.go +++ b/engine/routes_test.go @@ -2362,3 +2362,84 @@ func TestRouteServiceV1GetRoutesErr(t *testing.T) { }) } } + +func TestRouteServiceSortRoutesQos(t *testing.T) { + cfg := config.NewDefaultCGRConfig() + clientConn := make(chan rpcclient.ClientConnector, 1) + rsp := &Responder{} + tmpDm := dm + defer func() { + SetDataStorage(tmpDm) + }() + clientConn <- &ccMock{ + calls: map[string]func(args any, reply any) error{ + utils.ResponderGetMaxSessionTimeOnAccounts: func(args, reply any) error { + return rsp.GetMaxSessionTimeOnAccounts(args.(*utils.GetMaxSessionTimeOnAccountsArgs), reply.(*map[string]any)) + }, + }, + } + cfg.RouteSCfg().RALsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs)} + dm := NewDataManager(NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items), cfg.CacheCfg(), nil) + SetDataStorage(dm) + rs := NewRouteService(dm, NewFilterS(cfg, nil, dm), cfg, NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{ + utils.ConcatenatedKey(utils.MetaInternal, utils.MetaRALs): clientConn, + })) + if err := dm.SetAccount(&Account{ + ID: "cgrates.org:1001", + BalanceMap: map[string]Balances{ + utils.MetaMonetary: { + &Balance{Value: 11, Weight: 20}, + }}, + }); err != nil { + t.Error(err) + } + rpp := &RouteProfile{ + Tenant: "cgrates.org", + ID: "ROUTE_ACNT_1001", + FilterIDs: []string{"*string:~*req.Account:1001"}, + Sorting: utils.MetaQOS, + + SortingParameters: []string{}, + Routes: []*Route{ + { + ID: "route1", + AccountIDs: []string{"1001"}, + RatingPlanIDs: []string{"RP_1002_LOW"}, + Weight: 10, + Blocker: false, + RouteParameters: "", + }, + { + ID: "route2", + AccountIDs: []string{"1001"}, + RatingPlanIDs: []string{"RP_1002"}, + Weight: 20, + Blocker: false, + RouteParameters: "", + }, + }, + Weight: 10, + } + if err := dm.SetRouteProfile(rpp, true); err != nil { + t.Error(err) + } + var reply SortedRoutesList + cgrEv := &utils.CGREvent{ + Tenant: "cgrates.org", + ID: "sortRoutesQosEvent1", + Event: map[string]any{ + utils.EventName: "SortEvent", + utils.ToR: utils.MetaVoice, + utils.OriginID: "123451", + utils.AccountField: "1001", + utils.Subject: "1001", + utils.Destination: "1002", + utils.Category: "call", + utils.SetupTime: time.Date(2023, 7, 14, 14, 25, 0, 0, time.UTC), + utils.Tenant: "cgrates.org", + utils.RequestType: utils.MetaPrepaid}, + } + if err := rs.V1GetRoutes(cgrEv, &reply); err == nil { + t.Error(err) + } +}