mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-15 05:09:54 +05:00
Updated AsMapInterface method for DiameterAgent/Added test
This commit is contained in:
committed by
Dan Christian Bogos
parent
cfedcf4b5d
commit
dd38ab6f95
@@ -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,
|
||||
|
||||
@@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user