Updated httpcfg AsMapINterface method

This commit is contained in:
porosnicuadrian
2020-09-21 17:40:34 +03:00
committed by Dan Christian Bogos
parent dda7c1524e
commit 3c72966aa0
2 changed files with 50 additions and 34 deletions

View File

@@ -60,19 +60,22 @@ func (httpcfg *HTTPCfg) loadFromJsonCfg(jsnHttpCfg *HTTPJsonCfg) (err error) {
return nil
}
func (httpcfg *HTTPCfg) AsMapInterface() map[string]interface{} {
httpUsers := make(map[string]interface{}, len(httpcfg.HTTPAuthUsers))
for key, item := range httpcfg.HTTPAuthUsers {
httpUsers[key] = item
}
return map[string]interface{}{
func (httpcfg *HTTPCfg) AsMapInterface() (initialMP map[string]interface{}) {
initialMP = map[string]interface{}{
utils.HTTPJsonRPCURLCfg: httpcfg.HTTPJsonRPCURL,
utils.DispatchersRegistrarURLCfg: httpcfg.DispatchersRegistrarURL,
utils.HTTPWSURLCfg: httpcfg.HTTPWSURL,
utils.HTTPFreeswitchCDRsURLCfg: httpcfg.HTTPFreeswitchCDRsURL,
utils.HTTPCDRsURLCfg: httpcfg.HTTPCDRsURL,
utils.HTTPUseBasicAuthCfg: httpcfg.HTTPUseBasicAuth,
utils.HTTPAuthUsersCfg: httpUsers,
}
if httpcfg.HTTPAuthUsers != nil {
httpUsers := make(map[string]interface{}, len(httpcfg.HTTPAuthUsers))
for key, item := range httpcfg.HTTPAuthUsers {
httpUsers[key] = item
}
initialMP[utils.HTTPAuthUsersCfg] = httpUsers
}
return
}

View File

@@ -66,36 +66,49 @@ func TestHTTPCfgloadFromJsonCfg(t *testing.T) {
}
func TestHTTPCfgAsMapInterface(t *testing.T) {
var httpcfg HTTPCfg
cfgJSONStr := `{
"http": {
"json_rpc_url": "/jsonrpc",
"dispatchers_registrar_url": "/dispatchers_registrar",
"ws_url": "/ws",
"freeswitch_cdrs_url": "/freeswitch_json",
"http_cdrs": "/cdr_http",
"use_basic_auth": false,
"auth_users": {},
},
"http": {},
}`
eMap := map[string]interface{}{
"json_rpc_url": "/jsonrpc",
"dispatchers_registrar_url": "/dispatchers_registrar",
"ws_url": "/ws",
"freeswitch_cdrs_url": "/freeswitch_json",
"http_cdrs": "/cdr_http",
"use_basic_auth": false,
"auth_users": map[string]interface{}{},
utils.HTTPJsonRPCURLCfg: "/jsonrpc",
utils.DispatchersRegistrarURLCfg: "/dispatchers_registrar",
utils.HTTPWSURLCfg: "/ws",
utils.HTTPFreeswitchCDRsURLCfg: "/freeswitch_json",
utils.HTTPCDRsURLCfg: "/cdr_http",
utils.HTTPUseBasicAuthCfg: false,
utils.HTTPAuthUsersCfg: map[string]interface{}{},
}
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
} else if jsnhttpCfg, err := jsnCfg.HttpJsonCfg(); err != nil {
t.Error(err)
} else if err = httpcfg.loadFromJsonCfg(jsnhttpCfg); err != nil {
t.Error(err)
} else if rcv := httpcfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
t.Errorf("Expected: %+v ,\n recived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
} else if rcv := cgrCfg.httpCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v, received %+v", eMap, rcv)
}
}
func TestHTTPCfgAsMapInterface1(t *testing.T) {
cfgJSONStr := `{
"http": {
"json_rpc_url": "/rpc",
"ws_url": "",
"use_basic_auth": true,
"auth_users": {"user1": "authenticated", "user2": "authenticated"},
},
}`
eMap := map[string]interface{}{
utils.HTTPJsonRPCURLCfg: "/rpc",
utils.DispatchersRegistrarURLCfg: "/dispatchers_registrar",
utils.HTTPWSURLCfg: "",
utils.HTTPFreeswitchCDRsURLCfg: "/freeswitch_json",
utils.HTTPCDRsURLCfg: "/cdr_http",
utils.HTTPUseBasicAuthCfg: true,
utils.HTTPAuthUsersCfg: map[string]interface{}{
"user1": "authenticated",
"user2": "authenticated",
},
}
if cgrCfg, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
t.Error(err)
} else if rcv := cgrCfg.httpCfg.AsMapInterface(); !reflect.DeepEqual(rcv, eMap) {
t.Errorf("Expected %+v, received %+v", eMap, rcv)
}
}