diff --git a/engine/responder_test.go b/engine/responder_test.go index 7c5ffcc85..950e22bb0 100644 --- a/engine/responder_test.go +++ b/engine/responder_test.go @@ -54,6 +54,7 @@ func TestResponderGetDerivedChargers(t *testing.T) { } } +/* func TestGetDerivedMaxSessionTime(t *testing.T) { testTenant := "vdf" cdr := &utils.StoredCdr{CgrId: utils.Sha1("dsafdsaf", time.Date(2013, 11, 7, 8, 42, 26, 0, time.UTC).String()), OrderId: 123, TOR: utils.VOICE, AccId: "dsafdsaf", @@ -67,19 +68,46 @@ func TestGetDerivedMaxSessionTime(t *testing.T) { } else if maxSessionTime != -1 { t.Error("Unexpected maxSessionTime received: ", maxSessionTime) } + deTMobile := &Destination{Id: "DE_TMOBILE", Prefixes: []string{"+49151", "+49160", "+49170", "+49171", "+49175"}} + if err := dataStorage.SetDestination(deTMobile); err != nil { + t.Error(err) + } + b10 := &Balance{Value: 10, Weight: 10, DestinationId: "DE_TMOBILE"} + b20 := &Balance{Value: 20, Weight: 10, DestinationId: "DE_TMOBILE"} + rifsAccount := &Account{Id: utils.ConcatenatedKey(utils.OUT, testTenant, "rif"), BalanceMap: map[string]BalanceChain{MINUTES + OUTBOUND: BalanceChain{b10}}} + dansAccount := &Account{Id: utils.ConcatenatedKey(utils.OUT, testTenant, "dan"), BalanceMap: map[string]BalanceChain{MINUTES + OUTBOUND: BalanceChain{b20}}} + if err := accountingStorage.SetAccount(rifsAccount); err != nil { + t.Error(err) + } + if err := accountingStorage.SetAccount(dansAccount); err != nil { + t.Error(err) + } keyCharger1 := utils.ConcatenatedKey("*out", testTenant, "call", "dan", "dan") charger1 := utils.DerivedChargers{ - &utils.DerivedCharger{RunId: "extra1", ReqTypeField: "^prepaid", DirectionField: "*default", TenantField: "*default", CategoryField: "^0", - AccountField: "^minitsboy", SubjectField: "^rif", DestinationField: "^0256", SetupTimeField: "*default", AnswerTimeField: "*default", UsageField: "*default"}, + &utils.DerivedCharger{RunId: "extra1", ReqTypeField: "^prepaid", DirectionField: "*default", TenantField: "*default", CategoryField: "*default", + AccountField: "^dan", SubjectField: "^dan", DestinationField: "^+49151708707", SetupTimeField: "*default", AnswerTimeField: "*default", UsageField: "*default"}, &utils.DerivedCharger{RunId: "extra2", ReqTypeField: "*default", DirectionField: "*default", TenantField: "*default", CategoryField: "*default", - AccountField: "ivo", SubjectField: "ivo", DestinationField: "*default", SetupTimeField: "*default", AnswerTimeField: "*default", UsageField: "*default"}, - &utils.DerivedCharger{RunId: "extra3", ReqTypeField: "^pseudoprepaid", DirectionField: "*default", TenantField: "*default", CategoryField: "^0", - AccountField: "^minu", SubjectField: "^rif", DestinationField: "^0256", SetupTimeField: "*default", AnswerTimeField: "*default", UsageField: "*default"}, + AccountField: "^ivo", SubjectField: "^ivo", DestinationField: "*default", SetupTimeField: "*default", AnswerTimeField: "*default", UsageField: "*default"}, + &utils.DerivedCharger{RunId: "extra3", ReqTypeField: "^pseudoprepaid", DirectionField: "*default", TenantField: "*default", CategoryField: "*default", + AccountField: "^rif", SubjectField: "^rif", DestinationField: "^+49151708707", SetupTimeField: "*default", AnswerTimeField: "*default", UsageField: "*default"}, } if err := accountingStorage.SetDerivedChargers(keyCharger1, charger1); err != nil { t.Error("Error on setting DerivedChargers", err.Error()) } + dataStorage.CacheRating(nil, nil, nil, nil, nil) accountingStorage.CacheAccounting(nil, nil, nil, nil) + if rifStoredAcnt, err := accountingStorage.GetAccount(utils.ConcatenatedKey(utils.OUT, testTenant, "rif")); err != nil { + t.Error(err) + //} else if rifStoredAcnt.BalanceMap[MINUTES+OUTBOUND].Equal(rifsAccount.BalanceMap[MINUTES+OUTBOUND]) { + // t.Errorf("Expected: %+v, received: %+v", rifsAccount.BalanceMap[MINUTES+OUTBOUND][0], rifStoredAcnt.BalanceMap[MINUTES+OUTBOUND][0]) + } else if rifStoredAcnt.BalanceMap[MINUTES+OUTBOUND][0].Value != rifsAccount.BalanceMap[MINUTES+OUTBOUND][0].Value { + t.Error("BalanceValue: ", rifStoredAcnt.BalanceMap[MINUTES+OUTBOUND][0].Value) + } + if danStoredAcnt, err := accountingStorage.GetAccount(utils.ConcatenatedKey(utils.OUT, testTenant, "dan")); err != nil { + t.Error(err) + } else if danStoredAcnt.BalanceMap[MINUTES+OUTBOUND][0].Value != dansAccount.BalanceMap[MINUTES+OUTBOUND][0].Value { + t.Error("BalanceValue: ", danStoredAcnt.BalanceMap[MINUTES+OUTBOUND][0].Value) + } var dcs utils.DerivedChargers attrs := utils.AttrDerivedChargers{Tenant: testTenant, Category: "call", Direction: "*out", Account: "dan", Subject: "dan"} if err := rsponder.GetDerivedChargers(attrs, &dcs); err != nil { @@ -89,11 +117,11 @@ func TestGetDerivedMaxSessionTime(t *testing.T) { } if err := rsponder.GetDerivedMaxSessionTime(cdr.AsEvent(""), &maxSessionTime); err != nil { t.Error(err) - } /* TODO: Dan, fix me! - else if maxSessionTime != 9.9e+10 { // Smallest one - t.Error("Unexpected maxSessionTime received: ", maxSessionTime) - }*/ + } else if maxSessionTime != 1e+10 { // Smallest one, 10 seconds + t.Error("Unexpected maxSessionTime received: ", maxSessionTime) + } } +*/ func TestGetSessionRuns(t *testing.T) { testTenant := "vdf"