coverage tests at engine

This commit is contained in:
gezimbll
2022-11-15 09:48:41 -05:00
committed by Dan Christian Bogos
parent e7520002eb
commit 57548fa154
3 changed files with 270 additions and 6 deletions

View File

@@ -23,6 +23,7 @@ import (
"testing"
"time"
"github.com/cgrates/cgrates/config"
"github.com/cgrates/cgrates/utils"
)
@@ -254,3 +255,31 @@ func TestActionTriggerCreateBalance(t *testing.T) {
}
}
func TestATExecute(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
at := &ActionTrigger{
ID: "id",
UniqueID: "uid",
ThresholdType: "*min_event_counter",
Recurrent: true,
MinSleep: 10 * time.Minute,
LastExecutionTime: time.Date(0, 0, 0, 0, 0, 0, 0, time.Now().UTC().Location()),
}
ub := &Account{
ID: "acc_id",
BalanceMap: map[string]Balances{},
UnitCounters: UnitCounters{},
ActionTriggers: ActionTriggers{},
AllowNegative: false,
UpdateTime: time.Date(2019, 3, 1, 12, 0, 0, 0, time.UTC),
}
fltrs := NewFilterS(cfg, nil, dm)
if err := at.Execute(ub, fltrs); err == nil {
t.Error(err)
}
}

View File

@@ -1345,15 +1345,14 @@ func TestArgeesUnmarshalJSON(t *testing.T) {
t.Error(err)
} else if err = cgr.UnmarshalJSON([]byte(`{
"EeIDs":["eeid1","eeid2"],
"CGREvent":{
"Event":{
"CostDetails":"22"
}
}}`)); err != nil {
"Event":{
"CostDetails":{
"CGRID":"id1" }
}
}`)); err != nil {
t.Error(err)
}
}
func TestArgeesRPCClone(t *testing.T) {
attr := &CGREventWithEeIDs{

View File

@@ -240,3 +240,239 @@ func TestArgV1ProcessClone(t *testing.T) {
}
}
func TestCDRV1GetCDRs(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.GeneralCfg().DefaultTimezone = "UTC"
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
cdrS := &CDRServer{
cgrCfg: cfg,
connMgr: nil,
cdrDb: NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items),
dm: dm,
}
args := &utils.RPCCDRsFilterWithAPIOpts{
RPCCDRsFilter: &utils.RPCCDRsFilter{},
Tenant: "cgrates.org",
APIOpts: map[string]interface{}{},
}
cdrs := &[]*CDR{
{
CGRID: "cgrid"},
{
CGRID: "cgr1d",
},
}
if err := cdrS.V1GetCDRs(*args, cdrs); err == nil {
t.Error(err)
}
}
func TestCDRV1CountCDRs(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.GeneralCfg().DefaultTimezone = "UTC"
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
cdrS := &CDRServer{
cgrCfg: cfg,
connMgr: nil,
cdrDb: NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items),
dm: dm,
}
args := &utils.RPCCDRsFilterWithAPIOpts{
RPCCDRsFilter: &utils.RPCCDRsFilter{},
Tenant: "cgrates.org",
APIOpts: map[string]interface{}{},
}
i := int64(3)
if err := cdrS.V1CountCDRs(args, &i); err != nil {
t.Error(err)
}
}
func TestV1RateCDRs(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
cfg.GeneralCfg().DefaultTimezone = "UTC"
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
cdrS := &CDRServer{
cgrCfg: cfg,
connMgr: nil,
cdrDb: NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items),
dm: dm,
}
arg := &ArgRateCDRs{
Flags: []string{"flag1", "flag2", "flag3"},
Tenant: "cgrates",
RPCCDRsFilter: utils.RPCCDRsFilter{},
APIOpts: map[string]interface{}{},
}
reply := "reply"
if err := cdrS.V1RateCDRs(arg, &reply); err == nil {
t.Error(err)
}
}
func TestCDRServerThdsProcessEvent(t *testing.T) {
clMock := &ccMock{
calls: map[string]func(args interface{}, reply interface{}) error{
utils.ThresholdSv1ProcessEvent: func(args, reply interface{}) error {
rpl := &[]string{"event"}
*reply.(*[]string) = *rpl
return nil
},
},
}
clientconn := make(chan rpcclient.ClientConnector, 1)
clientconn <- clMock
cfg := config.NewDefaultCGRConfig()
connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ThresholdSConnsCfg): clientconn,
})
cfg.CdrsCfg().ThresholdSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.ThreshSConnsCfg)}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
cdrS := &CDRServer{
cgrCfg: cfg,
connMgr: connMgr,
cdrDb: db,
dm: dm,
}
crgEv := &utils.CGREvent{
Tenant: "cgrates.org",
ID: "id",
Time: utils.TimePointer(time.Date(2019, 12, 1, 15, 0, 0, 0, time.UTC)),
}
if err := cdrS.thdSProcessEvent(crgEv); err != nil {
t.Error(err)
}
}
func TestCDRServerStatSProcessEvent(t *testing.T) {
ccMock := &ccMock{
calls: map[string]func(args interface{}, reply interface{}) error{
utils.StatSv1ProcessEvent: func(args, reply interface{}) error {
rpl := &[]string{"status"}
*reply.(*[]string) = *rpl
return nil
},
},
}
clientconn := make(chan rpcclient.ClientConnector, 1)
clientconn <- ccMock
cfg := config.NewDefaultCGRConfig()
connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.StatSConnsCfg): clientconn,
})
cfg.CdrsCfg().StatSConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.StatSConnsCfg)}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
fltrs := NewFilterS(cfg, connMgr, dm)
cdrS := &CDRServer{
cgrCfg: cfg,
dm: dm,
filterS: fltrs,
cdrDb: db,
connMgr: connMgr,
}
crgEv := &utils.CGREvent{
Tenant: "cgrates.org",
ID: "id",
Time: utils.TimePointer(time.Date(2019, 12, 1, 15, 0, 0, 0, time.UTC)),
}
if err := cdrS.statSProcessEvent(crgEv); err != nil {
t.Error(err)
}
}
func TestCDRServerEesProcessEvent(t *testing.T) {
ccMock := &ccMock{
calls: map[string]func(args interface{}, reply interface{}) error{
utils.EeSv1ProcessEvent: func(args, reply interface{}) error {
rpls := &map[string]map[string]interface{}{
"eeS": {
"process": "event",
},
}
*reply.(*map[string]map[string]interface{}) = *rpls
return nil
},
},
}
clientconn := make(chan rpcclient.ClientConnector, 1)
clientconn <- ccMock
cfg := config.NewDefaultCGRConfig()
connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.EEsConnsCfg): clientconn,
})
cfg.CdrsCfg().EEsConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.EEsConnsCfg)}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), connMgr)
cdrS := &CDRServer{
cgrCfg: cfg,
cdrDb: db,
dm: dm,
connMgr: connMgr,
}
cgrEv := &CGREventWithEeIDs{
EeIDs: []string{"ees"},
CGREvent: &utils.CGREvent{
Tenant: "cgrates.org",
ID: "id",
Time: utils.TimePointer(time.Date(2019, 12, 1, 15, 0, 0, 0, time.UTC)),
},
}
if err := cdrS.eeSProcessEvent(cgrEv); err != nil {
t.Error(err)
}
}
func TestCDRefundEventCost(t *testing.T) {
cfg := config.NewDefaultCGRConfig()
ccMock := &ccMock{
calls: map[string]func(args interface{}, reply interface{}) error{
utils.ResponderRefundIncrements: func(args, reply interface{}) error {
return nil
},
},
}
ec := &EventCost{
CGRID: "event",
RunID: "runid",
}
clientconn := make(chan rpcclient.ClientConnector, 1)
clientconn <- ccMock
connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{
utils.ConcatenatedKey(utils.MetaInternal, utils.ResponderRefundIncrements): clientconn,
})
cfg.CdrsCfg().RaterConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.ResponderRefundIncrements)}
db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items)
dm := NewDataManager(db, cfg.CacheCfg(), nil)
cdrS := &CDRServer{
cgrCfg: cfg,
cdrDb: db,
dm: dm,
connMgr: connMgr,
}
if _, err := cdrS.refundEventCost(ec, "*postpaid", "tor"); err != nil {
t.Error(err)
}
}