mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Updated AsMapInterface method for KamAgent/Added test
This commit is contained in:
committed by
Dan Christian Bogos
parent
dd38ab6f95
commit
d2f1ce6cfd
@@ -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"
|
||||
)
|
||||
|
||||
// Represents one connection instance towards Kamailio
|
||||
type KamConnCfg struct {
|
||||
@@ -97,9 +101,19 @@ func (ka *KamAgentCfg) AsMapInterface() map[string]interface{} {
|
||||
evapiConns[i] = item.AsMapInterface()
|
||||
}
|
||||
|
||||
sessionSConns := make([]string, len(ka.SessionSConns))
|
||||
for i, item := range ka.SessionSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS)
|
||||
if item == buf {
|
||||
sessionSConns[i] = strings.ReplaceAll(item, utils.CONCATENATED_KEY_SEP+utils.MetaSessionS, utils.EmptyString)
|
||||
} else {
|
||||
sessionSConns[i] = item
|
||||
}
|
||||
}
|
||||
|
||||
return map[string]interface{}{
|
||||
utils.EnabledCfg: ka.Enabled,
|
||||
utils.SessionSConnsCfg: ka.SessionSConns,
|
||||
utils.SessionSConnsCfg: sessionSConns,
|
||||
utils.CreateCdrCfg: ka.CreateCdr,
|
||||
utils.EvapiConnsCfg: evapiConns,
|
||||
utils.TimezoneCfg: ka.Timezone,
|
||||
|
||||
@@ -88,3 +88,66 @@ func TestKamConnCfgloadFromJsonCfg(t *testing.T) {
|
||||
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(kamcocfg))
|
||||
}
|
||||
}
|
||||
|
||||
func TestKamAgentCfgAsMapInterface(t *testing.T) {
|
||||
var kamagcfg KamAgentCfg
|
||||
cfgJSONStr := `{
|
||||
"kamailio_agent": {
|
||||
"enabled": false,
|
||||
"sessions_conns": [""],
|
||||
"create_cdr": false,
|
||||
"timezone": "",
|
||||
"evapi_conns":[
|
||||
{"address": "127.0.0.1:8448", "reconnects": 5}
|
||||
],
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"enabled": false,
|
||||
"sessions_conns": []string{""},
|
||||
"create_cdr": false,
|
||||
"timezone": "",
|
||||
"evapi_conns": []map[string]interface{}{
|
||||
{"address": "127.0.0.1:8448", "reconnects": 5, "alias": ""},
|
||||
},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnKamAgCfg, err := jsnCfg.KamAgentJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = kamagcfg.loadFromJsonCfg(jsnKamAgCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := kamagcfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
|
||||
cfgJSONStr = `{
|
||||
"kamailio_agent": {
|
||||
"enabled": false,
|
||||
"sessions_conns": ["*internal"],
|
||||
"create_cdr": false,
|
||||
"timezone": "",
|
||||
"evapi_conns":[
|
||||
{"address": "127.0.0.1:8448", "reconnects": 5}
|
||||
],
|
||||
},
|
||||
}`
|
||||
eMap = map[string]interface{}{
|
||||
"enabled": false,
|
||||
"sessions_conns": []string{"*internal"},
|
||||
"create_cdr": false,
|
||||
"timezone": "",
|
||||
"evapi_conns": []map[string]interface{}{
|
||||
{"address": "127.0.0.1:8448", "reconnects": 5, "alias": ""},
|
||||
},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnKamAgCfg, err := jsnCfg.KamAgentJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = kamagcfg.loadFromJsonCfg(jsnKamAgCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := kamagcfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("\nExpected: %+v\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user