This commit is contained in:
DanB
2015-01-06 17:36:54 +01:00
5 changed files with 35 additions and 1 deletions

View File

@@ -302,6 +302,9 @@ func (ub *Account) GetDefaultMoneyBalance(direction string) *Balance {
}
// create default balance
defaultBalance := &Balance{Weight: 0} // minimum weight
if ub.BalanceMap == nil {
ub.BalanceMap = make(map[string]BalanceChain)
}
ub.BalanceMap[CREDIT+direction] = append(ub.BalanceMap[CREDIT+direction], defaultBalance)
return defaultBalance
}

View File

@@ -1138,6 +1138,25 @@ func TestDebitDataMoney(t *testing.T) {
}
}
func TestAccountGetDefaultMoneyBalanceEmpty(t *testing.T) {
acc := &Account{}
defBal := acc.GetDefaultMoneyBalance(OUTBOUND)
if defBal == nil || len(acc.BalanceMap) != 1 || !defBal.IsDefault() {
t.Errorf("Bad default money balance: %+v", defBal)
}
}
func TestAccountGetDefaultMoneyBalance(t *testing.T) {
acc := &Account{}
acc.BalanceMap = make(map[string]BalanceChain)
tag := CREDIT + OUTBOUND
acc.BalanceMap[tag] = append(acc.BalanceMap[tag], &Balance{Weight: 10})
defBal := acc.GetDefaultMoneyBalance(OUTBOUND)
if defBal == nil || len(acc.BalanceMap[tag]) != 2 || !defBal.IsDefault() {
t.Errorf("Bad default money balance: %+v", defBal)
}
}
/*********************************** Benchmarks *******************************/
func BenchmarkGetSecondForPrefix(b *testing.B) {

View File

@@ -84,7 +84,8 @@ func (b *Balance) IsDefault() bool {
b.RatingSubject == "" &&
b.Category == "" &&
b.ExpirationDate.IsZero() &&
b.SharedGroup == ""
b.SharedGroup == "" &&
b.Weight == 0
}
func (b *Balance) IsExpired() bool {

View File

@@ -231,3 +231,10 @@ func TestBalanceMatchActionTriggerSharedGroup(t *testing.T) {
t.Errorf("Error matching action trigger: %+v %+v", b, at)
}
}
func TestBalanceIsDefault(t *testing.T) {
b := &Balance{Weight: 0}
if !b.IsDefault() {
t.Errorf("Balance should be default: +v", b)
}
}

View File

@@ -86,6 +86,10 @@ func (rs *RedisStorage) CacheRating(dKeys, rpKeys, rpfKeys, alsKeys, lcrKeys []s
CleanStalePrefixes(dKeys)
}
for _, key := range dKeys {
if len(key) <= len(DESTINATION_PREFIX) {
Logger.Warning(fmt.Sprintf("Got malformed destination id: ", key))
continue
}
if _, err = rs.GetDestination(key[len(DESTINATION_PREFIX):]); err != nil {
cache2go.RollbackTransaction()
return err