From 3f21793936b16ebf8a45d92e871d71fdfc08f83b Mon Sep 17 00:00:00 2001 From: porosnicuadrian Date: Thu, 24 Sep 2020 12:46:55 +0300 Subject: [PATCH] Updated thresholdscfg AsMapInterface method --- config/thresholdscfg.go | 37 ++++++++++++-------- config/thresholdscfg_test.go | 66 ++++++++++++++---------------------- 2 files changed, 48 insertions(+), 55 deletions(-) diff --git a/config/thresholdscfg.go b/config/thresholdscfg.go index 4cae80392..2889bee9c 100644 --- a/config/thresholdscfg.go +++ b/config/thresholdscfg.go @@ -76,31 +76,38 @@ func (t *ThresholdSCfg) loadFromJsonCfg(jsnCfg *ThresholdSJsonCfg) (err error) { return nil } -func (t *ThresholdSCfg) AsMapInterface() map[string]interface{} { - var storeInterval string = "" - if t.StoreInterval != 0 { - storeInterval = t.StoreInterval.String() +func (t *ThresholdSCfg) AsMapInterface() (initialMP map[string]interface{}) { + initialMP = map[string]interface{}{ + utils.EnabledCfg: t.Enabled, + utils.IndexedSelectsCfg: t.IndexedSelects, + utils.NestedFieldsCfg: t.NestedFields, } - stringIndexedFields := []string{} + if t.StoreInterval != 0 { + initialMP[utils.StoreIntervalCfg] = t.StoreInterval.String() + } else { + initialMP[utils.StoreIntervalCfg] = utils.EmptyString + } + if t.StringIndexedFields != nil { - stringIndexedFields = make([]string, len(*t.StringIndexedFields)) + stringIndexedFields := make([]string, len(*t.StringIndexedFields)) for i, item := range *t.StringIndexedFields { stringIndexedFields[i] = item } + initialMP[utils.StringIndexedFieldsCfg] = stringIndexedFields } - prefixIndexedFields := []string{} if t.PrefixIndexedFields != nil { - prefixIndexedFields = make([]string, len(*t.PrefixIndexedFields)) + prefixIndexedFields := make([]string, len(*t.PrefixIndexedFields)) for i, item := range *t.PrefixIndexedFields { prefixIndexedFields[i] = item } + initialMP[utils.PrefixIndexedFieldsCfg] = prefixIndexedFields } - return map[string]interface{}{ - utils.EnabledCfg: t.Enabled, - utils.IndexedSelectsCfg: t.IndexedSelects, - utils.StoreIntervalCfg: storeInterval, - utils.StringIndexedFieldsCfg: stringIndexedFields, - utils.PrefixIndexedFieldsCfg: prefixIndexedFields, - utils.NestedFieldsCfg: t.NestedFields, + if t.SuffixIndexedFields != nil { + suffixIndexedFields := make([]string, len(*t.SuffixIndexedFields)) + for i, item := range *t.SuffixIndexedFields { + suffixIndexedFields[i] = item + } + initialMP[utils.SuffixIndexedFieldsCfg] = suffixIndexedFields } + return } diff --git a/config/thresholdscfg_test.go b/config/thresholdscfg_test.go index dc362b87a..fed9a6af8 100644 --- a/config/thresholdscfg_test.go +++ b/config/thresholdscfg_test.go @@ -61,60 +61,46 @@ func TestThresholdSCfgloadFromJsonCfg(t *testing.T) { } func TestThresholdSCfgAsMapInterface(t *testing.T) { - var thscfg ThresholdSCfg - cfgJSONStr := `{ - "thresholds": { - "enabled": false, - "store_interval": "", - "indexed_selects":true, - "prefix_indexed_fields": [], - "nested_fields": false, - }, + "thresholds": {}, }` eMap := map[string]interface{}{ - "enabled": false, - "store_interval": "", - "indexed_selects": true, - "string_indexed_fields": []string{}, - "prefix_indexed_fields": []string{}, - "nested_fields": false, + utils.EnabledCfg: false, + utils.StoreIntervalCfg: "", + utils.IndexedSelectsCfg: true, + utils.PrefixIndexedFieldsCfg: []string{}, + utils.SuffixIndexedFieldsCfg: []string{}, + utils.NestedFieldsCfg: false, } - if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil { + if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(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)) + } else if rcv := cgrCfg.thresholdSCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) { + t.Errorf("Expextec %+v \n, recevied %+v", utils.ToJSON(eMap), utils.ToJSON(rcv)) } +} - cfgJSONStr = `{ +func TestThresholdSCfgAsMapInterface1(t *testing.T) { + cfgJSONStr := `{ "thresholds": { "enabled": true, "store_interval": "96h", - "indexed_selects":true, - "string_indexed_fields": ["*req.string","*req.indexed","*req.fields"], - "prefix_indexed_fields": ["*req.prefix_indexed_fields1","*req.prefix_indexed_fields2"], + "indexed_selects": false, + "prefix_indexed_fields": ["*req.prefix","*req.indexed","*req.fields"], + "suffix_indexed_fields": ["*req.suffix_indexed_fields1", "*req.suffix_indexed_fields2"], "nested_fields": true, }, }` - eMap = map[string]interface{}{ - "enabled": true, - "store_interval": "96h0m0s", - "indexed_selects": true, - "string_indexed_fields": []string{"*req.string", "*req.indexed", "*req.fields"}, - "prefix_indexed_fields": []string{"*req.prefix_indexed_fields1", "*req.prefix_indexed_fields2"}, - "nested_fields": true, + eMap := map[string]interface{}{ + utils.EnabledCfg: true, + utils.StoreIntervalCfg: "96h0m0s", + utils.IndexedSelectsCfg: false, + utils.PrefixIndexedFieldsCfg: []string{"*req.prefix", "*req.indexed", "*req.fields"}, + utils.SuffixIndexedFieldsCfg: []string{"*req.suffix_indexed_fields1", "*req.suffix_indexed_fields2"}, + utils.NestedFieldsCfg: true, } - if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil { + if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(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)) + } else if rcv := cgrCfg.thresholdSCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) { + t.Errorf("Expextec %+v \n, recevied %+v", utils.ToJSON(eMap), utils.ToJSON(rcv)) } }