mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Updated stordbcfg AsMapInterface method
This commit is contained in:
committed by
Dan Christian Bogos
parent
893c1af1d1
commit
30b348d694
@@ -109,23 +109,27 @@ func (dbcfg *StorDbCfg) Clone() *StorDbCfg {
|
||||
}
|
||||
}
|
||||
|
||||
func (dbcfg *StorDbCfg) AsMapInterface() map[string]interface{} {
|
||||
items := make(map[string]interface{})
|
||||
for key, item := range dbcfg.Items {
|
||||
items[key] = item.AsMapInterface()
|
||||
}
|
||||
dbPort, _ := strconv.Atoi(dbcfg.Port)
|
||||
|
||||
return map[string]interface{}{
|
||||
func (dbcfg *StorDbCfg) AsMapInterface() (initialMP map[string]interface{}) {
|
||||
initialMP = map[string]interface{}{
|
||||
utils.DataDbTypeCfg: utils.Meta + dbcfg.Type,
|
||||
utils.DataDbHostCfg: dbcfg.Host,
|
||||
utils.DataDbPortCfg: dbPort,
|
||||
utils.DataDbNameCfg: dbcfg.Name,
|
||||
utils.DataDbUserCfg: dbcfg.User,
|
||||
utils.DataDbPassCfg: dbcfg.Password,
|
||||
utils.StringIndexedFieldsCfg: dbcfg.StringIndexedFields,
|
||||
utils.PrefixIndexedFieldsCfg: dbcfg.PrefixIndexedFields,
|
||||
utils.ItemsCfg: items,
|
||||
utils.OptsCfg: dbcfg.Opts,
|
||||
}
|
||||
if dbcfg.Items != nil {
|
||||
items := make(map[string]interface{})
|
||||
for key, item := range dbcfg.Items {
|
||||
items[key] = item.AsMapInterface()
|
||||
}
|
||||
initialMP[utils.ItemsCfg] = items
|
||||
}
|
||||
if dbcfg.Port != utils.EmptyString {
|
||||
dbPort, _ := strconv.Atoi(dbcfg.Port)
|
||||
initialMP[utils.DataDbPortCfg] = dbPort
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -171,33 +171,38 @@ func TestStorDbCfgAsMapInterface(t *testing.T) {
|
||||
}`
|
||||
|
||||
eMap := map[string]interface{}{
|
||||
"db_type": "*mysql",
|
||||
"db_host": "127.0.0.1",
|
||||
"db_port": 3306,
|
||||
"db_name": "cgrates",
|
||||
"db_user": "cgrates",
|
||||
"db_password": "",
|
||||
"string_indexed_fields": []string{},
|
||||
"prefix_indexed_fields": []string{},
|
||||
"opts": map[string]interface{}{
|
||||
"max_open_conns": 100.,
|
||||
"max_idle_conns": 10.,
|
||||
"conn_max_lifetime": 0.,
|
||||
"query_timeout": "10s",
|
||||
"sslmode": "disable",
|
||||
utils.DataDbTypeCfg: "*mysql",
|
||||
utils.DataDbHostCfg: "127.0.0.1",
|
||||
utils.DataDbPortCfg: 3306,
|
||||
utils.DataDbNameCfg: "cgrates",
|
||||
utils.DataDbUserCfg: "cgrates",
|
||||
utils.DataDbPassCfg: "",
|
||||
utils.StringIndexedFieldsCfg: []string{},
|
||||
utils.PrefixIndexedFieldsCfg: []string{},
|
||||
utils.OptsCfg: map[string]interface{}{
|
||||
utils.MaxOpenConnsCfg: 100.,
|
||||
utils.MaxIdleConnsCfg: 10.,
|
||||
utils.ConnMaxLifetimeCfg: 0.,
|
||||
utils.QueryTimeoutCfg: "10s",
|
||||
utils.SSLModeCfg: "disable",
|
||||
},
|
||||
"items": map[string]interface{}{
|
||||
"session_costs": map[string]interface{}{"remote": false, "replicate": false},
|
||||
"cdrs": map[string]interface{}{"remote": false, "replicate": false},
|
||||
utils.ItemsCfg: map[string]interface{}{
|
||||
utils.SessionCostsTBL: map[string]interface{}{utils.RemoteCfg: false, utils.ReplicateCfg: false},
|
||||
utils.CdrsCfg: map[string]interface{}{utils.RemoteCfg: false, utils.ReplicateCfg: false},
|
||||
},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
if cfgCgr, err := NewCGRConfigFromJsonStringWithDefaults(cfgJSONStr); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnStoreDbCfg, err := jsnCfg.DbJsonCfg(STORDB_JSN); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = dbcfg.loadFromJsonCfg(jsnStoreDbCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := dbcfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("Expected: %+v ,\n recived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
} else {
|
||||
rcv := cfgCgr.storDbCfg.AsMapInterface()
|
||||
if !reflect.DeepEqual(eMap[utils.ItemsCfg].(map[string]interface{})[utils.SessionSConnsCfg],
|
||||
rcv[utils.ItemsCfg].(map[string]interface{})[utils.SessionSConnsCfg]) {
|
||||
t.Errorf("Expected %+v, received %+v", eMap[utils.ItemsCfg].(map[string]interface{})[utils.SessionSConnsCfg],
|
||||
rcv[utils.ItemsCfg].(map[string]interface{})[utils.SessionSConnsCfg])
|
||||
} else if !reflect.DeepEqual(eMap[utils.OptsCfg], rcv[utils.OptsCfg]) {
|
||||
t.Errorf("Expected %+v \n, received %+v", eMap[utils.OptsCfg], rcv[utils.OptsCfg])
|
||||
} else if !reflect.DeepEqual(eMap[utils.PrefixIndexedFieldsCfg], rcv[utils.PrefixIndexedFieldsCfg]) {
|
||||
t.Errorf("Expected %+v \n, received %+v", eMap[utils.PrefixIndexedFieldsCfg], rcv[utils.PrefixIndexedFieldsCfg])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user