Updated AsMapInterface method for DiameterAgent/Added test

This commit is contained in:
adragusin
2020-04-28 17:57:45 +03:00
committed by Dan Christian Bogos
parent cfedcf4b5d
commit dd38ab6f95
2 changed files with 62 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"
)
type DiameterAgentCfg struct {
Enabled bool // enables the diameter agent: <true|false>
@@ -141,12 +145,22 @@ func (ds *DiameterAgentCfg) AsMapInterface(separator string) map[string]interfac
requestProcessors[i] = item.AsMapInterface(separator)
}
sessionSConns := make([]string, len(ds.SessionSConns))
for i, item := range ds.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: ds.Enabled,
utils.ListenNetCfg: ds.ListenNet,
utils.ListenCfg: ds.Listen,
utils.DictionariesPathCfg: ds.DictionariesPath,
utils.SessionSConnsCfg: ds.SessionSConns,
utils.SessionSConnsCfg: sessionSConns,
utils.OriginHostCfg: ds.OriginHost,
utils.OriginRealmCfg: ds.OriginRealm,
utils.VendorIdCfg: ds.VendorId,

View File

@@ -72,3 +72,49 @@ func TestDiameterAgentCfgloadFromJsonCfg(t *testing.T) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(dacfg))
}
}
func TestDiameterAgentCfgAsMapInterface(t *testing.T) {
var dacfg DiameterAgentCfg
cfgJSONStr := `{
"diameter_agent": {
"enabled": false,
"listen": "127.0.0.1:3868",
"dictionaries_path": "/usr/share/cgrates/diameter/dict/",
"sessions_conns": ["*internal"],
"origin_host": "CGR-DA",
"origin_realm": "cgrates.org",
"vendor_id": 0,
"product_name": "CGRateS",
"synced_conn_requests": true,
"templates":{},
"request_processors": [],
},
}`
eMap := map[string]interface{}{
"asr_template": "",
"concurrent_requests": 0,
"dictionaries_path": "/usr/share/cgrates/diameter/dict/",
"enabled": false,
"forced_disconnect": "",
"listen": "127.0.0.1:3868",
"listen_net": "",
"origin_host": "CGR-DA",
"origin_realm": "cgrates.org",
"product_name": "CGRateS",
"rar_template": "",
"sessions_conns": []string{"*internal"},
"synced_conn_requests": true,
"vendor_id": 0,
"templates": map[string][]map[string]interface{}{},
"request_processors": []map[string]interface{}{},
}
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
t.Error(err)
} else if jsnDaCfg, err := jsnCfg.DiameterAgentJsonCfg(); err != nil {
t.Error(err)
} else if err = dacfg.loadFromJsonCfg(jsnDaCfg, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if rcv := dacfg.AsMapInterface(utils.EmptyString); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected: %+v,\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
}
}