Updated schedueler AsMapInterface method

This commit is contained in:
porosnicuadrian
2020-09-23 14:06:47 +03:00
committed by Dan Christian Bogos
parent 232933caa5
commit 5fc810a2d2
2 changed files with 49 additions and 22 deletions

View File

@@ -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"
)
type SchedulerCfg struct {
Enabled bool
@@ -53,10 +57,21 @@ func (schdcfg *SchedulerCfg) loadFromJsonCfg(jsnCfg *SchedulerJsonCfg) error {
return nil
}
func (schdcfg *SchedulerCfg) AsMapInterface() map[string]interface{} {
return map[string]interface{}{
utils.EnabledCfg: schdcfg.Enabled,
utils.CDRsConnsCfg: schdcfg.CDRsConns,
utils.FiltersCfg: schdcfg.Filters,
func (schdcfg *SchedulerCfg) AsMapInterface() (initialMP map[string]interface{}) {
initialMP = map[string]interface{}{
utils.EnabledCfg: schdcfg.Enabled,
utils.FiltersCfg: schdcfg.Filters,
}
if schdcfg.CDRsConns != nil {
cdrsConns := make([]string, len(schdcfg.CDRsConns))
for i, item := range schdcfg.CDRsConns {
if item == utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCDRs) {
cdrsConns[i] = strings.ReplaceAll(item, ":*cdrs", utils.EmptyString)
} else {
cdrsConns[i] = item
}
}
initialMP[utils.CDRsConnsCfg] = cdrsConns
}
return
}

View File

@@ -58,26 +58,38 @@ func TestSchedulerCfgloadFromJsonCfg(t *testing.T) {
}
func TestSchedulerCfgAsMapInterface(t *testing.T) {
var schdcfg SchedulerCfg
cfgJSONStr := `{
"schedulers": {
"enabled": true,
"cdrs_conns": [],
"filters": [],
},
"schedulers": {},
}`
eMap := map[string]interface{}{
"enabled": true,
"cdrs_conns": []string{},
"filters": []string{},
utils.EnabledCfg: false,
utils.CDRsConnsCfg: []string{},
utils.FiltersCfg: []string{},
}
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(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))
} else if rcv := cgrCfg.schedulerCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}
func TestSchedulerCfgAsMapInterface1(t *testing.T) {
cfgJSONStr := `{
"schedulers": {
"enabled": true,
"cdrs_conns": ["*internal"],
},
}`
eMap := map[string]interface{}{
utils.EnabledCfg: true,
utils.CDRsConnsCfg: []string{"*internal"},
utils.FiltersCfg: []string{},
}
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
} else if rcv := cgrCfg.schedulerCfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}