mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Updated suretax AsMapInterface method
This commit is contained in:
committed by
Dan Christian Bogos
parent
9f29638d67
commit
cb90455ae3
@@ -143,9 +143,6 @@ func TestStoreDbCfgloadFromJsonCfgPort(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestStorDbCfgAsMapInterface(t *testing.T) {
|
||||
var dbcfg StorDbCfg
|
||||
dbcfg.Items = make(map[string]*ItemOpt)
|
||||
dbcfg.Opts = make(map[string]interface{})
|
||||
cfgJSONStr := `{
|
||||
"stor_db": {
|
||||
"db_type": "*mysql",
|
||||
|
||||
@@ -175,163 +175,114 @@ func (self *SureTaxCfg) loadFromJsonCfg(jsnCfg *SureTaxJsonCfg) (err error) {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (st *SureTaxCfg) AsMapInterface(separator string) map[string]interface{} {
|
||||
var clientTracking string
|
||||
if st.ClientTracking != nil {
|
||||
values := make([]string, len(st.ClientTracking))
|
||||
for i, item := range st.ClientTracking {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
clientTracking = strings.Join(values, separator)
|
||||
func (st *SureTaxCfg) AsMapInterface(separator string) (initialMP map[string]interface{}) {
|
||||
initialMP = map[string]interface{}{
|
||||
utils.UrlCfg: st.Url,
|
||||
utils.ClientNumberCfg: st.ClientNumber,
|
||||
utils.ValidationKeyCfg: st.ValidationKey,
|
||||
utils.BusinessUnitCfg: st.BusinessUnit,
|
||||
utils.TimezoneCfg: st.Timezone.String(),
|
||||
utils.IncludeLocalCostCfg: st.IncludeLocalCost,
|
||||
utils.ReturnFileCodeCfg: st.ReturnFileCode,
|
||||
utils.ResponseGroupCfg: st.ResponseGroup,
|
||||
utils.ResponseTypeCfg: st.ResponseType,
|
||||
utils.RegulatoryCodeCfg: st.RegulatoryCode,
|
||||
}
|
||||
var customerNumber string
|
||||
if st.CustomerNumber != nil {
|
||||
values := make([]string, len(st.CustomerNumber))
|
||||
for i, item := range st.CustomerNumber {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
customerNumber = strings.Join(values, separator)
|
||||
}
|
||||
var origNumber string
|
||||
if st.OrigNumber != nil {
|
||||
values := make([]string, len(st.OrigNumber))
|
||||
for i, item := range st.OrigNumber {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
origNumber = strings.Join(values, separator)
|
||||
}
|
||||
var termNumber string
|
||||
if st.TermNumber != nil {
|
||||
values := make([]string, len(st.TermNumber))
|
||||
for i, item := range st.TermNumber {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
termNumber = strings.Join(values, separator)
|
||||
}
|
||||
var billToNumber string
|
||||
if st.BillToNumber != nil {
|
||||
values := make([]string, len(st.BillToNumber))
|
||||
for i, item := range st.BillToNumber {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
billToNumber = strings.Join(values, separator)
|
||||
}
|
||||
var zipcode string
|
||||
if st.Zipcode != nil {
|
||||
values := make([]string, len(st.Zipcode))
|
||||
for i, item := range st.Zipcode {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
zipcode = strings.Join(values, separator)
|
||||
}
|
||||
var plus4 string
|
||||
if st.Plus4 != nil {
|
||||
values := make([]string, len(st.Plus4))
|
||||
for i, item := range st.Plus4 {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
plus4 = strings.Join(values, separator)
|
||||
}
|
||||
var p2PZipcode string
|
||||
if st.P2PZipcode != nil {
|
||||
values := make([]string, len(st.P2PZipcode))
|
||||
for i, item := range st.P2PZipcode {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
p2PZipcode = strings.Join(values, separator)
|
||||
}
|
||||
var p2PPlus4 string
|
||||
if st.P2PPlus4 != nil {
|
||||
values := make([]string, len(st.P2PPlus4))
|
||||
for i, item := range st.P2PPlus4 {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
p2PPlus4 = strings.Join(values, separator)
|
||||
}
|
||||
var units string
|
||||
if st.Units != nil {
|
||||
values := make([]string, len(st.Units))
|
||||
for i, item := range st.Units {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
units = strings.Join(values, separator)
|
||||
}
|
||||
var unitType string
|
||||
if st.UnitType != nil {
|
||||
values := make([]string, len(st.UnitType))
|
||||
for i, item := range st.UnitType {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
unitType = strings.Join(values, separator)
|
||||
}
|
||||
var taxIncluded string
|
||||
if st.TaxIncluded != nil {
|
||||
values := make([]string, len(st.TaxIncluded))
|
||||
for i, item := range st.TaxIncluded {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
taxIncluded = strings.Join(values, separator)
|
||||
}
|
||||
var taxSitusRule string
|
||||
if st.TaxSitusRule != nil {
|
||||
values := make([]string, len(st.TaxSitusRule))
|
||||
for i, item := range st.TaxSitusRule {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
taxSitusRule = strings.Join(values, separator)
|
||||
}
|
||||
var transTypeCode string
|
||||
if st.TransTypeCode != nil {
|
||||
values := make([]string, len(st.TransTypeCode))
|
||||
for i, item := range st.TransTypeCode {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
transTypeCode = strings.Join(values, separator)
|
||||
}
|
||||
var salesTypeCode string
|
||||
if st.SalesTypeCode != nil {
|
||||
values := make([]string, len(st.SalesTypeCode))
|
||||
for i, item := range st.SalesTypeCode {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
salesTypeCode = strings.Join(values, separator)
|
||||
}
|
||||
var taxExemptionCodeList string
|
||||
if st.TaxExemptionCodeList != nil {
|
||||
values := make([]string, len(st.TaxExemptionCodeList))
|
||||
for i, item := range st.TaxExemptionCodeList {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
taxExemptionCodeList = strings.Join(values, separator)
|
||||
values := make([]string, len(st.ClientTracking))
|
||||
for i, item := range st.ClientTracking {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
initialMP[utils.ClientTrackingCfg] = strings.Join(values, separator)
|
||||
|
||||
return map[string]interface{}{
|
||||
utils.UrlCfg: st.Url,
|
||||
utils.ClientNumberCfg: st.ClientNumber,
|
||||
utils.ValidationKeyCfg: st.ValidationKey,
|
||||
utils.BusinessUnitCfg: st.BusinessUnit,
|
||||
utils.TimezoneCfg: st.Timezone.String(),
|
||||
utils.IncludeLocalCostCfg: st.IncludeLocalCost,
|
||||
utils.ReturnFileCodeCfg: st.ReturnFileCode,
|
||||
utils.ResponseGroupCfg: st.ResponseGroup,
|
||||
utils.ResponseTypeCfg: st.ResponseType,
|
||||
utils.RegulatoryCodeCfg: st.RegulatoryCode,
|
||||
utils.ClientTrackingCfg: clientTracking,
|
||||
utils.CustomerNumberCfg: customerNumber,
|
||||
utils.OrigNumberCfg: origNumber,
|
||||
utils.TermNumberCfg: termNumber,
|
||||
utils.BillToNumberCfg: billToNumber,
|
||||
utils.ZipcodeCfg: zipcode,
|
||||
utils.Plus4Cfg: plus4,
|
||||
utils.P2PZipcodeCfg: p2PZipcode,
|
||||
utils.P2PPlus4Cfg: p2PPlus4,
|
||||
utils.UnitsCfg: units,
|
||||
utils.UnitTypeCfg: unitType,
|
||||
utils.TaxIncludedCfg: taxIncluded,
|
||||
utils.TaxSitusRuleCfg: taxSitusRule,
|
||||
utils.TransTypeCodeCfg: transTypeCode,
|
||||
utils.SalesTypeCodeCfg: salesTypeCode,
|
||||
utils.TaxExemptionCodeListCfg: taxExemptionCodeList,
|
||||
values = make([]string, len(st.CustomerNumber))
|
||||
for i, item := range st.CustomerNumber {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
initialMP[utils.CustomerNumberCfg] = strings.Join(values, separator)
|
||||
|
||||
values = make([]string, len(st.OrigNumber))
|
||||
for i, item := range st.OrigNumber {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
initialMP[utils.OrigNumberCfg] = strings.Join(values, separator)
|
||||
|
||||
values = make([]string, len(st.TermNumber))
|
||||
for i, item := range st.TermNumber {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
initialMP[utils.TermNumberCfg] = strings.Join(values, separator)
|
||||
|
||||
values = make([]string, len(st.BillToNumber))
|
||||
for i, item := range st.BillToNumber {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
initialMP[utils.BillToNumberCfg] = strings.Join(values, separator)
|
||||
|
||||
values = make([]string, len(st.Zipcode))
|
||||
for i, item := range st.Zipcode {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
initialMP[utils.ZipcodeCfg] = strings.Join(values, separator)
|
||||
|
||||
values = make([]string, len(st.Plus4))
|
||||
for i, item := range st.Plus4 {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
initialMP[utils.Plus4Cfg] = strings.Join(values, separator)
|
||||
|
||||
values = make([]string, len(st.P2PZipcode))
|
||||
for i, item := range st.P2PZipcode {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
initialMP[utils.P2PZipcodeCfg] = strings.Join(values, separator)
|
||||
|
||||
values = make([]string, len(st.P2PPlus4))
|
||||
for i, item := range st.P2PPlus4 {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
initialMP[utils.P2PPlus4Cfg] = strings.Join(values, separator)
|
||||
|
||||
values = make([]string, len(st.Units))
|
||||
for i, item := range st.Units {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
initialMP[utils.UnitsCfg] = strings.Join(values, separator)
|
||||
|
||||
values = make([]string, len(st.UnitType))
|
||||
for i, item := range st.UnitType {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
initialMP[utils.UnitTypeCfg] = strings.Join(values, separator)
|
||||
|
||||
values = make([]string, len(st.TaxIncluded))
|
||||
for i, item := range st.TaxIncluded {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
initialMP[utils.TaxIncludedCfg] = strings.Join(values, separator)
|
||||
|
||||
values = make([]string, len(st.TaxSitusRule))
|
||||
for i, item := range st.TaxSitusRule {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
initialMP[utils.TaxSitusRuleCfg] = strings.Join(values, separator)
|
||||
|
||||
values = make([]string, len(st.TransTypeCode))
|
||||
for i, item := range st.TransTypeCode {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
initialMP[utils.TransTypeCodeCfg] = strings.Join(values, separator)
|
||||
|
||||
values = make([]string, len(st.SalesTypeCode))
|
||||
for i, item := range st.SalesTypeCode {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
initialMP[utils.SalesTypeCodeCfg] = strings.Join(values, separator)
|
||||
|
||||
values = make([]string, len(st.TaxExemptionCodeList))
|
||||
for i, item := range st.TaxExemptionCodeList {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
initialMP[utils.TaxExemptionCodeListCfg] = strings.Join(values, separator)
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
@@ -112,72 +112,96 @@ func TestSureTaxCfgloadFromJsonCfg(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestSureTaxCfgAsMapInterface(t *testing.T) {
|
||||
var sureTaxCfg SureTaxCfg
|
||||
cfgJSONStr := `{
|
||||
"suretax": {
|
||||
"url": "",
|
||||
"client_number": "",
|
||||
"validation_key": "",
|
||||
"business_unit": "",
|
||||
"timezone": "UTC",
|
||||
"include_local_cost": false,
|
||||
"return_file_code": "0",
|
||||
"response_group": "03",
|
||||
"response_type": "D4",
|
||||
"regulatory_code": "03",
|
||||
"client_tracking": "~*req.CGRID",
|
||||
"customer_number": "~*req.Subject",
|
||||
"orig_number": "~*req.Subject",
|
||||
"term_number": "~*req.Destination",
|
||||
"bill_to_number": "",
|
||||
"zipcode": "",
|
||||
"plus4": "",
|
||||
"p2pzipcode": "",
|
||||
"p2pplus4": "",
|
||||
"units": "1",
|
||||
"unit_type": "00",
|
||||
"tax_included": "0",
|
||||
"tax_situs_rule": "04",
|
||||
"trans_type_code": "010101",
|
||||
"sales_type_code": "R",
|
||||
"tax_exemption_code_list": "",
|
||||
},
|
||||
"suretax": {},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"url": "",
|
||||
"client_number": "",
|
||||
"validation_key": "",
|
||||
"business_unit": "",
|
||||
"timezone": "UTC",
|
||||
"include_local_cost": false,
|
||||
"return_file_code": "0",
|
||||
"response_group": "03",
|
||||
"response_type": "D4",
|
||||
"regulatory_code": "03",
|
||||
"client_tracking": "~*req.CGRID",
|
||||
"customer_number": "~*req.Subject",
|
||||
"orig_number": "~*req.Subject",
|
||||
"term_number": "~*req.Destination",
|
||||
"bill_to_number": "",
|
||||
"zipcode": "",
|
||||
"plus4": "",
|
||||
"p2pzipcode": "",
|
||||
"p2pplus4": "",
|
||||
"units": "1",
|
||||
"unit_type": "00",
|
||||
"tax_included": "0",
|
||||
"tax_situs_rule": "04",
|
||||
"trans_type_code": "010101",
|
||||
"sales_type_code": "R",
|
||||
"tax_exemption_code_list": "",
|
||||
utils.UrlCfg: utils.EmptyString,
|
||||
utils.ClientNumberCfg: utils.EmptyString,
|
||||
utils.ValidationKeyCfg: utils.EmptyString,
|
||||
utils.BusinessUnitCfg: utils.EmptyString,
|
||||
utils.TimezoneCfg: "Local",
|
||||
utils.IncludeLocalCostCfg: false,
|
||||
utils.ReturnFileCodeCfg: "0",
|
||||
utils.ResponseGroupCfg: "03",
|
||||
utils.ResponseTypeCfg: "D4",
|
||||
utils.RegulatoryCodeCfg: "03",
|
||||
utils.ClientTrackingCfg: "~*req.CGRID",
|
||||
utils.CustomerNumberCfg: "~*req.Subject",
|
||||
utils.OrigNumberCfg: "~*req.Subject",
|
||||
utils.TermNumberCfg: "~*req.Destination",
|
||||
utils.BillToNumberCfg: utils.EmptyString,
|
||||
utils.ZipcodeCfg: utils.EmptyString,
|
||||
utils.Plus4Cfg: utils.EmptyString,
|
||||
utils.P2PZipcodeCfg: utils.EmptyString,
|
||||
utils.P2PPlus4Cfg: utils.EmptyString,
|
||||
utils.UnitsCfg: "1",
|
||||
utils.UnitTypeCfg: "00",
|
||||
utils.TaxIncludedCfg: "0",
|
||||
utils.TaxSitusRuleCfg: "04",
|
||||
utils.TransTypeCodeCfg: "010101",
|
||||
utils.SalesTypeCodeCfg: "R",
|
||||
utils.TaxExemptionCodeListCfg: utils.EmptyString,
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
|
||||
t.Error(err)
|
||||
} else if sureTax, err := jsnCfg.SureTaxJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = sureTaxCfg.loadFromJsonCfg(sureTax); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := sureTaxCfg.AsMapInterface(utils.EmptyString); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
} else if rcv := cgrCfg.sureTaxCfg.AsMapInterface(cgrCfg.generalCfg.RSRSep); !reflect.DeepEqual(rcv, eMap) {
|
||||
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
func TestSureTaxCfgAsMapInterface1(t *testing.T) {
|
||||
cfgJSONStr := `{
|
||||
"suretax": {
|
||||
"timezone": "UTC",
|
||||
"include_local_cost": true,
|
||||
"return_file_code": "0",
|
||||
"response_group": "04",
|
||||
"response_type": "A4",
|
||||
"regulatory_code": "04",
|
||||
"client_tracking": "~*req.Destination",
|
||||
"customer_number": "~*req.Destination",
|
||||
"orig_number": "~*req.Destination",
|
||||
"term_number": "~*req.CGRID",
|
||||
"units": "7",
|
||||
"unit_type": "02",
|
||||
"tax_included": "1",
|
||||
"tax_situs_rule": "03",
|
||||
"trans_type_code": "01010101",
|
||||
"sales_type_code": "B",
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
utils.UrlCfg: utils.EmptyString,
|
||||
utils.ClientNumberCfg: utils.EmptyString,
|
||||
utils.ValidationKeyCfg: utils.EmptyString,
|
||||
utils.BusinessUnitCfg: utils.EmptyString,
|
||||
utils.TimezoneCfg: "UTC",
|
||||
utils.IncludeLocalCostCfg: true,
|
||||
utils.ReturnFileCodeCfg: "0",
|
||||
utils.ResponseGroupCfg: "04",
|
||||
utils.ResponseTypeCfg: "A4",
|
||||
utils.RegulatoryCodeCfg: "04",
|
||||
utils.ClientTrackingCfg: "~*req.Destination",
|
||||
utils.CustomerNumberCfg: "~*req.Destination",
|
||||
utils.OrigNumberCfg: "~*req.Destination",
|
||||
utils.TermNumberCfg: "~*req.CGRID",
|
||||
utils.BillToNumberCfg: utils.EmptyString,
|
||||
utils.ZipcodeCfg: utils.EmptyString,
|
||||
utils.Plus4Cfg: utils.EmptyString,
|
||||
utils.P2PZipcodeCfg: utils.EmptyString,
|
||||
utils.P2PPlus4Cfg: utils.EmptyString,
|
||||
utils.UnitsCfg: "7",
|
||||
utils.UnitTypeCfg: "02",
|
||||
utils.TaxIncludedCfg: "1",
|
||||
utils.TaxSitusRuleCfg: "03",
|
||||
utils.TransTypeCodeCfg: "01010101",
|
||||
utils.SalesTypeCodeCfg: "B",
|
||||
utils.TaxExemptionCodeListCfg: utils.EmptyString,
|
||||
}
|
||||
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := cgrCfg.sureTaxCfg.AsMapInterface(cgrCfg.generalCfg.RSRSep); !reflect.DeepEqual(rcv, eMap) {
|
||||
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user