From d6f528d090e77a7fc78ab3277a588e845bfddd7d Mon Sep 17 00:00:00 2001 From: Radu Ioan Fericean Date: Tue, 29 Sep 2015 11:03:36 +0300 Subject: [PATCH] code cleanups, used consts from utils --- apier/v1/accounts_test.go | 10 +- apier/v1/apier.go | 8 +- apier/v1/apier_local_test.go | 4 +- engine/account.go | 17 +- engine/account_test.go | 368 ++++++++++++++++----------------- engine/actions_test.go | 170 +++++++-------- engine/balances.go | 16 -- engine/callcost_test.go | 18 +- engine/calldesc_test.go | 42 ++-- engine/loader_csv_test.go | 10 +- engine/ratingplan_test.go | 14 +- engine/ratingprofile_test.go | 10 +- engine/responder_test.go | 20 +- engine/storage_test.go | 6 +- engine/units_counter_test.go | 4 +- general_tests/ddazmbl1_test.go | 16 +- general_tests/ddazmbl2_test.go | 14 +- general_tests/ddazmbl3_test.go | 12 +- utils/consts.go | 1 + 19 files changed, 375 insertions(+), 385 deletions(-) diff --git a/apier/v1/accounts_test.go b/apier/v1/accounts_test.go index 67450fbcd..474588c90 100644 --- a/apier/v1/accounts_test.go +++ b/apier/v1/accounts_test.go @@ -42,15 +42,15 @@ func TestSetAccounts(t *testing.T) { iscTenant := "itsyscom.com" b10 := &engine.Balance{Value: 10, Weight: 10} cgrAcnt1 := &engine.Account{Id: utils.ConcatenatedKey(utils.OUT, cgrTenant, "account1"), - BalanceMap: map[string]engine.BalanceChain{utils.MONETARY + engine.OUTBOUND: engine.BalanceChain{b10}}} + BalanceMap: map[string]engine.BalanceChain{utils.MONETARY + utils.OUT: engine.BalanceChain{b10}}} cgrAcnt2 := &engine.Account{Id: utils.ConcatenatedKey(utils.OUT, cgrTenant, "account2"), - BalanceMap: map[string]engine.BalanceChain{utils.MONETARY + engine.OUTBOUND: engine.BalanceChain{b10}}} + BalanceMap: map[string]engine.BalanceChain{utils.MONETARY + utils.OUT: engine.BalanceChain{b10}}} cgrAcnt3 := &engine.Account{Id: utils.ConcatenatedKey(utils.OUT, cgrTenant, "account3"), - BalanceMap: map[string]engine.BalanceChain{utils.MONETARY + engine.OUTBOUND: engine.BalanceChain{b10}}} + BalanceMap: map[string]engine.BalanceChain{utils.MONETARY + utils.OUT: engine.BalanceChain{b10}}} iscAcnt1 := &engine.Account{Id: utils.ConcatenatedKey(utils.OUT, iscTenant, "account1"), - BalanceMap: map[string]engine.BalanceChain{utils.MONETARY + engine.OUTBOUND: engine.BalanceChain{b10}}} + BalanceMap: map[string]engine.BalanceChain{utils.MONETARY + utils.OUT: engine.BalanceChain{b10}}} iscAcnt2 := &engine.Account{Id: utils.ConcatenatedKey(utils.OUT, iscTenant, "account2"), - BalanceMap: map[string]engine.BalanceChain{utils.MONETARY + engine.OUTBOUND: engine.BalanceChain{b10}}} + BalanceMap: map[string]engine.BalanceChain{utils.MONETARY + utils.OUT: engine.BalanceChain{b10}}} for _, account := range []*engine.Account{cgrAcnt1, cgrAcnt2, cgrAcnt3, iscAcnt1, iscAcnt2} { if err := apierAcntsAcntStorage.SetAccount(account); err != nil { t.Error(err) diff --git a/apier/v1/apier.go b/apier/v1/apier.go index ec6178825..1f69f6ec1 100644 --- a/apier/v1/apier.go +++ b/apier/v1/apier.go @@ -151,7 +151,7 @@ func (self *ApierV1) AddBalance(attr *AttrAddBalance, reply *string) error { AccountIds: []string{tag}, } if attr.Direction == "" { - attr.Direction = engine.OUTBOUND + attr.Direction = utils.OUT } aType := engine.DEBIT // reverse the sign as it is a debit @@ -200,7 +200,7 @@ func (self *ApierV1) EnableDisableBalance(attr *AttrAddBalance, reply *string) e AccountIds: []string{tag}, } if attr.Direction == "" { - attr.Direction = engine.OUTBOUND + attr.Direction = utils.OUT } at.SetActions(engine.Actions{ &engine.Action{ @@ -759,7 +759,7 @@ type AttrAddActionTrigger struct { func (self *ApierV1) AddTriggeredAction(attr AttrAddActionTrigger, reply *string) error { if attr.BalanceDirection == "" { - attr.BalanceDirection = engine.OUTBOUND + attr.BalanceDirection = utils.OUT } balExpiryTime, err := utils.ParseTimeDetectLayout(attr.BalanceExpiryTime, self.Config.DefaultTimezone) if err != nil { @@ -823,7 +823,7 @@ func (self *ApierV1) ResetTriggeredActions(attr AttrResetTriggeredAction, reply a = &engine.Action{Id: attr.Id} } else { if attr.Direction == "" { - attr.Direction = engine.OUTBOUND + attr.Direction = utils.OUT } extraParameters, err := json.Marshal(struct { ThresholdType string diff --git a/apier/v1/apier_local_test.go b/apier/v1/apier_local_test.go index 4abf0cdae..a1503a7b0 100644 --- a/apier/v1/apier_local_test.go +++ b/apier/v1/apier_local_test.go @@ -974,7 +974,7 @@ func TestApierSetActions(t *testing.T) { if !*testLocal { return } - act1 := &utils.TPAction{Identifier: engine.TOPUP_RESET, BalanceType: utils.MONETARY, Direction: engine.OUTBOUND, Units: 75.0, ExpiryTime: engine.UNLIMITED, Weight: 20.0} + act1 := &utils.TPAction{Identifier: engine.TOPUP_RESET, BalanceType: utils.MONETARY, Direction: utils.OUT, Units: 75.0, ExpiryTime: engine.UNLIMITED, Weight: 20.0} attrs1 := &utils.AttrSetActions{ActionsId: "ACTS_1", Actions: []*utils.TPAction{act1}} reply1 := "" if err := rater.Call("ApierV1.SetActions", attrs1, &reply1); err != nil { @@ -993,7 +993,7 @@ func TestApierGetActions(t *testing.T) { return } expectActs := []*utils.TPAction{ - &utils.TPAction{Identifier: engine.TOPUP_RESET, BalanceType: utils.MONETARY, Direction: engine.OUTBOUND, Units: 75.0, ExpiryTime: engine.UNLIMITED, Weight: 20.0}} + &utils.TPAction{Identifier: engine.TOPUP_RESET, BalanceType: utils.MONETARY, Direction: utils.OUT, Units: 75.0, ExpiryTime: engine.UNLIMITED, Weight: 20.0}} var reply []*utils.TPAction if err := rater.Call("ApierV1.GetActions", "ACTS_1", &reply); err != nil { diff --git a/engine/account.go b/engine/account.go index e8fe2fd7a..2ba2f5ed9 100644 --- a/engine/account.go +++ b/engine/account.go @@ -30,9 +30,6 @@ import ( ) const ( - // Direction type - INBOUND = "*in" - OUTBOUND = "*out" // action trigger threshold types TRIGGER_MIN_COUNTER = "*min_counter" TRIGGER_MAX_COUNTER = "*max_counter" @@ -104,6 +101,9 @@ func (ub *Account) debitBalanceAction(a *Action, reset bool) error { ub.BalanceMap = make(map[string]BalanceChain, 1) } found := false + if a.Direction == "" { + a.Direction = utils.OUT + } id := a.BalanceType + a.Direction ub.CleanExpiredBalances() for _, b := range ub.BalanceMap[id] { @@ -394,6 +394,9 @@ COMMIT: } func (ub *Account) GetDefaultMoneyBalance(direction string) *Balance { + if direction == "" { + direction = utils.OUT + } for _, balance := range ub.BalanceMap[utils.MONETARY+direction] { if balance.IsDefault() { return balance @@ -401,7 +404,7 @@ func (ub *Account) GetDefaultMoneyBalance(direction string) *Balance { } // create default balance defaultBalance := &Balance{ - Uuid: "DEFAULT" + utils.GenUUID(), + Uuid: utils.GenUUID(), Weight: 0, } // minimum weight if ub.BalanceMap == nil { @@ -517,7 +520,7 @@ func (ub *Account) getUnitCounter(a *Action) *UnitsCounter { for _, uc := range ub.UnitCounters { direction := a.Direction if direction == "" { - direction = OUTBOUND + direction = utils.OUT } if uc.BalanceType == a.BalanceType && uc.Direction == direction { return uc @@ -534,7 +537,7 @@ func (ub *Account) countUnits(a *Action) { if unitsCounter == nil { direction := a.Direction if direction == "" { - direction = OUTBOUND + direction = utils.OUT } unitsCounter = &UnitsCounter{BalanceType: a.BalanceType, Direction: direction} ub.UnitCounters = append(ub.UnitCounters, unitsCounter) @@ -556,7 +559,7 @@ func (ub *Account) initCounters() { if a.Balance != nil { direction := at.BalanceDirection if direction == "" { - direction = OUTBOUND + direction = utils.OUT } uc, exists := ucTempMap[direction] if !exists { diff --git a/engine/account_test.go b/engine/account_test.go index ed36bde79..73b1826f8 100644 --- a/engine/account_test.go +++ b/engine/account_test.go @@ -84,19 +84,19 @@ func TestBalanceChainStoreRestore(t *testing.T) { func TestAccountStorageStoreRestore(t *testing.T) { b1 := &Balance{Value: 10, Weight: 10, DestinationIds: "NAT"} b2 := &Balance{Value: 100, Weight: 20, DestinationIds: "RET"} - rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{utils.VOICE + OUTBOUND: BalanceChain{b1, b2}, utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 21}}}} + rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{utils.VOICE + utils.OUT: BalanceChain{b1, b2}, utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 21}}}} accountingStorage.SetAccount(rifsBalance) ub1, err := accountingStorage.GetAccount("other") - if err != nil || !ub1.BalanceMap[utils.MONETARY+OUTBOUND].Equal(rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND]) { + if err != nil || !ub1.BalanceMap[utils.MONETARY+utils.OUT].Equal(rifsBalance.BalanceMap[utils.MONETARY+utils.OUT]) { t.Log("UB: ", ub1) - t.Errorf("Expected %v was %v", rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND], ub1.BalanceMap[utils.MONETARY+OUTBOUND]) + t.Errorf("Expected %v was %v", rifsBalance.BalanceMap[utils.MONETARY+utils.OUT], ub1.BalanceMap[utils.MONETARY+utils.OUT]) } } func TestGetSecondsForPrefix(t *testing.T) { b1 := &Balance{Value: 10, Weight: 10, DestinationIds: "NAT"} b2 := &Balance{Value: 100, Weight: 20, DestinationIds: "RET"} - ub1 := &Account{Id: "OUT:CUSTOMER_1:rif", BalanceMap: map[string]BalanceChain{utils.VOICE + OUTBOUND: BalanceChain{b1, b2}, utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 200}}}} + ub1 := &Account{Id: "OUT:CUSTOMER_1:rif", BalanceMap: map[string]BalanceChain{utils.VOICE + utils.OUT: BalanceChain{b1, b2}, utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 200}}}} cd := &CallDescriptor{ Category: "0", Tenant: "vdf", @@ -104,7 +104,7 @@ func TestGetSecondsForPrefix(t *testing.T) { TimeEnd: time.Date(2013, 10, 4, 15, 46, 10, 0, time.UTC), LoopIndex: 0, DurationIndex: 10 * time.Second, - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723", TOR: utils.VOICE, } @@ -123,8 +123,8 @@ func TestGetSpecialPricedSeconds(t *testing.T) { ub1 := &Account{ Id: "OUT:CUSTOMER_1:rif", BalanceMap: map[string]BalanceChain{ - utils.VOICE + OUTBOUND: BalanceChain{b1, b2}, - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 21}}, + utils.VOICE + utils.OUT: BalanceChain{b1, b2}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 21}}, }, } cd := &CallDescriptor{ @@ -133,7 +133,7 @@ func TestGetSpecialPricedSeconds(t *testing.T) { TimeStart: time.Date(2013, 10, 4, 15, 46, 0, 0, time.UTC), TimeEnd: time.Date(2013, 10, 4, 15, 46, 60, 0, time.UTC), LoopIndex: 0, - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723", TOR: utils.VOICE, } @@ -148,14 +148,14 @@ func TestGetSpecialPricedSeconds(t *testing.T) { func TestAccountStorageStore(t *testing.T) { b1 := &Balance{Value: 10, Weight: 10, DestinationIds: "NAT"} b2 := &Balance{Value: 100, Weight: 20, DestinationIds: "RET"} - rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{utils.VOICE + OUTBOUND: BalanceChain{b1, b2}, utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 21}}}} + rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{utils.VOICE + utils.OUT: BalanceChain{b1, b2}, utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 21}}}} accountingStorage.SetAccount(rifsBalance) result, err := accountingStorage.GetAccount(rifsBalance.Id) if err != nil || rifsBalance.Id != result.Id || - len(rifsBalance.BalanceMap[utils.VOICE+OUTBOUND]) < 2 || len(result.BalanceMap[utils.VOICE+OUTBOUND]) < 2 || - !(rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0].Equal(result.BalanceMap[utils.VOICE+OUTBOUND][0])) || - !(rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][1].Equal(result.BalanceMap[utils.VOICE+OUTBOUND][1])) || - !rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND].Equal(result.BalanceMap[utils.MONETARY+OUTBOUND]) { + len(rifsBalance.BalanceMap[utils.VOICE+utils.OUT]) < 2 || len(result.BalanceMap[utils.VOICE+utils.OUT]) < 2 || + !(rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0].Equal(result.BalanceMap[utils.VOICE+utils.OUT][0])) || + !(rifsBalance.BalanceMap[utils.VOICE+utils.OUT][1].Equal(result.BalanceMap[utils.VOICE+utils.OUT][1])) || + !rifsBalance.BalanceMap[utils.MONETARY+utils.OUT].Equal(result.BalanceMap[utils.MONETARY+utils.OUT]) { t.Errorf("Expected %v was %v", rifsBalance, result) } } @@ -163,7 +163,7 @@ func TestAccountStorageStore(t *testing.T) { func TestDebitCreditZeroSecond(t *testing.T) { b1 := &Balance{Uuid: "testb", Value: 10, Weight: 10, DestinationIds: "NAT", RatingSubject: "*zero1s"} cc := &CallCost{ - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -178,13 +178,13 @@ func TestDebitCreditZeroSecond(t *testing.T) { cd := &CallDescriptor{ TimeStart: time.Date(2013, 9, 24, 10, 48, 0, 0, time.UTC), TimeEnd: time.Date(2013, 9, 24, 10, 48, 10, 0, time.UTC), - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Category: "0", TOR: utils.VOICE, testCallcost: cc, } - rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{utils.VOICE + OUTBOUND: BalanceChain{b1}, utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Category: "0", Value: 21}}}} + rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{utils.VOICE + utils.OUT: BalanceChain{b1}, utils.MONETARY + utils.OUT: BalanceChain{&Balance{Category: "0", Value: 21}}}} var err error cc, err = rifsBalance.debitCreditBalance(cd, false, false, true) if err != nil { @@ -194,16 +194,16 @@ func TestDebitCreditZeroSecond(t *testing.T) { t.Logf("%+v", cc.Timespans[0]) t.Error("Error setting balance id to increment: ", cc.Timespans[0].Increments[0]) } - if rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 0 || - rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 21 { - t.Error("Error extracting minutes from balance: ", rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0]) + if rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 0 || + rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 21 { + t.Error("Error extracting minutes from balance: ", rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0]) } } func TestDebitCreditZeroMinute(t *testing.T) { b1 := &Balance{Uuid: "testb", Value: 70, Weight: 10, DestinationIds: "NAT", RatingSubject: "*zero1m"} cc := &CallCost{ - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -218,15 +218,15 @@ func TestDebitCreditZeroMinute(t *testing.T) { cd := &CallDescriptor{ TimeStart: time.Date(2013, 9, 24, 10, 48, 0, 0, time.UTC), TimeEnd: time.Date(2013, 9, 24, 10, 48, 10, 0, time.UTC), - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Category: "0", TOR: utils.VOICE, testCallcost: cc, } rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{ - utils.VOICE + OUTBOUND: BalanceChain{b1}, - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 21}}, + utils.VOICE + utils.OUT: BalanceChain{b1}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 21}}, }} var err error cc, err = rifsBalance.debitCreditBalance(cd, false, false, true) @@ -238,10 +238,10 @@ func TestDebitCreditZeroMinute(t *testing.T) { cc.Timespans[0].Increments[0].Duration != time.Minute { t.Error("Error setting balance id to increment: ", cc.Timespans[0].Increments[0]) } - if rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 10 || - rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 21 { + if rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 10 || + rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 21 { t.Error("Error extracting minutes from balance: ", - rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0]) + rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0]) } } @@ -249,7 +249,7 @@ func TestDebitCreditZeroMixedMinute(t *testing.T) { b1 := &Balance{Uuid: "testm", Value: 70, Weight: 5, DestinationIds: "NAT", RatingSubject: "*zero1m"} b2 := &Balance{Uuid: "tests", Value: 10, Weight: 10, DestinationIds: "NAT", RatingSubject: "*zero1s"} cc := &CallCost{ - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -272,8 +272,8 @@ func TestDebitCreditZeroMixedMinute(t *testing.T) { testCallcost: cc, } rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{ - utils.VOICE + OUTBOUND: BalanceChain{b1, b2}, - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 21}}, + utils.VOICE + utils.OUT: BalanceChain{b1, b2}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 21}}, }} var err error cc, err = rifsBalance.debitCreditBalance(cd, false, false, true) @@ -284,19 +284,19 @@ func TestDebitCreditZeroMixedMinute(t *testing.T) { cc.Timespans[1].Increments[0].BalanceInfo.UnitBalanceUuid != "testm" { t.Error("Error setting balance id to increment: ", cc.Timespans) } - if rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][1].GetValue() != 0 || - rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 10 || - rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 21 { + if rifsBalance.BalanceMap[utils.VOICE+utils.OUT][1].GetValue() != 0 || + rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 10 || + rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 21 { t.Logf("TS0: %+v", cc.Timespans[0]) t.Logf("TS1: %+v", cc.Timespans[1]) - t.Errorf("Error extracting minutes from balance: %+v", rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][1]) + t.Errorf("Error extracting minutes from balance: %+v", rifsBalance.BalanceMap[utils.VOICE+utils.OUT][1]) } } func TestDebitCreditNoCredit(t *testing.T) { b1 := &Balance{Uuid: "testb", Value: 70, Weight: 10, DestinationIds: "NAT", RatingSubject: "*zero1m"} cc := &CallCost{ - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -324,7 +324,7 @@ func TestDebitCreditNoCredit(t *testing.T) { testCallcost: cc, } rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{ - utils.VOICE + OUTBOUND: BalanceChain{b1}, + utils.VOICE + utils.OUT: BalanceChain{b1}, }} var err error cc, err = rifsBalance.debitCreditBalance(cd, false, false, true) @@ -335,9 +335,9 @@ func TestDebitCreditNoCredit(t *testing.T) { cc.Timespans[0].Increments[0].Duration != time.Minute { t.Error("Error setting balance id to increment: ", cc.Timespans[0].Increments[0]) } - if rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 10 { + if rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 10 { t.Error("Error extracting minutes from balance: ", - rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0]) + rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0]) } if len(cc.Timespans) != 1 || cc.Timespans[0].GetDuration() != time.Minute { t.Error("Error truncating extra timespans: ", cc.Timespans) @@ -347,7 +347,7 @@ func TestDebitCreditNoCredit(t *testing.T) { func TestDebitCreditHasCredit(t *testing.T) { b1 := &Balance{Uuid: "testb", Value: 70, Weight: 10, DestinationIds: "NAT", RatingSubject: "*zero1m"} cc := &CallCost{ - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -375,8 +375,8 @@ func TestDebitCreditHasCredit(t *testing.T) { testCallcost: cc, } rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{ - utils.VOICE + OUTBOUND: BalanceChain{b1}, - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Uuid: "moneya", Value: 110}}, + utils.VOICE + utils.OUT: BalanceChain{b1}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Uuid: "moneya", Value: 110}}, }} var err error cc, err = rifsBalance.debitCreditBalance(cd, false, false, true) @@ -387,10 +387,10 @@ func TestDebitCreditHasCredit(t *testing.T) { cc.Timespans[0].Increments[0].Duration != time.Minute { t.Error("Error setting balance id to increment: ", cc.Timespans[0].Increments[0]) } - if rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 10 || - rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 30 { + if rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 10 || + rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 30 { t.Errorf("Error extracting minutes from balance: %+v, %+v", - rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue(), rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue()) + rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0].GetValue(), rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue()) } if len(cc.Timespans) != 3 || cc.Timespans[0].GetDuration() != time.Minute { t.Error("Error truncating extra timespans: ", cc.Timespans) @@ -400,7 +400,7 @@ func TestDebitCreditHasCredit(t *testing.T) { func TestDebitCreditSplitMinutesMoney(t *testing.T) { b1 := &Balance{Uuid: "testb", Value: 10, Weight: 10, DestinationIds: "NAT", RatingSubject: "*zero1s"} cc := &CallCost{ - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -423,8 +423,8 @@ func TestDebitCreditSplitMinutesMoney(t *testing.T) { testCallcost: cc, } rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{ - utils.VOICE + OUTBOUND: BalanceChain{b1}, - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Uuid: "moneya", Value: 50}}, + utils.VOICE + utils.OUT: BalanceChain{b1}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Uuid: "moneya", Value: 50}}, }} var err error cc, err = rifsBalance.debitCreditBalance(cd, false, false, true) @@ -435,10 +435,10 @@ func TestDebitCreditSplitMinutesMoney(t *testing.T) { cc.Timespans[0].Increments[0].Duration != 1*time.Second { t.Error("Error setting balance id to increment: ", cc.Timespans[0].Increments[0].Duration) } - if rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 0 || - rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 30 { + if rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 0 || + rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 30 { t.Errorf("Error extracting minutes from balance: %+v, %+v", - rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue(), rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue()) + rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0].GetValue(), rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue()) } if len(cc.Timespans) != 2 || cc.Timespans[0].GetDuration() != 10*time.Second || cc.Timespans[1].GetDuration() != 20*time.Second { t.Error("Error truncating extra timespans: ", cc.Timespans[1].GetDuration()) @@ -448,7 +448,7 @@ func TestDebitCreditSplitMinutesMoney(t *testing.T) { func TestDebitCreditMoreTimespans(t *testing.T) { b1 := &Balance{Uuid: "testb", Value: 150, Weight: 10, DestinationIds: "NAT", RatingSubject: "*zero1m"} cc := &CallCost{ - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -476,7 +476,7 @@ func TestDebitCreditMoreTimespans(t *testing.T) { testCallcost: cc, } rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{ - utils.VOICE + OUTBOUND: BalanceChain{b1}, + utils.VOICE + utils.OUT: BalanceChain{b1}, }} var err error cc, err = rifsBalance.debitCreditBalance(cd, false, false, true) @@ -487,9 +487,9 @@ func TestDebitCreditMoreTimespans(t *testing.T) { cc.Timespans[0].Increments[0].Duration != time.Minute { t.Error("Error setting balance id to increment: ", cc.Timespans[0].Increments[0]) } - if rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 30 { + if rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 30 { t.Error("Error extracting minutes from balance: ", - rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0]) + rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0]) } } @@ -497,7 +497,7 @@ func TestDebitCreditMoreTimespansMixed(t *testing.T) { b1 := &Balance{Uuid: "testb", Value: 70, Weight: 10, DestinationIds: "NAT", RatingSubject: "*zero1m"} b2 := &Balance{Uuid: "testa", Value: 150, Weight: 5, DestinationIds: "NAT", RatingSubject: "*zero1s"} cc := &CallCost{ - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -525,7 +525,7 @@ func TestDebitCreditMoreTimespansMixed(t *testing.T) { testCallcost: cc, } rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{ - utils.VOICE + OUTBOUND: BalanceChain{b1, b2}, + utils.VOICE + utils.OUT: BalanceChain{b1, b2}, }} var err error cc, err = rifsBalance.debitCreditBalance(cd, false, false, true) @@ -536,17 +536,17 @@ func TestDebitCreditMoreTimespansMixed(t *testing.T) { cc.Timespans[0].Increments[0].Duration != time.Minute { t.Error("Error setting balance id to increment: ", cc.Timespans[0].Increments[0]) } - if rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 10 || - rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][1].GetValue() != 130 { + if rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 10 || + rifsBalance.BalanceMap[utils.VOICE+utils.OUT][1].GetValue() != 130 { t.Error("Error extracting minutes from balance: ", - rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][1], cc.Timespans[1]) + rifsBalance.BalanceMap[utils.VOICE+utils.OUT][1], cc.Timespans[1]) } } func TestDebitCreditNoConectFeeCredit(t *testing.T) { b1 := &Balance{Uuid: "testb", Value: 70, Weight: 10, DestinationIds: "NAT", RatingSubject: "*zero1m"} cc := &CallCost{ - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -575,7 +575,7 @@ func TestDebitCreditNoConectFeeCredit(t *testing.T) { testCallcost: cc, } rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{ - utils.VOICE + OUTBOUND: BalanceChain{b1}, + utils.VOICE + utils.OUT: BalanceChain{b1}, }} var err error cc, err = rifsBalance.debitCreditBalance(cd, false, false, true) @@ -583,14 +583,14 @@ func TestDebitCreditNoConectFeeCredit(t *testing.T) { t.Error("Error showing debiting balance error: ", err) } - if len(cc.Timespans) != 1 || rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND].GetTotalValue() != 0 { - t.Error("Error cutting at no connect fee: ", rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND]) + if len(cc.Timespans) != 1 || rifsBalance.BalanceMap[utils.MONETARY+utils.OUT].GetTotalValue() != 0 { + t.Error("Error cutting at no connect fee: ", rifsBalance.BalanceMap[utils.MONETARY+utils.OUT]) } } func TestDebitCreditMoneyOnly(t *testing.T) { cc := &CallCost{ - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -619,7 +619,7 @@ func TestDebitCreditMoneyOnly(t *testing.T) { testCallcost: cc, } rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{ - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Uuid: "money", Value: 50}}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Uuid: "money", Value: 50}}, }} var err error cc, err = rifsBalance.debitCreditBalance(cd, false, false, true) @@ -631,9 +631,9 @@ func TestDebitCreditMoneyOnly(t *testing.T) { t.Logf("%+v", cc.Timespans[0].Increments) t.Error("Error setting balance id to increment: ", cc.Timespans[0].Increments[0].BalanceInfo) } - if rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 0 { + if rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 0 { t.Error("Error extracting minutes from balance: ", - rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0]) + rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0]) } if len(cc.Timespans) != 2 || cc.Timespans[0].GetDuration() != 10*time.Second || @@ -647,7 +647,7 @@ func TestDebitCreditSubjectMinutes(t *testing.T) { cc := &CallCost{ Tenant: "vdf", Category: "0", - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -672,8 +672,8 @@ func TestDebitCreditSubjectMinutes(t *testing.T) { testCallcost: cc, } rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{ - utils.VOICE + OUTBOUND: BalanceChain{b1}, - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Uuid: "moneya", Value: 350}}, + utils.VOICE + utils.OUT: BalanceChain{b1}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Uuid: "moneya", Value: 350}}, }} var err error cc, err = rifsBalance.debitCreditBalance(cd, false, false, true) @@ -685,10 +685,10 @@ func TestDebitCreditSubjectMinutes(t *testing.T) { cc.Timespans[0].Increments[0].Duration != 10*time.Second { t.Errorf("Error setting balance id to increment: %+v", cc.Timespans[0].Increments[0]) } - if rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 180 || - rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 280 { + if rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 180 || + rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 280 { t.Errorf("Error extracting minutes from balance: %+v, %+v", - rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue(), rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue()) + rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0].GetValue(), rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue()) } if len(cc.Timespans) != 1 || cc.Timespans[0].GetDuration() != 70*time.Second { for _, ts := range cc.Timespans { @@ -702,7 +702,7 @@ func TestDebitCreditSubjectMoney(t *testing.T) { cc := &CallCost{ Tenant: "vdf", Category: "0", - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -727,7 +727,7 @@ func TestDebitCreditSubjectMoney(t *testing.T) { testCallcost: cc, } rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{ - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Uuid: "moneya", Value: 75, DestinationIds: "NAT", RatingSubject: "minu"}}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Uuid: "moneya", Value: 75, DestinationIds: "NAT", RatingSubject: "minu"}}, }} var err error cc, err = rifsBalance.debitCreditBalance(cd, false, false, true) @@ -738,9 +738,9 @@ func TestDebitCreditSubjectMoney(t *testing.T) { cc.Timespans[0].Increments[0].Duration != 10*time.Second { t.Error("Error setting balance id to increment: ", cc.Timespans[0].Increments[0]) } - if rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 5 { + if rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 5 { t.Errorf("Error extracting minutes from balance: %+v", - rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue()) + rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue()) } if len(cc.Timespans) != 1 || cc.Timespans[0].GetDuration() != 70*time.Second { t.Error("Error truncating extra timespans: ", cc.Timespans) @@ -752,7 +752,7 @@ func TestDebitCreditSubjectMoney(t *testing.T) { cc := &CallCost{ Tenant: "vdf", Category: "0", - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -777,8 +777,8 @@ func TestDebitCreditSubjectMoney(t *testing.T) { testCallcost: cc, } rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{ - utils.VOICE + OUTBOUND: BalanceChain{b1}, - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Uuid: "moneya", Value: 19500, RatingSubject: "minu"}}, + utils.VOICE + utils.OUT: BalanceChain{b1}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Uuid: "moneya", Value: 19500, RatingSubject: "minu"}}, }} var err error cc, err = rifsBalance.debitCreditBalance(cd, false, false, true) @@ -790,10 +790,10 @@ func TestDebitCreditSubjectMoney(t *testing.T) { cc.Timespans[0].Increments[0].Duration != 10*time.Second { t.Error("Error setting balance id to increment: ", cc.Timespans[0].Increments[0]) } - if rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 0 || - rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 7 { + if rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 0 || + rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 7 { t.Errorf("Error extracting minutes from balance: %+v, %+v", - rifsBalance.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue(), rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue()) + rifsBalance.BalanceMap[utils.VOICE+utils.OUT][0].GetValue(), rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue()) } if len(cc.Timespans) != 2 || cc.Timespans[0].GetDuration() != 40*time.Second { for _, ts := range cc.Timespans { @@ -807,13 +807,13 @@ func TestAccountdebitBalance(t *testing.T) { ub := &Account{ Id: "rif", AllowNegative: true, - BalanceMap: map[string]BalanceChain{utils.SMS: BalanceChain{&Balance{Value: 14}}, utils.DATA: BalanceChain{&Balance{Value: 1204}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + BalanceMap: map[string]BalanceChain{utils.SMS: BalanceChain{&Balance{Value: 14}}, utils.DATA: BalanceChain{&Balance{Value: 1204}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, } newMb := &Balance{Weight: 20, DestinationIds: "NEW"} - a := &Action{BalanceType: utils.VOICE, Direction: OUTBOUND, Balance: newMb} + a := &Action{BalanceType: utils.VOICE, Direction: utils.OUT, Balance: newMb} ub.debitBalanceAction(a, false) - if len(ub.BalanceMap[utils.VOICE+OUTBOUND]) != 3 || ub.BalanceMap[utils.VOICE+OUTBOUND][2].DestinationIds != newMb.DestinationIds { - t.Errorf("Error adding minute bucket! %d %+v %+v", len(ub.BalanceMap[utils.VOICE+OUTBOUND]), ub.BalanceMap[utils.VOICE+OUTBOUND][2], newMb) + if len(ub.BalanceMap[utils.VOICE+utils.OUT]) != 3 || ub.BalanceMap[utils.VOICE+utils.OUT][2].DestinationIds != newMb.DestinationIds { + t.Errorf("Error adding minute bucket! %d %+v %+v", len(ub.BalanceMap[utils.VOICE+utils.OUT]), ub.BalanceMap[utils.VOICE+utils.OUT][2], newMb) } } @@ -821,13 +821,13 @@ func TestAccountDisableBalance(t *testing.T) { ub := &Account{ Id: "rif", AllowNegative: true, - BalanceMap: map[string]BalanceChain{utils.SMS: BalanceChain{&Balance{Value: 14}}, utils.DATA: BalanceChain{&Balance{Value: 1204}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + BalanceMap: map[string]BalanceChain{utils.SMS: BalanceChain{&Balance{Value: 14}}, utils.DATA: BalanceChain{&Balance{Value: 1204}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, } newMb := &Balance{Weight: 20, DestinationIds: "NAT", Disabled: true} - a := &Action{BalanceType: utils.VOICE, Direction: OUTBOUND, Balance: newMb} + a := &Action{BalanceType: utils.VOICE, Direction: utils.OUT, Balance: newMb} ub.enableDisableBalanceAction(a) - if len(ub.BalanceMap[utils.VOICE+OUTBOUND]) != 2 || ub.BalanceMap[utils.VOICE+OUTBOUND][0].Disabled != true { - t.Errorf("Error disabling balance! %d %+v %+v", len(ub.BalanceMap[utils.VOICE+OUTBOUND]), ub.BalanceMap[utils.VOICE+OUTBOUND][0], newMb) + if len(ub.BalanceMap[utils.VOICE+utils.OUT]) != 2 || ub.BalanceMap[utils.VOICE+utils.OUT][0].Disabled != true { + t.Errorf("Error disabling balance! %d %+v %+v", len(ub.BalanceMap[utils.VOICE+utils.OUT]), ub.BalanceMap[utils.VOICE+utils.OUT][0], newMb) } } @@ -836,12 +836,12 @@ func TestAccountdebitBalanceExists(t *testing.T) { ub := &Account{ Id: "rif", AllowNegative: true, - BalanceMap: map[string]BalanceChain{utils.SMS + OUTBOUND: BalanceChain{&Balance{Value: 14}}, utils.DATA + OUTBOUND: BalanceChain{&Balance{Value: 1024}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Value: 15, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + BalanceMap: map[string]BalanceChain{utils.SMS + utils.OUT: BalanceChain{&Balance{Value: 14}}, utils.DATA + utils.OUT: BalanceChain{&Balance{Value: 1024}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Value: 15, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, } newMb := &Balance{Value: -10, Weight: 20, DestinationIds: "NAT"} - a := &Action{BalanceType: utils.VOICE, Direction: OUTBOUND, Balance: newMb} + a := &Action{BalanceType: utils.VOICE, Direction: utils.OUT, Balance: newMb} ub.debitBalanceAction(a, false) - if len(ub.BalanceMap[utils.VOICE+OUTBOUND]) != 2 || ub.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 25 { + if len(ub.BalanceMap[utils.VOICE+utils.OUT]) != 2 || ub.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 25 { t.Error("Error adding minute bucket!") } } @@ -850,10 +850,10 @@ func TestAccountAddMinuteNil(t *testing.T) { ub := &Account{ Id: "rif", AllowNegative: true, - BalanceMap: map[string]BalanceChain{utils.SMS + OUTBOUND: BalanceChain{&Balance{Value: 14}}, utils.DATA + OUTBOUND: BalanceChain{&Balance{Value: 1024}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + BalanceMap: map[string]BalanceChain{utils.SMS + utils.OUT: BalanceChain{&Balance{Value: 14}}, utils.DATA + utils.OUT: BalanceChain{&Balance{Value: 1024}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, } ub.debitBalanceAction(nil, false) - if len(ub.BalanceMap[utils.VOICE+OUTBOUND]) != 2 { + if len(ub.BalanceMap[utils.VOICE+utils.OUT]) != 2 { t.Error("Error adding minute bucket!") } } @@ -863,100 +863,100 @@ func TestAccountAddMinutBucketEmpty(t *testing.T) { mb2 := &Balance{Value: -10, DestinationIds: "NAT"} mb3 := &Balance{Value: -10, DestinationIds: "OTHER"} ub := &Account{} - a := &Action{BalanceType: utils.VOICE, Direction: OUTBOUND, Balance: mb1} + a := &Action{BalanceType: utils.VOICE, Direction: utils.OUT, Balance: mb1} ub.debitBalanceAction(a, false) - if len(ub.BalanceMap[utils.VOICE+OUTBOUND]) != 1 { - t.Error("Error adding minute bucket: ", ub.BalanceMap[utils.VOICE+OUTBOUND]) + if len(ub.BalanceMap[utils.VOICE+utils.OUT]) != 1 { + t.Error("Error adding minute bucket: ", ub.BalanceMap[utils.VOICE+utils.OUT]) } - a = &Action{BalanceType: utils.VOICE, Direction: OUTBOUND, Balance: mb2} + a = &Action{BalanceType: utils.VOICE, Direction: utils.OUT, Balance: mb2} ub.debitBalanceAction(a, false) - if len(ub.BalanceMap[utils.VOICE+OUTBOUND]) != 1 || ub.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 20 { - t.Error("Error adding minute bucket: ", ub.BalanceMap[utils.VOICE+OUTBOUND]) + if len(ub.BalanceMap[utils.VOICE+utils.OUT]) != 1 || ub.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 20 { + t.Error("Error adding minute bucket: ", ub.BalanceMap[utils.VOICE+utils.OUT]) } - a = &Action{BalanceType: utils.VOICE, Direction: OUTBOUND, Balance: mb3} + a = &Action{BalanceType: utils.VOICE, Direction: utils.OUT, Balance: mb3} ub.debitBalanceAction(a, false) - if len(ub.BalanceMap[utils.VOICE+OUTBOUND]) != 2 { - t.Error("Error adding minute bucket: ", ub.BalanceMap[utils.VOICE+OUTBOUND]) + if len(ub.BalanceMap[utils.VOICE+utils.OUT]) != 2 { + t.Error("Error adding minute bucket: ", ub.BalanceMap[utils.VOICE+utils.OUT]) } } func TestAccountExecuteTriggeredActions(t *testing.T) { ub := &Account{ Id: "TEST_UB", - BalanceMap: map[string]BalanceChain{utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 100}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, - UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balances: BalanceChain{&Balance{Value: 1}}}}, - ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: OUTBOUND, ThresholdValue: 2, ThresholdType: TRIGGER_MAX_COUNTER, ActionsId: "TEST_ACTIONS"}}, + BalanceMap: map[string]BalanceChain{utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 100}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Direction: utils.OUT, Balances: BalanceChain{&Balance{Value: 1}}}}, + ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: utils.OUT, ThresholdValue: 2, ThresholdType: TRIGGER_MAX_COUNTER, ActionsId: "TEST_ACTIONS"}}, } ub.countUnits(&Action{BalanceType: utils.MONETARY, Balance: &Balance{Value: 1}}) - if ub.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 110 || ub.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 20 { - t.Error("Error executing triggered actions", ub.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue(), ub.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue()) + if ub.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 110 || ub.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 20 { + t.Error("Error executing triggered actions", ub.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue(), ub.BalanceMap[utils.VOICE+utils.OUT][0].GetValue()) } // are set to executed - ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balance: &Balance{Value: 1}}) - if ub.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 110 || ub.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 20 { - t.Error("Error executing triggered actions", ub.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue(), ub.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue()) + ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: utils.OUT, Balance: &Balance{Value: 1}}) + if ub.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 110 || ub.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 20 { + t.Error("Error executing triggered actions", ub.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue(), ub.BalanceMap[utils.VOICE+utils.OUT][0].GetValue()) } // we can reset them ub.ResetActionTriggers(nil) - ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balance: &Balance{Value: 10}}) - if ub.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 120 || ub.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 30 { - t.Error("Error executing triggered actions", ub.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue(), ub.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue()) + ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: utils.OUT, Balance: &Balance{Value: 10}}) + if ub.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 120 || ub.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 30 { + t.Error("Error executing triggered actions", ub.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue(), ub.BalanceMap[utils.VOICE+utils.OUT][0].GetValue()) } } func TestAccountExecuteTriggeredActionsBalance(t *testing.T) { ub := &Account{ Id: "TEST_UB", - BalanceMap: map[string]BalanceChain{utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 100}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, - UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balances: BalanceChain{&Balance{Value: 1}}}}, - ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: OUTBOUND, ThresholdValue: 100, ThresholdType: TRIGGER_MIN_COUNTER, ActionsId: "TEST_ACTIONS"}}, + BalanceMap: map[string]BalanceChain{utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 100}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Direction: utils.OUT, Balances: BalanceChain{&Balance{Value: 1}}}}, + ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: utils.OUT, ThresholdValue: 100, ThresholdType: TRIGGER_MIN_COUNTER, ActionsId: "TEST_ACTIONS"}}, } ub.countUnits(&Action{BalanceType: utils.MONETARY, Balance: &Balance{Value: 1}}) - if ub.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 110 || ub.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 20 { - t.Error("Error executing triggered actions", ub.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue(), ub.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue()) + if ub.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 110 || ub.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 20 { + t.Error("Error executing triggered actions", ub.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue(), ub.BalanceMap[utils.VOICE+utils.OUT][0].GetValue()) } } func TestAccountExecuteTriggeredActionsOrder(t *testing.T) { ub := &Account{ Id: "TEST_UB_OREDER", - BalanceMap: map[string]BalanceChain{utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 100}}}, - UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balances: BalanceChain{&Balance{Value: 1}}}}, - ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: OUTBOUND, ThresholdValue: 2, ThresholdType: TRIGGER_MAX_COUNTER, ActionsId: "TEST_ACTIONS_ORDER"}}, + BalanceMap: map[string]BalanceChain{utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 100}}}, + UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Direction: utils.OUT, Balances: BalanceChain{&Balance{Value: 1}}}}, + ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: utils.OUT, ThresholdValue: 2, ThresholdType: TRIGGER_MAX_COUNTER, ActionsId: "TEST_ACTIONS_ORDER"}}, } - ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balance: &Balance{Value: 1}}) - if len(ub.BalanceMap[utils.MONETARY+OUTBOUND]) != 1 || ub.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 10 { - t.Error("Error executing triggered actions in order", ub.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue()) + ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: utils.OUT, Balance: &Balance{Value: 1}}) + if len(ub.BalanceMap[utils.MONETARY+utils.OUT]) != 1 || ub.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 10 { + t.Error("Error executing triggered actions in order", ub.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue()) } } func TestCleanExpired(t *testing.T) { ub := &Account{ Id: "TEST_UB_OREDER", - BalanceMap: map[string]BalanceChain{utils.MONETARY + OUTBOUND: BalanceChain{ + BalanceMap: map[string]BalanceChain{utils.MONETARY + utils.OUT: BalanceChain{ &Balance{ExpirationDate: time.Now().Add(10 * time.Second)}, &Balance{ExpirationDate: time.Date(2013, 7, 18, 14, 33, 0, 0, time.UTC)}, - &Balance{ExpirationDate: time.Now().Add(10 * time.Second)}}, utils.VOICE + OUTBOUND: BalanceChain{ + &Balance{ExpirationDate: time.Now().Add(10 * time.Second)}}, utils.VOICE + utils.OUT: BalanceChain{ &Balance{ExpirationDate: time.Date(2013, 7, 18, 14, 33, 0, 0, time.UTC)}, &Balance{ExpirationDate: time.Now().Add(10 * time.Second)}, }}, } ub.CleanExpiredBalances() - if len(ub.BalanceMap[utils.MONETARY+OUTBOUND]) != 2 { + if len(ub.BalanceMap[utils.MONETARY+utils.OUT]) != 2 { t.Error("Error cleaning expired balances!") } - if len(ub.BalanceMap[utils.VOICE+OUTBOUND]) != 1 { + if len(ub.BalanceMap[utils.VOICE+utils.OUT]) != 1 { t.Error("Error cleaning expired minute buckets!") } } func TestAccountUnitCounting(t *testing.T) { ub := &Account{} - ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balance: &Balance{Value: 10}}) + ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: utils.OUT, Balance: &Balance{Value: 10}}) if len(ub.UnitCounters) != 1 && ub.UnitCounters[0].BalanceType != utils.MONETARY || ub.UnitCounters[0].Balances[0].GetValue() != 10 { t.Error("Error counting units") } - ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balance: &Balance{Value: 10}}) + ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: utils.OUT, Balance: &Balance{Value: 10}}) if len(ub.UnitCounters) != 1 && ub.UnitCounters[0].BalanceType != utils.MONETARY || ub.UnitCounters[0].Balances[0].GetValue() != 20 { t.Error("Error counting units") } @@ -964,15 +964,15 @@ func TestAccountUnitCounting(t *testing.T) { func TestAccountUnitCountingOutbound(t *testing.T) { ub := &Account{} - ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balance: &Balance{Value: 10}}) + ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: utils.OUT, Balance: &Balance{Value: 10}}) if len(ub.UnitCounters) != 1 && ub.UnitCounters[0].BalanceType != utils.MONETARY || ub.UnitCounters[0].Balances[0].GetValue() != 10 { t.Error("Error counting units") } - ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balance: &Balance{Value: 10}}) + ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: utils.OUT, Balance: &Balance{Value: 10}}) if len(ub.UnitCounters) != 1 && ub.UnitCounters[0].BalanceType != utils.MONETARY || ub.UnitCounters[0].Balances[0].GetValue() != 20 { t.Error("Error counting units") } - ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balance: &Balance{Value: 10}}) + ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: utils.OUT, Balance: &Balance{Value: 10}}) if len(ub.UnitCounters) != 1 && ub.UnitCounters[0].BalanceType != utils.MONETARY || ub.UnitCounters[0].Balances[0].GetValue() != 30 { t.Error("Error counting units") } @@ -984,11 +984,11 @@ func TestAccountUnitCountingOutboundInbound(t *testing.T) { if len(ub.UnitCounters) != 1 && ub.UnitCounters[0].BalanceType != utils.MONETARY || ub.UnitCounters[0].Balances[0].GetValue() != 10 { t.Errorf("Error counting units: %+v", ub.UnitCounters[0]) } - ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balance: &Balance{Value: 10}}) + ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: utils.OUT, Balance: &Balance{Value: 10}}) if len(ub.UnitCounters) != 1 && ub.UnitCounters[0].BalanceType != utils.MONETARY || ub.UnitCounters[0].Balances[0].GetValue() != 20 { t.Error("Error counting units") } - ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: INBOUND, Balance: &Balance{Value: 10}}) + ub.countUnits(&Action{BalanceType: utils.MONETARY, Direction: utils.IN, Balance: &Balance{Value: 10}}) if len(ub.UnitCounters) != 2 && ub.UnitCounters[1].BalanceType != utils.MONETARY || ub.UnitCounters[0].Balances[0].GetValue() != 20 || ub.UnitCounters[1].Balances[0].GetValue() != 10 { t.Error("Error counting units") } @@ -997,10 +997,10 @@ func TestAccountUnitCountingOutboundInbound(t *testing.T) { func TestAccountRefund(t *testing.T) { ub := &Account{ BalanceMap: map[string]BalanceChain{ - utils.MONETARY + OUTBOUND: BalanceChain{ + utils.MONETARY + utils.OUT: BalanceChain{ &Balance{Uuid: "moneya", Value: 100}, }, - utils.VOICE + OUTBOUND: BalanceChain{ + utils.VOICE + utils.OUT: BalanceChain{ &Balance{Uuid: "minutea", Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Uuid: "minuteb", Value: 10, DestinationIds: "RET"}, }, @@ -1012,12 +1012,12 @@ func TestAccountRefund(t *testing.T) { &Increment{Duration: 4 * time.Second, BalanceInfo: &BalanceInfo{UnitBalanceUuid: "minuteb", MoneyBalanceUuid: ""}}, } for _, increment := range increments { - ub.refundIncrement(increment, OUTBOUND, utils.VOICE, false) + ub.refundIncrement(increment, utils.OUT, utils.VOICE, false) } - if ub.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 104 || - ub.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 13 || - ub.BalanceMap[utils.VOICE+OUTBOUND][1].GetValue() != 14 { - t.Error("Error refounding money: ", ub.BalanceMap[utils.VOICE+OUTBOUND][1].GetValue()) + if ub.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 104 || + ub.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 13 || + ub.BalanceMap[utils.VOICE+utils.OUT][1].GetValue() != 14 { + t.Error("Error refounding money: ", ub.BalanceMap[utils.VOICE+utils.OUT][1].GetValue()) } } @@ -1025,7 +1025,7 @@ func TestDebitShared(t *testing.T) { cc := &CallCost{ Tenant: "vdf", Category: "0", - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -1049,10 +1049,10 @@ func TestDebitShared(t *testing.T) { testCallcost: cc, } rif := &Account{Id: "rif", BalanceMap: map[string]BalanceChain{ - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Uuid: "moneya", Value: 0, SharedGroup: "SG_TEST"}}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Uuid: "moneya", Value: 0, SharedGroup: "SG_TEST"}}, }} groupie := &Account{Id: "groupie", BalanceMap: map[string]BalanceChain{ - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Uuid: "moneyc", Value: 130, SharedGroup: "SG_TEST"}}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Uuid: "moneyc", Value: 130, SharedGroup: "SG_TEST"}}, }} sg := &SharedGroup{Id: "SG_TEST", MemberIds: []string{rif.Id, groupie.Id}, AccountParameters: map[string]*SharingParameters{"*any": &SharingParameters{Strategy: STRATEGY_MINE_RANDOM}}} @@ -1064,12 +1064,12 @@ func TestDebitShared(t *testing.T) { if err != nil { t.Error("Error debiting balance: ", err) } - if rif.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 0 { - t.Errorf("Error debiting from shared group: %+v", rif.BalanceMap[utils.MONETARY+OUTBOUND][0]) + if rif.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 0 { + t.Errorf("Error debiting from shared group: %+v", rif.BalanceMap[utils.MONETARY+utils.OUT][0]) } groupie, _ = accountingStorage.GetAccount("groupie") - if groupie.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 10 { - t.Errorf("Error debiting from shared group: %+v", groupie.BalanceMap[utils.MONETARY+OUTBOUND][0]) + if groupie.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 10 { + t.Errorf("Error debiting from shared group: %+v", groupie.BalanceMap[utils.MONETARY+utils.OUT][0]) } if len(cc.Timespans) != 1 { @@ -1095,7 +1095,7 @@ func TestMaxDurationShared(t *testing.T) { cc := &CallCost{ Tenant: "vdf", Category: "0", - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -1119,10 +1119,10 @@ func TestMaxDurationShared(t *testing.T) { testCallcost: cc, } rif := &Account{Id: "rif", BalanceMap: map[string]BalanceChain{ - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Uuid: "moneya", Value: 0, SharedGroup: "SG_TEST"}}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Uuid: "moneya", Value: 0, SharedGroup: "SG_TEST"}}, }} groupie := &Account{Id: "groupie", BalanceMap: map[string]BalanceChain{ - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Uuid: "moneyc", Value: 130, SharedGroup: "SG_TEST"}}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Uuid: "moneyc", Value: 130, SharedGroup: "SG_TEST"}}, }} sg := &SharedGroup{Id: "SG_TEST", MemberIds: []string{rif.Id, groupie.Id}, AccountParameters: map[string]*SharingParameters{"*any": &SharingParameters{Strategy: STRATEGY_MINE_RANDOM}}} @@ -1142,7 +1142,7 @@ func TestMaxDurationShared(t *testing.T) { func TestDebitSMS(t *testing.T) { cc := &CallCost{ - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -1165,8 +1165,8 @@ func TestDebitSMS(t *testing.T) { testCallcost: cc, } rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{ - utils.SMS + OUTBOUND: BalanceChain{&Balance{Uuid: "testm", Value: 100, Weight: 5, DestinationIds: "NAT"}}, - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 21}}, + utils.SMS + utils.OUT: BalanceChain{&Balance{Uuid: "testm", Value: 100, Weight: 5, DestinationIds: "NAT"}}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 21}}, }} var err error cc, err = rifsBalance.debitCreditBalance(cd, false, false, true) @@ -1176,16 +1176,16 @@ func TestDebitSMS(t *testing.T) { if cc.Timespans[0].Increments[0].BalanceInfo.UnitBalanceUuid != "testm" { t.Error("Error setting balance id to increment: ", cc.Timespans[0].Increments[0]) } - if rifsBalance.BalanceMap[utils.SMS+OUTBOUND][0].GetValue() != 99 || - rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 21 { + if rifsBalance.BalanceMap[utils.SMS+utils.OUT][0].GetValue() != 99 || + rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 21 { t.Log(cc.Timespans[0].Increments) - t.Error("Error extracting minutes from balance: ", rifsBalance.BalanceMap[utils.SMS+OUTBOUND][0].GetValue(), rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue()) + t.Error("Error extracting minutes from balance: ", rifsBalance.BalanceMap[utils.SMS+utils.OUT][0].GetValue(), rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue()) } } func TestDebitGeneric(t *testing.T) { cc := &CallCost{ - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -1208,8 +1208,8 @@ func TestDebitGeneric(t *testing.T) { testCallcost: cc, } rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{ - utils.GENERIC + OUTBOUND: BalanceChain{&Balance{Uuid: "testm", Value: 100, Weight: 5, DestinationIds: "NAT"}}, - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 21}}, + utils.GENERIC + utils.OUT: BalanceChain{&Balance{Uuid: "testm", Value: 100, Weight: 5, DestinationIds: "NAT"}}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 21}}, }} var err error cc, err = rifsBalance.debitCreditBalance(cd, false, false, true) @@ -1219,16 +1219,16 @@ func TestDebitGeneric(t *testing.T) { if cc.Timespans[0].Increments[0].BalanceInfo.UnitBalanceUuid != "testm" { t.Error("Error setting balance id to increment: ", cc.Timespans[0].Increments[0]) } - if rifsBalance.BalanceMap[utils.GENERIC+OUTBOUND][0].GetValue() != 99 || - rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 21 { + if rifsBalance.BalanceMap[utils.GENERIC+utils.OUT][0].GetValue() != 99 || + rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 21 { t.Log(cc.Timespans[0].Increments) - t.Error("Error extracting minutes from balance: ", rifsBalance.BalanceMap[utils.GENERIC+OUTBOUND][0].GetValue(), rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue()) + t.Error("Error extracting minutes from balance: ", rifsBalance.BalanceMap[utils.GENERIC+utils.OUT][0].GetValue(), rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue()) } } func TestDebitDataUnits(t *testing.T) { cc := &CallCost{ - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -1258,8 +1258,8 @@ func TestDebitDataUnits(t *testing.T) { testCallcost: cc, } rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{ - utils.DATA + OUTBOUND: BalanceChain{&Balance{Uuid: "testm", Value: 100, Weight: 5, DestinationIds: "NAT"}}, - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 21}}, + utils.DATA + utils.OUT: BalanceChain{&Balance{Uuid: "testm", Value: 100, Weight: 5, DestinationIds: "NAT"}}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 21}}, }} var err error cc, err = rifsBalance.debitCreditBalance(cd, false, false, true) @@ -1274,16 +1274,16 @@ func TestDebitDataUnits(t *testing.T) { if ts.Increments[0].BalanceInfo.UnitBalanceUuid != "testm" { t.Error("Error setting balance id to increment: ", ts.Increments[0]) } - if rifsBalance.BalanceMap[utils.DATA+OUTBOUND][0].GetValue() != 20 || - rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 21 { + if rifsBalance.BalanceMap[utils.DATA+utils.OUT][0].GetValue() != 20 || + rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 21 { t.Log(ts.Increments) - t.Error("Error extracting minutes from balance: ", rifsBalance.BalanceMap[utils.DATA+OUTBOUND][0].GetValue(), rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue()) + t.Error("Error extracting minutes from balance: ", rifsBalance.BalanceMap[utils.DATA+utils.OUT][0].GetValue(), rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue()) } } func TestDebitDataMoney(t *testing.T) { cc := &CallCost{ - Direction: OUTBOUND, + Direction: utils.OUT, Destination: "0723045326", Timespans: []*TimeSpan{ &TimeSpan{ @@ -1312,23 +1312,23 @@ func TestDebitDataMoney(t *testing.T) { testCallcost: cc, } rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{ - utils.DATA + OUTBOUND: BalanceChain{&Balance{Uuid: "testm", Value: 0, Weight: 5, DestinationIds: "NAT"}}, - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 160}}, + utils.DATA + utils.OUT: BalanceChain{&Balance{Uuid: "testm", Value: 0, Weight: 5, DestinationIds: "NAT"}}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 160}}, }} var err error cc, err = rifsBalance.debitCreditBalance(cd, false, false, true) if err != nil { t.Error("Error debiting balance: ", err) } - if rifsBalance.BalanceMap[utils.DATA+OUTBOUND][0].GetValue() != 0 || - rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 0 { - t.Error("Error extracting minutes from balance: ", rifsBalance.BalanceMap[utils.DATA+OUTBOUND][0].GetValue(), rifsBalance.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue()) + if rifsBalance.BalanceMap[utils.DATA+utils.OUT][0].GetValue() != 0 || + rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 0 { + t.Error("Error extracting minutes from balance: ", rifsBalance.BalanceMap[utils.DATA+utils.OUT][0].GetValue(), rifsBalance.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue()) } } func TestAccountGetDefaultMoneyBalanceEmpty(t *testing.T) { acc := &Account{} - defBal := acc.GetDefaultMoneyBalance(OUTBOUND) + defBal := acc.GetDefaultMoneyBalance(utils.OUT) if defBal == nil || len(acc.BalanceMap) != 1 || !defBal.IsDefault() { t.Errorf("Bad default money balance: %+v", defBal) } @@ -1337,9 +1337,9 @@ func TestAccountGetDefaultMoneyBalanceEmpty(t *testing.T) { func TestAccountGetDefaultMoneyBalance(t *testing.T) { acc := &Account{} acc.BalanceMap = make(map[string]BalanceChain) - tag := utils.MONETARY + OUTBOUND + tag := utils.MONETARY + utils.OUT acc.BalanceMap[tag] = append(acc.BalanceMap[tag], &Balance{Weight: 10}) - defBal := acc.GetDefaultMoneyBalance(OUTBOUND) + defBal := acc.GetDefaultMoneyBalance(utils.OUT) if defBal == nil || len(acc.BalanceMap[tag]) != 2 || !defBal.IsDefault() { t.Errorf("Bad default money balance: %+v", defBal) } @@ -1352,7 +1352,7 @@ func BenchmarkGetSecondForPrefix(b *testing.B) { b1 := &Balance{Value: 10, Weight: 10, DestinationIds: "NAT"} b2 := &Balance{Value: 100, Weight: 20, DestinationIds: "RET"} - ub1 := &Account{Id: "other", BalanceMap: map[string]BalanceChain{utils.VOICE + OUTBOUND: BalanceChain{b1, b2}, utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 21}}}} + ub1 := &Account{Id: "other", BalanceMap: map[string]BalanceChain{utils.VOICE + utils.OUT: BalanceChain{b1, b2}, utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 21}}}} cd := &CallDescriptor{ Destination: "0723", } @@ -1365,7 +1365,7 @@ func BenchmarkGetSecondForPrefix(b *testing.B) { func BenchmarkAccountStorageStoreRestore(b *testing.B) { b1 := &Balance{Value: 10, Weight: 10, DestinationIds: "NAT"} b2 := &Balance{Value: 100, Weight: 20, DestinationIds: "RET"} - rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{utils.VOICE + OUTBOUND: BalanceChain{b1, b2}, utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 21}}}} + rifsBalance := &Account{Id: "other", BalanceMap: map[string]BalanceChain{utils.VOICE + utils.OUT: BalanceChain{b1, b2}, utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 21}}}} for i := 0; i < b.N; i++ { accountingStorage.SetAccount(rifsBalance) accountingStorage.GetAccount(rifsBalance.Id) @@ -1375,7 +1375,7 @@ func BenchmarkAccountStorageStoreRestore(b *testing.B) { func BenchmarkGetSecondsForPrefix(b *testing.B) { b1 := &Balance{Value: 10, Weight: 10, DestinationIds: "NAT"} b2 := &Balance{Value: 100, Weight: 20, DestinationIds: "RET"} - ub1 := &Account{Id: "OUT:CUSTOMER_1:rif", BalanceMap: map[string]BalanceChain{utils.VOICE + OUTBOUND: BalanceChain{b1, b2}, utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 21}}}} + ub1 := &Account{Id: "OUT:CUSTOMER_1:rif", BalanceMap: map[string]BalanceChain{utils.VOICE + utils.OUT: BalanceChain{b1, b2}, utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 21}}}} cd := &CallDescriptor{ Destination: "0723", } diff --git a/engine/actions_test.go b/engine/actions_test.go index e5bbd1a76..216db7bd1 100644 --- a/engine/actions_test.go +++ b/engine/actions_test.go @@ -514,7 +514,7 @@ func TestActionPlansRemoveMember(t *testing.T) { func TestActionTriggerMatchNil(t *testing.T) { at := &ActionTrigger{ - BalanceDirection: OUTBOUND, + BalanceDirection: utils.OUT, BalanceType: utils.MONETARY, ThresholdType: TRIGGER_MAX_BALANCE, ThresholdValue: 2, @@ -527,7 +527,7 @@ func TestActionTriggerMatchNil(t *testing.T) { func TestActionTriggerMatchAllBlank(t *testing.T) { at := &ActionTrigger{ - BalanceDirection: OUTBOUND, + BalanceDirection: utils.OUT, BalanceType: utils.MONETARY, ThresholdType: TRIGGER_MAX_BALANCE, ThresholdValue: 2, @@ -540,12 +540,12 @@ func TestActionTriggerMatchAllBlank(t *testing.T) { func TestActionTriggerMatchMinuteBucketBlank(t *testing.T) { at := &ActionTrigger{ - BalanceDirection: OUTBOUND, + BalanceDirection: utils.OUT, BalanceType: utils.MONETARY, ThresholdType: TRIGGER_MAX_BALANCE, ThresholdValue: 2, } - a := &Action{Direction: OUTBOUND, BalanceType: utils.MONETARY} + a := &Action{Direction: utils.OUT, BalanceType: utils.MONETARY} if !at.Match(a) { t.Errorf("Action trigger [%v] does not match action [%v]", at, a) } @@ -553,7 +553,7 @@ func TestActionTriggerMatchMinuteBucketBlank(t *testing.T) { func TestActionTriggerMatchMinuteBucketFull(t *testing.T) { at := &ActionTrigger{ - BalanceDirection: OUTBOUND, + BalanceDirection: utils.OUT, BalanceType: utils.MONETARY, ThresholdType: TRIGGER_MAX_BALANCE, ThresholdValue: 2, @@ -566,12 +566,12 @@ func TestActionTriggerMatchMinuteBucketFull(t *testing.T) { func TestActionTriggerMatchAllFull(t *testing.T) { at := &ActionTrigger{ - BalanceDirection: OUTBOUND, + BalanceDirection: utils.OUT, BalanceType: utils.MONETARY, ThresholdType: TRIGGER_MAX_BALANCE, ThresholdValue: 2, } - a := &Action{Direction: OUTBOUND, BalanceType: utils.MONETARY, ExtraParameters: fmt.Sprintf(`{"ThresholdType":"%v", "ThresholdValue": %v}`, TRIGGER_MAX_BALANCE, 2)} + a := &Action{Direction: utils.OUT, BalanceType: utils.MONETARY, ExtraParameters: fmt.Sprintf(`{"ThresholdType":"%v", "ThresholdValue": %v}`, TRIGGER_MAX_BALANCE, 2)} if !at.Match(a) { t.Errorf("Action trigger [%v] does not match action [%v]", at, a) } @@ -579,12 +579,12 @@ func TestActionTriggerMatchAllFull(t *testing.T) { func TestActionTriggerMatchSomeFalse(t *testing.T) { at := &ActionTrigger{ - BalanceDirection: OUTBOUND, + BalanceDirection: utils.OUT, BalanceType: utils.MONETARY, ThresholdType: TRIGGER_MAX_BALANCE, ThresholdValue: 2, } - a := &Action{Direction: INBOUND, BalanceType: utils.MONETARY, ExtraParameters: fmt.Sprintf(`{"ThresholdType":"%v", "ThresholdValue": %v}`, TRIGGER_MAX_BALANCE, 2)} + a := &Action{Direction: utils.IN, BalanceType: utils.MONETARY, ExtraParameters: fmt.Sprintf(`{"ThresholdType":"%v", "ThresholdValue": %v}`, TRIGGER_MAX_BALANCE, 2)} if at.Match(a) { t.Errorf("Action trigger [%v] does not match action [%v]", at, a) } @@ -592,12 +592,12 @@ func TestActionTriggerMatchSomeFalse(t *testing.T) { func TestActionTriggerMatcBalanceFalse(t *testing.T) { at := &ActionTrigger{ - BalanceDirection: OUTBOUND, + BalanceDirection: utils.OUT, BalanceType: utils.MONETARY, ThresholdType: TRIGGER_MAX_BALANCE, ThresholdValue: 2, } - a := &Action{Direction: OUTBOUND, BalanceType: utils.MONETARY, ExtraParameters: fmt.Sprintf(`{"ThresholdType":"%v", "ThresholdValue": %v}`, TRIGGER_MAX_BALANCE, 3.0)} + a := &Action{Direction: utils.OUT, BalanceType: utils.MONETARY, ExtraParameters: fmt.Sprintf(`{"ThresholdType":"%v", "ThresholdValue": %v}`, TRIGGER_MAX_BALANCE, 3.0)} if at.Match(a) { t.Errorf("Action trigger [%v] does not match action [%v]", at, a) } @@ -605,12 +605,12 @@ func TestActionTriggerMatcBalanceFalse(t *testing.T) { func TestActionTriggerMatcAllFalse(t *testing.T) { at := &ActionTrigger{ - BalanceDirection: OUTBOUND, + BalanceDirection: utils.OUT, BalanceType: utils.MONETARY, ThresholdType: TRIGGER_MAX_BALANCE, ThresholdValue: 2, } - a := &Action{Direction: INBOUND, BalanceType: utils.VOICE, ExtraParameters: fmt.Sprintf(`{"ThresholdType":"%v", "ThresholdValue": %v}`, TRIGGER_MAX_COUNTER, 3)} + a := &Action{Direction: utils.IN, BalanceType: utils.VOICE, ExtraParameters: fmt.Sprintf(`{"ThresholdType":"%v", "ThresholdValue": %v}`, TRIGGER_MAX_COUNTER, 3)} if at.Match(a) { t.Errorf("Action trigger [%v] does not match action [%v]", at, a) } @@ -618,7 +618,7 @@ func TestActionTriggerMatcAllFalse(t *testing.T) { func TestActionTriggerMatchAll(t *testing.T) { at := &ActionTrigger{ - BalanceDirection: OUTBOUND, + BalanceDirection: utils.OUT, BalanceType: utils.MONETARY, ThresholdType: TRIGGER_MAX_BALANCE, ThresholdValue: 2, @@ -627,7 +627,7 @@ func TestActionTriggerMatchAll(t *testing.T) { BalanceRatingSubject: "test1", BalanceSharedGroup: "test2", } - a := &Action{Direction: OUTBOUND, BalanceType: utils.MONETARY, ExtraParameters: fmt.Sprintf(`{"ThresholdType":"%v", "ThresholdValue": %v, "DestinationIds": "%v", "BalanceWeight": %v, "BalanceRatingSubject": "%v", "BalanceSharedGroup": "%v"}`, TRIGGER_MAX_BALANCE, 2, "NAT", 1.0, "test1", "test2")} + a := &Action{Direction: utils.OUT, BalanceType: utils.MONETARY, ExtraParameters: fmt.Sprintf(`{"ThresholdType":"%v", "ThresholdValue": %v, "DestinationIds": "%v", "BalanceWeight": %v, "BalanceRatingSubject": "%v", "BalanceSharedGroup": "%v"}`, TRIGGER_MAX_BALANCE, 2, "NAT", 1.0, "test1", "test2")} if !at.Match(a) { t.Errorf("Action trigger [%v] does not match action [%v]", at, a) } @@ -648,7 +648,7 @@ func TestActionTriggers(t *testing.T) { func TestActionResetTriggres(t *testing.T) { ub := &Account{ Id: "TEST_UB", - BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 10}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 10}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Balances: BalanceChain{&Balance{Value: 1}}}}, ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}, &ActionTrigger{BalanceType: utils.MONETARY, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, } @@ -674,7 +674,7 @@ func TestActionResetTriggresExecutesThem(t *testing.T) { func TestActionResetTriggresActionFilter(t *testing.T) { ub := &Account{ Id: "TEST_UB", - BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 10}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 10}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Balances: BalanceChain{&Balance{Value: 1}}}}, ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}, &ActionTrigger{BalanceType: utils.MONETARY, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, } @@ -687,7 +687,7 @@ func TestActionResetTriggresActionFilter(t *testing.T) { func TestActionSetPostpaid(t *testing.T) { ub := &Account{ Id: "TEST_UB", - BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 100}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 100}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Balances: BalanceChain{&Balance{Value: 1}}}}, ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}, &ActionTrigger{BalanceType: utils.MONETARY, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, } @@ -701,7 +701,7 @@ func TestActionSetPrepaid(t *testing.T) { ub := &Account{ Id: "TEST_UB", AllowNegative: true, - BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 100}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 100}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Balances: BalanceChain{&Balance{Value: 1}}}}, ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}, &ActionTrigger{BalanceType: utils.MONETARY, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, } @@ -715,7 +715,7 @@ func TestActionResetPrepaid(t *testing.T) { ub := &Account{ Id: "TEST_UB", AllowNegative: true, - BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 100}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 100}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Balances: BalanceChain{&Balance{Value: 1}}}}, ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.SMS, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}, &ActionTrigger{BalanceType: utils.SMS, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, } @@ -723,7 +723,7 @@ func TestActionResetPrepaid(t *testing.T) { if !ub.AllowNegative || ub.BalanceMap[utils.MONETARY].GetTotalValue() != 0 || len(ub.UnitCounters) != 0 || - ub.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 0 || + ub.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 0 || ub.ActionTriggers[0].Executed == true || ub.ActionTriggers[1].Executed == true { t.Log(ub.BalanceMap) t.Error("Reset prepaid action failed!") @@ -733,14 +733,14 @@ func TestActionResetPrepaid(t *testing.T) { func TestActionResetPostpaid(t *testing.T) { ub := &Account{ Id: "TEST_UB", - BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 100}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 100}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Balances: BalanceChain{&Balance{Value: 1}}}}, ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.SMS, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}, &ActionTrigger{BalanceType: utils.SMS, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, } resetAccountAction(ub, nil, nil, nil) if ub.BalanceMap[utils.MONETARY].GetTotalValue() != 0 || len(ub.UnitCounters) != 0 || - ub.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 0 || + ub.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 0 || ub.ActionTriggers[0].Executed == true || ub.ActionTriggers[1].Executed == true { t.Error("Reset postpaid action failed!") } @@ -749,18 +749,18 @@ func TestActionResetPostpaid(t *testing.T) { func TestActionTopupResetCredit(t *testing.T) { ub := &Account{ Id: "TEST_UB", - BalanceMap: map[string]BalanceChain{utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 100}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, - UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balances: BalanceChain{&Balance{Value: 1}}}}, - ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: OUTBOUND, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}, &ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: OUTBOUND, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, + BalanceMap: map[string]BalanceChain{utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 100}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Direction: utils.OUT, Balances: BalanceChain{&Balance{Value: 1}}}}, + ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: utils.OUT, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}, &ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: utils.OUT, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, } - a := &Action{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balance: &Balance{Value: 10}} + a := &Action{BalanceType: utils.MONETARY, Direction: utils.OUT, Balance: &Balance{Value: 10}} topupResetAction(ub, nil, a, nil) if ub.AllowNegative || - ub.BalanceMap[utils.MONETARY+OUTBOUND].GetTotalValue() != 10 || + ub.BalanceMap[utils.MONETARY+utils.OUT].GetTotalValue() != 10 || len(ub.UnitCounters) != 1 || - len(ub.BalanceMap[utils.VOICE+OUTBOUND]) != 2 || + len(ub.BalanceMap[utils.VOICE+utils.OUT]) != 2 || ub.ActionTriggers[0].Executed != true || ub.ActionTriggers[1].Executed != true { - t.Errorf("Topup reset action failed: %+v", ub.BalanceMap[utils.MONETARY+OUTBOUND][0]) + t.Errorf("Topup reset action failed: %+v", ub.BalanceMap[utils.MONETARY+utils.OUT][0]) } } @@ -768,18 +768,18 @@ func TestActionTopupResetCreditId(t *testing.T) { ub := &Account{ Id: "TEST_UB", BalanceMap: map[string]BalanceChain{ - utils.MONETARY + OUTBOUND: BalanceChain{ + utils.MONETARY + utils.OUT: BalanceChain{ &Balance{Value: 100}, &Balance{Id: "TEST_B", Value: 15}, }, }, } - a := &Action{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balance: &Balance{Id: "TEST_B", Value: 10}} + a := &Action{BalanceType: utils.MONETARY, Direction: utils.OUT, Balance: &Balance{Id: "TEST_B", Value: 10}} topupResetAction(ub, nil, a, nil) if ub.AllowNegative || - ub.BalanceMap[utils.MONETARY+OUTBOUND].GetTotalValue() != 110 || - len(ub.BalanceMap[utils.MONETARY+OUTBOUND]) != 2 { - t.Errorf("Topup reset action failed: %+v", ub.BalanceMap[utils.MONETARY+OUTBOUND][0]) + ub.BalanceMap[utils.MONETARY+utils.OUT].GetTotalValue() != 110 || + len(ub.BalanceMap[utils.MONETARY+utils.OUT]) != 2 { + t.Errorf("Topup reset action failed: %+v", ub.BalanceMap[utils.MONETARY+utils.OUT][0]) } } @@ -787,18 +787,18 @@ func TestActionTopupResetCreditNoId(t *testing.T) { ub := &Account{ Id: "TEST_UB", BalanceMap: map[string]BalanceChain{ - utils.MONETARY + OUTBOUND: BalanceChain{ + utils.MONETARY + utils.OUT: BalanceChain{ &Balance{Value: 100}, &Balance{Id: "TEST_B", Value: 15}, }, }, } - a := &Action{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balance: &Balance{Value: 10}} + a := &Action{BalanceType: utils.MONETARY, Direction: utils.OUT, Balance: &Balance{Value: 10}} topupResetAction(ub, nil, a, nil) if ub.AllowNegative || - ub.BalanceMap[utils.MONETARY+OUTBOUND].GetTotalValue() != 20 || - len(ub.BalanceMap[utils.MONETARY+OUTBOUND]) != 2 { - t.Errorf("Topup reset action failed: %+v", ub.BalanceMap[utils.MONETARY+OUTBOUND][1]) + ub.BalanceMap[utils.MONETARY+utils.OUT].GetTotalValue() != 20 || + len(ub.BalanceMap[utils.MONETARY+utils.OUT]) != 2 { + t.Errorf("Topup reset action failed: %+v", ub.BalanceMap[utils.MONETARY+utils.OUT][1]) } } @@ -806,94 +806,94 @@ func TestActionTopupResetMinutes(t *testing.T) { ub := &Account{ Id: "TEST_UB", BalanceMap: map[string]BalanceChain{ - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 100}}, - utils.VOICE + OUTBOUND: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, - UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balances: BalanceChain{&Balance{Value: 1}}}}, - ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: OUTBOUND, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}, &ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: OUTBOUND, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 100}}, + utils.VOICE + utils.OUT: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Direction: utils.OUT, Balances: BalanceChain{&Balance{Value: 1}}}}, + ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: utils.OUT, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}, &ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: utils.OUT, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, } - a := &Action{BalanceType: utils.VOICE, Direction: OUTBOUND, Balance: &Balance{Value: 5, Weight: 20, DestinationIds: "NAT"}} + a := &Action{BalanceType: utils.VOICE, Direction: utils.OUT, Balance: &Balance{Value: 5, Weight: 20, DestinationIds: "NAT"}} topupResetAction(ub, nil, a, nil) if ub.AllowNegative || - ub.BalanceMap[utils.VOICE+OUTBOUND].GetTotalValue() != 5 || - ub.BalanceMap[utils.MONETARY+OUTBOUND].GetTotalValue() != 100 || + ub.BalanceMap[utils.VOICE+utils.OUT].GetTotalValue() != 5 || + ub.BalanceMap[utils.MONETARY+utils.OUT].GetTotalValue() != 100 || len(ub.UnitCounters) != 1 || - len(ub.BalanceMap[utils.VOICE+OUTBOUND]) != 2 || + len(ub.BalanceMap[utils.VOICE+utils.OUT]) != 2 || ub.ActionTriggers[0].Executed != true || ub.ActionTriggers[1].Executed != true { - t.Errorf("Topup reset minutes action failed: %+v", ub.BalanceMap[utils.VOICE+OUTBOUND][0]) + t.Errorf("Topup reset minutes action failed: %+v", ub.BalanceMap[utils.VOICE+utils.OUT][0]) } } func TestActionTopupCredit(t *testing.T) { ub := &Account{ Id: "TEST_UB", - BalanceMap: map[string]BalanceChain{utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 100}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, - UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balances: BalanceChain{&Balance{Value: 1}}}}, - ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: OUTBOUND, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}, &ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: OUTBOUND, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, + BalanceMap: map[string]BalanceChain{utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 100}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Direction: utils.OUT, Balances: BalanceChain{&Balance{Value: 1}}}}, + ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: utils.OUT, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}, &ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: utils.OUT, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, } - a := &Action{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balance: &Balance{Value: 10}} + a := &Action{BalanceType: utils.MONETARY, Direction: utils.OUT, Balance: &Balance{Value: 10}} topupAction(ub, nil, a, nil) if ub.AllowNegative || - ub.BalanceMap[utils.MONETARY+OUTBOUND].GetTotalValue() != 110 || + ub.BalanceMap[utils.MONETARY+utils.OUT].GetTotalValue() != 110 || len(ub.UnitCounters) != 1 || - len(ub.BalanceMap[utils.VOICE+OUTBOUND]) != 2 || + len(ub.BalanceMap[utils.VOICE+utils.OUT]) != 2 || ub.ActionTriggers[0].Executed != true || ub.ActionTriggers[1].Executed != true { - t.Error("Topup action failed!", ub.BalanceMap[utils.MONETARY+OUTBOUND].GetTotalValue()) + t.Error("Topup action failed!", ub.BalanceMap[utils.MONETARY+utils.OUT].GetTotalValue()) } } func TestActionTopupMinutes(t *testing.T) { ub := &Account{ Id: "TEST_UB", - BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 100}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 100}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Balances: BalanceChain{&Balance{Value: 1}}}}, ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}, &ActionTrigger{BalanceType: utils.MONETARY, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, } - a := &Action{BalanceType: utils.VOICE, Direction: OUTBOUND, Balance: &Balance{Value: 5, Weight: 20, DestinationIds: "NAT"}} + a := &Action{BalanceType: utils.VOICE, Direction: utils.OUT, Balance: &Balance{Value: 5, Weight: 20, DestinationIds: "NAT"}} topupAction(ub, nil, a, nil) if ub.AllowNegative || - ub.BalanceMap[utils.VOICE+OUTBOUND].GetTotalValue() != 15 || + ub.BalanceMap[utils.VOICE+utils.OUT].GetTotalValue() != 15 || ub.BalanceMap[utils.MONETARY].GetTotalValue() != 100 || len(ub.UnitCounters) != 1 || - len(ub.BalanceMap[utils.VOICE+OUTBOUND]) != 2 || + len(ub.BalanceMap[utils.VOICE+utils.OUT]) != 2 || ub.ActionTriggers[0].Executed != true || ub.ActionTriggers[1].Executed != true { - t.Error("Topup minutes action failed!", ub.BalanceMap[utils.VOICE+OUTBOUND]) + t.Error("Topup minutes action failed!", ub.BalanceMap[utils.VOICE+utils.OUT]) } } func TestActionDebitCredit(t *testing.T) { ub := &Account{ Id: "TEST_UB", - BalanceMap: map[string]BalanceChain{utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 100}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, - UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balances: BalanceChain{&Balance{Value: 1}}}}, - ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: OUTBOUND, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}, &ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: OUTBOUND, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, + BalanceMap: map[string]BalanceChain{utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 100}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Direction: utils.OUT, Balances: BalanceChain{&Balance{Value: 1}}}}, + ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: utils.OUT, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}, &ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: utils.OUT, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, } - a := &Action{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balance: &Balance{Value: 10}} + a := &Action{BalanceType: utils.MONETARY, Direction: utils.OUT, Balance: &Balance{Value: 10}} debitAction(ub, nil, a, nil) if ub.AllowNegative || - ub.BalanceMap[utils.MONETARY+OUTBOUND].GetTotalValue() != 90 || + ub.BalanceMap[utils.MONETARY+utils.OUT].GetTotalValue() != 90 || len(ub.UnitCounters) != 1 || - len(ub.BalanceMap[utils.VOICE+OUTBOUND]) != 2 || + len(ub.BalanceMap[utils.VOICE+utils.OUT]) != 2 || ub.ActionTriggers[0].Executed != true || ub.ActionTriggers[1].Executed != true { - t.Error("Debit action failed!", ub.BalanceMap[utils.MONETARY+OUTBOUND].GetTotalValue()) + t.Error("Debit action failed!", ub.BalanceMap[utils.MONETARY+utils.OUT].GetTotalValue()) } } func TestActionDebitMinutes(t *testing.T) { ub := &Account{ Id: "TEST_UB", - BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 100}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 100}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Balances: BalanceChain{&Balance{Value: 1}}}}, ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}, &ActionTrigger{BalanceType: utils.MONETARY, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, } - a := &Action{BalanceType: utils.VOICE, Direction: OUTBOUND, Balance: &Balance{Value: 5, Weight: 20, DestinationIds: "NAT"}} + a := &Action{BalanceType: utils.VOICE, Direction: utils.OUT, Balance: &Balance{Value: 5, Weight: 20, DestinationIds: "NAT"}} debitAction(ub, nil, a, nil) if ub.AllowNegative || - ub.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 5 || + ub.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 5 || ub.BalanceMap[utils.MONETARY].GetTotalValue() != 100 || len(ub.UnitCounters) != 1 || - len(ub.BalanceMap[utils.VOICE+OUTBOUND]) != 2 || + len(ub.BalanceMap[utils.VOICE+utils.OUT]) != 2 || ub.ActionTriggers[0].Executed != true || ub.ActionTriggers[1].Executed != true { - t.Error("Debit minutes action failed!", ub.BalanceMap[utils.VOICE+OUTBOUND][0]) + t.Error("Debit minutes action failed!", ub.BalanceMap[utils.VOICE+utils.OUT][0]) } } @@ -963,16 +963,16 @@ func TestActionResetCounterCredit(t *testing.T) { ub := &Account{ Id: "TEST_UB", AllowNegative: true, - BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 100}}, utils.VOICE + OUTBOUND: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, - UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Direction: OUTBOUND, Balances: BalanceChain{&Balance{Value: 1}}}, &UnitsCounter{BalanceType: utils.SMS, Direction: OUTBOUND, Balances: BalanceChain{&Balance{Value: 1}}}}, - ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: OUTBOUND, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, + BalanceMap: map[string]BalanceChain{utils.MONETARY: BalanceChain{&Balance{Value: 100}}, utils.VOICE + utils.OUT: BalanceChain{&Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + UnitCounters: []*UnitsCounter{&UnitsCounter{BalanceType: utils.MONETARY, Direction: utils.OUT, Balances: BalanceChain{&Balance{Value: 1}}}, &UnitsCounter{BalanceType: utils.SMS, Direction: utils.OUT, Balances: BalanceChain{&Balance{Value: 1}}}}, + ActionTriggers: ActionTriggers{&ActionTrigger{BalanceType: utils.MONETARY, BalanceDirection: utils.OUT, ThresholdValue: 2, ActionsId: "TEST_ACTIONS", Executed: true}}, } - a := &Action{BalanceType: utils.MONETARY, Direction: OUTBOUND} + a := &Action{BalanceType: utils.MONETARY, Direction: utils.OUT} resetCounterAction(ub, nil, a, nil) if !ub.AllowNegative || ub.BalanceMap[utils.MONETARY].GetTotalValue() != 100 || len(ub.UnitCounters) != 2 || - len(ub.BalanceMap[utils.VOICE+OUTBOUND]) != 2 || + len(ub.BalanceMap[utils.VOICE+utils.OUT]) != 2 || ub.ActionTriggers[0].Executed != true { t.Error("Reset counters action failed!", ub.UnitCounters) } @@ -982,7 +982,7 @@ func TestActionTriggerLogging(t *testing.T) { at := &ActionTrigger{ Id: "some_uuid", BalanceType: utils.MONETARY, - BalanceDirection: OUTBOUND, + BalanceDirection: utils.OUT, ThresholdValue: 100.0, BalanceDestinationIds: "NAT", Weight: 10.0, @@ -1089,7 +1089,7 @@ func TestTopupAction(t *testing.T) { a := &Action{ ActionType: TOPUP, BalanceType: utils.MONETARY, - Direction: OUTBOUND, + Direction: utils.OUT, Balance: &Balance{Value: 25, DestinationIds: "RET", Weight: 20}, } @@ -1100,8 +1100,8 @@ func TestTopupAction(t *testing.T) { at.Execute() afterUb, _ := accountingStorage.GetAccount("*out:vdf:minu") - initialValue := initialUb.BalanceMap[utils.MONETARY+OUTBOUND].GetTotalValue() - afterValue := afterUb.BalanceMap[utils.MONETARY+OUTBOUND].GetTotalValue() + initialValue := initialUb.BalanceMap[utils.MONETARY+utils.OUT].GetTotalValue() + afterValue := afterUb.BalanceMap[utils.MONETARY+utils.OUT].GetTotalValue() if initialValue != 50 || afterValue != 75 { t.Error("Bad topup before and after: ", initialValue, afterValue) } @@ -1112,7 +1112,7 @@ func TestTopupActionLoaded(t *testing.T) { a := &Action{ ActionType: TOPUP, BalanceType: utils.MONETARY, - Direction: OUTBOUND, + Direction: utils.OUT, Balance: &Balance{Value: 25, DestinationIds: "RET", Weight: 20}, } @@ -1123,8 +1123,8 @@ func TestTopupActionLoaded(t *testing.T) { at.Execute() afterUb, _ := accountingStorage.GetAccount("*out:vdf:minitsboy") - initialValue := initialUb.BalanceMap[utils.MONETARY+OUTBOUND].GetTotalValue() - afterValue := afterUb.BalanceMap[utils.MONETARY+OUTBOUND].GetTotalValue() + initialValue := initialUb.BalanceMap[utils.MONETARY+utils.OUT].GetTotalValue() + afterValue := afterUb.BalanceMap[utils.MONETARY+utils.OUT].GetTotalValue() if initialValue != 100 || afterValue != 125 { t.Logf("Initial: %+v", initialUb) t.Logf("After: %+v", afterUb) diff --git a/engine/balances.go b/engine/balances.go index b93fa12db..930d29016 100644 --- a/engine/balances.go +++ b/engine/balances.go @@ -628,22 +628,6 @@ func (bc BalanceChain) GetTotalValue() (total float64) { return } -func (bc BalanceChain) Debit(amount float64) float64 { - bc.Sort() - for i, b := range bc { - if b.IsExpired() { - continue - } - if b.GetValue() >= amount || i == len(bc)-1 { // if last one go negative - b.SubstractValue(amount) - break - } - b.SetValue(0) - amount -= b.GetValue() - } - return bc.GetTotalValue() -} - func (bc BalanceChain) Equal(o BalanceChain) bool { if len(bc) != len(o) { return false diff --git a/engine/callcost_test.go b/engine/callcost_test.go index 10d2803cc..46448e90a 100644 --- a/engine/callcost_test.go +++ b/engine/callcost_test.go @@ -28,14 +28,14 @@ import ( func TestSingleResultMerge(t *testing.T) { t1 := time.Date(2012, time.February, 2, 17, 0, 0, 0, time.UTC) t2 := time.Date(2012, time.February, 2, 17, 1, 0, 0, time.UTC) - cd := &CallDescriptor{Direction: OUTBOUND, Category: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} + cd := &CallDescriptor{Direction: utils.OUT, Category: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} cc1, _ := cd.getCost() if cc1.Cost != 61 { t.Errorf("expected 61 was %v", cc1.Cost) } /*t1 = time.Date(2012, time.February, 2, 17, 1, 0, 0, time.UTC) t2 = time.Date(2012, time.February, 2, 17, 2, 0, 0, time.UTC) - cd = &CallDescriptor{Direction: OUTBOUND, TOR: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} + cd = &CallDescriptor{Direction: utils.OUT, TOR: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} cc2, _ := cd.GetCost() if cc2.Cost != 60 { t.Errorf("expected 60 was %v", cc2.Cost) @@ -52,7 +52,7 @@ func TestSingleResultMerge(t *testing.T) { func TestMultipleResultMerge(t *testing.T) { t1 := time.Date(2012, time.February, 2, 17, 59, 0, 0, time.UTC) t2 := time.Date(2012, time.February, 2, 18, 0, 0, 0, time.UTC) - cd := &CallDescriptor{Direction: OUTBOUND, Category: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} + cd := &CallDescriptor{Direction: utils.OUT, Category: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} cc1, _ := cd.getCost() if cc1.Cost != 61 { //ils.LogFull(cc1) @@ -63,7 +63,7 @@ func TestMultipleResultMerge(t *testing.T) { } t1 = time.Date(2012, time.February, 2, 18, 00, 0, 0, time.UTC) t2 = time.Date(2012, time.February, 2, 18, 01, 0, 0, time.UTC) - cd = &CallDescriptor{Direction: OUTBOUND, Category: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} + cd = &CallDescriptor{Direction: utils.OUT, Category: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} cc2, _ := cd.getCost() if cc2.Cost != 30 { t.Errorf("expected 30 was %v", cc2.Cost) @@ -83,7 +83,7 @@ func TestMultipleResultMerge(t *testing.T) { func TestMultipleInputLeftMerge(t *testing.T) { t1 := time.Date(2012, time.February, 2, 17, 59, 0, 0, time.UTC) t2 := time.Date(2012, time.February, 2, 18, 01, 0, 0, time.UTC) - cd := &CallDescriptor{Direction: OUTBOUND, Category: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} + cd := &CallDescriptor{Direction: utils.OUT, Category: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} cc1, _ := cd.getCost() //log.Printf("Timing: %+v", cc1.Timespans[1].RateInterval.Timing) //log.Printf("Rating: %+v", cc1.Timespans[1].RateInterval.Rating) @@ -92,7 +92,7 @@ func TestMultipleInputLeftMerge(t *testing.T) { } /*t1 = time.Date(2012, time.February, 2, 18, 01, 0, 0, time.UTC) t2 = time.Date(2012, time.February, 2, 18, 02, 0, 0, time.UTC) - cd = &CallDescriptor{Direction: OUTBOUND, TOR: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} + cd = &CallDescriptor{Direction: utils.OUT, TOR: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} cc2, _ := cd.getCost() if cc2.Cost != 30 { t.Errorf("expected 30 was %v", cc2.Cost) @@ -109,14 +109,14 @@ func TestMultipleInputLeftMerge(t *testing.T) { func TestMultipleInputRightMerge(t *testing.T) { t1 := time.Date(2012, time.February, 2, 17, 58, 0, 0, time.UTC) t2 := time.Date(2012, time.February, 2, 17, 59, 0, 0, time.UTC) - cd := &CallDescriptor{Direction: OUTBOUND, Category: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} + cd := &CallDescriptor{Direction: utils.OUT, Category: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} cc1, _ := cd.getCost() if cc1.Cost != 61 { t.Errorf("expected 61 was %v", cc1.Cost) } t1 = time.Date(2012, time.February, 2, 17, 59, 0, 0, time.UTC) t2 = time.Date(2012, time.February, 2, 18, 01, 0, 0, time.UTC) - cd = &CallDescriptor{Direction: OUTBOUND, Category: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} + cd = &CallDescriptor{Direction: utils.OUT, Category: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} cc2, _ := cd.getCost() if cc2.Cost != 91 { t.Errorf("expected 91 was %v", cc2.Cost) @@ -133,7 +133,7 @@ func TestMultipleInputRightMerge(t *testing.T) { func TestCallCostMergeEmpty(t *testing.T) { t1 := time.Date(2012, time.February, 2, 17, 58, 0, 0, time.UTC) t2 := time.Date(2012, time.February, 2, 17, 59, 0, 0, time.UTC) - cd := &CallDescriptor{Direction: OUTBOUND, Category: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} + cd := &CallDescriptor{Direction: utils.OUT, Category: "0", Tenant: "vdf", Subject: "rif", Destination: "0256", TimeStart: t1, TimeEnd: t2} cc1, _ := cd.getCost() cc2 := &CallCost{} cc1.Merge(cc2) diff --git a/engine/calldesc_test.go b/engine/calldesc_test.go index ac3e583f6..924f4c081 100644 --- a/engine/calldesc_test.go +++ b/engine/calldesc_test.go @@ -41,20 +41,20 @@ func init() { func populateDB() { ats := []*Action{ - &Action{ActionType: "*topup", BalanceType: utils.MONETARY, Direction: OUTBOUND, Balance: &Balance{Value: 10}}, - &Action{ActionType: "*topup", BalanceType: utils.VOICE, Direction: OUTBOUND, Balance: &Balance{Weight: 20, Value: 10, DestinationIds: "NAT"}}, + &Action{ActionType: "*topup", BalanceType: utils.MONETARY, Direction: utils.OUT, Balance: &Balance{Value: 10}}, + &Action{ActionType: "*topup", BalanceType: utils.VOICE, Direction: utils.OUT, Balance: &Balance{Weight: 20, Value: 10, DestinationIds: "NAT"}}, } ats1 := []*Action{ - &Action{ActionType: "*topup", BalanceType: utils.MONETARY, Direction: OUTBOUND, Balance: &Balance{Value: 10}, Weight: 10}, + &Action{ActionType: "*topup", BalanceType: utils.MONETARY, Direction: utils.OUT, Balance: &Balance{Value: 10}, Weight: 10}, &Action{ActionType: "*reset_account", Weight: 20}, } minu := &Account{ Id: "*out:vdf:minu", BalanceMap: map[string]BalanceChain{ - utils.MONETARY + OUTBOUND: BalanceChain{&Balance{Value: 50}}, - utils.VOICE + OUTBOUND: BalanceChain{ + utils.MONETARY + utils.OUT: BalanceChain{&Balance{Value: 50}}, + utils.VOICE + utils.OUT: BalanceChain{ &Balance{Value: 200, DestinationIds: "NAT", Weight: 10}, &Balance{Value: 100, DestinationIds: "RET", Weight: 20}, }}, @@ -62,7 +62,7 @@ func populateDB() { broker := &Account{ Id: "*out:vdf:broker", BalanceMap: map[string]BalanceChain{ - utils.VOICE + OUTBOUND: BalanceChain{ + utils.VOICE + utils.OUT: BalanceChain{ &Balance{Value: 20, DestinationIds: "NAT", Weight: 10, RatingSubject: "rif"}, &Balance{Value: 100, DestinationIds: "RET", Weight: 20}, }}, @@ -70,7 +70,7 @@ func populateDB() { luna := &Account{ Id: "*out:vdf:luna", BalanceMap: map[string]BalanceChain{ - utils.MONETARY + OUTBOUND: BalanceChain{ + utils.MONETARY + utils.OUT: BalanceChain{ &Balance{Value: 0, Weight: 20}, }}, } @@ -78,11 +78,11 @@ func populateDB() { minitsboy := &Account{ Id: "*out:vdf:minitsboy", BalanceMap: map[string]BalanceChain{ - utils.VOICE + OUTBOUND: BalanceChain{ + utils.VOICE + utils.OUT: BalanceChain{ &Balance{Value: 20, DestinationIds: "NAT", Weight: 10, RatingSubject: "rif"}, &Balance{Value: 100, DestinationIds: "RET", Weight: 20}, }, - utils.MONETARY + OUTBOUND: BalanceChain{ + utils.MONETARY + utils.OUT: BalanceChain{ &Balance{Value: 100, Weight: 10}, }, }, @@ -90,14 +90,14 @@ func populateDB() { max := &Account{ Id: "*out:cgrates.org:max", BalanceMap: map[string]BalanceChain{ - utils.MONETARY + OUTBOUND: BalanceChain{ + utils.MONETARY + utils.OUT: BalanceChain{ &Balance{Value: 11, Weight: 20}, }}, } money := &Account{ Id: "*out:cgrates.org:money", BalanceMap: map[string]BalanceChain{ - utils.MONETARY + OUTBOUND: BalanceChain{ + utils.MONETARY + utils.OUT: BalanceChain{ &Balance{Value: 10000, Weight: 10}, }}, } @@ -129,7 +129,7 @@ func TestSplitSpans(t *testing.T) { } func TestSplitSpansWeekend(t *testing.T) { - cd := &CallDescriptor{Direction: OUTBOUND, + cd := &CallDescriptor{Direction: utils.OUT, Category: "postpaid", TOR: utils.VOICE, Tenant: "foehn", @@ -710,13 +710,13 @@ func TestMaxDebitWithAccountShared(t *testing.T) { t.Errorf("Wrong callcost in shared debit: %+v, %v", cc, err) } acc, _ := cd.getAccount() - balanceMap := acc.BalanceMap[utils.MONETARY+OUTBOUND] + balanceMap := acc.BalanceMap[utils.MONETARY+utils.OUT] if len(balanceMap) != 1 || balanceMap[0].GetValue() != 0 { t.Errorf("Wrong shared balance debited: %+v", balanceMap[0]) } other, err := accountingStorage.GetAccount("*out:vdf:empty10") - if err != nil || other.BalanceMap[utils.MONETARY+OUTBOUND][0].GetValue() != 7.5 { - t.Errorf("Error debiting shared balance: %+v", other.BalanceMap[utils.MONETARY+OUTBOUND][0]) + if err != nil || other.BalanceMap[utils.MONETARY+utils.OUT][0].GetValue() != 7.5 { + t.Errorf("Error debiting shared balance: %+v", other.BalanceMap[utils.MONETARY+utils.OUT][0]) } } @@ -923,7 +923,7 @@ func TestDebitFromShareAndNormal(t *testing.T) { } cc, err := cd.MaxDebit() acc, _ := cd.getAccount() - balanceMap := acc.BalanceMap[utils.MONETARY+OUTBOUND] + balanceMap := acc.BalanceMap[utils.MONETARY+utils.OUT] if err != nil || cc.Cost != 2.5 { t.Errorf("Debit from share and normal error: %+v, %v", cc, err) } @@ -955,7 +955,7 @@ func TestDebitFromEmptyShare(t *testing.T) { t.Errorf("Debit from empty share error: %+v, %v", cc, err) } acc, _ := cd.getAccount() - balanceMap := acc.BalanceMap[utils.MONETARY+OUTBOUND] + balanceMap := acc.BalanceMap[utils.MONETARY+utils.OUT] if len(balanceMap) != 2 || balanceMap[0].GetValue() != 0 || balanceMap[1].GetValue() != -2.5 { t.Errorf("Error debiting from empty share: %+v", balanceMap[1].GetValue()) } @@ -984,13 +984,13 @@ func TestDebitNegatve(t *testing.T) { } acc, _ := cd.getAccount() //utils.PrintFull(acc) - balanceMap := acc.BalanceMap[utils.MONETARY+OUTBOUND] + balanceMap := acc.BalanceMap[utils.MONETARY+utils.OUT] if len(balanceMap) != 1 || balanceMap[0].GetValue() != -2.5 { t.Errorf("Error debiting from empty share: %+v", balanceMap[0].GetValue()) } cc, err = cd.MaxDebit() acc, _ = cd.getAccount() - balanceMap = acc.BalanceMap[utils.MONETARY+OUTBOUND] + balanceMap = acc.BalanceMap[utils.MONETARY+utils.OUT] //utils.LogFull(balanceMap) if err != nil || cc.Cost != 2.5 { t.Errorf("Debit from empty share error: %+v, %v", cc, err) @@ -1073,8 +1073,8 @@ func TestMaxDebitConsumesMinutes(t *testing.T) { LoopIndex: 0, DurationIndex: 0} cd1.MaxDebit() - if cd1.account.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != 20 { - t.Error("Error using minutes: ", cd1.account.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue()) + if cd1.account.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != 20 { + t.Error("Error using minutes: ", cd1.account.BalanceMap[utils.VOICE+utils.OUT][0].GetValue()) } } diff --git a/engine/loader_csv_test.go b/engine/loader_csv_test.go index 14f242899..2f271af3d 100644 --- a/engine/loader_csv_test.go +++ b/engine/loader_csv_test.go @@ -809,7 +809,7 @@ func TestLoadActions(t *testing.T) { Id: "MINI0", ActionType: TOPUP_RESET, BalanceType: utils.MONETARY, - Direction: OUTBOUND, + Direction: utils.OUT, ExpirationString: UNLIMITED, ExtraParameters: "", Weight: 10, @@ -823,7 +823,7 @@ func TestLoadActions(t *testing.T) { Id: "MINI1", ActionType: TOPUP, BalanceType: utils.VOICE, - Direction: OUTBOUND, + Direction: utils.OUT, ExpirationString: UNLIMITED, ExtraParameters: "", Weight: 10, @@ -845,7 +845,7 @@ func TestLoadActions(t *testing.T) { Id: "SHARED0", ActionType: TOPUP, BalanceType: utils.MONETARY, - Direction: OUTBOUND, + Direction: utils.OUT, ExpirationString: UNLIMITED, Weight: 10, Balance: &Balance{ @@ -995,7 +995,7 @@ func TestLoadActionTriggers(t *testing.T) { atr := csvr.actionsTriggers["STANDARD_TRIGGER"][0] expected := &ActionTrigger{ BalanceType: utils.VOICE, - BalanceDirection: OUTBOUND, + BalanceDirection: utils.OUT, ThresholdType: TRIGGER_MIN_COUNTER, ThresholdValue: 10, BalanceDestinationIds: "GERMANY_O2", @@ -1009,7 +1009,7 @@ func TestLoadActionTriggers(t *testing.T) { atr = csvr.actionsTriggers["STANDARD_TRIGGER"][1] expected = &ActionTrigger{ BalanceType: utils.VOICE, - BalanceDirection: OUTBOUND, + BalanceDirection: utils.OUT, ThresholdType: TRIGGER_MAX_BALANCE, ThresholdValue: 200, BalanceDestinationIds: "GERMANY", diff --git a/engine/ratingplan_test.go b/engine/ratingplan_test.go index a13bccc8d..cd45f9a7c 100644 --- a/engine/ratingplan_test.go +++ b/engine/ratingplan_test.go @@ -32,7 +32,7 @@ func TestApRestoreFromStorage(t *testing.T) { cd := &CallDescriptor{ TimeStart: time.Date(2013, 10, 21, 18, 34, 0, 0, time.UTC), TimeEnd: time.Date(2013, 10, 21, 18, 35, 0, 0, time.UTC), - Direction: OUTBOUND, + Direction: utils.OUT, Category: "0", Tenant: "CUSTOMER_1", Subject: "rif:from:tm", @@ -77,7 +77,7 @@ func TestFallbackDirect(t *testing.T) { TimeStart: time.Date(2013, 10, 21, 18, 34, 0, 0, time.UTC), TimeEnd: time.Date(2013, 10, 21, 18, 35, 0, 0, time.UTC), Category: "0", - Direction: OUTBOUND, + Direction: utils.OUT, Tenant: "CUSTOMER_2", Subject: "danb:87.139.12.167", Destination: "41"} @@ -92,7 +92,7 @@ func TestFallbackMultiple(t *testing.T) { TimeStart: time.Date(2013, 10, 21, 18, 34, 0, 0, time.UTC), TimeEnd: time.Date(2013, 10, 21, 18, 35, 0, 0, time.UTC), Category: "0", - Direction: OUTBOUND, + Direction: utils.OUT, Tenant: "vdf", Subject: "fall", Destination: "0723045"} @@ -107,7 +107,7 @@ func TestFallbackWithBackTrace(t *testing.T) { TimeStart: time.Date(2013, 10, 21, 18, 34, 0, 0, time.UTC), TimeEnd: time.Date(2013, 10, 21, 18, 35, 0, 0, time.UTC), Category: "0", - Direction: OUTBOUND, + Direction: utils.OUT, Tenant: "CUSTOMER_2", Subject: "danb:87.139.12.167", Destination: "4123"} @@ -122,7 +122,7 @@ func TestFallbackNoDefault(t *testing.T) { TimeStart: time.Date(2013, 10, 21, 18, 34, 0, 0, time.UTC), TimeEnd: time.Date(2013, 10, 21, 18, 35, 0, 0, time.UTC), Category: "0", - Direction: OUTBOUND, + Direction: utils.OUT, Tenant: "vdf", Subject: "one", Destination: "0723"} @@ -133,7 +133,7 @@ func TestFallbackNoDefault(t *testing.T) { } func TestFallbackNoInfiniteLoop(t *testing.T) { - cd := &CallDescriptor{Category: "0", Direction: OUTBOUND, Tenant: "vdf", Subject: "rif", Destination: "0721"} + cd := &CallDescriptor{Category: "0", Direction: utils.OUT, Tenant: "vdf", Subject: "rif", Destination: "0721"} cd.LoadRatingPlans() if len(cd.RatingInfos) != 0 { t.Error("Error restoring activation periods: ", len(cd.RatingInfos)) @@ -141,7 +141,7 @@ func TestFallbackNoInfiniteLoop(t *testing.T) { } func TestFallbackNoInfiniteLoopSelf(t *testing.T) { - cd := &CallDescriptor{Category: "0", Direction: OUTBOUND, Tenant: "vdf", Subject: "inf", Destination: "0721"} + cd := &CallDescriptor{Category: "0", Direction: utils.OUT, Tenant: "vdf", Subject: "inf", Destination: "0721"} cd.LoadRatingPlans() if len(cd.RatingInfos) != 0 { t.Error("Error restoring activation periods: ", len(cd.RatingInfos)) diff --git a/engine/ratingprofile_test.go b/engine/ratingprofile_test.go index ea31d11ca..81727cac6 100644 --- a/engine/ratingprofile_test.go +++ b/engine/ratingprofile_test.go @@ -21,6 +21,8 @@ package engine import ( "testing" "time" + + "github.com/cgrates/cgrates/utils" ) func TestGetRatingProfileForPrefix(t *testing.T) { @@ -29,7 +31,7 @@ func TestGetRatingProfileForPrefix(t *testing.T) { TimeEnd: time.Date(2013, 11, 18, 13, 47, 30, 0, time.UTC), Tenant: "vdf", Category: "0", - Direction: OUTBOUND, + Direction: utils.OUT, Subject: "fallback1", Destination: "0256098", } @@ -48,7 +50,7 @@ func TestGetRatingProfileForPrefixFirstEmpty(t *testing.T) { TimeEnd: time.Date(2013, 11, 18, 13, 47, 30, 0, time.UTC), Tenant: "vdf", Category: "0", - Direction: OUTBOUND, + Direction: utils.OUT, Subject: "fallback1", Destination: "0256098", } @@ -68,7 +70,7 @@ func TestGetRatingProfileNotFound(t *testing.T) { TimeEnd: time.Date(2015, 8, 18, 22, 06, 30, 0, time.UTC), Tenant: "vdf", Category: "0", - Direction: OUTBOUND, + Direction: utils.OUT, Subject: "no_rating_profile", Destination: "0256098", } @@ -84,7 +86,7 @@ func TestGetRatingProfileFoundButNoDestination(t *testing.T) { TimeEnd: time.Date(2015, 8, 18, 22, 06, 30, 0, time.UTC), Tenant: "cgrates.org", Category: "call", - Direction: OUTBOUND, + Direction: utils.OUT, Subject: "nt", Destination: "447956", } diff --git a/engine/responder_test.go b/engine/responder_test.go index c2dcd91db..d57958d3a 100644 --- a/engine/responder_test.go +++ b/engine/responder_test.go @@ -73,8 +73,8 @@ func TestGetDerivedMaxSessionTime(t *testing.T) { } b10 := &Balance{Value: 10, Weight: 10, DestinationIds: "DE_TMOBILE"} b20 := &Balance{Value: 20, Weight: 10, DestinationIds: "DE_TMOBILE"} - rifsAccount := &Account{Id: utils.ConcatenatedKey(utils.OUT, testTenant, "rif"), BalanceMap: map[string]BalanceChain{utils.VOICE + OUTBOUND: BalanceChain{b10}}} - dansAccount := &Account{Id: utils.ConcatenatedKey(utils.OUT, testTenant, "dan"), BalanceMap: map[string]BalanceChain{utils.VOICE + OUTBOUND: BalanceChain{b20}}} + rifsAccount := &Account{Id: utils.ConcatenatedKey(utils.OUT, testTenant, "rif"), BalanceMap: map[string]BalanceChain{utils.VOICE + utils.OUT: BalanceChain{b10}}} + dansAccount := &Account{Id: utils.ConcatenatedKey(utils.OUT, testTenant, "dan"), BalanceMap: map[string]BalanceChain{utils.VOICE + utils.OUT: BalanceChain{b20}}} if err := accountingStorage.SetAccount(rifsAccount); err != nil { t.Error(err) } @@ -96,15 +96,15 @@ func TestGetDerivedMaxSessionTime(t *testing.T) { ratingStorage.CacheRatingAll() if rifStoredAcnt, err := accountingStorage.GetAccount(utils.ConcatenatedKey(utils.OUT, testTenant, "rif")); err != nil { t.Error(err) - //} else if rifStoredAcnt.BalanceMap[utils.VOICE+OUTBOUND].Equal(rifsAccount.BalanceMap[utils.VOICE+OUTBOUND]) { - // t.Errorf("Expected: %+v, received: %+v", rifsAccount.BalanceMap[utils.VOICE+OUTBOUND][0], rifStoredAcnt.BalanceMap[utils.VOICE+OUTBOUND][0]) - } else if rifStoredAcnt.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != rifsAccount.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() { - t.Error("BalanceValue: ", rifStoredAcnt.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue()) + //} else if rifStoredAcnt.BalanceMap[utils.VOICE+utils.OUT].Equal(rifsAccount.BalanceMap[utils.VOICE+utils.OUT]) { + // t.Errorf("Expected: %+v, received: %+v", rifsAccount.BalanceMap[utils.VOICE+utils.OUT][0], rifStoredAcnt.BalanceMap[utils.VOICE+utils.OUT][0]) + } else if rifStoredAcnt.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != rifsAccount.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() { + t.Error("BalanceValue: ", rifStoredAcnt.BalanceMap[utils.VOICE+utils.OUT][0].GetValue()) } if danStoredAcnt, err := accountingStorage.GetAccount(utils.ConcatenatedKey(utils.OUT, testTenant, "dan")); err != nil { t.Error(err) - } else if danStoredAcnt.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() != dansAccount.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue() { - t.Error("BalanceValue: ", danStoredAcnt.BalanceMap[utils.VOICE+OUTBOUND][0].GetValue()) + } else if danStoredAcnt.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() != dansAccount.BalanceMap[utils.VOICE+utils.OUT][0].GetValue() { + t.Error("BalanceValue: ", danStoredAcnt.BalanceMap[utils.VOICE+utils.OUT][0].GetValue()) } var dcs utils.DerivedChargers attrs := &utils.AttrDerivedChargers{Tenant: testTenant, Category: "call", Direction: "*out", Account: "dan", Subject: "dan"} @@ -430,8 +430,8 @@ func TestGetLCR(t *testing.T) { } bRif12 := &Balance{Value: 40, Weight: 10, DestinationIds: dstDe.Id} bIvo12 := &Balance{Value: 60, Weight: 10, DestinationIds: dstDe.Id} - rif12sAccount := &Account{Id: utils.ConcatenatedKey(utils.OUT, "tenant12", "rif12"), BalanceMap: map[string]BalanceChain{utils.VOICE + OUTBOUND: BalanceChain{bRif12}}, AllowNegative: true} - ivo12sAccount := &Account{Id: utils.ConcatenatedKey(utils.OUT, "tenant12", "ivo12"), BalanceMap: map[string]BalanceChain{utils.VOICE + OUTBOUND: BalanceChain{bIvo12}}, AllowNegative: true} + rif12sAccount := &Account{Id: utils.ConcatenatedKey(utils.OUT, "tenant12", "rif12"), BalanceMap: map[string]BalanceChain{utils.VOICE + utils.OUT: BalanceChain{bRif12}}, AllowNegative: true} + ivo12sAccount := &Account{Id: utils.ConcatenatedKey(utils.OUT, "tenant12", "ivo12"), BalanceMap: map[string]BalanceChain{utils.VOICE + utils.OUT: BalanceChain{bIvo12}}, AllowNegative: true} for _, acnt := range []*Account{rif12sAccount, ivo12sAccount} { if err := accountingStorage.SetAccount(acnt); err != nil { t.Error(err) diff --git a/engine/storage_test.go b/engine/storage_test.go index dc3a46022..0c4e6b7e5 100644 --- a/engine/storage_test.go +++ b/engine/storage_test.go @@ -273,14 +273,14 @@ func TestDifferentUuid(t *testing.T) { func GetUB() *Account { uc := &UnitsCounter{ - Direction: OUTBOUND, + Direction: utils.OUT, BalanceType: utils.SMS, Balances: BalanceChain{&Balance{Value: 1}, &Balance{Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}, } at := &ActionTrigger{ Id: "some_uuid", BalanceType: utils.MONETARY, - BalanceDirection: OUTBOUND, + BalanceDirection: utils.OUT, ThresholdValue: 100.0, BalanceDestinationIds: "NAT", Weight: 10.0, @@ -291,7 +291,7 @@ func GetUB() *Account { ub := &Account{ Id: "rif", AllowNegative: true, - BalanceMap: map[string]BalanceChain{utils.SMS + OUTBOUND: BalanceChain{&Balance{Value: 14, ExpirationDate: zeroTime}}, utils.DATA + OUTBOUND: BalanceChain{&Balance{Value: 1024, ExpirationDate: zeroTime}}, utils.VOICE: BalanceChain{&Balance{Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, + BalanceMap: map[string]BalanceChain{utils.SMS + utils.OUT: BalanceChain{&Balance{Value: 14, ExpirationDate: zeroTime}}, utils.DATA + utils.OUT: BalanceChain{&Balance{Value: 1024, ExpirationDate: zeroTime}}, utils.VOICE: BalanceChain{&Balance{Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}}, UnitCounters: []*UnitsCounter{uc, uc}, ActionTriggers: ActionTriggers{at, at, at}, } diff --git a/engine/units_counter_test.go b/engine/units_counter_test.go index 6edbd9a64..09bdec840 100644 --- a/engine/units_counter_test.go +++ b/engine/units_counter_test.go @@ -26,7 +26,7 @@ import ( func TestUnitsCounterAddBalance(t *testing.T) { uc := &UnitsCounter{ - Direction: OUTBOUND, + Direction: utils.OUT, BalanceType: utils.SMS, Balances: BalanceChain{&Balance{Value: 1}, &Balance{Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}, } @@ -38,7 +38,7 @@ func TestUnitsCounterAddBalance(t *testing.T) { func TestUnitsCounterAddBalanceExists(t *testing.T) { uc := &UnitsCounter{ - Direction: OUTBOUND, + Direction: utils.OUT, BalanceType: utils.SMS, Balances: BalanceChain{&Balance{Value: 1}, &Balance{Value: 10, Weight: 20, DestinationIds: "NAT"}, &Balance{Weight: 10, DestinationIds: "RET"}}, } diff --git a/general_tests/ddazmbl1_test.go b/general_tests/ddazmbl1_test.go index 759feebf0..901fc61c4 100644 --- a/general_tests/ddazmbl1_test.go +++ b/general_tests/ddazmbl1_test.go @@ -135,10 +135,10 @@ func TestExecuteActions(t *testing.T) { t.Error(err) } else if len(acnt.BalanceMap) != 2 { t.Error("Account does not have enough balances: ", acnt.BalanceMap) - } else if acnt.BalanceMap[utils.VOICE+engine.OUTBOUND][0].Value != 40 { - t.Error("Account does not have enough minutes in balance", acnt.BalanceMap[utils.VOICE+engine.OUTBOUND][0].Value) - } else if acnt.BalanceMap[utils.MONETARY+engine.OUTBOUND][0].Value != 10 { - t.Error("Account does not have enough monetary balance", acnt.BalanceMap[utils.MONETARY+engine.OUTBOUND][0].Value) + } else if acnt.BalanceMap[utils.VOICE+utils.OUT][0].Value != 40 { + t.Error("Account does not have enough minutes in balance", acnt.BalanceMap[utils.VOICE+utils.OUT][0].Value) + } else if acnt.BalanceMap[utils.MONETARY+utils.OUT][0].Value != 10 { + t.Error("Account does not have enough monetary balance", acnt.BalanceMap[utils.MONETARY+utils.OUT][0].Value) } } @@ -162,10 +162,10 @@ func TestDebit(t *testing.T) { if err != nil { t.Error(err) } - if acnt.BalanceMap[utils.VOICE+engine.OUTBOUND][0].Value != 20 { - t.Error("Account does not have expected minutes in balance", acnt.BalanceMap[utils.VOICE+engine.OUTBOUND][0].Value) + if acnt.BalanceMap[utils.VOICE+utils.OUT][0].Value != 20 { + t.Error("Account does not have expected minutes in balance", acnt.BalanceMap[utils.VOICE+utils.OUT][0].Value) } - if acnt.BalanceMap[utils.MONETARY+engine.OUTBOUND][0].Value != 9.99 { - t.Error("Account does not have expected monetary balance", acnt.BalanceMap[utils.MONETARY+engine.OUTBOUND][0].Value) + if acnt.BalanceMap[utils.MONETARY+utils.OUT][0].Value != 9.99 { + t.Error("Account does not have expected monetary balance", acnt.BalanceMap[utils.MONETARY+utils.OUT][0].Value) } } diff --git a/general_tests/ddazmbl2_test.go b/general_tests/ddazmbl2_test.go index f2382960e..d07c72cc5 100644 --- a/general_tests/ddazmbl2_test.go +++ b/general_tests/ddazmbl2_test.go @@ -134,10 +134,10 @@ func TestExecuteActions2(t *testing.T) { t.Error(err) } else if len(acnt.BalanceMap) != 2 { t.Error("Account does not have enough balances: ", acnt.BalanceMap) - } else if acnt.BalanceMap[utils.VOICE+engine.OUTBOUND][0].Value != 40 { - t.Error("Account does not have enough minutes in balance", acnt.BalanceMap[utils.VOICE+engine.OUTBOUND][0].Value) - } else if acnt.BalanceMap[utils.MONETARY+engine.OUTBOUND][0].Value != 0 { - t.Error("Account does not have enough monetary balance", acnt.BalanceMap[utils.MONETARY+engine.OUTBOUND][0].Value) + } else if acnt.BalanceMap[utils.VOICE+utils.OUT][0].Value != 40 { + t.Error("Account does not have enough minutes in balance", acnt.BalanceMap[utils.VOICE+utils.OUT][0].Value) + } else if acnt.BalanceMap[utils.MONETARY+utils.OUT][0].Value != 0 { + t.Error("Account does not have enough monetary balance", acnt.BalanceMap[utils.MONETARY+utils.OUT][0].Value) } } @@ -164,10 +164,10 @@ func TestDebit2(t *testing.T) { if len(acnt.BalanceMap) != 2 { t.Error("Wrong number of user balances found", acnt.BalanceMap) } - if acnt.BalanceMap[utils.VOICE+engine.OUTBOUND][0].Value != 20 { - t.Error("Account does not have expected minutes in balance", acnt.BalanceMap[utils.VOICE+engine.OUTBOUND][0].Value) + if acnt.BalanceMap[utils.VOICE+utils.OUT][0].Value != 20 { + t.Error("Account does not have expected minutes in balance", acnt.BalanceMap[utils.VOICE+utils.OUT][0].Value) } - for _, blnc := range acnt.BalanceMap[utils.MONETARY+engine.OUTBOUND] { // Test negative balance for default one + for _, blnc := range acnt.BalanceMap[utils.MONETARY+utils.OUT] { // Test negative balance for default one if blnc.Weight == 10 && blnc.Value != 0 { t.Errorf("Balance with weight: %f, having value: %f ", blnc.Weight, blnc.Value) } else if blnc.Weight == 0 && blnc.Value != -0.01 { diff --git a/general_tests/ddazmbl3_test.go b/general_tests/ddazmbl3_test.go index e5d405744..d1bd74029 100644 --- a/general_tests/ddazmbl3_test.go +++ b/general_tests/ddazmbl3_test.go @@ -132,8 +132,8 @@ func TestExecuteActions3(t *testing.T) { t.Error(err) } else if len(acnt.BalanceMap) != 1 { t.Error("Account does not have enough balances: ", acnt.BalanceMap) - } else if acnt.BalanceMap[utils.VOICE+engine.OUTBOUND][0].Value != 40 { - t.Error("Account does not have enough minutes in balance", acnt.BalanceMap[utils.VOICE+engine.OUTBOUND][0].Value) + } else if acnt.BalanceMap[utils.VOICE+utils.OUT][0].Value != 40 { + t.Error("Account does not have enough minutes in balance", acnt.BalanceMap[utils.VOICE+utils.OUT][0].Value) } } @@ -160,10 +160,10 @@ func TestDebit3(t *testing.T) { if len(acnt.BalanceMap) != 2 { t.Error("Wrong number of user balances found", acnt.BalanceMap) } - if acnt.BalanceMap[utils.VOICE+engine.OUTBOUND][0].Value != 20 { - t.Error("Account does not have expected minutes in balance", acnt.BalanceMap[utils.VOICE+engine.OUTBOUND][0].Value) + if acnt.BalanceMap[utils.VOICE+utils.OUT][0].Value != 20 { + t.Error("Account does not have expected minutes in balance", acnt.BalanceMap[utils.VOICE+utils.OUT][0].Value) } - if acnt.BalanceMap[utils.MONETARY+engine.OUTBOUND][0].Value != -0.01 { - t.Error("Account does not have expected monetary balance", acnt.BalanceMap[utils.MONETARY+engine.OUTBOUND][0].Value) + if acnt.BalanceMap[utils.MONETARY+utils.OUT][0].Value != -0.01 { + t.Error("Account does not have expected monetary balance", acnt.BalanceMap[utils.MONETARY+utils.OUT][0].Value) } } diff --git a/utils/consts.go b/utils/consts.go index fb70d48e6..c3fcca656 100644 --- a/utils/consts.go +++ b/utils/consts.go @@ -156,6 +156,7 @@ const ( NANOSECONDS = "nanoseconds" SECONDS = "seconds" OUT = "*out" + IN = "*in" META_OUT = "*out" META_ANY = "*any" CDR_IMPORT = "cdr_import"