mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Update EC.FieldAsInterface to use Charging for referencing rating/accounting
ChargingID is expected to have either *rating or *accounting prefix.
This commit is contained in:
committed by
Dan Christian Bogos
parent
37578d3743
commit
75cf4a75cc
@@ -285,6 +285,7 @@ const (
|
||||
ConfigPath = "/etc/cgrates/"
|
||||
DisconnectCause = "DisconnectCause"
|
||||
MetaRating = "*rating"
|
||||
MetaAccounting = "*accounting"
|
||||
NotAvailable = "N/A"
|
||||
Call = "call"
|
||||
ExtraFields = "ExtraFields"
|
||||
@@ -509,6 +510,7 @@ const (
|
||||
AccountSummary = "AccountSummary"
|
||||
RatingFilters = "RatingFilters"
|
||||
RatingFilter = "RatingFilter"
|
||||
Charging = "Charging"
|
||||
Accounting = "Accounting"
|
||||
Rating = "Rating"
|
||||
Charges = "Charges"
|
||||
|
||||
@@ -21,6 +21,7 @@ package utils
|
||||
import (
|
||||
"fmt"
|
||||
"slices"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// NewEventChargers instantiates the EventChargers in a central place
|
||||
@@ -566,13 +567,22 @@ func (ec *EventCharges) getChargesForPath(fldPath []string, chr *ChargeEntry) (v
|
||||
if len(fldPath) == 0 {
|
||||
return chr, nil
|
||||
}
|
||||
switch fldPath[0] {
|
||||
case Rating:
|
||||
return ec.getRatingForPath(fldPath[1:], ec.Rating[chr.ChargingID])
|
||||
case Accounting:
|
||||
return ec.getAccountingForPath(fldPath[1:], ec.Accounting[chr.ChargingID])
|
||||
if fldPath[0] != Charging {
|
||||
return chr.FieldAsInterface(fldPath)
|
||||
}
|
||||
return chr.FieldAsInterface(fldPath)
|
||||
chargingType, chargingID, sepFound := strings.Cut(chr.ChargingID, InInFieldSep)
|
||||
if !sepFound {
|
||||
return nil, fmt.Errorf("expected ChargingID format '*accounting:*' or '*rating:*', got '%s'", chr.ChargingID)
|
||||
}
|
||||
|
||||
// Handle different charging types.
|
||||
switch chargingType {
|
||||
case MetaRating:
|
||||
return ec.getRatingForPath(fldPath[1:], ec.Rating[chargingID])
|
||||
case MetaAccounting:
|
||||
return ec.getAccountingForPath(fldPath[1:], ec.Accounting[chargingID])
|
||||
}
|
||||
return nil, fmt.Errorf("unsupported field prefix: <%s>", fldPath[0])
|
||||
}
|
||||
|
||||
func (ec *EventCharges) getAccountingForPath(fldPath []string, accCharge *AccountCharge) (val any, err error) {
|
||||
|
||||
@@ -2039,11 +2039,11 @@ func TestEventChargesFieldAsInterface(t *testing.T) {
|
||||
Abstracts: &Decimal{decimal.New(145, 1)},
|
||||
Charges: []*ChargeEntry{
|
||||
{
|
||||
ChargingID: "accounting1",
|
||||
ChargingID: "*accounting:accounting1",
|
||||
CompressFactor: 1,
|
||||
},
|
||||
{
|
||||
ChargingID: "rating1",
|
||||
ChargingID: "*rating:rating1",
|
||||
CompressFactor: 2,
|
||||
},
|
||||
},
|
||||
@@ -2320,17 +2320,17 @@ func TestEventChargesFieldAsInterface(t *testing.T) {
|
||||
{
|
||||
name: "Charges",
|
||||
fields: []string{"Charges"},
|
||||
exp: `[{"ChargingID":"accounting1","CompressFactor":1},{"ChargingID":"rating1","CompressFactor":2}]`,
|
||||
exp: `[{"ChargingID":"*accounting:accounting1","CompressFactor":1},{"ChargingID":"*rating:rating1","CompressFactor":2}]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[1]",
|
||||
fields: []string{"Charges[1]"},
|
||||
exp: `{"ChargingID":"rating1","CompressFactor":2}`,
|
||||
exp: `{"ChargingID":"*rating:rating1","CompressFactor":2}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[1].ChargingID",
|
||||
fields: []string{"Charges[1]", "ChargingID"},
|
||||
exp: "rating1",
|
||||
exp: "*rating:rating1",
|
||||
},
|
||||
{
|
||||
name: "Charges[1].CompressFactor",
|
||||
@@ -2338,668 +2338,668 @@ func TestEventChargesFieldAsInterface(t *testing.T) {
|
||||
exp: "2",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting",
|
||||
fields: []string{"Charges[0]", "Accounting"},
|
||||
name: "Charges[0].Charging",
|
||||
fields: []string{"Charges[0]", "Charging"},
|
||||
exp: `{"AccountID":"acc1","BalanceID":"balance1","Units":10,"BalanceLimit":0,"UnitFactorID":"unit_factor1","AttributeIDs":["attr1","attr2"],"RatingID":"rating2","JoinedChargeIDs":["joined_charge"]}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.AccountID",
|
||||
fields: []string{"Charges[0]", "Accounting", "AccountID"},
|
||||
name: "Charges[0].Charging.AccountID",
|
||||
fields: []string{"Charges[0]", "Charging", "AccountID"},
|
||||
exp: "acc1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.BalanceID",
|
||||
fields: []string{"Charges[0]", "Accounting", "BalanceID"},
|
||||
name: "Charges[0].Charging.BalanceID",
|
||||
fields: []string{"Charges[0]", "Charging", "BalanceID"},
|
||||
exp: "balance1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Units",
|
||||
fields: []string{"Charges[0]", "Accounting", "Units"},
|
||||
name: "Charges[0].Charging.Units",
|
||||
fields: []string{"Charges[0]", "Charging", "Units"},
|
||||
exp: "10",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.BalanceLimit",
|
||||
fields: []string{"Charges[0]", "Accounting", "BalanceLimit"},
|
||||
name: "Charges[0].Charging.BalanceLimit",
|
||||
fields: []string{"Charges[0]", "Charging", "BalanceLimit"},
|
||||
exp: "0",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.UnitFactorID",
|
||||
fields: []string{"Charges[0]", "Accounting", "UnitFactorID"},
|
||||
name: "Charges[0].Charging.UnitFactorID",
|
||||
fields: []string{"Charges[0]", "Charging", "UnitFactorID"},
|
||||
exp: "unit_factor1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.AttributeIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "AttributeIDs"},
|
||||
name: "Charges[0].Charging.AttributeIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "AttributeIDs"},
|
||||
exp: `["attr1","attr2"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.AttributeIDs[1]",
|
||||
fields: []string{"Charges[0]", "Accounting", "AttributeIDs[1]"},
|
||||
name: "Charges[0].Charging.AttributeIDs[1]",
|
||||
fields: []string{"Charges[0]", "Charging", "AttributeIDs[1]"},
|
||||
exp: "attr2",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.RatingID",
|
||||
fields: []string{"Charges[0]", "Accounting", "RatingID"},
|
||||
name: "Charges[0].Charging.RatingID",
|
||||
fields: []string{"Charges[0]", "Charging", "RatingID"},
|
||||
exp: "rating2",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.JoinedChargeIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "JoinedChargeIDs"},
|
||||
name: "Charges[0].Charging.JoinedChargeIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "JoinedChargeIDs"},
|
||||
exp: `["joined_charge"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.JoinedChargeIDs[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "JoinedChargeIDs[0]"},
|
||||
name: "Charges[0].Charging.JoinedChargeIDs[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "JoinedChargeIDs[0]"},
|
||||
exp: "joined_charge",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account"},
|
||||
name: "Charges[0].Charging.Account",
|
||||
fields: []string{"Charges[0]", "Charging", "Account"},
|
||||
exp: `{"Tenant":"cgrates.org","ID":"acc1","FilterIDs":["fltr1"],"Weights":[{"FilterIDs":["fltr2"],"Weight":10}],"Blockers":[{"FilterIDs":["fltr3"],"Blocker":true}],"Opts":{"opt1":"value1"},"Balances":{"balance1":{"ID":"balance1","FilterIDs":["fltr4"],"Weights":[{"FilterIDs":["fltr3"],"Weight":20}],"Blockers":[{"FilterIDs":["fltr3"],"Blocker":true}],"Type":"*monetary","Units":1,"UnitFactors":[{"FilterIDs":["fltr1","fltr2"],"Factor":2}],"Opts":{"opt1":"value1"},"CostIncrements":[{"FilterIDs":["fltr3"],"Increment":3,"FixedFee":1,"RecurrentFee":2}],"AttributeIDs":["attr1"],"RateProfileIDs":["rate_prf1"]},"balance2":{"ID":"balance2","FilterIDs":["fltr3"],"Weights":[{"FilterIDs":["fltr5"],"Weight":20}],"Blockers":[{"FilterIDs":["fltr5"],"Blocker":true}],"Type":"*voice","Units":5,"UnitFactors":[{"FilterIDs":["fltr3","fltr4"],"Factor":1}],"Opts":{"opts1":"value1"},"CostIncrements":[{"FilterIDs":["fltr2"],"Increment":1,"FixedFee":2,"RecurrentFee":3}],"AttributeIDs":["attr2"],"RateProfileIDs":["rate_prf2"]}},"ThresholdIDs":null}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Tenant",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Tenant"},
|
||||
name: "Charges[0].Charging.Account.Tenant",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Tenant"},
|
||||
exp: "cgrates.org",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.FilterIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "FilterIDs"},
|
||||
name: "Charges[0].Charging.Account.FilterIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "FilterIDs"},
|
||||
exp: `["fltr1"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "FilterIDs[0]"},
|
||||
name: "Charges[0].Charging.Account.FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "FilterIDs[0]"},
|
||||
exp: "fltr1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.ID",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "ID"},
|
||||
name: "Charges[0].Charging.Account.ID",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "ID"},
|
||||
exp: "acc1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Weights",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Weights"},
|
||||
name: "Charges[0].Charging.Account.Weights",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Weights"},
|
||||
exp: "fltr2;10",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Weights[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Weights[0]"},
|
||||
name: "Charges[0].Charging.Account.Weights[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Weights[0]"},
|
||||
exp: `{"FilterIDs":["fltr2"],"Weight":10}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Weights[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Weights[0]", "FilterIDs"},
|
||||
name: "Charges[0].Charging.Account.Weights[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Weights[0]", "FilterIDs"},
|
||||
exp: `["fltr2"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Weights[0].FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Weights[0]", "FilterIDs[0]"},
|
||||
name: "Charges[0].Charging.Account.Weights[0].FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Weights[0]", "FilterIDs[0]"},
|
||||
exp: "fltr2",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Weights[0].Weight",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Weights[0]", "Weight"},
|
||||
name: "Charges[0].Charging.Account.Weights[0].Weight",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Weights[0]", "Weight"},
|
||||
exp: "10",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Blockers",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Blockers"},
|
||||
name: "Charges[0].Charging.Account.Blockers",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Blockers"},
|
||||
exp: "fltr3;true",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Blockers[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Blockers[0]"},
|
||||
name: "Charges[0].Charging.Account.Blockers[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Blockers[0]"},
|
||||
exp: `{"FilterIDs":["fltr3"],"Blocker":true}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Blockers[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Blockers[0]", "FilterIDs"},
|
||||
name: "Charges[0].Charging.Account.Blockers[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Blockers[0]", "FilterIDs"},
|
||||
exp: `["fltr3"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Blockers[0].FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Blockers[0]", "FilterIDs[0]"},
|
||||
name: "Charges[0].Charging.Account.Blockers[0].FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Blockers[0]", "FilterIDs[0]"},
|
||||
exp: "fltr3",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Blockers[0].Blocker",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Blockers[0]", "Blocker"},
|
||||
name: "Charges[0].Charging.Account.Blockers[0].Blocker",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Blockers[0]", "Blocker"},
|
||||
exp: "true",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Opts",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Opts"},
|
||||
name: "Charges[0].Charging.Account.Opts",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Opts"},
|
||||
exp: `{"opt1":"value1"}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Opts.opt1",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Opts", "opt1"},
|
||||
name: "Charges[0].Charging.Account.Opts.opt1",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Opts", "opt1"},
|
||||
exp: "value1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances"},
|
||||
name: "Charges[0].Charging.Account.Balances",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances"},
|
||||
exp: `{"balance1":{"ID":"balance1","FilterIDs":["fltr4"],"Weights":[{"FilterIDs":["fltr3"],"Weight":20}],"Blockers":[{"FilterIDs":["fltr3"],"Blocker":true}],"Type":"*monetary","Units":1,"UnitFactors":[{"FilterIDs":["fltr1","fltr2"],"Factor":2}],"Opts":{"opt1":"value1"},"CostIncrements":[{"FilterIDs":["fltr3"],"Increment":3,"FixedFee":1,"RecurrentFee":2}],"AttributeIDs":["attr1"],"RateProfileIDs":["rate_prf1"]},"balance2":{"ID":"balance2","FilterIDs":["fltr3"],"Weights":[{"FilterIDs":["fltr5"],"Weight":20}],"Blockers":[{"FilterIDs":["fltr5"],"Blocker":true}],"Type":"*voice","Units":5,"UnitFactors":[{"FilterIDs":["fltr3","fltr4"],"Factor":1}],"Opts":{"opts1":"value1"},"CostIncrements":[{"FilterIDs":["fltr2"],"Increment":1,"FixedFee":2,"RecurrentFee":3}],"AttributeIDs":["attr2"],"RateProfileIDs":["rate_prf2"]}}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1"},
|
||||
exp: `{"ID":"balance1","FilterIDs":["fltr4"],"Weights":[{"FilterIDs":["fltr3"],"Weight":20}],"Blockers":[{"FilterIDs":["fltr3"],"Blocker":true}],"Type":"*monetary","Units":1,"UnitFactors":[{"FilterIDs":["fltr1","fltr2"],"Factor":2}],"Opts":{"opt1":"value1"},"CostIncrements":[{"FilterIDs":["fltr3"],"Increment":3,"FixedFee":1,"RecurrentFee":2}],"AttributeIDs":["attr1"],"RateProfileIDs":["rate_prf1"]}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.ID",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "ID"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.ID",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "ID"},
|
||||
exp: "balance1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.FilterIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "FilterIDs"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.FilterIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "FilterIDs"},
|
||||
exp: `["fltr4"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "FilterIDs[0]"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "FilterIDs[0]"},
|
||||
exp: "fltr4",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.Weights",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Weights"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.Weights",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Weights"},
|
||||
exp: "fltr3;20",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.Weights[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Weights[0]"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.Weights[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Weights[0]"},
|
||||
exp: `{"FilterIDs":["fltr3"],"Weight":20}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.Weights[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Weights[0]", "FilterIDs"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.Weights[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Weights[0]", "FilterIDs"},
|
||||
exp: `["fltr3"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.Weights[0].FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Weights[0]", "FilterIDs[0]"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.Weights[0].FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Weights[0]", "FilterIDs[0]"},
|
||||
exp: "fltr3",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.Weights[0].Weight",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Weights[0]", "Weight"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.Weights[0].Weight",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Weights[0]", "Weight"},
|
||||
exp: "20",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.Blockers",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Blockers"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.Blockers",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Blockers"},
|
||||
exp: "fltr3;true",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.Blockers[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Blockers[0]"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.Blockers[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Blockers[0]"},
|
||||
exp: `{"FilterIDs":["fltr3"],"Blocker":true}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.Blockers[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Blockers[0]", "FilterIDs"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.Blockers[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Blockers[0]", "FilterIDs"},
|
||||
exp: `["fltr3"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.Blockers[0].FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Blockers[0]", "FilterIDs[0]"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.Blockers[0].FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Blockers[0]", "FilterIDs[0]"},
|
||||
exp: "fltr3",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.Blockers[0].Blocker",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Blockers[0]", "Blocker"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.Blockers[0].Blocker",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Blockers[0]", "Blocker"},
|
||||
exp: "true",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.Type",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Type"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.Type",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Type"},
|
||||
exp: MetaMonetary,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.Units",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Units"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.Units",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Units"},
|
||||
exp: "1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.UnitFactors",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "UnitFactors"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.UnitFactors",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "UnitFactors"},
|
||||
exp: `[{"FilterIDs":["fltr1","fltr2"],"Factor":2}]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.UnitFactors[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "UnitFactors[0]"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.UnitFactors[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "UnitFactors[0]"},
|
||||
exp: `{"FilterIDs":["fltr1","fltr2"],"Factor":2}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.UnitFactors[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "UnitFactors[0]", "FilterIDs"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.UnitFactors[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "UnitFactors[0]", "FilterIDs"},
|
||||
exp: `["fltr1","fltr2"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.UnitFactors[0].FilterIDs[1]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "UnitFactors[0]", "FilterIDs[1]"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.UnitFactors[0].FilterIDs[1]",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "UnitFactors[0]", "FilterIDs[1]"},
|
||||
exp: "fltr2",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.UnitFactors[0].Factor",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "UnitFactors[0]", "Factor"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.UnitFactors[0].Factor",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "UnitFactors[0]", "Factor"},
|
||||
exp: "2",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.Opts",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Opts"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.Opts",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Opts"},
|
||||
exp: `{"opt1":"value1"}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.Opts.opt1",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "Opts", "opt1"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.Opts.opt1",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "Opts", "opt1"},
|
||||
exp: "value1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.CostIncrements",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "CostIncrements"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.CostIncrements",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "CostIncrements"},
|
||||
exp: `[{"FilterIDs":["fltr3"],"Increment":3,"FixedFee":1,"RecurrentFee":2}]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.CostIncrements[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "CostIncrements[0]"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.CostIncrements[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "CostIncrements[0]"},
|
||||
exp: `{"FilterIDs":["fltr3"],"Increment":3,"FixedFee":1,"RecurrentFee":2}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.CostIncrements[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "CostIncrements[0]", "FilterIDs"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.CostIncrements[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "CostIncrements[0]", "FilterIDs"},
|
||||
exp: `["fltr3"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.CostIncrements[0].FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "CostIncrements[0]", "FilterIDs[0]"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.CostIncrements[0].FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "CostIncrements[0]", "FilterIDs[0]"},
|
||||
exp: "fltr3",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.CostIncrements[0].Increment",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "CostIncrements[0]", "Increment"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.CostIncrements[0].Increment",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "CostIncrements[0]", "Increment"},
|
||||
exp: "3",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.CostIncrements[0].FixedFee",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "CostIncrements[0]", "FixedFee"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.CostIncrements[0].FixedFee",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "CostIncrements[0]", "FixedFee"},
|
||||
exp: "1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.CostIncrements[0].RecurrentFee",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "CostIncrements[0]", "RecurrentFee"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.CostIncrements[0].RecurrentFee",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "CostIncrements[0]", "RecurrentFee"},
|
||||
exp: "2",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.AttributeIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "AttributeIDs"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.AttributeIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "AttributeIDs"},
|
||||
exp: `["attr1"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.AttributeIDs[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "AttributeIDs[0]"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.AttributeIDs[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "AttributeIDs[0]"},
|
||||
exp: "attr1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.RateProfileIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "RateProfileIDs"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.RateProfileIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "RateProfileIDs"},
|
||||
exp: `["rate_prf1"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Account.Balances.balance1.RateProfileIDs[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Account", "Balances", "balance1", "RateProfileIDs[0]"},
|
||||
name: "Charges[0].Charging.Account.Balances.balance1.RateProfileIDs[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Account", "Balances", "balance1", "RateProfileIDs[0]"},
|
||||
exp: "rate_prf1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance"},
|
||||
name: "Charges[0].Charging.Balance",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance"},
|
||||
exp: `{"ID":"balance1","FilterIDs":["fltr4"],"Weights":[{"FilterIDs":["fltr3"],"Weight":20}],"Blockers":[{"FilterIDs":["fltr3"],"Blocker":true}],"Type":"*monetary","Units":1,"UnitFactors":[{"FilterIDs":["fltr1","fltr2"],"Factor":2}],"Opts":{"opt1":"value1"},"CostIncrements":[{"FilterIDs":["fltr3"],"Increment":3,"FixedFee":1,"RecurrentFee":2}],"AttributeIDs":["attr1"],"RateProfileIDs":["rate_prf1"]}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.ID",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "ID"},
|
||||
name: "Charges[0].Charging.Balance.ID",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "ID"},
|
||||
exp: "balance1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.FilterIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "FilterIDs"},
|
||||
name: "Charges[0].Charging.Balance.FilterIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "FilterIDs"},
|
||||
exp: `["fltr4"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "FilterIDs[0]"},
|
||||
name: "Charges[0].Charging.Balance.FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "FilterIDs[0]"},
|
||||
exp: "fltr4",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.Weights",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "Weights"},
|
||||
name: "Charges[0].Charging.Balance.Weights",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "Weights"},
|
||||
exp: "fltr3;20",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.Weights[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "Weights[0]"},
|
||||
name: "Charges[0].Charging.Balance.Weights[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "Weights[0]"},
|
||||
exp: `{"FilterIDs":["fltr3"],"Weight":20}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.Weights[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "Weights[0]", "FilterIDs"},
|
||||
name: "Charges[0].Charging.Balance.Weights[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "Weights[0]", "FilterIDs"},
|
||||
exp: `["fltr3"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.Weights[0].FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "Weights[0]", "FilterIDs[0]"},
|
||||
name: "Charges[0].Charging.Balance.Weights[0].FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "Weights[0]", "FilterIDs[0]"},
|
||||
exp: "fltr3",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.Weights[0].Weight",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "Weights[0]", "Weight"},
|
||||
name: "Charges[0].Charging.Balance.Weights[0].Weight",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "Weights[0]", "Weight"},
|
||||
exp: "20",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.Blockers",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "Blockers"},
|
||||
name: "Charges[0].Charging.Balance.Blockers",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "Blockers"},
|
||||
exp: "fltr3;true",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.Blockers[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "Blockers[0]"},
|
||||
name: "Charges[0].Charging.Balance.Blockers[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "Blockers[0]"},
|
||||
exp: `{"FilterIDs":["fltr3"],"Blocker":true}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.Blockers[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "Blockers[0]", "FilterIDs"},
|
||||
name: "Charges[0].Charging.Balance.Blockers[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "Blockers[0]", "FilterIDs"},
|
||||
exp: `["fltr3"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.Blockers[0].FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "Blockers[0]", "FilterIDs[0]"},
|
||||
name: "Charges[0].Charging.Balance.Blockers[0].FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "Blockers[0]", "FilterIDs[0]"},
|
||||
exp: "fltr3",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.Blockers[0].Blocker",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "Blockers[0]", "Blocker"},
|
||||
name: "Charges[0].Charging.Balance.Blockers[0].Blocker",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "Blockers[0]", "Blocker"},
|
||||
exp: "true",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.Type",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "Type"},
|
||||
name: "Charges[0].Charging.Balance.Type",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "Type"},
|
||||
exp: MetaMonetary,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.Units",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "Units"},
|
||||
name: "Charges[0].Charging.Balance.Units",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "Units"},
|
||||
exp: "1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.UnitFactors",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "UnitFactors"},
|
||||
name: "Charges[0].Charging.Balance.UnitFactors",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "UnitFactors"},
|
||||
exp: `[{"FilterIDs":["fltr1","fltr2"],"Factor":2}]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.UnitFactors[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "UnitFactors[0]"},
|
||||
name: "Charges[0].Charging.Balance.UnitFactors[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "UnitFactors[0]"},
|
||||
exp: `{"FilterIDs":["fltr1","fltr2"],"Factor":2}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.UnitFactors[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "UnitFactors[0]", "FilterIDs"},
|
||||
name: "Charges[0].Charging.Balance.UnitFactors[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "UnitFactors[0]", "FilterIDs"},
|
||||
exp: `["fltr1","fltr2"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.UnitFactors[0].FilterIDs[1]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "UnitFactors[0]", "FilterIDs[1]"},
|
||||
name: "Charges[0].Charging.Balance.UnitFactors[0].FilterIDs[1]",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "UnitFactors[0]", "FilterIDs[1]"},
|
||||
exp: "fltr2",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.UnitFactors[0].Factor",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "UnitFactors[0]", "Factor"},
|
||||
name: "Charges[0].Charging.Balance.UnitFactors[0].Factor",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "UnitFactors[0]", "Factor"},
|
||||
exp: "2",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.Opts",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "Opts"},
|
||||
name: "Charges[0].Charging.Balance.Opts",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "Opts"},
|
||||
exp: `{"opt1":"value1"}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.Opts.opt1",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "Opts", "opt1"},
|
||||
name: "Charges[0].Charging.Balance.Opts.opt1",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "Opts", "opt1"},
|
||||
exp: "value1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.CostIncrements",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "CostIncrements"},
|
||||
name: "Charges[0].Charging.Balance.CostIncrements",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "CostIncrements"},
|
||||
exp: `[{"FilterIDs":["fltr3"],"Increment":3,"FixedFee":1,"RecurrentFee":2}]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.CostIncrements[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "CostIncrements[0]"},
|
||||
name: "Charges[0].Charging.Balance.CostIncrements[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "CostIncrements[0]"},
|
||||
exp: `{"FilterIDs":["fltr3"],"Increment":3,"FixedFee":1,"RecurrentFee":2}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.CostIncrements[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "CostIncrements[0]", "FilterIDs"},
|
||||
name: "Charges[0].Charging.Balance.CostIncrements[0].FilterIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "CostIncrements[0]", "FilterIDs"},
|
||||
exp: `["fltr3"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.CostIncrements[0].FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "CostIncrements[0]", "FilterIDs[0]"},
|
||||
name: "Charges[0].Charging.Balance.CostIncrements[0].FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "CostIncrements[0]", "FilterIDs[0]"},
|
||||
exp: "fltr3",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.CostIncrements[0].Increment",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "CostIncrements[0]", "Increment"},
|
||||
name: "Charges[0].Charging.Balance.CostIncrements[0].Increment",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "CostIncrements[0]", "Increment"},
|
||||
exp: "3",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.CostIncrements[0].FixedFee",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "CostIncrements[0]", "FixedFee"},
|
||||
name: "Charges[0].Charging.Balance.CostIncrements[0].FixedFee",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "CostIncrements[0]", "FixedFee"},
|
||||
exp: "1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.CostIncrements[0].RecurrentFee",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "CostIncrements[0]", "RecurrentFee"},
|
||||
name: "Charges[0].Charging.Balance.CostIncrements[0].RecurrentFee",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "CostIncrements[0]", "RecurrentFee"},
|
||||
exp: "2",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.AttributeIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "AttributeIDs"},
|
||||
name: "Charges[0].Charging.Balance.AttributeIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "AttributeIDs"},
|
||||
exp: `["attr1"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.AttributeIDs[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "AttributeIDs[0]"},
|
||||
name: "Charges[0].Charging.Balance.AttributeIDs[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "AttributeIDs[0]"},
|
||||
exp: "attr1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.RateProfileIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "RateProfileIDs"},
|
||||
name: "Charges[0].Charging.Balance.RateProfileIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "RateProfileIDs"},
|
||||
exp: `["rate_prf1"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Balance.RateProfileIDs[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Balance", "RateProfileIDs[0]"},
|
||||
name: "Charges[0].Charging.Balance.RateProfileIDs[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Balance", "RateProfileIDs[0]"},
|
||||
exp: "rate_prf1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.UnitFactor",
|
||||
fields: []string{"Charges[0]", "Accounting", "UnitFactor"},
|
||||
name: "Charges[0].Charging.UnitFactor",
|
||||
fields: []string{"Charges[0]", "Charging", "UnitFactor"},
|
||||
exp: `{"FilterIDs":["fltr1","fltr2"],"Factor":2}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.UnitFactor.FilterIDs",
|
||||
fields: []string{"Charges[0]", "Accounting", "UnitFactor", "FilterIDs"},
|
||||
name: "Charges[0].Charging.UnitFactor.FilterIDs",
|
||||
fields: []string{"Charges[0]", "Charging", "UnitFactor", "FilterIDs"},
|
||||
exp: `["fltr1","fltr2"]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.UnitFactor.FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "UnitFactor", "FilterIDs[0]"},
|
||||
name: "Charges[0].Charging.UnitFactor.FilterIDs[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "UnitFactor", "FilterIDs[0]"},
|
||||
exp: "fltr1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.UnitFactor.Factor",
|
||||
fields: []string{"Charges[0]", "Accounting", "UnitFactor", "Factor"},
|
||||
name: "Charges[0].Charging.UnitFactor.Factor",
|
||||
fields: []string{"Charges[0]", "Charging", "UnitFactor", "Factor"},
|
||||
exp: "2",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Rating",
|
||||
fields: []string{"Charges[0]", "Accounting", "Rating"},
|
||||
name: "Charges[0].Charging.Rating",
|
||||
fields: []string{"Charges[0]", "Charging", "Rating"},
|
||||
exp: `{"IntervalStart":5,"Increments":[{"IncrementStart":9,"RateIntervalIndex":3,"RateID":"rate1","CompressFactor":1,"Usage":10}],"CompressFactor":3}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Rating.IntervalStart",
|
||||
fields: []string{"Charges[0]", "Accounting", "Rating", "IntervalStart"},
|
||||
name: "Charges[0].Charging.Rating.IntervalStart",
|
||||
fields: []string{"Charges[0]", "Charging", "Rating", "IntervalStart"},
|
||||
exp: "5",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Rating.Increments",
|
||||
fields: []string{"Charges[0]", "Accounting", "Rating", "Increments"},
|
||||
name: "Charges[0].Charging.Rating.Increments",
|
||||
fields: []string{"Charges[0]", "Charging", "Rating", "Increments"},
|
||||
exp: `[{"IncrementStart":9,"RateIntervalIndex":3,"RateID":"rate1","CompressFactor":1,"Usage":10}]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Rating.Increments[0]",
|
||||
fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]"},
|
||||
name: "Charges[0].Charging.Rating.Increments[0]",
|
||||
fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]"},
|
||||
exp: `{"IncrementStart":9,"RateIntervalIndex":3,"RateID":"rate1","CompressFactor":1,"Usage":10}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Rating.Increments[0].IncrementStart",
|
||||
fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "IncrementStart"},
|
||||
name: "Charges[0].Charging.Rating.Increments[0].IncrementStart",
|
||||
fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "IncrementStart"},
|
||||
exp: "9",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Rating.Increments[0].RateIntervalIndex",
|
||||
fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "RateIntervalIndex"},
|
||||
name: "Charges[0].Charging.Rating.Increments[0].RateIntervalIndex",
|
||||
fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "RateIntervalIndex"},
|
||||
exp: "3",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Rating.Increments[0].RateID",
|
||||
fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "RateID"},
|
||||
name: "Charges[0].Charging.Rating.Increments[0].RateID",
|
||||
fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "RateID"},
|
||||
exp: "rate1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Rating.Increments[0].CompressFactor",
|
||||
fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "CompressFactor"},
|
||||
name: "Charges[0].Charging.Rating.Increments[0].CompressFactor",
|
||||
fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "CompressFactor"},
|
||||
exp: "1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Rating.Increments[0].Usage",
|
||||
fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "Usage"},
|
||||
name: "Charges[0].Charging.Rating.Increments[0].Usage",
|
||||
fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "Usage"},
|
||||
exp: "10",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Rating.Increments[0].Rate",
|
||||
fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "Rate"},
|
||||
name: "Charges[0].Charging.Rating.Increments[0].Rate",
|
||||
fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "Rate"},
|
||||
exp: `{"IntervalStart":1,"FixedFee":2,"RecurrentFee":3,"Unit":4,"Increment":5}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Rating.Increments[0].Rate.IntervalStart",
|
||||
fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "Rate", "IntervalStart"},
|
||||
name: "Charges[0].Charging.Rating.Increments[0].Rate.IntervalStart",
|
||||
fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "Rate", "IntervalStart"},
|
||||
exp: "1",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Rating.Increments[0].Rate.FixedFee",
|
||||
fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "Rate", "FixedFee"},
|
||||
name: "Charges[0].Charging.Rating.Increments[0].Rate.FixedFee",
|
||||
fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "Rate", "FixedFee"},
|
||||
exp: "2",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Rating.Increments[0].Rate.RecurrentFee",
|
||||
fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "Rate", "RecurrentFee"},
|
||||
name: "Charges[0].Charging.Rating.Increments[0].Rate.RecurrentFee",
|
||||
fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "Rate", "RecurrentFee"},
|
||||
exp: "3",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Rating.Increments[0].Rate.Unit",
|
||||
fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "Rate", "Unit"},
|
||||
name: "Charges[0].Charging.Rating.Increments[0].Rate.Unit",
|
||||
fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "Rate", "Unit"},
|
||||
exp: "4",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Rating.Increments[0].Rate.Increment",
|
||||
fields: []string{"Charges[0]", "Accounting", "Rating", "Increments[0]", "Rate", "Increment"},
|
||||
name: "Charges[0].Charging.Rating.Increments[0].Rate.Increment",
|
||||
fields: []string{"Charges[0]", "Charging", "Rating", "Increments[0]", "Rate", "Increment"},
|
||||
exp: "5",
|
||||
},
|
||||
{
|
||||
name: "Charges[0].Accounting.Rating.CompressFactor",
|
||||
fields: []string{"Charges[0]", "Accounting", "Rating", "CompressFactor"},
|
||||
name: "Charges[0].Charging.Rating.CompressFactor",
|
||||
fields: []string{"Charges[0]", "Charging", "Rating", "CompressFactor"},
|
||||
exp: "3",
|
||||
},
|
||||
{
|
||||
name: "Charges[1].Rating",
|
||||
fields: []string{"Charges[1]", "Rating"},
|
||||
name: "Charges[1].Charging",
|
||||
fields: []string{"Charges[1]", "Charging"},
|
||||
exp: `{"IntervalStart":4,"Increments":[{"IncrementStart":5,"RateIntervalIndex":1,"RateID":"rate1","CompressFactor":1,"Usage":6},{"IncrementStart":7,"RateIntervalIndex":2,"RateID":"rate2","CompressFactor":1,"Usage":8}],"CompressFactor":3}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[1].Rating.IntervalStart",
|
||||
fields: []string{"Charges[1]", "Rating", "IntervalStart"},
|
||||
name: "Charges[1].Charging.IntervalStart",
|
||||
fields: []string{"Charges[1]", "Charging", "IntervalStart"},
|
||||
exp: "4",
|
||||
},
|
||||
{
|
||||
name: "Charges[1].Rating.Increments",
|
||||
fields: []string{"Charges[1]", "Rating", "Increments"},
|
||||
name: "Charges[1].Charging.Increments",
|
||||
fields: []string{"Charges[1]", "Charging", "Increments"},
|
||||
exp: `[{"IncrementStart":5,"RateIntervalIndex":1,"RateID":"rate1","CompressFactor":1,"Usage":6},{"IncrementStart":7,"RateIntervalIndex":2,"RateID":"rate2","CompressFactor":1,"Usage":8}]`,
|
||||
},
|
||||
{
|
||||
name: "Charges[1].Rating.Increments[1]",
|
||||
fields: []string{"Charges[1]", "Rating", "Increments[1]"},
|
||||
name: "Charges[1].Charging.Increments[1]",
|
||||
fields: []string{"Charges[1]", "Charging", "Increments[1]"},
|
||||
exp: `{"IncrementStart":7,"RateIntervalIndex":2,"RateID":"rate2","CompressFactor":1,"Usage":8}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[1].Rating.Increments[1].IncrementStart",
|
||||
fields: []string{"Charges[1]", "Rating", "Increments[1]", "IncrementStart"},
|
||||
name: "Charges[1].Charging.Increments[1].IncrementStart",
|
||||
fields: []string{"Charges[1]", "Charging", "Increments[1]", "IncrementStart"},
|
||||
exp: "7",
|
||||
},
|
||||
{
|
||||
name: "Charges[1].Rating.Increments[1].RateIntervalIndex",
|
||||
fields: []string{"Charges[1]", "Rating", "Increments[1]", "RateIntervalIndex"},
|
||||
name: "Charges[1].Charging.Increments[1].RateIntervalIndex",
|
||||
fields: []string{"Charges[1]", "Charging", "Increments[1]", "RateIntervalIndex"},
|
||||
exp: "2",
|
||||
},
|
||||
{
|
||||
name: "Charges[1].Rating.Increments[1].RateID",
|
||||
fields: []string{"Charges[1]", "Rating", "Increments[1]", "RateID"},
|
||||
name: "Charges[1].Charging.Increments[1].RateID",
|
||||
fields: []string{"Charges[1]", "Charging", "Increments[1]", "RateID"},
|
||||
exp: "rate2",
|
||||
},
|
||||
{
|
||||
name: "Charges[1].Rating.Increments[1].CompressFactor",
|
||||
fields: []string{"Charges[1]", "Rating", "Increments[1]", "CompressFactor"},
|
||||
name: "Charges[1].Charging.Increments[1].CompressFactor",
|
||||
fields: []string{"Charges[1]", "Charging", "Increments[1]", "CompressFactor"},
|
||||
exp: "1",
|
||||
},
|
||||
{
|
||||
name: "Charges[1].Rating.Increments[1].Usage",
|
||||
fields: []string{"Charges[1]", "Rating", "Increments[1]", "Usage"},
|
||||
name: "Charges[1].Charging.Increments[1].Usage",
|
||||
fields: []string{"Charges[1]", "Charging", "Increments[1]", "Usage"},
|
||||
exp: "8",
|
||||
},
|
||||
{
|
||||
name: "Charges[1].Rating.Increments[1].Rate",
|
||||
fields: []string{"Charges[1]", "Rating", "Increments[1]", "Rate"},
|
||||
name: "Charges[1].Charging.Increments[1].Rate",
|
||||
fields: []string{"Charges[1]", "Charging", "Increments[1]", "Rate"},
|
||||
exp: `{"IntervalStart":6,"FixedFee":7,"RecurrentFee":8,"Unit":9,"Increment":10}`,
|
||||
},
|
||||
{
|
||||
name: "Charges[1].Rating.Increments[1].Rate.IntervalStart",
|
||||
fields: []string{"Charges[1]", "Rating", "Increments[1]", "Rate", "IntervalStart"},
|
||||
name: "Charges[1].Charging.Increments[1].Rate.IntervalStart",
|
||||
fields: []string{"Charges[1]", "Charging", "Increments[1]", "Rate", "IntervalStart"},
|
||||
exp: "6",
|
||||
},
|
||||
{
|
||||
name: "Charges[1].Rating.Increments[1].Rate.FixedFee",
|
||||
fields: []string{"Charges[1]", "Rating", "Increments[1]", "Rate", "FixedFee"},
|
||||
name: "Charges[1].Charging.Increments[1].Rate.FixedFee",
|
||||
fields: []string{"Charges[1]", "Charging", "Increments[1]", "Rate", "FixedFee"},
|
||||
exp: "7",
|
||||
},
|
||||
{
|
||||
name: "Charges[1].Rating.Increments[1].Rate.RecurrentFee",
|
||||
fields: []string{"Charges[1]", "Rating", "Increments[1]", "Rate", "RecurrentFee"},
|
||||
name: "Charges[1].Charging.Increments[1].Rate.RecurrentFee",
|
||||
fields: []string{"Charges[1]", "Charging", "Increments[1]", "Rate", "RecurrentFee"},
|
||||
exp: "8",
|
||||
},
|
||||
{
|
||||
name: "Charges[1].Rating.Increments[1].Rate.Unit",
|
||||
fields: []string{"Charges[1]", "Rating", "Increments[1]", "Rate", "Unit"},
|
||||
name: "Charges[1].Charging.Increments[1].Rate.Unit",
|
||||
fields: []string{"Charges[1]", "Charging", "Increments[1]", "Rate", "Unit"},
|
||||
exp: "9",
|
||||
},
|
||||
{
|
||||
name: "Charges[1].Rating.Increments[1].Rate.Increment",
|
||||
fields: []string{"Charges[1]", "Rating", "Increments[1]", "Rate", "Increment"},
|
||||
name: "Charges[1].Charging.Increments[1].Rate.Increment",
|
||||
fields: []string{"Charges[1]", "Charging", "Increments[1]", "Rate", "Increment"},
|
||||
exp: "10",
|
||||
},
|
||||
{
|
||||
name: "Charges[1].Rating.CompressFactor",
|
||||
fields: []string{"Charges[1]", "Rating", "CompressFactor"},
|
||||
name: "Charges[1].Charging.CompressFactor",
|
||||
fields: []string{"Charges[1]", "Charging", "CompressFactor"},
|
||||
exp: "3",
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user