From 0609da12ed157277a5f6ff5a48000b84d0d3a230 Mon Sep 17 00:00:00 2001 From: ionutboangiu Date: Mon, 5 Jul 2021 10:41:36 +0300 Subject: [PATCH] Cover funcs from engine/resources.go --- engine/z_resources_test.go | 186 +++++++++++++++++-------------------- 1 file changed, 86 insertions(+), 100 deletions(-) diff --git a/engine/z_resources_test.go b/engine/z_resources_test.go index 2ff580479..c66a3b05f 100644 --- a/engine/z_resources_test.go +++ b/engine/z_resources_test.go @@ -6200,110 +6200,96 @@ func TestResourcesV1ReleaseResourcesCacheReplySet(t *testing.T) { config.SetCgrConfig(config.NewDefaultCGRConfig()) } -// func TestResourcesV1ReleaseResourcesProcessThErr(t *testing.T) { -// tmp := Cache -// defer func() { -// Cache = tmp -// }() +func TestResourcesV1ReleaseResourcesProcessThErr(t *testing.T) { + tmp := Cache + defer func() { + Cache = tmp + }() -// Cache.Clear(nil) -// cfg := config.NewDefaultCGRConfig() -// cfg.ResourceSCfg().StoreInterval = 2 -// cfg.ResourceSCfg().ThresholdSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds)} -// data := NewInternalDB(nil, nil, true) -// dm := NewDataManager(data, cfg.CacheCfg(), nil) -// Cache = NewCacheS(cfg, dm, nil) + Cache.Clear(nil) + cfg := config.NewDefaultCGRConfig() + cfg.ResourceSCfg().StoreInterval = 2 + cfg.ResourceSCfg().ThresholdSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds)} + data := NewInternalDB(nil, nil, true) + dm := NewDataManager(data, cfg.CacheCfg(), nil) + Cache = NewCacheS(cfg, dm, nil) + ccM := &ccMock{ + calls: map[string]func(args interface{}, reply interface{}) error{ + utils.ThresholdSv1ProcessEvent: func(args, reply interface{}) error { + return utils.ErrExists + }, + }, + } + rpcInternal := make(chan rpcclient.ClientConnector, 1) + rpcInternal <- ccM + cM := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{ + utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds): rpcInternal, + }) -// rsPrf := &ResourceProfile{ -// Tenant: "cgrates.org", -// ID: "RES1", -// FilterIDs: []string{"*string:~*req.Account:1001"}, -// ThresholdIDs: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds)}, -// AllocationMessage: "Approved", -// Weight: 10, -// Limit: -1, -// UsageTTL: time.Minute, -// } -// rs := &Resource{ -// rPrf: rsPrf, -// Tenant: "cgrates.org", -// ID: "RES1", -// Usages: map[string]*ResourceUsage{ -// "RU1": { -// Tenant: "cgrates.org", -// ID: "RU1", -// Units: 4, -// }, -// }, -// dirty: utils.BoolPointer(false), -// tUsage: utils.Float64Pointer(10), -// ttl: utils.DurationPointer(time.Minute), -// TTLIdx: []string{}, -// } + rsPrf := &ResourceProfile{ + Tenant: "cgrates.org", + ID: "RES1", + FilterIDs: []string{"*string:~*req.Account:1001"}, + ThresholdIDs: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds)}, + AllocationMessage: "Approved", + Weight: 10, + Limit: -1, + UsageTTL: time.Minute, + } + rs := &Resource{ + rPrf: rsPrf, + Tenant: "cgrates.org", + ID: "RES1", + Usages: map[string]*ResourceUsage{ + "RU_Test": { + Tenant: "cgrates.org", + ID: "RU_Test", + Units: 4, + }, + }, + dirty: utils.BoolPointer(false), + tUsage: utils.Float64Pointer(10), + ttl: utils.DurationPointer(time.Minute), + TTLIdx: []string{}, + } -// err := dm.SetResourceProfile(rsPrf, true) -// if err != nil { -// t.Error(err) -// } -// err = dm.SetResource(rs) -// if err != nil { -// t.Error(err) -// } + err := dm.SetResourceProfile(rsPrf, true) + if err != nil { + t.Error(err) + } + err = dm.SetResource(rs) + if err != nil { + t.Error(err) + } -// fltrs := NewFilterS(cfg, nil, dm) -// rS := NewResourceService(dm, cfg, fltrs, nil) + fltrs := NewFilterS(cfg, nil, dm) + rS := NewResourceService(dm, cfg, fltrs, cM) -// args := utils.ArgRSv1ResourceUsage{ -// CGREvent: &utils.CGREvent{ -// ID: "EventAuthorizeResource", -// Event: map[string]interface{}{ -// utils.AccountField: "1001", -// }, -// }, -// UsageID: "RU_Test", -// UsageTTL: utils.DurationPointer(time.Minute), -// Units: 5, -// } + args := utils.ArgRSv1ResourceUsage{ + CGREvent: &utils.CGREvent{ + ID: "EventAuthorizeResource", + Event: map[string]interface{}{ + utils.AccountField: "1001", + }, + }, + UsageID: "RU_Test", + UsageTTL: utils.DurationPointer(time.Minute), + Units: 5, + } + var reply string + var resources Resources + resources = append(resources, rs) + if _, err := resources.allocateResource(&ResourceUsage{ + Tenant: "cgrates.org", + ID: "RU_ID", + Units: 1}, true); err != nil { + t.Error(err) + } -// ccM := &ccMock{ -// calls: map[string]func(args interface{}, reply interface{}) error{ -// utils.ThresholdSv1ProcessEvent: func(args, reply interface{}) error { -// return nil -// }, -// }, -// } -// rpcInternal := make(chan rpcclient.ClientConnector, 1) -// rpcInternal <- ccM -// cM := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{ -// utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds): rpcInternal, -// }) -// rS.connMgr = cM + if err := rS.V1ReleaseResources(args, &reply); err == nil || + err != utils.ErrExists { + t.Errorf("expected: <%+v>, \nreceived: <%+v>", utils.ErrExists, err) + } -// var reply string -// if err := rS.V1AllocateResources(args, &reply); err != nil { -// t.Error(err) -// } else if reply != "Approved" { -// t.Errorf("Unexpected reply returned: %q", reply) -// } - -// ccM = &ccMock{ -// calls: map[string]func(args interface{}, reply interface{}) error{ -// utils.ThresholdSv1ProcessEvent: func(args, reply interface{}) error { -// return utils.ErrExists -// }, -// }, -// } -// rpcInternal = make(chan rpcclient.ClientConnector, 1) -// rpcInternal <- ccM -// cM = NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{ -// utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds): rpcInternal, -// }) -// rS.connMgr = cM - -// if err := rS.V1ReleaseResources(args, &reply); err != nil { -// t.Error(err) -// } else if reply != utils.OK { -// t.Errorf("Unexpected reply returned: %q", reply) -// } -// dm.DataDB().Flush(utils.EmptyString) -// } + dm.DataDB().Flush(utils.EmptyString) +}