Covered datadbcfg

This commit is contained in:
porosnicuadrian
2020-10-01 17:52:12 +03:00
committed by Dan Christian Bogos
parent b403268d15
commit 9c8384b42e
2 changed files with 86 additions and 2 deletions

View File

@@ -124,6 +124,8 @@ func (dbcfg *DataDbCfg) Clone() *DataDbCfg {
DataDbName: dbcfg.DataDbName,
DataDbUser: dbcfg.DataDbUser,
DataDbPass: dbcfg.DataDbPass,
RplConns: dbcfg.RplConns,
RmtConns: dbcfg.RmtConns,
Items: itms,
Opts: opts,
}
@@ -150,7 +152,7 @@ func (dbcfg *DataDbCfg) AsMapInterface() (initialMP map[string]interface{}, err
if dbcfg.DataDbPort != "" {
var dbPort int
if dbPort, err = strconv.Atoi(dbcfg.DataDbPort); err != nil {
return
return nil, err
}
initialMP[utils.DataDbPortCfg] = dbPort
}

View File

@@ -77,6 +77,8 @@ func TestDataDbCfgloadFromJsonCfg(t *testing.T) {
}
if jsnCfg, err := NewDefaultCGRConfig(); err != nil {
t.Error(err)
} else if err = jsnCfg.dataDbCfg.loadFromJsonCfg(nil); err != nil {
t.Error(err)
} else if err = jsnCfg.dataDbCfg.loadFromJsonCfg(jsonCfg); err != nil {
t.Error(err)
} else {
@@ -92,6 +94,28 @@ func TestDataDbCfgloadFromJsonCfg(t *testing.T) {
}
}
func TestConnsloadFromJsonCfg(t *testing.T) {
jsonCfg := &DbJsonCfg{
Remote_conns: &[]string{"*internal"},
}
expectedErrRmt := "Remote connection ID needs to be different than *internal"
if jsnCfg, err := NewDefaultCGRConfig(); err != nil {
t.Error(err)
} else if err = jsnCfg.dataDbCfg.loadFromJsonCfg(jsonCfg); err == nil || err.Error() != expectedErrRmt {
t.Errorf("Expected %+v, received %+v", expectedErrRmt, err)
}
jsonCfg = &DbJsonCfg{
Replication_conns: &[]string{"*internal"},
}
expectedErrRpl := "Replication connection ID needs to be different than *internal"
if jsnCfg, err := NewDefaultCGRConfig(); err != nil {
t.Error(err)
} else if err = jsnCfg.dataDbCfg.loadFromJsonCfg(jsonCfg); err == nil || err.Error() != expectedErrRpl {
t.Errorf("Expected %+v, received %+v", expectedErrRpl, err)
}
}
func TestItemCfgloadFromJson(t *testing.T) {
jsonCfg := &ItemOptJson{
Remote: utils.BoolPointer(true),
@@ -106,7 +130,9 @@ func TestItemCfgloadFromJson(t *testing.T) {
RouteID: "randomID",
}
rcv := new(ItemOpt)
if err := rcv.loadFromJsonCfg(jsonCfg); err != nil {
if err := rcv.loadFromJsonCfg(nil); err != nil {
t.Error(err)
} else if err = rcv.loadFromJsonCfg(jsonCfg); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(rcv, expected) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(rcv))
@@ -502,3 +528,59 @@ func TestDataDbCfgAsMapInterface(t *testing.T) {
}
}
}
func TestDataDBPortStrAtoi(t *testing.T) {
cfgStr := `{
"data_db": {
"db_port": "6o79",
}
}`
expected := "json: cannot unmarshal string into Go struct field DbJsonCfg.Db_port of type int"
if _, err := NewCGRConfigFromJsonStringWithDefaults(cfgStr); err == nil || err.Error() != expected {
t.Errorf("Expected %+v, received %+v", expected, err)
}
}
func TestCloneDataDB(t *testing.T) {
jsonCfg := &DbJsonCfg{
Db_type: utils.StringPointer("redis"),
Db_host: utils.StringPointer("127.0.0.1"),
Db_port: utils.IntPointer(6379),
Db_name: utils.StringPointer("10"),
Db_user: utils.StringPointer("cgrates"),
Db_password: utils.StringPointer("password"),
Remote_conns: &[]string{"*conn1"},
Replication_conns: &[]string{"*conn1"},
Items: &map[string]*ItemOptJson{
utils.MetaAccounts: {
Replicate: utils.BoolPointer(true),
Remote: utils.BoolPointer(true),
},
utils.MetaReverseDestinations: {
Replicate: utils.BoolPointer(true),
},
utils.MetaDestinations: {
Replicate: utils.BoolPointer(false),
},
},
Opts: map[string]interface{}{
utils.RedisSentinelNameCfg: "sentinel",
},
}
if jsnCfg, err := NewDefaultCGRConfig(); err != nil {
t.Error(err)
} else if err = jsnCfg.dataDbCfg.loadFromJsonCfg(jsonCfg); err != nil {
t.Error(err)
} else {
rcv := jsnCfg.dataDbCfg.Clone()
if !reflect.DeepEqual(rcv.Items[utils.MetaAccounts], jsnCfg.dataDbCfg.Items[utils.MetaAccounts]) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(rcv.Items[utils.MetaAccounts]),
utils.ToJSON(jsnCfg.dataDbCfg.Items[utils.MetaAccounts]))
} else if !reflect.DeepEqual(rcv.Opts[utils.RedisSentinelNameCfg], jsnCfg.dataDbCfg.Opts[utils.RedisSentinelNameCfg]) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(rcv.Opts[utils.RedisSentinelNameCfg]),
utils.ToJSON(jsnCfg.dataDbCfg.Opts[utils.RedisSentinelNameCfg]))
} else if !reflect.DeepEqual(rcv.RplConns, jsnCfg.dataDbCfg.RplConns) {
t.Errorf("Expected %+v \n, received %+v", rcv.RplConns, jsnCfg.dataDbCfg.RplConns)
}
}
}