mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Updated chargerscfg AsMapInterface method
This commit is contained in:
committed by
Dan Christian Bogos
parent
fa0c6b6956
commit
cf430d5d9c
@@ -83,36 +83,43 @@ func (cS *ChargerSCfg) loadFromJsonCfg(jsnCfg *ChargerSJsonCfg) (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (cS *ChargerSCfg) AsMapInterface() map[string]interface{} {
|
||||
attributeSConns := make([]string, len(cS.AttributeSConns))
|
||||
for i, item := range cS.AttributeSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes)
|
||||
if item == buf {
|
||||
attributeSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaAttributes, utils.EmptyString)
|
||||
} else {
|
||||
attributeSConns[i] = item
|
||||
}
|
||||
func (cS *ChargerSCfg) AsMapInterface() (initialMP map[string]interface{}) {
|
||||
initialMP = map[string]interface{}{
|
||||
utils.EnabledCfg: cS.Enabled,
|
||||
utils.IndexedSelectsCfg: cS.IndexedSelects,
|
||||
utils.NestedFieldsCfg: cS.NestedFields,
|
||||
}
|
||||
if cS.AttributeSConns != nil {
|
||||
attributeSConns := make([]string, len(cS.AttributeSConns))
|
||||
for i, item := range cS.AttributeSConns {
|
||||
if item == utils.ConcatenatedKey(utils.MetaInternal, utils.MetaAttributes) {
|
||||
attributeSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaAttributes, utils.EmptyString)
|
||||
} else {
|
||||
attributeSConns[i] = item
|
||||
}
|
||||
}
|
||||
initialMP[utils.AttributeSConnsCfg] = attributeSConns
|
||||
}
|
||||
stringIndexedFields := []string{}
|
||||
if cS.StringIndexedFields != nil {
|
||||
stringIndexedFields = make([]string, len(*cS.StringIndexedFields))
|
||||
stringIndexedFields := make([]string, len(*cS.StringIndexedFields))
|
||||
for i, item := range *cS.StringIndexedFields {
|
||||
stringIndexedFields[i] = item
|
||||
}
|
||||
initialMP[utils.StringIndexedFieldsCfg] = stringIndexedFields
|
||||
}
|
||||
prefixIndexedFields := []string{}
|
||||
if cS.PrefixIndexedFields != nil {
|
||||
prefixIndexedFields = make([]string, len(*cS.PrefixIndexedFields))
|
||||
prefixIndexedFields := make([]string, len(*cS.PrefixIndexedFields))
|
||||
for i, item := range *cS.PrefixIndexedFields {
|
||||
prefixIndexedFields[i] = item
|
||||
}
|
||||
initialMP[utils.PrefixIndexedFieldsCfg] = prefixIndexedFields
|
||||
}
|
||||
return map[string]interface{}{
|
||||
utils.EnabledCfg: cS.Enabled,
|
||||
utils.IndexedSelectsCfg: cS.IndexedSelects,
|
||||
utils.AttributeSConnsCfg: attributeSConns,
|
||||
utils.StringIndexedFieldsCfg: stringIndexedFields,
|
||||
utils.PrefixIndexedFieldsCfg: prefixIndexedFields,
|
||||
utils.NestedFieldsCfg: cS.NestedFields,
|
||||
if cS.SuffixIndexedFields != nil {
|
||||
sufixIndexedFields := make([]string, len(*cS.SuffixIndexedFields))
|
||||
for i, item := range *cS.SuffixIndexedFields {
|
||||
sufixIndexedFields[i] = item
|
||||
}
|
||||
initialMP[utils.SuffixIndexedFieldsCfg] = sufixIndexedFields
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -61,7 +61,6 @@ func TestChargerSCfgloadFromJsonCfg(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestChargerSCfgAsMapInterface(t *testing.T) {
|
||||
var chgscfg ChargerSCfg
|
||||
cfgJSONStr := `{
|
||||
"chargers": {
|
||||
"enabled": false,
|
||||
@@ -72,24 +71,22 @@ func TestChargerSCfgAsMapInterface(t *testing.T) {
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"enabled": false,
|
||||
"attributes_conns": []string{},
|
||||
"indexed_selects": true,
|
||||
"prefix_indexed_fields": []string{},
|
||||
"nested_fields": false,
|
||||
"string_indexed_fields": []string{},
|
||||
utils.EnabledCfg: false,
|
||||
utils.AttributeSConnsCfg: []string{},
|
||||
utils.IndexedSelectsCfg: true,
|
||||
utils.PrefixIndexedFieldsCfg: []string{},
|
||||
utils.NestedFieldsCfg: false,
|
||||
utils.SuffixIndexedFieldsCfg: []string{},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnChgCfg, err := jsnCfg.ChargerServJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = chgscfg.loadFromJsonCfg(jsnChgCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := chgscfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
} else if rcv := cgrCfg.chargerSCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("Expected %+v, recieved %+v", eMap, rcv)
|
||||
}
|
||||
}
|
||||
|
||||
cfgJSONStr = `{
|
||||
func TestChargerSCfgAsMapInterface1(t *testing.T) {
|
||||
cfgJSONStr := `{
|
||||
"chargers": {
|
||||
"enabled": false,
|
||||
"attributes_conns": ["*internal"],
|
||||
@@ -98,21 +95,39 @@ func TestChargerSCfgAsMapInterface(t *testing.T) {
|
||||
"nested_fields": false,
|
||||
},
|
||||
}`
|
||||
eMap = map[string]interface{}{
|
||||
"enabled": false,
|
||||
"attributes_conns": []string{"*internal"},
|
||||
"indexed_selects": true,
|
||||
"prefix_indexed_fields": []string{},
|
||||
"nested_fields": false,
|
||||
"string_indexed_fields": []string{},
|
||||
eMap := map[string]interface{}{
|
||||
utils.EnabledCfg: false,
|
||||
utils.AttributeSConnsCfg: []string{"*internal"},
|
||||
utils.IndexedSelectsCfg: true,
|
||||
utils.PrefixIndexedFieldsCfg: []string{},
|
||||
utils.NestedFieldsCfg: false,
|
||||
utils.SuffixIndexedFieldsCfg: []string{},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnChgCfg, err := jsnCfg.ChargerServJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = chgscfg.loadFromJsonCfg(jsnChgCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := chgscfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
} else if rcv := cgrCfg.chargerSCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("Expected %+v, recieved %+v", eMap, rcv)
|
||||
}
|
||||
}
|
||||
|
||||
func TestChargerSCfgAsMapInterface2(t *testing.T) {
|
||||
cfgJSONStr := `{
|
||||
"chargers": {
|
||||
"prefix_indexed_fields": ["*req.DestinationPrefix"],
|
||||
"suffix_indexed_fields": ["*req.Field1","*req.Field2","*req.Field3"],
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
utils.EnabledCfg: false,
|
||||
utils.AttributeSConnsCfg: []string{},
|
||||
utils.IndexedSelectsCfg: true,
|
||||
utils.PrefixIndexedFieldsCfg: []string{"*req.DestinationPrefix"},
|
||||
utils.NestedFieldsCfg: false,
|
||||
utils.SuffixIndexedFieldsCfg: []string{"*req.Field1", "*req.Field2", "*req.Field3"},
|
||||
}
|
||||
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := cgrCfg.chargerSCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
|
||||
t.Errorf("Expected %+v, received %+v", eMap, rcv)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user