mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-11 18:16:24 +05:00
Added tests for some AsMapInterface methods
This commit is contained in:
committed by
Dan Christian Bogos
parent
b40b7eb363
commit
6c7270b454
@@ -138,7 +138,7 @@ func TestCdreCfgloadFromJsonCfg(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestCdreAsMapInterface(t *testing.T) {
|
||||
func TestCdreCfgAsMapInterface(t *testing.T) {
|
||||
var cdre CdreCfg
|
||||
cfgJSONStr := `{
|
||||
"cdre": {
|
||||
|
||||
@@ -100,6 +100,7 @@ func (dbcfg *DataDbCfg) loadFromJsonCfg(jsnDbCfg *DbJsonCfg) (err error) {
|
||||
}
|
||||
}
|
||||
if jsnDbCfg.Items != nil {
|
||||
dbcfg.Items = make(map[string]*ItemOpt)
|
||||
for kJsn, vJsn := range *jsnDbCfg.Items {
|
||||
val, has := dbcfg.Items[kJsn]
|
||||
if val == nil || !has {
|
||||
@@ -134,16 +135,21 @@ func (dbcfg *DataDbCfg) AsMapInterface() map[string]interface{} {
|
||||
for key, item := range dbcfg.Items {
|
||||
items[key] = item.AsMapInterface()
|
||||
}
|
||||
var queryTimeout string = "0"
|
||||
if dbcfg.QueryTimeout != 0 {
|
||||
queryTimeout = dbcfg.QueryTimeout.String()
|
||||
}
|
||||
dbPort, _ := strconv.Atoi(dbcfg.DataDbPort)
|
||||
|
||||
return map[string]interface{}{
|
||||
utils.DataDbTypeCfg: dbcfg.DataDbType,
|
||||
utils.DataDbTypeCfg: utils.Meta + dbcfg.DataDbType,
|
||||
utils.DataDbHostCfg: dbcfg.DataDbHost,
|
||||
utils.DataDbPortCfg: dbcfg.DataDbPort,
|
||||
utils.DataDbPortCfg: dbPort,
|
||||
utils.DataDbNameCfg: dbcfg.DataDbName,
|
||||
utils.DataDbUserCfg: dbcfg.DataDbUser,
|
||||
utils.DataDbPassCfg: dbcfg.DataDbPass,
|
||||
utils.DataDbSentinelNameCfg: dbcfg.DataDbSentinelName,
|
||||
utils.QueryTimeoutCfg: dbcfg.QueryTimeout,
|
||||
utils.QueryTimeoutCfg: queryTimeout,
|
||||
utils.RmtConnsCfg: dbcfg.RmtConns,
|
||||
utils.RplConnsCfg: dbcfg.RplConns,
|
||||
utils.ItemsCfg: items,
|
||||
@@ -162,11 +168,16 @@ type ItemOpt struct {
|
||||
}
|
||||
|
||||
func (itm *ItemOpt) AsMapInterface() map[string]interface{} {
|
||||
var ttl string = ""
|
||||
if itm.TTL != 0 {
|
||||
ttl = itm.TTL.String()
|
||||
}
|
||||
|
||||
return map[string]interface{}{
|
||||
utils.RemoteCfg: itm.Remote,
|
||||
utils.ReplicateCfg: itm.Replicate,
|
||||
utils.LimitCfg: itm.Limit,
|
||||
utils.TTLCfg: itm.TTL,
|
||||
utils.TTLCfg: ttl,
|
||||
utils.StaticTTLCfg: itm.StaticTTL,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -395,3 +395,50 @@ func TestDataDbCfgloadFromJsonCfgItems(t *testing.T) {
|
||||
t.Errorf("Expected: %+v ,\n recived: %+v", utils.ToJSON(expected), utils.ToJSON(dbcfg))
|
||||
}
|
||||
}
|
||||
|
||||
func TestDataDbCfgAsMapInterface(t *testing.T) {
|
||||
var dbcfg DataDbCfg
|
||||
cfgJSONStr := `{
|
||||
"data_db": {
|
||||
"db_type": "*redis",
|
||||
"db_host": "127.0.0.1",
|
||||
"db_port": 6379,
|
||||
"db_name": "10",
|
||||
"db_user": "cgrates",
|
||||
"db_password": "",
|
||||
"redis_sentinel":"",
|
||||
"query_timeout":"10s",
|
||||
"remote_conns":[],
|
||||
"replication_conns":[],
|
||||
"items":{
|
||||
"*accounts":{"remote":true, "replicate":false, "limit": -1, "ttl": "", "static_ttl": false},
|
||||
"*reverse_destinations": {"remote":false, "replicate":false, "limit": 7, "ttl": "", "static_ttl": true},
|
||||
},
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"db_type": "*redis",
|
||||
"db_host": "127.0.0.1",
|
||||
"db_port": 6379,
|
||||
"db_name": "10",
|
||||
"db_user": "cgrates",
|
||||
"db_password": "",
|
||||
"redis_sentinel": "",
|
||||
"query_timeout": "10s",
|
||||
"remote_conns": []string{},
|
||||
"replication_conns": []string{},
|
||||
"items": map[string]interface{}{
|
||||
"*accounts": map[string]interface{}{"remote": true, "replicate": false, "limit": -1, "ttl": "", "static_ttl": false},
|
||||
"*reverse_destinations": map[string]interface{}{"remote": false, "replicate": false, "limit": 7, "ttl": "", "static_ttl": true},
|
||||
},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnDataDbCfg, err := jsnCfg.DbJsonCfg(DATADB_JSN); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = dbcfg.loadFromJsonCfg(jsnDataDbCfg); 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))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,3 +54,29 @@ func TestFilterSCfgloadFromJsonCfg(t *testing.T) {
|
||||
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(fscfg))
|
||||
}
|
||||
}
|
||||
|
||||
func TestFilterSCfgAsMapInterface(t *testing.T) {
|
||||
var fscfg FilterSCfg
|
||||
cfgJSONStr := `{
|
||||
"filters": {
|
||||
"stats_conns": ["*localhost"],
|
||||
"resources_conns": [],
|
||||
"apiers_conns": [],
|
||||
},
|
||||
}`
|
||||
var emptySlice []string
|
||||
eMap := map[string]interface{}{
|
||||
"stats_conns": []string{"*localhost"},
|
||||
"resources_conns": emptySlice,
|
||||
"apiers_conns": emptySlice,
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnFsCfg, err := jsnCfg.FilterSJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = fscfg.loadFromJsonCfg(jsnFsCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := fscfg.AsMapInterface(); reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("Expected: %+v ,\n recived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -352,7 +352,7 @@ func TestHttpAgentCfgappendHttpAgntProcCfgs(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func testHttpAgentCfgAsMapInterface(t *testing.T) {
|
||||
func TestHttpAgentCfgAsMapInterface(t *testing.T) {
|
||||
var httpcfg HttpAgentCfgs
|
||||
cfgJSONStr := `{
|
||||
|
||||
@@ -388,7 +388,6 @@ func testHttpAgentCfgAsMapInterface(t *testing.T) {
|
||||
},
|
||||
],
|
||||
}`
|
||||
request_fields := []string{}
|
||||
eMap := []map[string]interface{}{
|
||||
{
|
||||
"id": "conecto1",
|
||||
@@ -401,9 +400,9 @@ func testHttpAgentCfgAsMapInterface(t *testing.T) {
|
||||
"id": "OutboundAUTHDryRun",
|
||||
"filters": []string{"*string:~*req.request_type:OutboundAUTH", "*string:~*req.Msisdn:497700056231"},
|
||||
"tenant": "cgrates.org",
|
||||
"flags": map[string][]string{"*dryrun": request_fields},
|
||||
"flags": map[string][]string{"*dryrun": {}},
|
||||
"Timezone": "",
|
||||
"request_fields": request_fields,
|
||||
"request_fields": []map[string]interface{}{},
|
||||
"reply_fields": []map[string]interface{}{
|
||||
{"tag": "Allow", "path": "*rep.response.Allow", "type": "*constant", "value": "1", "mandatory": true},
|
||||
{"tag": "Concatenated1", "path": "*rep.response.Concatenated", "type": "*composed", "value": "~*req.MCC;/", "mandatory": true},
|
||||
@@ -424,5 +423,4 @@ func testHttpAgentCfgAsMapInterface(t *testing.T) {
|
||||
} else if rcv := httpcfg.AsMapInterface(";"); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("Expected: %+v,\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -58,12 +58,17 @@ func (httpcfg *HTTPCfg) loadFromJsonCfg(jsnHttpCfg *HTTPJsonCfg) (err error) {
|
||||
}
|
||||
|
||||
func (httpcfg *HTTPCfg) AsMapInterface() map[string]interface{} {
|
||||
httpUsers := map[string]interface{}{}
|
||||
for key, item := range httpcfg.HTTPAuthUsers {
|
||||
httpUsers[key] = item
|
||||
}
|
||||
|
||||
return map[string]interface{}{
|
||||
utils.HTTPJsonRPCURLCfg: httpcfg.HTTPJsonRPCURL,
|
||||
utils.HTTPWSURLCfg: httpcfg.HTTPWSURL,
|
||||
utils.HTTPFreeswitchCDRsURLCfg: httpcfg.HTTPFreeswitchCDRsURL,
|
||||
utils.HTTPCDRsURLCfg: httpcfg.HTTPCDRsURL,
|
||||
utils.HTTPUseBasicAuthCfg: httpcfg.HTTPUseBasicAuth,
|
||||
utils.HTTPAuthUsersCfg: httpcfg.HTTPAuthUsers,
|
||||
utils.HTTPAuthUsersCfg: httpUsers,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,8 @@ package config
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
func TestHTTPCfgloadFromJsonCfg(t *testing.T) {
|
||||
@@ -62,3 +64,36 @@ func TestHTTPCfgloadFromJsonCfg(t *testing.T) {
|
||||
t.Errorf("Expected: %+v , recived: %+v", expected, httpcfg)
|
||||
}
|
||||
}
|
||||
|
||||
func TestHTTPCfgAsMapInterface(t *testing.T) {
|
||||
var httpcfg HTTPCfg
|
||||
cfgJSONStr := `{
|
||||
"http": {
|
||||
"json_rpc_url": "/jsonrpc",
|
||||
"ws_url": "/ws",
|
||||
"freeswitch_cdrs_url": "/freeswitch_json",
|
||||
"http_cdrs": "/cdr_http",
|
||||
"use_basic_auth": false,
|
||||
"auth_users": {},
|
||||
},
|
||||
}`
|
||||
|
||||
eMap := map[string]interface{}{
|
||||
"json_rpc_url": "/jsonrpc",
|
||||
"ws_url": "/ws",
|
||||
"freeswitch_cdrs_url": "/freeswitch_json",
|
||||
"http_cdrs": "/cdr_http",
|
||||
"use_basic_auth": false,
|
||||
"auth_users": map[string]interface{}{},
|
||||
}
|
||||
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(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))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,6 +211,15 @@ func (l *LoaderSCfg) AsMapInterface(separator string) map[string]interface{} {
|
||||
if l.RunDelay != 0 {
|
||||
runDelay = l.RunDelay.String()
|
||||
}
|
||||
cacheSConns := make([]string, len(l.CacheSConns))
|
||||
for i, item := range l.CacheSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches)
|
||||
if item == buf {
|
||||
cacheSConns[i] = strings.ReplaceAll(item, ":*caches", utils.EmptyString)
|
||||
} else {
|
||||
cacheSConns[i] = item
|
||||
}
|
||||
}
|
||||
|
||||
return map[string]interface{}{
|
||||
utils.IdCfg: l.Id,
|
||||
@@ -219,7 +228,7 @@ func (l *LoaderSCfg) AsMapInterface(separator string) map[string]interface{} {
|
||||
utils.DryRunCfg: l.DryRun,
|
||||
utils.RunDelayCfg: runDelay,
|
||||
utils.LockFileNameCfg: l.LockFileName,
|
||||
utils.CacheSConnsCfg: l.CacheSConns,
|
||||
utils.CacheSConnsCfg: cacheSConns,
|
||||
utils.FieldSeparatorCfg: l.FieldSeparator,
|
||||
utils.TpInDirCfg: l.TpInDir,
|
||||
utils.TpOutDirCfg: l.TpOutDir,
|
||||
|
||||
@@ -141,7 +141,7 @@ func TestLoaderCfgAsMapInterface(t *testing.T) {
|
||||
"dry_run": false,
|
||||
"run_delay": "0",
|
||||
"lock_filename": ".cgr.lck",
|
||||
"caches_conns": []string{"*internal:*caches"},
|
||||
"caches_conns": []string{"*internal"},
|
||||
"field_separator": ",",
|
||||
"tp_in_dir": "/var/spool/cgrates/loader/in",
|
||||
"tp_out_dir": "/var/spool/cgrates/loader/out",
|
||||
|
||||
@@ -19,6 +19,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
package config
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
@@ -86,6 +88,7 @@ func (ralsCfg *RalsCfg) loadFromJsonCfg(jsnRALsCfg *RalsJsonCfg) (err error) {
|
||||
ralsCfg.RemoveExpired = *jsnRALsCfg.Remove_expired
|
||||
}
|
||||
if jsnRALsCfg.Max_computed_usage != nil {
|
||||
ralsCfg.MaxComputedUsage = make(map[string]time.Duration, len(*jsnRALsCfg.Max_computed_usage))
|
||||
for k, v := range *jsnRALsCfg.Max_computed_usage {
|
||||
if ralsCfg.MaxComputedUsage[k], err = utils.ParseDurationWithNanosecs(v); err != nil {
|
||||
return
|
||||
@@ -96,6 +99,7 @@ func (ralsCfg *RalsCfg) loadFromJsonCfg(jsnRALsCfg *RalsJsonCfg) (err error) {
|
||||
ralsCfg.MaxIncrements = *jsnRALsCfg.Max_increments
|
||||
}
|
||||
if jsnRALsCfg.Balance_rating_subject != nil {
|
||||
ralsCfg.BalanceRatingSubject = make(map[string]string, len(*jsnRALsCfg.Balance_rating_subject))
|
||||
for k, v := range *jsnRALsCfg.Balance_rating_subject {
|
||||
ralsCfg.BalanceRatingSubject[k] = v
|
||||
}
|
||||
@@ -113,7 +117,21 @@ func (ralsCfg *RalsCfg) loadFromJsonCfg(jsnRALsCfg *RalsJsonCfg) (err error) {
|
||||
func (ralsCfg *RalsCfg) AsMapInterface() map[string]interface{} {
|
||||
maxComputed := make(map[string]interface{})
|
||||
for key, item := range ralsCfg.MaxComputedUsage {
|
||||
maxComputed[key] = item
|
||||
if key == utils.ANY || key == utils.VOICE {
|
||||
maxComputed[key] = item.String()
|
||||
} else {
|
||||
maxComputed[key] = strconv.Itoa(int(item))
|
||||
}
|
||||
}
|
||||
|
||||
cacheSConns := make([]string, len(ralsCfg.CacheSConns))
|
||||
for i, item := range ralsCfg.CacheSConns {
|
||||
buf := utils.ConcatenatedKey(utils.MetaInternal, utils.MetaCaches)
|
||||
if item == buf {
|
||||
cacheSConns[i] = strings.ReplaceAll(item, ":*caches", utils.EmptyString)
|
||||
} else {
|
||||
cacheSConns[i] = item
|
||||
}
|
||||
}
|
||||
|
||||
balanceRating := make(map[string]interface{})
|
||||
@@ -125,11 +143,12 @@ func (ralsCfg *RalsCfg) AsMapInterface() map[string]interface{} {
|
||||
utils.EnabledCfg: ralsCfg.Enabled,
|
||||
utils.ThresholdSConnsCfg: ralsCfg.ThresholdSConns,
|
||||
utils.StatSConnsCfg: ralsCfg.StatSConns,
|
||||
utils.CacheSConnsCfg: ralsCfg.CacheSConns,
|
||||
utils.CacheSConnsCfg: cacheSConns,
|
||||
utils.RpSubjectPrefixMatchingCfg: ralsCfg.RpSubjectPrefixMatching,
|
||||
utils.RemoveExpiredCfg: ralsCfg.RemoveExpired,
|
||||
utils.MaxComputedUsageCfg: maxComputed,
|
||||
utils.BalanceRatingSubjectCfg: balanceRating,
|
||||
utils.MaxIncrementsCfg: ralsCfg.MaxIncrements,
|
||||
utils.Dynaprepaid_actionplansCfg: ralsCfg.DynaprepaidActionPlans,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,3 +75,61 @@ func TestRalsCfgFromJsonCfg(t *testing.T) {
|
||||
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(ralscfg))
|
||||
}
|
||||
}
|
||||
|
||||
func TestRalsCfgAsMapInterface(t *testing.T) {
|
||||
var ralscfg RalsCfg
|
||||
cfgJSONStr := `{
|
||||
"rals": {
|
||||
"enabled": false,
|
||||
"thresholds_conns": [],
|
||||
"stats_conns": [],
|
||||
"caches_conns":["*internal"],
|
||||
"rp_subject_prefix_matching": false,
|
||||
"remove_expired":true,
|
||||
"max_computed_usage": {
|
||||
"*any": "189h",
|
||||
"*voice": "72h",
|
||||
"*data": "107374182400",
|
||||
"*sms": "10000",
|
||||
"*mms": "10000"
|
||||
},
|
||||
"max_increments": 1000000,
|
||||
"balance_rating_subject":{
|
||||
"*any": "*zero1ns",
|
||||
"*voice": "*zero1s"
|
||||
},
|
||||
"dynaprepaid_actionplans": [],
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"enabled": false,
|
||||
"thresholds_conns": []string{},
|
||||
"stats_conns": []string{},
|
||||
"caches_conns": []string{"*internal"},
|
||||
"rp_subject_prefix_matching": false,
|
||||
"remove_expired": true,
|
||||
"max_computed_usage": map[string]interface{}{
|
||||
"*any": "189h0m0s",
|
||||
"*voice": "72h0m0s",
|
||||
"*data": "107374182400",
|
||||
"*sms": "10000",
|
||||
"*mms": "10000",
|
||||
},
|
||||
"max_increments": 1000000,
|
||||
"balance_rating_subject": map[string]interface{}{
|
||||
"*any": "*zero1ns",
|
||||
"*voice": "*zero1s",
|
||||
},
|
||||
"dynaprepaid_actionplans": []string{},
|
||||
}
|
||||
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsnRalsCfg, err := jsnCfg.RalsJsonCfg(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = ralscfg.loadFromJsonCfg(jsnRalsCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := ralscfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("Expected: %+v ,\n recived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,6 +95,7 @@ func (dbcfg *StorDbCfg) loadFromJsonCfg(jsnDbCfg *DbJsonCfg) (err error) {
|
||||
dbcfg.SSLMode = *jsnDbCfg.Sslmode
|
||||
}
|
||||
if jsnDbCfg.Items != nil {
|
||||
dbcfg.Items = make(map[string]*ItemOpt)
|
||||
for kJsn, vJsn := range *jsnDbCfg.Items {
|
||||
val := new(ItemOpt)
|
||||
if err := val.loadFromJsonCfg(vJsn); err != nil {
|
||||
@@ -131,11 +132,16 @@ func (dbcfg *StorDbCfg) AsMapInterface() map[string]interface{} {
|
||||
for key, item := range dbcfg.Items {
|
||||
items[key] = item.AsMapInterface()
|
||||
}
|
||||
var queryTimeout string = "0"
|
||||
if dbcfg.QueryTimeout != 0 {
|
||||
queryTimeout = dbcfg.QueryTimeout.String()
|
||||
}
|
||||
dbPort, _ := strconv.Atoi(dbcfg.Port)
|
||||
|
||||
return map[string]interface{}{
|
||||
utils.TypeCfg: dbcfg.Type,
|
||||
utils.TypeCfg: utils.Meta + dbcfg.Type,
|
||||
utils.HostCfg: dbcfg.Host,
|
||||
utils.PortCfg: dbcfg.Port,
|
||||
utils.PortCfg: dbPort,
|
||||
utils.NameCfg: dbcfg.Name,
|
||||
utils.UserCfg: dbcfg.User,
|
||||
utils.PasswordCfg: dbcfg.Password,
|
||||
@@ -144,7 +150,7 @@ func (dbcfg *StorDbCfg) AsMapInterface() map[string]interface{} {
|
||||
utils.ConnMaxLifetimeCfg: dbcfg.ConnMaxLifetime,
|
||||
utils.StringIndexedFieldsCfg: dbcfg.StringIndexedFields,
|
||||
utils.PrefixIndexedFieldsCfg: dbcfg.PrefixIndexedFields,
|
||||
utils.QueryTimeoutCfg: dbcfg.QueryTimeout,
|
||||
utils.QueryTimeoutCfg: queryTimeout,
|
||||
utils.SSLModeCfg: dbcfg.SSLMode,
|
||||
utils.ItemsCfg: items,
|
||||
}
|
||||
|
||||
@@ -20,6 +20,8 @@ package config
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
func TestStoreDbCfgloadFromJsonCfg(t *testing.T) {
|
||||
@@ -130,3 +132,57 @@ func TestStoreDbCfgloadFromJsonCfgPort(t *testing.T) {
|
||||
t.Errorf("Expected: %+v , recived: %+v", expected, dbcfg)
|
||||
}
|
||||
}
|
||||
|
||||
func TestStorDbCfgAsMapInterface(t *testing.T) {
|
||||
var dbcfg StorDbCfg
|
||||
cfgJSONStr := `{
|
||||
"stor_db": {
|
||||
"db_type": "*mysql",
|
||||
"db_host": "127.0.0.1",
|
||||
"db_port": -1,
|
||||
"db_name": "cgrates",
|
||||
"db_user": "cgrates",
|
||||
"db_password": "",
|
||||
"max_open_conns": 100,
|
||||
"max_idle_conns": 10,
|
||||
"conn_max_lifetime": 0,
|
||||
"string_indexed_fields": [],
|
||||
"prefix_indexed_fields":[],
|
||||
"query_timeout":"10s",
|
||||
"sslmode":"disable",
|
||||
"items":{
|
||||
"session_costs": {"limit": -1, "ttl": "", "static_ttl": false},
|
||||
"cdrs": {"limit": -1, "ttl": "", "static_ttl": false},
|
||||
},
|
||||
},
|
||||
}`
|
||||
|
||||
eMap := map[string]interface{}{
|
||||
"db_type": "*mysql",
|
||||
"db_host": "127.0.0.1",
|
||||
"db_port": 3306,
|
||||
"db_name": "cgrates",
|
||||
"db_user": "cgrates",
|
||||
"db_password": "",
|
||||
"max_open_conns": 100,
|
||||
"max_idle_conns": 10,
|
||||
"conn_max_lifetime": 0,
|
||||
"string_indexed_fields": []string{},
|
||||
"prefix_indexed_fields": []string{},
|
||||
"query_timeout": "10s",
|
||||
"sslmode": "disable",
|
||||
"items": map[string]interface{}{
|
||||
"session_costs": map[string]interface{}{"limit": -1, "ttl": "", "static_ttl": false, "remote": false, "replicate": false},
|
||||
"cdrs": map[string]interface{}{"limit": -1, "ttl": "", "static_ttl": false, "remote": false, "replicate": false},
|
||||
},
|
||||
}
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(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))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,6 +20,8 @@ package config
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/cgrates/cgrates/utils"
|
||||
)
|
||||
|
||||
func TestTlsCfgloadFromJsonCfg(t *testing.T) {
|
||||
@@ -65,3 +67,67 @@ func TestTlsCfgloadFromJsonCfg(t *testing.T) {
|
||||
t.Errorf("Expected: %+v , recived: %+v", expected, tlscfg)
|
||||
}
|
||||
}
|
||||
func TestTlsCfgAsMapInterface(t *testing.T) {
|
||||
var tlscfg TlsCfg
|
||||
cfgJSONStr := ` {
|
||||
"tls": {
|
||||
"server_certificate" : "",
|
||||
"server_key":"",
|
||||
"client_certificate" : "",
|
||||
"client_key":"",
|
||||
"ca_certificate":"",
|
||||
"server_policy":4,
|
||||
"server_name":"",
|
||||
},
|
||||
}`
|
||||
eMap := map[string]interface{}{
|
||||
"server_certificate": "",
|
||||
"server_key": "",
|
||||
"client_certificate": "",
|
||||
"client_key": "",
|
||||
"ca_certificate": "",
|
||||
"server_policy": 4,
|
||||
"server_name": "",
|
||||
}
|
||||
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsntlsCfg, err := jsnCfg.TlsCfgJson(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = tlscfg.loadFromJsonCfg(jsntlsCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := tlscfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("Expected: %+v,\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
|
||||
cfgJSONStr = ` {
|
||||
"tls":{
|
||||
"server_certificate" : "path/To/Server/Cert",
|
||||
"server_key":"path/To/Server/Key",
|
||||
"client_certificate" : "path/To/Client/Cert",
|
||||
"client_key":"path/To/Client/Key",
|
||||
"ca_certificate":"path/To/CA/Cert",
|
||||
"server_name":"TestServerName",
|
||||
"server_policy":3,
|
||||
},
|
||||
}`
|
||||
eMap = map[string]interface{}{
|
||||
"server_certificate": "path/To/Server/Cert",
|
||||
"server_key": "path/To/Server/Key",
|
||||
"client_certificate": "path/To/Client/Cert",
|
||||
"client_key": "path/To/Client/Key",
|
||||
"ca_certificate": "path/To/CA/Cert",
|
||||
"server_name": "TestServerName",
|
||||
"server_policy": 3,
|
||||
}
|
||||
|
||||
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
|
||||
t.Error(err)
|
||||
} else if jsntlsCfg, err := jsnCfg.TlsCfgJson(); err != nil {
|
||||
t.Error(err)
|
||||
} else if err = tlscfg.loadFromJsonCfg(jsntlsCfg); err != nil {
|
||||
t.Error(err)
|
||||
} else if rcv := tlscfg.AsMapInterface(); !reflect.DeepEqual(eMap, rcv) {
|
||||
t.Errorf("Expected: %+v,\nRecived: %+v", utils.ToJSON(eMap), utils.ToJSON(rcv))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1890,15 +1890,16 @@ const (
|
||||
TpOutDirCfg = "tp_out_dir"
|
||||
DataCfg = "data"
|
||||
|
||||
DefaultRatioCfg = "default_ratio"
|
||||
ReadersCfg = "readers"
|
||||
PoolSize = "poolSize"
|
||||
Conns = "conns"
|
||||
FilenameCfg = "file_name"
|
||||
RequestPayloadCfg = "request_payload"
|
||||
ReplyPayloadCfg = "reply_payload"
|
||||
TransportCfg = "transport"
|
||||
StrategyCfg = "strategy"
|
||||
DefaultRatioCfg = "default_ratio"
|
||||
ReadersCfg = "readers"
|
||||
PoolSize = "poolSize"
|
||||
Conns = "conns"
|
||||
FilenameCfg = "file_name"
|
||||
RequestPayloadCfg = "request_payload"
|
||||
ReplyPayloadCfg = "reply_payload"
|
||||
TransportCfg = "transport"
|
||||
StrategyCfg = "strategy"
|
||||
Dynaprepaid_actionplansCfg = "dynaprepaid_actionplans"
|
||||
)
|
||||
|
||||
// FC Template
|
||||
|
||||
Reference in New Issue
Block a user