mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Add coverage tests for engine
This commit is contained in:
committed by
Dan Christian Bogos
parent
763d6c7134
commit
c3ec2bb909
@@ -374,6 +374,9 @@ func (dbM *DataDBMock) RemoveDispatcherProfileDrv(ctx *context.Context, tnt, id
|
||||
}
|
||||
|
||||
func (dbM *DataDBMock) GetItemLoadIDsDrv(ctx *context.Context, itemIDPrefix string) (loadIDs map[string]int64, err error) {
|
||||
if dbM.GetItemLoadIDsDrvF != nil {
|
||||
return dbM.GetItemLoadIDsDrvF(ctx, itemIDPrefix)
|
||||
}
|
||||
return nil, utils.ErrNotImplemented
|
||||
}
|
||||
|
||||
|
||||
@@ -10433,3 +10433,146 @@ func TestDMGetDispatcherHostCacheWriteErr2(t *testing.T) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestDMGetItemLoadIDsNilDM(t *testing.T) {
|
||||
|
||||
var dm *DataManager
|
||||
|
||||
_, err := dm.GetItemLoadIDs(context.Background(), "", false)
|
||||
if err != utils.ErrNoDatabaseConn {
|
||||
t.Errorf("\nExpected error <%+v>, \nReceived error <%+v>", utils.ErrNoDatabaseConn, err)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestDMGetItemLoadIDsSetSetLoadIDsDrvErr(t *testing.T) {
|
||||
|
||||
cfgtmp := config.CgrConfig()
|
||||
defer func() {
|
||||
config.SetCgrConfig(cfgtmp)
|
||||
Cache = NewCacheS(config.CgrConfig(), nil, nil, nil)
|
||||
}()
|
||||
|
||||
cfg := config.NewDefaultCGRConfig()
|
||||
cfg.DataDbCfg().Items[utils.MetaLoadIDs].Remote = true
|
||||
cfg.DataDbCfg().RmtConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.RemoteConnsCfg)}
|
||||
config.SetCgrConfig(cfg)
|
||||
|
||||
cc := make(chan birpc.ClientConnector, 1)
|
||||
cc <- &ccMock{
|
||||
|
||||
calls: map[string]func(ctx *context.Context, args interface{}, reply interface{}) error{
|
||||
utils.ReplicatorSv1GetItemLoadIDs: func(ctx *context.Context, args, reply interface{}) error { return nil },
|
||||
},
|
||||
}
|
||||
|
||||
itmLIDs := map[string]int64{
|
||||
"ID_1": 21,
|
||||
}
|
||||
|
||||
cM := NewConnManager(cfg)
|
||||
cM.AddInternalConn(utils.ConcatenatedKey(utils.MetaInternal, utils.RemoteConnsCfg), utils.ReplicatorSv1, cc)
|
||||
data := &DataDBMock{
|
||||
GetItemLoadIDsDrvF: func(ctx *context.Context, itemIDPrefix string) (loadIDs map[string]int64, err error) {
|
||||
return itmLIDs, utils.ErrNotFound
|
||||
},
|
||||
SetLoadIDsDrvF: func(ctx *context.Context, loadIDs map[string]int64) error { return utils.ErrNotImplemented },
|
||||
}
|
||||
dm := NewDataManager(data, cfg.CacheCfg(), cM)
|
||||
|
||||
_, err := dm.GetItemLoadIDs(context.Background(), cfg.GeneralCfg().DefaultTenant, false)
|
||||
if err != utils.ErrNotImplemented {
|
||||
t.Errorf("Expected error <%v>, received error <%v>", utils.ErrNotImplemented, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDMGetItemLoadIDsCacheWriteErr1(t *testing.T) {
|
||||
|
||||
itmLIDs := map[string]int64{
|
||||
"ID_1": 21,
|
||||
}
|
||||
|
||||
cfgtmp := config.CgrConfig()
|
||||
defer func() {
|
||||
Cache = NewCacheS(config.CgrConfig(), nil, nil, nil)
|
||||
config.SetCgrConfig(cfgtmp)
|
||||
}()
|
||||
|
||||
cfg := config.NewDefaultCGRConfig()
|
||||
cfg.CacheCfg().ReplicationConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator)}
|
||||
cfg.CacheCfg().Partitions[utils.CacheLoadIDs].Replicate = true
|
||||
config.SetCgrConfig(cfg)
|
||||
|
||||
cc := make(chan birpc.ClientConnector, 1)
|
||||
cc <- &ccMock{
|
||||
|
||||
calls: map[string]func(ctx *context.Context, args interface{}, reply interface{}) error{
|
||||
utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply interface{}) error {
|
||||
|
||||
return utils.ErrNotImplemented
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
cM := NewConnManager(cfg)
|
||||
cM.AddInternalConn(utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator), utils.CacheSv1, cc)
|
||||
|
||||
data := &DataDBMock{
|
||||
GetItemLoadIDsDrvF: func(ctx *context.Context, itemIDPrefix string) (loadIDs map[string]int64, err error) {
|
||||
return itmLIDs, utils.ErrNotFound
|
||||
},
|
||||
}
|
||||
|
||||
dm := NewDataManager(data, cfg.CacheCfg(), cM)
|
||||
|
||||
Cache = NewCacheS(cfg, dm, cM, nil)
|
||||
|
||||
_, err := dm.GetItemLoadIDs(context.Background(), cfg.GeneralCfg().DefaultTenant, true)
|
||||
if err != utils.ErrNotImplemented {
|
||||
t.Errorf("Expected error <%v>, received error <%v>", utils.ErrNotImplemented, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDMGetItemLoadIDsCacheWriteErr2(t *testing.T) {
|
||||
|
||||
cfgtmp := config.CgrConfig()
|
||||
defer func() {
|
||||
Cache = NewCacheS(config.CgrConfig(), nil, nil, nil)
|
||||
config.SetCgrConfig(cfgtmp)
|
||||
}()
|
||||
|
||||
cfg := config.NewDefaultCGRConfig()
|
||||
cfg.CacheCfg().ReplicationConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator)}
|
||||
cfg.CacheCfg().Partitions[utils.CacheLoadIDs].Replicate = true
|
||||
config.SetCgrConfig(cfg)
|
||||
|
||||
data := NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
|
||||
|
||||
cc := make(chan birpc.ClientConnector, 1)
|
||||
cc <- &ccMock{
|
||||
|
||||
calls: map[string]func(ctx *context.Context, args interface{}, reply interface{}) error{
|
||||
utils.CacheSv1ReplicateSet: func(ctx *context.Context, args, reply interface{}) error { return utils.ErrNotImplemented },
|
||||
},
|
||||
}
|
||||
|
||||
cM := NewConnManager(cfg)
|
||||
cM.AddInternalConn(utils.ConcatenatedKey(utils.MetaInternal, utils.MetaReplicator), utils.CacheSv1, cc)
|
||||
dm := NewDataManager(data, cfg.CacheCfg(), cM)
|
||||
|
||||
itmLIDs := map[string]int64{
|
||||
"ID_1": 21,
|
||||
}
|
||||
|
||||
if err := dm.dataDB.SetLoadIDsDrv(context.Background(), itmLIDs); err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
||||
Cache = NewCacheS(cfg, dm, cM, nil)
|
||||
|
||||
_, err := dm.GetItemLoadIDs(context.Background(), cfg.GeneralCfg().DefaultTenant, true)
|
||||
if err != utils.ErrNotImplemented {
|
||||
t.Errorf("Expected error <%v>, received error <%v>", utils.ErrNotImplemented, err)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -635,3 +635,94 @@ func TestGetRatesFromCacheObjValNil(t *testing.T) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestGetRevFltrIdxHealthFromRateRatesGetKeysForPrefixErr(t *testing.T) {
|
||||
|
||||
cfg := config.NewDefaultCGRConfig()
|
||||
data := &DataDBMock{
|
||||
GetIndexesDrvF: func(ctx *context.Context, idxItmType, tntCtx, idxKey, transactionID string) (indexes map[string]utils.StringSet, err error) {
|
||||
return nil, utils.ErrNotImplemented
|
||||
},
|
||||
}
|
||||
dm := NewDataManager(data, cfg.CacheCfg(), nil)
|
||||
|
||||
useLtcache := ltcache.NewCache(0, 0, false, nil)
|
||||
|
||||
expErr := "unsupported prefix in GetKeysForPrefix: "
|
||||
if _, err := getRevFltrIdxHealthFromRateRates(context.Background(), dm, useLtcache, useLtcache, useLtcache); err != utils.ErrNotImplemented {
|
||||
t.Errorf("Expected error <%v>, Received error <%v>", expErr, err)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestGetRevFltrIdxHealthFromRateRatesGetRatesFromCacheErr(t *testing.T) {
|
||||
|
||||
defer func() {
|
||||
Cache = NewCacheS(config.CgrConfig(), nil, nil, nil)
|
||||
}()
|
||||
|
||||
cfg := config.NewDefaultCGRConfig()
|
||||
db := NewInternalDB(nil, nil, cfg.DataDbCfg().Items)
|
||||
dm := NewDataManager(db, cfg.CacheCfg(), nil)
|
||||
|
||||
if err := dm.SetAttributeProfile(context.Background(), &AttributeProfile{
|
||||
Tenant: "cgrates.org",
|
||||
ID: "ATTR1",
|
||||
FilterIDs: []string{"*string:~*req.Account:1001", "Fltr1", "Fltr3"},
|
||||
}, false); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if err := dm.SetFilter(context.Background(), &Filter{
|
||||
Tenant: "cgrates.org",
|
||||
ID: "Fltr3",
|
||||
}, false); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if err := dm.SetIndexes(context.Background(), utils.CacheReverseFilterIndexes, "cgrates.org:Fltr2",
|
||||
map[string]utils.StringSet{utils.CacheAttributeFilterIndexes: {"ATTR1": {}, "ATTR2": {}}},
|
||||
true, utils.NonTransactional); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if err := dm.SetRateProfile(context.Background(), &utils.RateProfile{
|
||||
Tenant: "cgrates.org",
|
||||
ID: "RP1",
|
||||
Rates: map[string]*utils.Rate{
|
||||
"RT1": {
|
||||
ID: "RT1",
|
||||
FilterIDs: []string{"Fltr3"},
|
||||
},
|
||||
},
|
||||
}, false, false); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
useLtcache := ltcache.NewCache(20, 20*time.Second, true, nil)
|
||||
useLtcache.Set("cgrates.org:RP1", nil, []string{})
|
||||
|
||||
if _, err := getRevFltrIdxHealthFromRateRates(context.Background(), dm, useLtcache, useLtcache, useLtcache); err != utils.ErrNotFound {
|
||||
t.Errorf("Expected error <%v>, Received error <%v>", utils.ErrNotFound, err)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestGetFltrIdxHealthForRateRatesGetKeysForPrefixErr(t *testing.T) {
|
||||
|
||||
cfg := config.NewDefaultCGRConfig()
|
||||
data := &DataDBMock{
|
||||
GetIndexesDrvF: func(ctx *context.Context, idxItmType, tntCtx, idxKey, transactionID string) (indexes map[string]utils.StringSet, err error) {
|
||||
return nil, utils.ErrNotImplemented
|
||||
},
|
||||
}
|
||||
dm := NewDataManager(data, cfg.CacheCfg(), nil)
|
||||
|
||||
useLtcache := ltcache.NewCache(-1, 0, false, nil)
|
||||
|
||||
expErr := "unsupported prefix in GetKeysForPrefix: "
|
||||
if _, err := GetFltrIdxHealthForRateRates(context.Background(), dm, useLtcache, useLtcache, useLtcache); err != utils.ErrNotImplemented {
|
||||
t.Errorf("Expected error <%v>, Received error <%v>", expErr, err)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user