diff --git a/engine/actions_test.go b/engine/actions_test.go index e46e04b34..7eccf29f5 100644 --- a/engine/actions_test.go +++ b/engine/actions_test.go @@ -3209,3 +3209,38 @@ func TestResetTreshold(t *testing.T) { } } + +func TestEnableDisableAccountAction(t *testing.T) { + + var acc *Account + expErr := "nil account" + if err := enableAccountAction(acc, nil, nil, nil, nil); err == nil || err.Error() != expErr { + t.Errorf("expected %+v ,received %v", expErr, err) + } else if err = disableAccountAction(acc, nil, nil, nil, nil); err == nil || err.Error() != expErr { + t.Errorf("expected %+v ,received %v", expErr, err) + } else if err = genericDebit(acc, nil, true, nil); err == nil || err.Error() != expErr { + t.Errorf("expected %+v ,received %v", expErr, err) + } else if err = resetCountersAction(acc, nil, nil, nil, nil); err == nil || err.Error() != expErr { + t.Errorf("expected %+v ,received %v", expErr, err) + } else if err = debitAction(acc, nil, nil, nil, nil); err == nil || err.Error() != expErr { + t.Errorf("expected %+v ,received %v", expErr, err) + } else if err = debitResetAction(acc, nil, nil, nil, nil); err == nil || err.Error() != expErr { + t.Errorf("expected %+v ,received %v", expErr, err) + } else if err = topupAction(acc, nil, nil, nil, nil); err == nil || err.Error() != expErr { + t.Errorf("expected %+v ,received %v", expErr, err) + } else if err = topupResetAction(acc, nil, nil, nil, nil); err == nil || err.Error() != expErr { + t.Errorf("expected %+v ,received %v", expErr, err) + } else if err = resetAccountAction(acc, nil, nil, nil, nil); err == nil || err.Error() != expErr { + t.Errorf("expected %+v ,received %v", expErr, err) + } else if err = denyNegativeAction(acc, nil, nil, nil, nil); err == nil || err.Error() != expErr { + t.Errorf("expected %+v ,received %v", expErr, err) + } else if err = allowNegativeAction(acc, nil, nil, nil, nil); err == nil || err.Error() != expErr { + t.Errorf("expected %+v ,received %v", expErr, err) + } else if err = unsetRecurrentAction(acc, nil, nil, nil, nil); err == nil || err.Error() != expErr { + t.Errorf("expected %+v ,received %v", expErr, err) + } else if err = setRecurrentAction(acc, nil, nil, nil, nil); err == nil || err.Error() != expErr { + t.Errorf("expected %+v ,received %v", expErr, err) + } else if err = resetTriggersAction(acc, nil, nil, nil, nil); err == nil || err.Error() != expErr { + t.Errorf("expected %+v ,received %v", expErr, err) + } +} diff --git a/engine/balances_test.go b/engine/balances_test.go index 0ae0623e6..c0814e1dd 100644 --- a/engine/balances_test.go +++ b/engine/balances_test.go @@ -639,3 +639,17 @@ func TestBalanceDebitUnits(t *testing.T) { t.Errorf("expected %+v ,received %+v", utils.ToJSON(exp), utils.ToJSON(val)) } } +func TestBalanceDebitMoney(t *testing.T) { + cd := &CallDescriptor{} + ub := &Account{} + moneyBalances := Balances{} + + b := &Balance{ + Value: 220, + Timings: []*RITiming{}, + } + if val, err := b.debitMoney(cd, ub, moneyBalances, true, true, true, nil); err != nil { + t.Errorf("expected nil,received %+v", val) + } + +} diff --git a/engine/cdrs_test.go b/engine/cdrs_test.go index 5ecb08774..d05614e1a 100644 --- a/engine/cdrs_test.go +++ b/engine/cdrs_test.go @@ -477,39 +477,102 @@ func TestCDRefundEventCost(t *testing.T) { } } -/* -func TestV2ProcessEvent(t *testing.T) { - +func TestGetCostFromRater(t *testing.T) { cfg := config.NewDefaultCGRConfig() + cfg.CdrsCfg().RaterConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.RateSConnsCfg)} + db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items) + dm := NewDataManager(db, cfg.CacheCfg(), nil) + ccMock := &ccMock{ calls: map[string]func(args interface{}, reply interface{}) error{ - utils.ResponderRefundIncrements: func(args, reply interface{}) error { + + utils.ResponderDebit: func(args, reply interface{}) error { + rpl := &CallCost{ + Category: "category", + Tenant: "cgrates", + } + *reply.(*CallCost) = *rpl return nil }, }, } - clientconn := make(chan rpcclient.ClientConnector, 1) clientconn <- ccMock connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{ - utils.ConcatenatedKey(utils.MetaInternal, utils.ResponderRefundIncrements): clientconn, + utils.ConcatenatedKey(utils.MetaInternal, utils.RateSConnsCfg): clientconn, }) - cfg.CdrsCfg().RaterConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.ResponderRefundIncrements)} + cdrS := &CDRServer{ + cgrCfg: cfg, + connMgr: connMgr, + cdrDb: db, + dm: dm, + } + cd := &CDR{ + Category: "category", + Tenant: "cgrates.org", + RequestType: utils.PseudoPrepaid, + } + cdr := &CDRWithAPIOpts{ + CDR: cd, + APIOpts: map[string]interface{}{}, + } + exp := &CallCost{ + Category: "category", + Tenant: "cgrates", + } + if val, err := cdrS.getCostFromRater(cdr); err != nil { + t.Error(err) + } else if !reflect.DeepEqual(exp, val) { + t.Errorf("expected %+v ,received %+v", utils.ToJSON(exp), utils.ToJSON(val)) + } +} + +func TestRefundEventCost(t *testing.T) { + + cfg := config.NewDefaultCGRConfig() + cfg.CdrsCfg().RaterConns = []string{utils.ConcatenatedKey(utils.MetaInternal, utils.RateSConnsCfg)} + ccMock := &ccMock{ + calls: map[string]func(args interface{}, reply interface{}) error{ + utils.ResponderRefundIncrements: func(args, reply interface{}) error { + rpl := &Account{} + *reply.(*Account) = *rpl + return nil + }, + }, + } + clientconn := make(chan rpcclient.ClientConnector, 1) + clientconn <- ccMock db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items) dm := NewDataManager(db, cfg.CacheCfg(), nil) + connMgr := NewConnManager(cfg, map[string]chan rpcclient.ClientConnector{ + utils.ConcatenatedKey(utils.MetaInternal, utils.RateSConnsCfg): clientconn, + }) cdrS := &CDRServer{ cgrCfg: cfg, cdrDb: db, dm: dm, connMgr: connMgr, } - arg:=&ArgV1ProcessEvent{ - Flags: []string{}, - + ec := &EventCost{ + CGRID: "cgrid", + RunID: "rnID", + StartTime: time.Date(2022, 12, 1, 11, 0, 0, 0, time.UTC), + Charges: []*ChargingInterval{ + { + CompressFactor: 2, + Increments: []*ChargingIncrement{ + { + Usage: 10 * time.Minute, + Cost: 20, + }, { + Usage: 5 * time.Minute, + Cost: 15, + }, + }, + }, {}, + }, } - evs:=&[]*utils.EventWithFlags{ - + if _, err := cdrS.refundEventCost(ec, utils.MetaPrepaid, "tor"); err == nil { + t.Error(err) } - if err:=cdrS.V2ProcessEvent() } -*/ diff --git a/engine/destinations_test.go b/engine/destinations_test.go index 51eba1a2b..fbaa327d4 100644 --- a/engine/destinations_test.go +++ b/engine/destinations_test.go @@ -23,6 +23,7 @@ import ( "testing" "github.com/cgrates/cgrates/utils" + "github.com/nyaruka/phonenumbers" ) func TestDestinationStoreRestore(t *testing.T) { @@ -172,13 +173,22 @@ func TestDynamicDPFieldAsInterface(t *testing.T) { } func TestDPNewLibNumber(t *testing.T) { - exp := &libphonenumberDP{} + num, err := phonenumbers.ParseAndKeepRawInput("+3554735474", utils.EmptyString) + if err != nil { + t.Error(err) + } + exp := &libphonenumberDP{ + pNumber: num, + cache: utils.MapStorage{}, + } if val, err := newLibPhoneNumberDP("+3554735474"); err != nil { t.Errorf("received <%v>", err) - } else if reflect.DeepEqual(val, exp) { - t.Errorf("expected %v,received %v", utils.ToJSON(exp), utils.ToJSON(val)) - } else if _, err = newLibPhoneNumberDP("some"); err == nil { - t.Error("expected error ,received nil") + } else if !reflect.DeepEqual(val, exp) { + t.Errorf("expected %v,received %v", exp, val) + } + expErr := "the phone number supplied is not a number" + if _, err := newLibPhoneNumberDP("some"); err == nil || err.Error() != expErr { + t.Errorf("expected %v ,received %v", expErr, err) } } diff --git a/engine/timespans_test.go b/engine/timespans_test.go index 3bd138b5c..19acb066e 100644 --- a/engine/timespans_test.go +++ b/engine/timespans_test.go @@ -2161,3 +2161,23 @@ func TestTimeSpansMerge(t *testing.T) { t.Errorf("expected %v ,recived %v", utils.ToJSON(expMerge), utils.ToJSON(tss)) } } + +func TestMIUIEqualFalse(t *testing.T) { + mi := &MonetaryInfo{ + UUID: "uuid", + ID: "id", + Value: 23.1, + } + ui := &UnitInfo{ + UUID: "uuid", + ID: "id", + Value: 12.2, + DestinationID: "destId", + } + if val := mi.Equal(nil); val { + t.Errorf("expected false ,received %+v", val) + } else if val = ui.Equal(nil); val { + t.Errorf("expected false,received %+v", val) + } + +} diff --git a/engine/tpreader_test.go b/engine/tpreader_test.go index 10e6d0aeb..e6a412d31 100644 --- a/engine/tpreader_test.go +++ b/engine/tpreader_test.go @@ -1030,3 +1030,27 @@ func TestTPReaderReloadCache(t *testing.T) { t.Error(err) } } + +func TestTPReaderLoadDestinationsFiltered(t *testing.T) { + cfg := config.NewDefaultCGRConfig() + db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items) + tpr, err := NewTpReader(nil, db, "id", "local", nil, nil, false) + if err != nil { + t.Error(err) + } + if b, err := tpr.LoadDestinationsFiltered("tag"); (err == nil || err != utils.ErrNotFound) || b { + t.Errorf("expected %+v ,received %v", utils.ErrNotFound, err) + } +} + +func TestTPReaderLoadAll(t *testing.T) { + cfg := config.NewDefaultCGRConfig() + db := NewInternalDB(nil, nil, true, cfg.DataDbCfg().Items) + tpr, err := NewTpReader(nil, db, "", "local", nil, nil, false) + if err != nil { + t.Error(err) + } + if err = tpr.LoadAll(); err != nil { + t.Error(err) + } +}