Improving unit tests coverage

This commit is contained in:
gezimbll
2023-04-13 11:05:25 -04:00
committed by Dan Christian Bogos
parent 8a6d262521
commit ddfded6c05
4 changed files with 201 additions and 0 deletions

View File

@@ -2553,6 +2553,63 @@ func TestAccountPublishAct(t *testing.T) {
ub.ExecuteActionTriggers(a)
}
func TestTestAccountActUnSetCurr(t *testing.T) {
cfg, _ := config.NewDefaultCGRConfig()
tmpDm := dm
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
defer func() {
cfg2, _ := config.NewDefaultCGRConfig()
config.SetCgrConfig(cfg2)
SetDataStorage(tmpDm)
}()
acc := &Account{
ID: "cgrates.org:1001",
BalanceMap: map[string]Balances{
utils.VOICE: {
&Balance{
Weight: 20,
DestinationIDs: utils.StringMap{"DEST1": true},
ExpirationDate: time.Date(2023, 3, 12, 0, 0, 0, 0, time.UTC),
},
},
},
ActionTriggers: 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},
},
}
a := &Action{
ActionType: utils.UNSET_RECURRENT,
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,
},
},
}
dm.SetActions("ACT_1", Actions{a}, utils.NonTransactional)
SetDataStorage(dm)
acc.ExecuteActionTriggers(a)
if acc, err := dm.GetAccount("cgrates.org:1001"); err != nil || acc.ActionTriggers[0].Recurrent {
t.Error(err)
}
}
/*********************************** Benchmarks *******************************/
func BenchmarkGetSecondForPrefix(b *testing.B) {

View File

@@ -354,3 +354,30 @@ func TestChargerV1ProcessEvent(t *testing.T) {
}
}
func TestChSListenAndServe(t *testing.T) {
cfg, _ := config.NewDefaultCGRConfig()
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
exitChan := make(chan bool)
go func() {
time.Sleep(3 * time.Millisecond)
exitChan <- true
}()
cS, err := NewChargerService(dm, nil, cfg, nil)
if err != nil {
t.Error(err)
}
go func() {
if err := cS.ListenAndServe(exitChan); err != nil {
t.Errorf("ListenAndServe returned an error: %v", err)
}
}()
time.Sleep(5 * time.Millisecond)
exitChan <- true
time.Sleep(5 * time.Millisecond)
}

View File

@@ -1217,5 +1217,98 @@ func TestRemoveDispatcherPrfRpl(t *testing.T) {
if err := dm.RemoveDispatcherProfile("cgrates.org", "DSP_Test2", utils.NonTransactional, true); err != nil {
t.Error(err)
}
}
func TestDMReconnect(t *testing.T) {
cfg, _ := config.NewDefaultCGRConfig()
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
if err := dm.Reconnect(cfg.GeneralCfg().DBDataEncoding, cfg.DataDbCfg()); err != nil {
t.Error(err)
}
}
func TestDMRemAccountActionPlans(t *testing.T) {
cfg, _ := config.NewDefaultCGRConfig()
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
acc := &Account{
ID: "cgrates.org:1001",
BalanceMap: map[string]Balances{
utils.MONETARY: {
&Balance{
Value: 10,
},
}}}
dm.SetAccount(acc)
apIDs := []string{"PACKAGE_10_SHARED_A_5", "USE_SHARED_A"}
if err := dm.SetAccountActionPlans(acc.ID, apIDs, false); err != nil {
t.Error(err)
}
if err := dm.RemAccountActionPlans(acc.ID, apIDs); err != nil {
t.Error(err)
}
}
func TestDMGetDispacherHost(t *testing.T) {
cfg, _ := config.NewDefaultCGRConfig()
cfg.DataDbCfg().Items[utils.MetaDispatcherHosts].Remote = true
cfg.DataDbCfg().RmtConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1)}
Cache.Clear(nil)
defer func() {
cfg2, _ := config.NewDefaultCGRConfig()
config.SetCgrConfig(cfg2)
}()
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
clientConn := make(chan rpcclient.ClientConnector, 1)
clientConn <- clMock(func(serviceMethod string, _, reply interface{}) error {
if serviceMethod == utils.ReplicatorSv1GetDispatcherHost {
rpl := &DispatcherHost{
Tenant: " cgrates.org",
ID: "DP_1",
}
*reply.(**DispatcherHost) = 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.GetDispatcherHost("cgrates.org", "DP_1", false, true, utils.NonTransactional); err != nil {
t.Error(err)
}
}
func TestDmRemoveStatQueue(t *testing.T) {
cfg, _ := config.NewDefaultCGRConfig()
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
cfg.DataDbCfg().RplConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.ReplicatorSv1)}
cfg.DataDbCfg().Items[utils.MetaStatQueues].Replicate = true
defer func() {
cfg2, _ := config.NewDefaultCGRConfig()
config.SetCgrConfig(cfg2)
}()
clientConn := make(chan rpcclient.ClientConnector, 1)
clientConn <- clMock(func(serviceMethod string, _, _ interface{}) error {
if serviceMethod == utils.ReplicatorSv1RemoveStatQueue {
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.RemoveStatQueue("cgrates.org", "SQ1", utils.NonTransactional); err != nil {
t.Error(err)
}
}

View File

@@ -725,3 +725,27 @@ func TestThSStoreThreshold(t *testing.T) {
t.Error(err)
}
}
func TestV1GetThreshold(t *testing.T) {
cfg, _ := config.NewDefaultCGRConfig()
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
thS, err := NewThresholdService(dm, cfg, nil)
if err != nil {
t.Error(err)
}
dm.SetThreshold(&Threshold{
Tenant: "cgrates.org",
ID: "TH_3",
Hits: 0,
})
var reply Threshold
tntID := &utils.TenantID{
Tenant: "cgrates.org",
ID: "TH_3",
}
if err := thS.V1GetThreshold(tntID, &reply); err != nil {
t.Error(err)
}
}