mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Updated some AsMapInterface methods/added tests for them
This commit is contained in:
committed by
Dan Christian Bogos
parent
b90f6c5ac9
commit
85b1f778d4
@@ -64,12 +64,25 @@ func (alS *AttributeSCfg) loadFromJsonCfg(jsnCfg *AttributeSJsonCfg) (err error)
|
||||
}
|
||||
|
||||
func (alS *AttributeSCfg) AsMapInterface() map[string]interface{} {
|
||||
|
||||
stringIndexedFields := []string{}
|
||||
if alS.StringIndexedFields != nil {
|
||||
stringIndexedFields = make([]string, len(*alS.StringIndexedFields))
|
||||
for i, item := range *alS.StringIndexedFields {
|
||||
stringIndexedFields[i] = item
|
||||
}
|
||||
}
|
||||
prefixIndexedFields := []string{}
|
||||
if alS.PrefixIndexedFields != nil {
|
||||
prefixIndexedFields = make([]string, len(*alS.PrefixIndexedFields))
|
||||
for i, item := range *alS.PrefixIndexedFields {
|
||||
prefixIndexedFields[i] = item
|
||||
}
|
||||
}
|
||||
return map[string]interface{}{
|
||||
utils.EnabledCfg: alS.Enabled,
|
||||
utils.IndexedSelectsCfg: alS.IndexedSelects,
|
||||
utils.StringIndexedFieldsCfg: alS.StringIndexedFields,
|
||||
utils.PrefixIndexedFieldsCfg: alS.PrefixIndexedFields,
|
||||
utils.StringIndexedFieldsCfg: stringIndexedFields,
|
||||
utils.PrefixIndexedFieldsCfg: prefixIndexedFields,
|
||||
utils.ProcessRunsCfg: alS.ProcessRuns,
|
||||
utils.NestedFieldsCfg: alS.NestedFields,
|
||||
}
|
||||
|
||||
@@ -20,6 +20,8 @@ package config
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
func TestAttributeSCfgloadFromJsonCfg(t *testing.T) {
|
||||
@@ -57,3 +59,31 @@ func TestAttributeSCfgloadFromJsonCfg(t *testing.T) {
|
||||
t.Errorf("Expected: %+v , recived: %+v", expected, attscfg)
|
||||
}
|
||||
}
|
||||
|
||||
func TestAttributeSCfgAsMapInterface(t *testing.T) {
|
||||
var attscfg AttributeSCfg
|
||||
cfgJSONStr := `{
|
||||
"attributes": {
|
||||
"enabled": true,
|
||||
"prefix_indexed_fields": ["index1","index2"],
|
||||
"process_runs": 3,
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"enabled": true,
|
||||
"prefix_indexed_fields": []string{"index1", "index2"},
|
||||
"process_runs": 3,
|
||||
"indexed_selects": false,
|
||||
"nested_fields": false,
|
||||
"string_indexed_fields": []string{},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnAttSCfg, err := jsnCfg.AttributeServJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = attscfg.loadFromJsonCfg(jsnAttSCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := attscfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
package config
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
@@ -135,17 +137,80 @@ func (cdrscfg *CdrsCfg) AsMapInterface() map[string]interface{} {
|
||||
for i, item := range cdrscfg.ExtraFields {
|
||||
extraFields[i] = item.Rules
|
||||
}
|
||||
onlineCDRExports := make([]string, len(cdrscfg.OnlineCDRExports))
|
||||
for i, item := range cdrscfg.OnlineCDRExports {
|
||||
onlineCDRExports[i] = item
|
||||
}
|
||||
|
||||
chargerSConns := make([]string, len(cdrscfg.ChargerSConns))
|
||||
for i, item := range cdrscfg.ChargerSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaChargers)
|
||||
if item == buf {
|
||||
chargerSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaChargers, utils.EmptyString)
|
||||
} else {
|
||||
chargerSConns[i] = item
|
||||
}
|
||||
}
|
||||
RALsConns := make([]string, len(cdrscfg.RaterConns))
|
||||
for i, item := range cdrscfg.RaterConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResponder)
|
||||
|
||||
if item == buf {
|
||||
RALsConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaResponder, utils.EmptyString)
|
||||
} else {
|
||||
RALsConns[i] = item
|
||||
}
|
||||
}
|
||||
|
||||
attributeSConns := make([]string, len(cdrscfg.AttributeSConns))
|
||||
for i, item := range cdrscfg.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
|
||||
}
|
||||
}
|
||||
|
||||
thresholdSConns := make([]string, len(cdrscfg.ThresholdSConns))
|
||||
for i, item := range cdrscfg.ThresholdSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds)
|
||||
if item == buf {
|
||||
thresholdSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaThresholds, utils.EmptyString)
|
||||
} else {
|
||||
thresholdSConns[i] = item
|
||||
}
|
||||
}
|
||||
statSConns := make([]string, len(cdrscfg.StatSConns))
|
||||
for i, item := range cdrscfg.StatSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStatS)
|
||||
if item == buf {
|
||||
statSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaStatS, utils.EmptyString)
|
||||
} else {
|
||||
statSConns[i] = item
|
||||
}
|
||||
}
|
||||
schedulerConns := make([]string, len(cdrscfg.SchedulerConns))
|
||||
for i, item := range cdrscfg.SchedulerConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaScheduler)
|
||||
if item == buf {
|
||||
schedulerConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaScheduler, utils.EmptyString)
|
||||
} else {
|
||||
schedulerConns[i] = item
|
||||
}
|
||||
}
|
||||
|
||||
return map[string]interface{}{
|
||||
utils.EnabledCfg: cdrscfg.Enabled,
|
||||
utils.ExtraFieldsCfg: extraFields,
|
||||
utils.StoreCdrsCfg: cdrscfg.StoreCdrs,
|
||||
utils.SMCostRetriesCfg: cdrscfg.SMCostRetries,
|
||||
utils.ChargerSConnsCfg: cdrscfg.ChargerSConns,
|
||||
utils.RALsConnsCfg: cdrscfg.RaterConns,
|
||||
utils.AttributeSConnsCfg: cdrscfg.AttributeSConns,
|
||||
utils.ThresholdSConnsCfg: cdrscfg.ThresholdSConns,
|
||||
utils.StatSConnsCfg: cdrscfg.StatSConns,
|
||||
utils.OnlineCDRExportsCfg: cdrscfg.OnlineCDRExports,
|
||||
utils.ChargerSConnsCfg: chargerSConns,
|
||||
utils.RALsConnsCfg: RALsConns,
|
||||
utils.AttributeSConnsCfg: attributeSConns,
|
||||
utils.ThresholdSConnsCfg: thresholdSConns,
|
||||
utils.StatSConnsCfg: statSConns,
|
||||
utils.OnlineCDRExportsCfg: onlineCDRExports,
|
||||
utils.SchedulerConnsCfg: schedulerConns,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -92,3 +92,82 @@ func TestExtraFieldsinAsMapInterface(t *testing.T) {
|
||||
t.Errorf("Expecting: '%+v', received: '%+v' ", expectedExtra, rcv[utils.ExtraFieldsCfg])
|
||||
}
|
||||
}
|
||||
|
||||
func TestCdrsCfgAsMapInterface(t *testing.T) {
|
||||
var cdrscfg CdrsCfg
|
||||
cfgJSONStr := `{
|
||||
"cdrs": {
|
||||
"enabled": false,
|
||||
"extra_fields": [],
|
||||
"store_cdrs": true,
|
||||
"session_cost_retries": 5,
|
||||
"chargers_conns":["*localhost"],
|
||||
"rals_conns": ["*internal"],
|
||||
"attributes_conns": [],
|
||||
"thresholds_conns": [],
|
||||
"stats_conns": [],
|
||||
"online_cdr_exports":[],
|
||||
"scheduler_conns": [],
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"enabled": false,
|
||||
"extra_fields": []string{},
|
||||
"store_cdrs": true,
|
||||
"session_cost_retries": 5,
|
||||
"chargers_conns": []string{"*localhost"},
|
||||
"rals_conns": []string{"*internal"},
|
||||
"attributes_conns": []string{},
|
||||
"thresholds_conns": []string{},
|
||||
"stats_conns": []string{},
|
||||
"online_cdr_exports": []string{},
|
||||
"scheduler_conns": []string{},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnCdrsCfg, err := jsnCfg.CdrsJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = cdrscfg.loadFromJsonCfg(jsnCdrsCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := cdrscfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
|
||||
cfgJSONStr = `{
|
||||
"cdrs": {
|
||||
"enabled": true,
|
||||
"extra_fields": ["PayPalAccount", "LCRProfile", "ResourceID"],
|
||||
"store_cdrs": true,
|
||||
"session_cost_retries": 9,
|
||||
"chargers_conns":["*internal"],
|
||||
"rals_conns": ["*internal"],
|
||||
"attributes_conns": ["*internal"],
|
||||
"thresholds_conns": ["*internal"],
|
||||
"stats_conns": ["*internal"],
|
||||
"online_cdr_exports":["http_localhost", "amqp_localhost", "http_test_file", "amqp_test_file","aws_test_file","sqs_test_file","kafka_localhost","s3_test_file"],
|
||||
"scheduler_conns": ["*internal"],
|
||||
},
|
||||
}`
|
||||
eMap = map[string]interface{}{
|
||||
"enabled": true,
|
||||
"extra_fields": []string{"PayPalAccount", "LCRProfile", "ResourceID"},
|
||||
"store_cdrs": true,
|
||||
"session_cost_retries": 9,
|
||||
"chargers_conns": []string{"*internal"},
|
||||
"rals_conns": []string{"*internal"},
|
||||
"attributes_conns": []string{"*internal"},
|
||||
"thresholds_conns": []string{"*internal"},
|
||||
"stats_conns": []string{"*internal"},
|
||||
"online_cdr_exports": []string{"http_localhost", "amqp_localhost", "http_test_file", "amqp_test_file", "aws_test_file", "sqs_test_file", "kafka_localhost", "s3_test_file"},
|
||||
"scheduler_conns": []string{"*internal"},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnCdrsCfg, err := jsnCfg.CdrsJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = cdrscfg.loadFromJsonCfg(jsnCdrsCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := cdrscfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
|
||||
package config
|
||||
|
||||
import "github.com/cgrates/cgrates/utils"
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
// SupplierSCfg is the configuration of supplier service
|
||||
type ChargerSCfg struct {
|
||||
@@ -72,12 +76,35 @@ func (cS *ChargerSCfg) loadFromJsonCfg(jsnCfg *ChargerSJsonCfg) (err error) {
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
}
|
||||
stringIndexedFields := []string{}
|
||||
if cS.StringIndexedFields != nil {
|
||||
stringIndexedFields = make([]string, len(*cS.StringIndexedFields))
|
||||
for i, item := range *cS.StringIndexedFields {
|
||||
stringIndexedFields[i] = item
|
||||
}
|
||||
}
|
||||
prefixIndexedFields := []string{}
|
||||
if cS.PrefixIndexedFields != nil {
|
||||
prefixIndexedFields = make([]string, len(*cS.PrefixIndexedFields))
|
||||
for i, item := range *cS.PrefixIndexedFields {
|
||||
prefixIndexedFields[i] = item
|
||||
}
|
||||
}
|
||||
return map[string]interface{}{
|
||||
utils.EnabledCfg: cS.Enabled,
|
||||
utils.IndexedSelectsCfg: cS.IndexedSelects,
|
||||
utils.AttributeSConnsCfg: cS.AttributeSConns,
|
||||
utils.StringIndexedFieldsCfg: cS.StringIndexedFields,
|
||||
utils.PrefixIndexedFieldsCfg: cS.PrefixIndexedFields,
|
||||
utils.AttributeSConnsCfg: attributeSConns,
|
||||
utils.StringIndexedFieldsCfg: stringIndexedFields,
|
||||
utils.PrefixIndexedFieldsCfg: prefixIndexedFields,
|
||||
utils.NestedFieldsCfg: cS.NestedFields,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,8 @@ package config
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
func TestChargerSCfgloadFromJsonCfg(t *testing.T) {
|
||||
@@ -57,3 +59,60 @@ func TestChargerSCfgloadFromJsonCfg(t *testing.T) {
|
||||
t.Errorf("Expected: %+v , recived: %+v", expected, chgscfg)
|
||||
}
|
||||
}
|
||||
|
||||
func TestChargerSCfgAsMapInterface(t *testing.T) {
|
||||
var chgscfg ChargerSCfg
|
||||
cfgJSONStr := `{
|
||||
"chargers": {
|
||||
"enabled": false,
|
||||
"attributes_conns": [],
|
||||
"indexed_selects":true,
|
||||
"prefix_indexed_fields": [],
|
||||
"nested_fields": false,
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"enabled": false,
|
||||
"attributes_conns": []string{},
|
||||
"indexed_selects": true,
|
||||
"prefix_indexed_fields": []string{},
|
||||
"nested_fields": false,
|
||||
"string_indexed_fields": []string{},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(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))
|
||||
}
|
||||
|
||||
cfgJSONStr = `{
|
||||
"chargers": {
|
||||
"enabled": false,
|
||||
"attributes_conns": ["*internal"],
|
||||
"indexed_selects":true,
|
||||
"prefix_indexed_fields": [],
|
||||
"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{},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(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))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1482,7 +1482,7 @@ func (cfg *CGRConfig) AsMapInterface(separator string) map[string]interface{} {
|
||||
utils.StatsCfg: cfg.statsCfg.AsMapInterface(),
|
||||
utils.ThresholdSCfg: cfg.thresholdSCfg.AsMapInterface(),
|
||||
utils.SupplierSCfg: cfg.supplierSCfg.AsMapInterface(),
|
||||
utils.SureTaxCfg: cfg.sureTaxCfg.AsMapInterface(),
|
||||
utils.SureTaxCfg: cfg.sureTaxCfg.AsMapInterface(separator),
|
||||
utils.DispatcherSCfg: cfg.dispatcherSCfg.AsMapInterface(),
|
||||
utils.LoaderCgrCfg: cfg.loaderCgrCfg.AsMapInterface(),
|
||||
utils.MigratorCgrCfg: cfg.migratorCgrCfg.AsMapInterface(),
|
||||
|
||||
@@ -165,7 +165,7 @@ func (rp *RequestProcessor) AsMapInterface(separator string) map[string]interfac
|
||||
for i, item := range rp.Tenant {
|
||||
values[i] = item.Rules
|
||||
}
|
||||
tenant = strings.Join(values, utils.EmptyString)
|
||||
tenant = strings.Join(values, separator)
|
||||
}
|
||||
|
||||
flags := make(map[string][]string, len(rp.Flags))
|
||||
|
||||
@@ -58,7 +58,7 @@ func (httpcfg *HTTPCfg) loadFromJsonCfg(jsnHttpCfg *HTTPJsonCfg) (err error) {
|
||||
}
|
||||
|
||||
func (httpcfg *HTTPCfg) AsMapInterface() map[string]interface{} {
|
||||
httpUsers := map[string]interface{}{}
|
||||
httpUsers := make(map[string]interface{}, len(httpcfg.HTTPAuthUsers))
|
||||
for key, item := range httpcfg.HTTPAuthUsers {
|
||||
httpUsers[key] = item
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
package config
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
@@ -81,14 +82,40 @@ func (rlcfg *ResourceSConfig) loadFromJsonCfg(jsnCfg *ResourceSJsonCfg) (err err
|
||||
}
|
||||
|
||||
func (rlcfg *ResourceSConfig) AsMapInterface() map[string]interface{} {
|
||||
|
||||
thresholdSConns := make([]string, len(rlcfg.ThresholdSConns))
|
||||
for i, item := range rlcfg.ThresholdSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds)
|
||||
if item == buf {
|
||||
thresholdSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaThresholds, utils.EmptyString)
|
||||
} else {
|
||||
thresholdSConns[i] = item
|
||||
}
|
||||
}
|
||||
stringIndexedFields := []string{}
|
||||
if rlcfg.StringIndexedFields != nil {
|
||||
stringIndexedFields = make([]string, len(*rlcfg.StringIndexedFields))
|
||||
for i, item := range *rlcfg.StringIndexedFields {
|
||||
stringIndexedFields[i] = item
|
||||
}
|
||||
}
|
||||
prefixIndexedFields := []string{}
|
||||
if rlcfg.PrefixIndexedFields != nil {
|
||||
prefixIndexedFields = make([]string, len(*rlcfg.PrefixIndexedFields))
|
||||
for i, item := range *rlcfg.PrefixIndexedFields {
|
||||
prefixIndexedFields[i] = item
|
||||
}
|
||||
}
|
||||
var storeInterval string = ""
|
||||
if rlcfg.StoreInterval != 0 {
|
||||
storeInterval = rlcfg.StoreInterval.String()
|
||||
}
|
||||
return map[string]interface{}{
|
||||
utils.EnabledCfg: rlcfg.Enabled,
|
||||
utils.IndexedSelectsCfg: rlcfg.IndexedSelects,
|
||||
utils.ThresholdSConnsCfg: rlcfg.ThresholdSConns,
|
||||
utils.StoreIntervalCfg: rlcfg.StoreInterval,
|
||||
utils.StringIndexedFieldsCfg: rlcfg.StringIndexedFields,
|
||||
utils.PrefixIndexedFieldsCfg: rlcfg.PrefixIndexedFields,
|
||||
utils.ThresholdSConnsCfg: thresholdSConns,
|
||||
utils.StoreIntervalCfg: storeInterval,
|
||||
utils.StringIndexedFieldsCfg: stringIndexedFields,
|
||||
utils.PrefixIndexedFieldsCfg: prefixIndexedFields,
|
||||
utils.NestedFieldsCfg: rlcfg.NestedFields,
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@ import (
|
||||
"reflect"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
func TestResourceSConfigloadFromJsonCfg(t *testing.T) {
|
||||
@@ -60,3 +62,65 @@ func TestResourceSConfigloadFromJsonCfg(t *testing.T) {
|
||||
t.Errorf("Expected: %+v , recived: %+v", expected, rlcfg)
|
||||
}
|
||||
}
|
||||
|
||||
func TestResourceSConfigAsMapInterface(t *testing.T) {
|
||||
var rlcfg ResourceSConfig
|
||||
|
||||
cfgJSONStr := `{
|
||||
"resources": {
|
||||
"enabled": false,
|
||||
"store_interval": "",
|
||||
"thresholds_conns": [],
|
||||
"indexed_selects":true,
|
||||
"prefix_indexed_fields": [],
|
||||
"nested_fields": false,
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"enabled": false,
|
||||
"store_interval": "",
|
||||
"thresholds_conns": []string{},
|
||||
"indexed_selects": true,
|
||||
"string_indexed_fields": []string{},
|
||||
"prefix_indexed_fields": []string{},
|
||||
"nested_fields": false,
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnRlcCfg, err := jsnCfg.ResourceSJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = rlcfg.loadFromJsonCfg(jsnRlcCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := rlcfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
|
||||
cfgJSONStr = `{
|
||||
"resources": {
|
||||
"enabled": false,
|
||||
"store_interval": "7m",
|
||||
"thresholds_conns": ["*internal"],
|
||||
"indexed_selects":true,
|
||||
"prefix_indexed_fields": ["prefix_indexed_fields1","prefix_indexed_fields2"],
|
||||
"nested_fields": false,
|
||||
},
|
||||
}`
|
||||
eMap = map[string]interface{}{
|
||||
"enabled": false,
|
||||
"store_interval": "7m0s",
|
||||
"thresholds_conns": []string{"*internal"},
|
||||
"indexed_selects": true,
|
||||
"string_indexed_fields": []string{},
|
||||
"prefix_indexed_fields": []string{"prefix_indexed_fields1", "prefix_indexed_fields2"},
|
||||
"nested_fields": false,
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnRlcCfg, err := jsnCfg.ResourceSJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = rlcfg.loadFromJsonCfg(jsnRlcCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := rlcfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,8 @@ package config
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
func TestSchedulerCfgloadFromJsonCfg(t *testing.T) {
|
||||
@@ -54,3 +56,28 @@ func TestSchedulerCfgloadFromJsonCfg(t *testing.T) {
|
||||
t.Errorf("Expected: %+v , recived: %+v", expected, schdcfg)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSchedulerCfgAsMapInterface(t *testing.T) {
|
||||
var schdcfg SchedulerCfg
|
||||
cfgJSONStr := `{
|
||||
"schedulers": {
|
||||
"enabled": true,
|
||||
"cdrs_conns": [],
|
||||
"filters": [],
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"enabled": true,
|
||||
"cdrs_conns": []string{},
|
||||
"filters": []string{},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnSchCfg, err := jsnCfg.SchedulerJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = schdcfg.loadFromJsonCfg(jsnSchCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := schdcfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
package config
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
@@ -85,15 +86,42 @@ func (st *StatSCfg) loadFromJsonCfg(jsnCfg *StatServJsonCfg) (err error) {
|
||||
}
|
||||
|
||||
func (st *StatSCfg) AsMapInterface() map[string]interface{} {
|
||||
var storeInterval string = ""
|
||||
if st.StoreInterval != 0 {
|
||||
storeInterval = st.StoreInterval.String()
|
||||
}
|
||||
stringIndexedFields := []string{}
|
||||
if st.StringIndexedFields != nil {
|
||||
stringIndexedFields = make([]string, len(*st.StringIndexedFields))
|
||||
for i, item := range *st.StringIndexedFields {
|
||||
stringIndexedFields[i] = item
|
||||
}
|
||||
}
|
||||
prefixIndexedFields := []string{}
|
||||
if st.PrefixIndexedFields != nil {
|
||||
prefixIndexedFields = make([]string, len(*st.PrefixIndexedFields))
|
||||
for i, item := range *st.PrefixIndexedFields {
|
||||
prefixIndexedFields[i] = item
|
||||
}
|
||||
}
|
||||
thresholdSConns := make([]string, len(st.ThresholdSConns))
|
||||
for i, item := range st.ThresholdSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaThresholds)
|
||||
if item == buf {
|
||||
thresholdSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaThresholds, utils.EmptyString)
|
||||
} else {
|
||||
thresholdSConns[i] = item
|
||||
}
|
||||
}
|
||||
|
||||
return map[string]interface{}{
|
||||
utils.EnabledCfg: st.Enabled,
|
||||
utils.IndexedSelectsCfg: st.IndexedSelects,
|
||||
utils.StoreIntervalCfg: st.StoreInterval,
|
||||
utils.StoreIntervalCfg: storeInterval,
|
||||
utils.StoreUncompressedLimitCfg: st.StoreUncompressedLimit,
|
||||
utils.ThresholdSConnsCfg: st.ThresholdSConns,
|
||||
utils.StringIndexedFieldsCfg: st.StringIndexedFields,
|
||||
utils.PrefixIndexedFieldsCfg: st.PrefixIndexedFields,
|
||||
utils.ThresholdSConnsCfg: thresholdSConns,
|
||||
utils.StringIndexedFieldsCfg: stringIndexedFields,
|
||||
utils.PrefixIndexedFieldsCfg: prefixIndexedFields,
|
||||
utils.NestedFieldsCfg: st.NestedFields,
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@ import (
|
||||
"reflect"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
func TestStatSCfgloadFromJsonCfg(t *testing.T) {
|
||||
@@ -59,3 +61,78 @@ func TestStatSCfgloadFromJsonCfg(t *testing.T) {
|
||||
t.Errorf("Expected: %+v , recived: %+v", expected, statscfg)
|
||||
}
|
||||
}
|
||||
|
||||
func TestStatSCfgAsMapInterface(t *testing.T) {
|
||||
var statscfg, expected StatSCfg
|
||||
if err := statscfg.loadFromJsonCfg(nil); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(statscfg, expected) {
|
||||
t.Errorf("Expected: %+v ,recived: %+v", expected, statscfg)
|
||||
}
|
||||
if err := statscfg.loadFromJsonCfg(new(StatServJsonCfg)); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(statscfg, expected) {
|
||||
t.Errorf("Expected: %+v ,recived: %+v", expected, statscfg)
|
||||
}
|
||||
cfgJSONStr := `{
|
||||
"stats": {
|
||||
"enabled": false,
|
||||
"store_interval": "",
|
||||
"store_uncompressed_limit": 0,
|
||||
"thresholds_conns": [],
|
||||
"indexed_selects":true,
|
||||
"prefix_indexed_fields": [],
|
||||
"nested_fields": false,
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"enabled": false,
|
||||
"store_interval": "",
|
||||
"store_uncompressed_limit": 0,
|
||||
"thresholds_conns": []string{},
|
||||
"indexed_selects": true,
|
||||
"prefix_indexed_fields": []string{},
|
||||
"nested_fields": false,
|
||||
"string_indexed_fields": []string{},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnStatSCfg, err := jsnCfg.StatSJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = statscfg.loadFromJsonCfg(jsnStatSCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := statscfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
|
||||
cfgJSONStr = `{
|
||||
"stats": {
|
||||
"enabled": false,
|
||||
"store_interval": "72h",
|
||||
"store_uncompressed_limit": 0,
|
||||
"thresholds_conns": ["*internal"],
|
||||
"indexed_selects":true,
|
||||
"prefix_indexed_fields": ["prefix_indexed_fields1","prefix_indexed_fields2"],
|
||||
"nested_fields": false,
|
||||
},
|
||||
}`
|
||||
eMap = map[string]interface{}{
|
||||
"enabled": false,
|
||||
"store_interval": "72h0m0s",
|
||||
"store_uncompressed_limit": 0,
|
||||
"thresholds_conns": []string{"*internal"},
|
||||
"indexed_selects": true,
|
||||
"prefix_indexed_fields": []string{"prefix_indexed_fields1", "prefix_indexed_fields2"},
|
||||
"nested_fields": false,
|
||||
"string_indexed_fields": []string{},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnStatSCfg, err := jsnCfg.StatSJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = statscfg.loadFromJsonCfg(jsnStatSCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := statscfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
|
||||
package config
|
||||
|
||||
import "github.com/cgrates/cgrates/utils"
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
// SupplierSCfg is the configuration of supplier service
|
||||
type SupplierSCfg struct {
|
||||
@@ -112,16 +116,67 @@ func (spl *SupplierSCfg) loadFromJsonCfg(jsnCfg *SupplierSJsonCfg) (err error) {
|
||||
}
|
||||
|
||||
func (spl *SupplierSCfg) AsMapInterface() map[string]interface{} {
|
||||
stringIndexedFields := []string{}
|
||||
if spl.StringIndexedFields != nil {
|
||||
stringIndexedFields = make([]string, len(*spl.StringIndexedFields))
|
||||
for i, item := range *spl.StringIndexedFields {
|
||||
stringIndexedFields[i] = item
|
||||
}
|
||||
}
|
||||
prefixIndexedFields := []string{}
|
||||
if spl.PrefixIndexedFields != nil {
|
||||
prefixIndexedFields = make([]string, len(*spl.PrefixIndexedFields))
|
||||
for i, item := range *spl.PrefixIndexedFields {
|
||||
prefixIndexedFields[i] = item
|
||||
}
|
||||
}
|
||||
attributeSConns := make([]string, len(spl.AttributeSConns))
|
||||
for i, item := range spl.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
|
||||
}
|
||||
}
|
||||
responderSConns := make([]string, len(spl.ResponderSConns))
|
||||
for i, item := range spl.ResponderSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResponder)
|
||||
|
||||
if item == buf {
|
||||
responderSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaResponder, utils.EmptyString)
|
||||
} else {
|
||||
responderSConns[i] = item
|
||||
}
|
||||
}
|
||||
resourceSConns := make([]string, len(spl.ResourceSConns))
|
||||
for i, item := range spl.ResourceSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResources)
|
||||
if item == buf {
|
||||
resourceSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaResources, utils.EmptyString)
|
||||
} else {
|
||||
resourceSConns[i] = item
|
||||
}
|
||||
}
|
||||
statSConns := make([]string, len(spl.StatSConns))
|
||||
for i, item := range spl.StatSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaStatS)
|
||||
if item == buf {
|
||||
statSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaStatS, utils.EmptyString)
|
||||
} else {
|
||||
statSConns[i] = item
|
||||
}
|
||||
}
|
||||
|
||||
return map[string]interface{}{
|
||||
utils.EnabledCfg: spl.Enabled,
|
||||
utils.IndexedSelectsCfg: spl.IndexedSelects,
|
||||
utils.StringIndexedFieldsCfg: spl.StringIndexedFields,
|
||||
utils.PrefixIndexedFieldsCfg: spl.PrefixIndexedFields,
|
||||
utils.AttributeSConnsCfg: spl.AttributeSConns,
|
||||
utils.ResourceSConnsCfg: spl.ResourceSConns,
|
||||
utils.StatSConnsCfg: spl.StatSConns,
|
||||
utils.RALsConnsCfg: spl.ResponderSConns,
|
||||
utils.StringIndexedFieldsCfg: stringIndexedFields,
|
||||
utils.PrefixIndexedFieldsCfg: prefixIndexedFields,
|
||||
utils.AttributeSConnsCfg: attributeSConns,
|
||||
utils.ResourceSConnsCfg: resourceSConns,
|
||||
utils.StatSConnsCfg: statSConns,
|
||||
utils.RALsConnsCfg: responderSConns,
|
||||
utils.DefaultRatioCfg: spl.DefaultRatio,
|
||||
utils.NestedFieldsCfg: spl.NestedFields,
|
||||
}
|
||||
|
||||
@@ -20,6 +20,8 @@ package config
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
func TestSupplierSCfgloadFromJsonCfg(t *testing.T) {
|
||||
@@ -62,3 +64,76 @@ func TestSupplierSCfgloadFromJsonCfg(t *testing.T) {
|
||||
t.Errorf("Expected: %+v , recived: %+v", expected, supscfg)
|
||||
}
|
||||
}
|
||||
|
||||
func TestSupplierSCfgAsMapInterface(t *testing.T) {
|
||||
var supscfg SupplierSCfg
|
||||
cfgJSONStr := `{
|
||||
"suppliers": {
|
||||
"enabled": false,
|
||||
"indexed_selects":true,
|
||||
"prefix_indexed_fields": [],
|
||||
"nested_fields": false,
|
||||
"attributes_conns": [],
|
||||
"resources_conns": [],
|
||||
"stats_conns": [],
|
||||
"rals_conns": [],
|
||||
"default_ratio":1
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"enabled": false,
|
||||
"indexed_selects": true,
|
||||
"prefix_indexed_fields": []string{},
|
||||
"string_indexed_fields": []string{},
|
||||
"nested_fields": false,
|
||||
"attributes_conns": []string{},
|
||||
"resources_conns": []string{},
|
||||
"stats_conns": []string{},
|
||||
"rals_conns": []string{},
|
||||
"default_ratio": 1,
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnSupSCfg, err := jsnCfg.SupplierSJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = supscfg.loadFromJsonCfg(jsnSupSCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := supscfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
|
||||
cfgJSONStr = `{
|
||||
"suppliers": {
|
||||
"enabled": false,
|
||||
"indexed_selects":true,
|
||||
"prefix_indexed_fields": ["prefix","indexed","fields"],
|
||||
"nested_fields": false,
|
||||
"attributes_conns": ["*internal"],
|
||||
"resources_conns": ["*internal"],
|
||||
"stats_conns": ["*internal"],
|
||||
"rals_conns": ["*internal"],
|
||||
"default_ratio":1
|
||||
},
|
||||
}`
|
||||
eMap = map[string]interface{}{
|
||||
"enabled": false,
|
||||
"indexed_selects": true,
|
||||
"prefix_indexed_fields": []string{"prefix", "indexed", "fields"},
|
||||
"string_indexed_fields": []string{},
|
||||
"nested_fields": false,
|
||||
"attributes_conns": []string{"*internal"},
|
||||
"resources_conns": []string{"*internal"},
|
||||
"stats_conns": []string{"*internal"},
|
||||
"rals_conns": []string{"*internal"},
|
||||
"default_ratio": 1,
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnSupSCfg, err := jsnCfg.SupplierSJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = supscfg.loadFromJsonCfg(jsnSupSCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := supscfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -69,12 +69,30 @@ func (t *ThresholdSCfg) loadFromJsonCfg(jsnCfg *ThresholdSJsonCfg) (err error) {
|
||||
}
|
||||
|
||||
func (t *ThresholdSCfg) AsMapInterface() map[string]interface{} {
|
||||
var storeInterval string = ""
|
||||
if t.StoreInterval != 0 {
|
||||
storeInterval = t.StoreInterval.String()
|
||||
}
|
||||
stringIndexedFields := []string{}
|
||||
if t.StringIndexedFields != nil {
|
||||
stringIndexedFields = make([]string, len(*t.StringIndexedFields))
|
||||
for i, item := range *t.StringIndexedFields {
|
||||
stringIndexedFields[i] = item
|
||||
}
|
||||
}
|
||||
prefixIndexedFields := []string{}
|
||||
if t.PrefixIndexedFields != nil {
|
||||
prefixIndexedFields = make([]string, len(*t.PrefixIndexedFields))
|
||||
for i, item := range *t.PrefixIndexedFields {
|
||||
prefixIndexedFields[i] = item
|
||||
}
|
||||
}
|
||||
return map[string]interface{}{
|
||||
utils.EnabledCfg: t.Enabled,
|
||||
utils.IndexedSelectsCfg: t.IndexedSelects,
|
||||
utils.StoreIntervalCfg: t.StoreInterval,
|
||||
utils.StringIndexedFieldsCfg: t.StringIndexedFields,
|
||||
utils.PrefixIndexedFieldsCfg: t.PrefixIndexedFields,
|
||||
utils.StoreIntervalCfg: storeInterval,
|
||||
utils.StringIndexedFieldsCfg: stringIndexedFields,
|
||||
utils.PrefixIndexedFieldsCfg: prefixIndexedFields,
|
||||
utils.NestedFieldsCfg: t.NestedFields,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,8 @@ import (
|
||||
"reflect"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
func TestThresholdSCfgloadFromJsonCfg(t *testing.T) {
|
||||
@@ -57,3 +59,62 @@ func TestThresholdSCfgloadFromJsonCfg(t *testing.T) {
|
||||
t.Errorf("Expected: %+v , recived: %+v", expected, thscfg)
|
||||
}
|
||||
}
|
||||
|
||||
func TestThresholdSCfgAsMapInterface(t *testing.T) {
|
||||
var thscfg ThresholdSCfg
|
||||
|
||||
cfgJSONStr := `{
|
||||
"thresholds": {
|
||||
"enabled": false,
|
||||
"store_interval": "",
|
||||
"indexed_selects":true,
|
||||
"prefix_indexed_fields": [],
|
||||
"nested_fields": false,
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"enabled": false,
|
||||
"store_interval": "",
|
||||
"indexed_selects": true,
|
||||
"string_indexed_fields": []string{},
|
||||
"prefix_indexed_fields": []string{},
|
||||
"nested_fields": false,
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnThSCfg, err := jsnCfg.ThresholdSJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = thscfg.loadFromJsonCfg(jsnThSCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := thscfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
|
||||
cfgJSONStr = `{
|
||||
"thresholds": {
|
||||
"enabled": true,
|
||||
"store_interval": "96h",
|
||||
"indexed_selects":true,
|
||||
"string_indexed_fields": ["string","indexed","fields"],
|
||||
"prefix_indexed_fields": ["prefix_indexed_fields1","prefix_indexed_fields2"],
|
||||
"nested_fields": true,
|
||||
},
|
||||
}`
|
||||
eMap = map[string]interface{}{
|
||||
"enabled": true,
|
||||
"store_interval": "96h0m0s",
|
||||
"indexed_selects": true,
|
||||
"string_indexed_fields": []string{"string", "indexed", "fields"},
|
||||
"prefix_indexed_fields": []string{"prefix_indexed_fields1", "prefix_indexed_fields2"},
|
||||
"nested_fields": true,
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnThSCfg, err := jsnCfg.ThresholdSJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = thscfg.loadFromJsonCfg(jsnThSCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := thscfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1931,8 +1931,8 @@ const (
|
||||
BillToNumberCfg = "bill_to_number"
|
||||
ZipcodeCfg = "zipcode"
|
||||
Plus4Cfg = "plus4"
|
||||
P2PZipcodeCfg = "p2PZipcode"
|
||||
P2PPlus4Cfg = "p2PPlus4"
|
||||
P2PZipcodeCfg = "p2pzipcode"
|
||||
P2PPlus4Cfg = "p2pplus4"
|
||||
UnitsCfg = "units"
|
||||
UnitTypeCfg = "unit_type"
|
||||
TaxIncludedCfg = "tax_included"
|
||||
|
||||
Reference in New Issue
Block a user