mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Updated schedueler AsMapInterface method
This commit is contained in:
committed by
Dan Christian Bogos
parent
232933caa5
commit
5fc810a2d2
@@ -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
|
||||
}
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user