Updated AsMapInterface method for KamAgent/Added test

This commit is contained in:
adragusin
2020-04-28 17:58:14 +03:00
committed by Dan Christian Bogos
parent dd38ab6f95
commit d2f1ce6cfd
2 changed files with 79 additions and 2 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"
)
// 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,

View File

@@ -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))
}
}