mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Updated tests at load function for cdrscfg, chargerscfg, datadbcfg
This commit is contained in:
committed by
Dan Christian Bogos
parent
dd42186b22
commit
06620a90c9
@@ -25,50 +25,38 @@ import (
|
||||
)
|
||||
|
||||
func TestCdrsCfgloadFromJsonCfg(t *testing.T) {
|
||||
var cdrscfg, expected CdrsCfg
|
||||
if err := cdrscfg.loadFromJsonCfg(nil); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(cdrscfg, expected) {
|
||||
t.Errorf("Expected: %+v ,recived: %+v", expected, cdrscfg)
|
||||
jsonCfg := &CdrsJsonCfg{
|
||||
Enabled: utils.BoolPointer(true),
|
||||
Store_cdrs: utils.BoolPointer(true),
|
||||
Session_cost_retries: utils.IntPointer(1),
|
||||
Chargers_conns: &[]string{"*internal"},
|
||||
Rals_conns: &[]string{"*internal"},
|
||||
Attributes_conns: &[]string{"*internal"},
|
||||
Thresholds_conns: &[]string{"*internal"},
|
||||
Stats_conns: &[]string{"*conn1", "*conn2"},
|
||||
Online_cdr_exports: &[]string{"randomVal"},
|
||||
Scheduler_conns: &[]string{"*internal"},
|
||||
Ees_conns: &[]string{"*internal"},
|
||||
}
|
||||
if err := cdrscfg.loadFromJsonCfg(new(CdrsJsonCfg)); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(cdrscfg, expected) {
|
||||
t.Errorf("Expected: %+v ,recived: %+v", expected, cdrscfg)
|
||||
expected := &CdrsCfg{
|
||||
Enabled: true,
|
||||
StoreCdrs: true,
|
||||
SMCostRetries: 1,
|
||||
ChargerSConns: []string{"*internal:*chargers"},
|
||||
RaterConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResponder)},
|
||||
AttributeSConns: []string{"*internal:*attributes"},
|
||||
ThresholdSConns: []string{"*internal:*thresholds"},
|
||||
StatSConns: []string{"*conn1", "*conn2"},
|
||||
OnlineCDRExports: []string{"randomVal"},
|
||||
SchedulerConns: []string{"*internal:*scheduler"},
|
||||
EEsConns: []string{"*internal:*ees"},
|
||||
}
|
||||
cfgJSONStr := `{
|
||||
"cdrs": {
|
||||
"enabled": false, // start the CDR Server service: <true|false>
|
||||
"extra_fields": [], // extra fields to store in CDRs for non-generic CDRs
|
||||
"store_cdrs": true, // store cdrs in storDb
|
||||
"session_cost_retries": 5, // number of queries to sessions_costs before recalculating CDR
|
||||
"chargers_conns": [], // address where to reach the charger service, empty to disable charger functionality: <""|*internal|x.y.z.y:1234>
|
||||
"rals_conns": ["*internal"],
|
||||
"attributes_conns": [], // address where to reach the attribute service, empty to disable attributes functionality: <""|*internal|x.y.z.y:1234>
|
||||
"thresholds_conns": [], // address where to reach the thresholds service, empty to disable thresholds functionality: <""|*internal|x.y.z.y:1234>
|
||||
"stats_conns": [], // address where to reach the stat service, empty to disable stats functionality: <""|*internal|x.y.z.y:1234>
|
||||
"online_cdr_exports":[], // list of CDRE profiles to use for real-time CDR exports
|
||||
"ees_conns": [], // connections to EventExporter
|
||||
},
|
||||
}`
|
||||
expected = CdrsCfg{
|
||||
StoreCdrs: true,
|
||||
SMCostRetries: 5,
|
||||
ChargerSConns: []string{},
|
||||
RaterConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaResponder)},
|
||||
AttributeSConns: []string{},
|
||||
ThresholdSConns: []string{},
|
||||
StatSConns: []string{},
|
||||
EEsConns: []string{},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
if jsnCfg, err := NewDefaultCGRConfig(); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnCdrsCfg, err := jsnCfg.CdrsJsonCfg(); err != nil {
|
||||
} else if err = jsnCfg.cdrsCfg.loadFromJsonCfg(jsonCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = cdrscfg.loadFromJsonCfg(jsnCdrsCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(expected, cdrscfg) {
|
||||
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(cdrscfg))
|
||||
} else if !reflect.DeepEqual(expected, jsnCfg.cdrsCfg) {
|
||||
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(jsnCfg.cdrsCfg))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,38 +25,28 @@ import (
|
||||
)
|
||||
|
||||
func TestChargerSCfgloadFromJsonCfg(t *testing.T) {
|
||||
var chgscfg, expected ChargerSCfg
|
||||
if err := chgscfg.loadFromJsonCfg(nil); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(chgscfg, expected) {
|
||||
t.Errorf("Expected: %+v ,recived: %+v", expected, chgscfg)
|
||||
jsonCfg := &ChargerSJsonCfg{
|
||||
Enabled: utils.BoolPointer(true),
|
||||
Indexed_selects: utils.BoolPointer(true),
|
||||
Attributes_conns: &[]string{"*internal"},
|
||||
Prefix_indexed_fields: &[]string{"*req.Field1", "*req.Field2"},
|
||||
Suffix_indexed_fields: &[]string{"*req.Field1", "*req.Field2"},
|
||||
Nested_fields: utils.BoolPointer(true),
|
||||
}
|
||||
if err := chgscfg.loadFromJsonCfg(new(ChargerSJsonCfg)); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(chgscfg, expected) {
|
||||
t.Errorf("Expected: %+v ,recived: %+v", expected, chgscfg)
|
||||
}
|
||||
cfgJSONStr := `{
|
||||
"chargers": { // Charger service
|
||||
"enabled": true, // starts charger service: <true|false>.
|
||||
"attributes_conns": [], // address where to reach the AttributeS <""|127.0.0.1:2013>
|
||||
//"string_indexed_fields": [], // query indexes based on these fields for faster processing
|
||||
"prefix_indexed_fields": ["*req.index1", "*req.index2"], // query indexes based on these fields for faster processing
|
||||
},
|
||||
}`
|
||||
expected = ChargerSCfg{
|
||||
expected := &ChargerSCfg{
|
||||
Enabled: true,
|
||||
AttributeSConns: []string{},
|
||||
PrefixIndexedFields: &[]string{"*req.index1", "*req.index2"},
|
||||
IndexedSelects: true,
|
||||
AttributeSConns: []string{"*internal:*attributes"},
|
||||
PrefixIndexedFields: &[]string{"*req.Field1", "*req.Field2"},
|
||||
SuffixIndexedFields: &[]string{"*req.Field1", "*req.Field2"},
|
||||
NestedFields: true,
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
if jsncfg, err := NewDefaultCGRConfig(); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnChgCfg, err := jsnCfg.ChargerServJsonCfg(); err != nil {
|
||||
} else if err = jsncfg.chargerSCfg.loadFromJsonCfg(jsonCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = chgscfg.loadFromJsonCfg(jsnChgCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(expected, chgscfg) {
|
||||
t.Errorf("Expected: %+v , recived: %+v", expected, chgscfg)
|
||||
} else if !reflect.DeepEqual(expected, jsncfg.chargerSCfg) {
|
||||
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(jsncfg.chargerSCfg))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -25,51 +25,94 @@ import (
|
||||
)
|
||||
|
||||
func TestDataDbCfgloadFromJsonCfg(t *testing.T) {
|
||||
var dbcfg, expected DataDbCfg
|
||||
if err := dbcfg.loadFromJsonCfg(nil); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(dbcfg, expected) {
|
||||
t.Errorf("Expected: %+v ,recived: %+v", expected, dbcfg)
|
||||
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 err := dbcfg.loadFromJsonCfg(new(DbJsonCfg)); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(dbcfg, expected) {
|
||||
t.Errorf("Expected: %+v ,recived: %+v", expected, dbcfg)
|
||||
}
|
||||
cfgJSONStr := `{
|
||||
"data_db": { // database used to store runtime data (eg: accounts, cdr stats)
|
||||
"db_type": "*redis", // data_db type: <*redis|*mongo|*internal>
|
||||
"db_host": "127.0.0.1", // data_db host address
|
||||
"db_port": -1, // data_db port to reach the database
|
||||
"db_name": "10", // data_db database name to connect to
|
||||
"db_user": "cgrates", // username to use when connecting to data_db
|
||||
"db_password": "password", // password to use when connecting to data_db
|
||||
"opts":{
|
||||
"redis_sentinel":"sentinel", // redis_sentinel is the name of sentinel
|
||||
}}
|
||||
}`
|
||||
dbcfg.Opts = make(map[string]interface{})
|
||||
expected = DataDbCfg{
|
||||
expected := &DataDbCfg{
|
||||
DataDbType: "redis",
|
||||
DataDbHost: "127.0.0.1",
|
||||
DataDbPort: "6379",
|
||||
DataDbName: "10",
|
||||
DataDbUser: "cgrates",
|
||||
DataDbPass: "password",
|
||||
RmtConns: []string{"*conn1"},
|
||||
RplConns: []string{"*conn1"},
|
||||
Items: map[string]*ItemOpt{
|
||||
utils.MetaAccounts: {
|
||||
Replicate: true,
|
||||
Remote: true,
|
||||
},
|
||||
utils.MetaReverseDestinations: {
|
||||
Replicate: true,
|
||||
},
|
||||
utils.MetaDestinations: {
|
||||
Replicate: false,
|
||||
},
|
||||
},
|
||||
Opts: map[string]interface{}{
|
||||
utils.RedisSentinelNameCfg: "sentinel",
|
||||
},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
if jsnCfg, err := NewDefaultCGRConfig(); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnDataDbCfg, err := jsnCfg.DbJsonCfg(DATADB_JSN); err != nil {
|
||||
} else if err = jsnCfg.dataDbCfg.loadFromJsonCfg(jsonCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = dbcfg.loadFromJsonCfg(jsnDataDbCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if !reflect.DeepEqual(expected, dbcfg) {
|
||||
t.Errorf("Expected: %+v , recived: %+v", expected, dbcfg)
|
||||
} else {
|
||||
if !reflect.DeepEqual(expected.Items[utils.MetaAccounts], jsnCfg.dataDbCfg.Items[utils.MetaAccounts]) {
|
||||
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected.Items[utils.MetaAccounts]),
|
||||
utils.ToJSON(jsnCfg.dataDbCfg.Items[utils.MetaAccounts]))
|
||||
} else if !reflect.DeepEqual(expected.Opts[utils.RedisSentinelNameCfg], jsnCfg.dataDbCfg.Opts[utils.RedisSentinelNameCfg]) {
|
||||
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected.Opts[utils.RedisSentinelNameCfg]),
|
||||
utils.ToJSON(jsnCfg.dataDbCfg.Opts[utils.RedisSentinelNameCfg]))
|
||||
} else if !reflect.DeepEqual(expected.RplConns, jsnCfg.dataDbCfg.RplConns) {
|
||||
t.Errorf("Expected %+v \n, received %+v", expected.RplConns, jsnCfg.dataDbCfg.RplConns)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestItemCfgloadFromJson(t *testing.T) {
|
||||
jsonCfg := &ItemOptJson{
|
||||
Remote: utils.BoolPointer(true),
|
||||
Replicate: utils.BoolPointer(true),
|
||||
Api_key: utils.StringPointer("randomVal"),
|
||||
Route_id: utils.StringPointer("randomID"),
|
||||
}
|
||||
expected := &ItemOpt{
|
||||
Remote: true,
|
||||
Replicate: true,
|
||||
APIKey: "randomVal",
|
||||
RouteID: "randomID",
|
||||
}
|
||||
rcv := new(ItemOpt)
|
||||
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))
|
||||
}
|
||||
}
|
||||
|
||||
func TestDataDbCfgloadFromJsonCfgPort(t *testing.T) {
|
||||
var dbcfg DataDbCfg
|
||||
dbcfg.Opts = make(map[string]interface{})
|
||||
|
||||
Reference in New Issue
Block a user