test for derived charges no credit

This commit is contained in:
Radu Ioan Fericean
2016-03-31 14:29:38 +03:00
parent a8220e9d9e
commit ac1aeb9db4
5 changed files with 48 additions and 2 deletions

View File

@@ -6,3 +6,4 @@ cgrates.org,1004,PREPAID_10,STANDARD_TRIGGERS,,
cgrates.org,1005,PREPAID_10,STANDARD_TRIGGERS,,
cgrates.org,1009,TEST_EXE,,,
cgrates.org,1010,TEST_DATA_r,,true,
cgrates.org,1011,TEST_VOICE,,,
1 #Tenant Account ActionPlanId ActionTriggersId AllowNegative Disabled
6 cgrates.org 1005 PREPAID_10 STANDARD_TRIGGERS
7 cgrates.org 1009 TEST_EXE
8 cgrates.org 1010 TEST_DATA_r true
9 cgrates.org 1011 TEST_VOICE

View File

@@ -2,4 +2,5 @@
PREPAID_10,PREPAID_10,ASAP,10
PREPAID_10,BONUS_1,ASAP,10
TEST_EXE,TOPUP_EXE,ALWAYS,10
TEST_DATA_r,TOPUP_DATA_r,ASAP,10
TEST_DATA_r,TOPUP_DATA_r,ASAP,10
TEST_VOICE,TOPUP_VOICE,ASAP,10
1 #Tag ActionsTag TimingTag Weight
2 PREPAID_10 PREPAID_10 ASAP 10
3 PREPAID_10 BONUS_1 ASAP 10
4 TEST_EXE TOPUP_EXE ALWAYS 10
5 TEST_DATA_r TOPUP_DATA_r ASAP 10
6 TEST_VOICE TOPUP_VOICE ASAP 10

View File

@@ -6,4 +6,5 @@ CDRST_WARN_HTTP,*call_url,http://localhost:8080,,,,,,,,,,,,,false,false,10
CDRST_LOG,*log,,,,,,,,,,,,,,false,false,10
TOPUP_EXE,*topup,,,,*monetary,*out,,*any,,,*unlimited,,5,10,false,false,10
TOPUP_DATA_r,*topup,,,,*monetary,*out,,DATA_DEST,,,*unlimited,,5000000,10,false,false,10
TOPUP_DATA_r,*topup,,,,*data,*out,,DATA_DEST,datar,,*unlimited,,50000000000,10,false,false,10
TOPUP_DATA_r,*topup,,,,*data,*out,,DATA_DEST,datar,,*unlimited,,50000000000,10,false,false,10
TOPUP_VOICE,*topup,,,,*voice,*out,,GERMANY_MOBILE,,,*unlimited,,50000,10,false,false,10
1 #ActionsTag[0] Action[1] ActionExtraParameters[2] Filter[3] BalanceTag[4] BalanceType[5] Directions[6] Categories[7] DestinationIds[8] RatingSubject[9] SharedGroup[10] ExpiryTime[11] TimingTags[12] Units[13] BalanceWeight[14] BalanceBlocker[15] BalanceDisabled[16] Weight[17]
6 CDRST_LOG *log false false 10
7 TOPUP_EXE *topup *monetary *out *any *unlimited 5 10 false false 10
8 TOPUP_DATA_r *topup *monetary *out DATA_DEST *unlimited 5000000 10 false false 10
9 TOPUP_DATA_r *topup *data *out DATA_DEST datar *unlimited 50000000000 10 false false 10
10 TOPUP_VOICE *topup *voice *out GERMANY_MOBILE *unlimited 50000 10 false false 10

View File

@@ -3,3 +3,4 @@
*out,cgrates.org,call,dan,dan,,extra2,,,,,,^ivo,^ivo,,,,,,*default,*default,*default,*default
*out,cgrates.org,call,dan,dan,,extra3,~filterhdr1:s/(.+)/special_run3/,,,,,^runusr3,^runusr3,,,,,,*default,*default,*default,*default
*out,cgrates.org,call,dan,*any,,extra1,,,,,,^rif2,^rif2,,,,,,*default,*default,*default,*default
*out,cgrates.org,call,1011,1011,GERMANY,extra1,,,+4915,,,,,,,,,,*default,*default,*default,*default
1 #Direction[0] Tenant[1] Category[2] Account[3] Subject[4] DestinationIds[5] RunId[6] RunFilter[7] ReqTypeField[8] DirectionField[9] TenantField[10] CategoryField[11] AccountField[12] SubjectField[13] DestinationField[14] SetupTimeField[15] PddField[16] AnswerTimeField[17] UsageField[18] SupplierField[19] DisconnectCause[20] RatedField[21] CostField[22]
3 *out cgrates.org call dan dan extra2 ^ivo ^ivo *default *default *default *default
4 *out cgrates.org call dan dan extra3 ~filterhdr1:s/(.+)/special_run3/ ^runusr3 ^runusr3 *default *default *default *default
5 *out cgrates.org call dan *any extra1 ^rif2 ^rif2 *default *default *default *default
6 *out cgrates.org call 1011 1011 GERMANY extra1 +4915 *default *default *default *default

View File

@@ -342,3 +342,45 @@ func TestSMGDataLastUsedMultipleData(t *testing.T) {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.DATA].GetTotalValue())
}
}
func TestSMGDataDerivedChargingNoCredit(t *testing.T) {
if !*testIntegration {
return
}
var acnt *engine.Account
attrs := &utils.AttrGetAccount{Tenant: "cgrates.org", Account: "1011"}
eAcntVal := 50000.000000
if err := smgRPC.Call("ApierV2.GetAccount", attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.DATA].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.VOICE].GetTotalValue())
}
smgEv := SMGenericEvent{
utils.EVENT_NAME: "TEST_EVENT",
utils.TOR: utils.VOICE,
utils.ACCID: "12349",
utils.DIRECTION: utils.OUT,
utils.ACCOUNT: "1011",
utils.SUBJECT: "1011",
utils.DESTINATION: "+49",
utils.CATEGORY: "call",
utils.TENANT: "cgrates.org",
utils.REQTYPE: utils.META_PREPAID,
utils.SETUP_TIME: "2016-01-05 18:30:49",
utils.ANSWER_TIME: "2016-01-05 18:31:05",
utils.USAGE: "100",
}
var maxUsage float64
if err := smgRPC.Call("SMGenericV1.SessionStart", smgEv, &maxUsage); err != nil {
t.Error(err)
}
if maxUsage != 100 {
t.Error("Bad max usage: ", maxUsage)
}
eAcntVal = 50000.000000
if err := smgRPC.Call("ApierV2.GetAccount", attrs, &acnt); err != nil {
t.Error(err)
} else if acnt.BalanceMap[utils.DATA].GetTotalValue() != eAcntVal {
t.Errorf("Expected: %f, received: %f", eAcntVal, acnt.BalanceMap[utils.VOICE].GetTotalValue())
}
}