Improving coverage of unit tests

This commit is contained in:
gezimbll
2023-04-20 10:55:54 -04:00
committed by Dan Christian Bogos
parent c4ca1d1315
commit 9f56532a4c
3 changed files with 214 additions and 7 deletions

View File

@@ -677,8 +677,11 @@ func TestCDRSThDSProcessEvent(t *testing.T) {
// t.Error(err)
// }
// }
<<<<<<< HEAD
<<<<<<< Updated upstream
=======
=======
>>>>>>> 9e7231e3a (Improving coverage of unit tests)
func TestCDRSV1StoreSessionCostCache(t *testing.T) {
cfg, _ := config.NewDefaultCGRConfig()
@@ -781,6 +784,7 @@ func TestCDRsV1ProcessEventAll(t *testing.T) {
if err := cdrS.V1ProcessEvent(arg, &reply); err == nil { //unfinished
t.Error(err)
}
<<<<<<< HEAD
}
func TestCDRSV2StoreCache(t *testing.T) {
@@ -916,3 +920,7 @@ func TestCDRSV1ProcessCDRCache(t *testing.T) {
}
>>>>>>> Stashed changes
=======
}
>>>>>>> 9e7231e3a (Improving coverage of unit tests)

View File

@@ -1446,3 +1446,174 @@ func TestDmGetRatingPlanRmt(t *testing.T) {
t.Error(err)
}
}
func TestDMGetTimingRmt(t *testing.T) {
cfg, _ := config.NewDefaultCGRConfig()
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
cfg.DataDbCfg().Items[utils.MetaTimings].Remote = true
cfg.DataDbCfg().RmtConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1)}
Cache.Clear(nil)
defer func() {
cfg2, _ := config.NewDefaultCGRConfig()
config.SetCgrConfig(cfg2)
}()
clientConn := make(chan rpcclient.ClientConnector, 1)
clientConn <- clMock(func(serviceMethod string, _, reply interface{}) error {
if serviceMethod == utils.ReplicatorSv1GetTiming {
rpl := &utils.TPTiming{
ID: "WEEKENDS",
Years: utils.Years{},
Months: utils.Months{},
MonthDays: utils.MonthDays{},
WeekDays: utils.WeekDays{time.Saturday, time.Sunday},
StartTime: "00:00:00",
}
*reply.(**utils.TPTiming) = rpl
return nil
}
return utils.ErrNotImplemented
})
connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
config.SetCgrConfig(cfg)
if _, err := dm.GetTiming("ALWAYS", true, utils.NonTransactional); err != nil {
t.Error(err)
}
}
func TestSetResourceProfileRPl(t *testing.T) {
cfg, _ := config.NewDefaultCGRConfig()
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
cfg.DataDbCfg().Items[utils.MetaResourceProfile].Remote = true
cfg.DataDbCfg().RmtConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1)}
Cache.Clear(nil)
defer func() {
cfg2, _ := config.NewDefaultCGRConfig()
config.SetCgrConfig(cfg2)
}()
clientConn := make(chan rpcclient.ClientConnector, 1)
clientConn <- clMock(func(serviceMethod string, _, reply interface{}) error {
if serviceMethod == utils.ReplicatorSv1GetResourceProfile {
rpl := &ResourceProfile{
Tenant: "cgrates.org",
ID: "RES_TEST",
FilterIDs: []string{"FLTR_1"},
ActivationInterval: &utils.ActivationInterval{
ActivationTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
ExpiryTime: time.Date(2014, 7, 14, 14, 25, 0, 0, time.UTC),
},
UsageTTL: time.Duration(-1),
Limit: 2,
AllocationMessage: "",
Weight: 20,
ThresholdIDs: []string{utils.META_NONE},
}
*reply.(**ResourceProfile) = rpl
return nil
}
return utils.ErrNotImplemented
})
connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
config.SetCgrConfig(cfg)
if _, err := dm.GetResourceProfile("cgrates.org", "RES_TEST", false, false, utils.NonTransactional); err != nil {
t.Error(err)
}
}
func TestDMGetActionTriggersRmt(t *testing.T) {
cfg, _ := config.NewDefaultCGRConfig()
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
cfg.DataDbCfg().Items[utils.MetaActionTriggers].Remote = true
cfg.DataDbCfg().RmtConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1)}
Cache.Clear(nil)
defer func() {
cfg2, _ := config.NewDefaultCGRConfig()
config.SetCgrConfig(cfg2)
}()
clientConn := make(chan rpcclient.ClientConnector, 1)
clientConn <- clMock(func(serviceMethod string, _, reply interface{}) error {
if serviceMethod == utils.ReplicatorSv1GetActionTriggers {
rpl := ActionTriggers{
&ActionTrigger{
Recurrent: true,
Balance: &BalanceFilter{
Type: utils.StringPointer(utils.VOICE),
ExpirationDate: utils.TimePointer(time.Date(2023, 3, 12, 0, 0, 0, 0, time.UTC)),
Weight: utils.Float64Pointer(20),
DestinationIDs: &utils.StringMap{
"DEST1": true,
},
},
ThresholdValue: 2,
ThresholdType: utils.TRIGGER_BALANCE_EXPIRED,
ActionsID: "ACT_1",
Executed: false,
},
}
*reply.(*ActionTriggers) = rpl
return nil
}
return utils.ErrNotImplemented
})
connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
config.SetCgrConfig(cfg)
if _, err := dm.GetActionTriggers("ACT_1", true, ""); err == nil {
t.Error(err)
}
//unfinished
}
func TestDMRemSQPRepl(t *testing.T) {
cfg, _ := config.NewDefaultCGRConfig()
defer func() {
cfg2, _ := config.NewDefaultCGRConfig()
config.SetCgrConfig(cfg2)
}()
cfg.DataDbCfg().Items[utils.MetaStatQueueProfiles].Replicate = true
cfg.DataDbCfg().RplConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1)}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
clientConn := make(chan rpcclient.ClientConnector, 1)
clientConn <- clMock(func(serviceMethod string, _, _ interface{}) error {
if serviceMethod == utils.ReplicatorSv1RemoveStatQueueProfile {
return nil
}
return utils.ErrNotImplemented
})
connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1): clientConn,
})
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
dm.SetStatQueueProfile(&StatQueueProfile{
Tenant: "cgrates.org",
ID: "SQ1",
QueueLength: 10,
TTL: time.Duration(0) * time.Second,
Metrics: []*MetricWithFilters{
{
MetricID: utils.MetaACD,
},
},
Blocker: false,
Stored: true,
Weight: float64(0),
MinItems: 0}, true)
config.SetCgrConfig(cfg)
if err := dm.RemoveStatQueueProfile("cgrates.org", "SQ1", "", true); err != nil {
t.Error(err)
}
}

View File

@@ -25,6 +25,7 @@ import (
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
"github.com/cgrates/rpcclient"
)
var (
@@ -669,12 +670,25 @@ func TestStatProcessEvent2(t *testing.T) {
defer func() {
dm = tpDm
}()
cfg.StatSCfg().ThresholdSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds)}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
sts, err := NewStatService(dm, cfg, nil, nil)
clientConn := make(chan rpcclient.ClientConnector, 1)
clientConn <- clMock(func(serviceMethod string, _, _ interface{}) error {
if serviceMethod == utils.ThresholdSv1ProcessEvent {
return nil
}
return utils.ErrNotImplemented
})
connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds): clientConn,
})
sts, err := NewStatService(dm, cfg, NewFilterS(cfg, nil, dm), connMgr)
if err != nil {
t.Error(err)
}
args := &StatsArgsProcessEvent{
CGREvent: &utils.CGREvent{
Tenant: "cgrates.org",
@@ -696,9 +710,9 @@ func TestStatProcessEvent2(t *testing.T) {
ID: "FLTR_TH_Stats1",
Rules: []*FilterRule{
{
Type: "*lt",
Element: "~*req.Cost",
Values: []string{"120.0"},
Type: utils.MetaString,
Element: "~*req.Account",
Values: []string{"1001"},
},
},
}
@@ -710,15 +724,29 @@ func TestStatProcessEvent2(t *testing.T) {
Metrics: []*MetricWithFilters{{
MetricID: "*sum:~*req.Usage",
}},
ThresholdIDs: []string{utils.META_NONE},
ThresholdIDs: []string{"Th1"},
Blocker: true,
Stored: true,
Weight: 20,
MinItems: 0,
}, true)
dm.SetStatQueue(&StatQueue{
Tenant: "cgrates.org",
ID: "STS_PoccessCDR",
SQMetrics: map[string]StatMetric{
utils.MetaASR: &StatASR{
Answered: 2,
Count: 3,
Events: map[string]*StatWithCompress{
"cgrates.org:ev1": {Stat: 1},
},
},
},
})
SetDataStorage(dm)
if _, err := sts.processEvent(args); err == nil {
if _, err := sts.processEvent(args); err != nil {
t.Error(err)
}
//unfinished
}