Updated load tests for radiuscfg

This commit is contained in:
porosnicuadrian
2020-09-29 11:26:39 +03:00
committed by Dan Christian Bogos
parent 2cec2ed0cd
commit 6193f52e8f

View File

@@ -20,54 +20,75 @@ package config
import (
"reflect"
"testing"
"time"
"github.com/cgrates/cgrates/utils"
)
func TestRadiusAgentCfgloadFromJsonCfg(t *testing.T) {
var racfg, expected RadiusAgentCfg
if err := racfg.loadFromJsonCfg(nil, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(racfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, racfg)
cfgJSON := &RadiusAgentJsonCfg{
Enabled: utils.BoolPointer(true),
Listen_net: utils.StringPointer(utils.UDP),
Listen_auth: utils.StringPointer("127.0.0.1:1812"),
Listen_acct: utils.StringPointer("127.0.0.1:1813"),
Client_secrets: &map[string]string{utils.MetaDefault: "CGRateS.org"},
Client_dictionaries: &map[string]string{utils.MetaDefault: "/usr/share/cgrates/radius/dict/"},
Sessions_conns: &[]string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS)},
Request_processors: &[]*ReqProcessorJsnCfg{
{
ID: utils.StringPointer("OutboundAUTHDryRun"),
Filters: &[]string{"*string:~*req.request_type:OutboundAUTH", "*string:~*req.Msisdn:497700056231"},
Flags: &[]string{utils.MetaDryRun},
Timezone: utils.StringPointer(utils.EmptyString),
Request_fields: &[]*FcTemplateJsonCfg{},
Reply_fields: &[]*FcTemplateJsonCfg{
{
Tag: utils.StringPointer("Allow"),
Path: utils.StringPointer("*rep.response.Allow"),
Type: utils.StringPointer(utils.META_CONSTANT),
Mandatory: utils.BoolPointer(true),
Layout: utils.StringPointer(string(time.RFC3339)),
},
},
},
},
}
if err := racfg.loadFromJsonCfg(new(RadiusAgentJsonCfg), utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(racfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, racfg)
}
cfgJSONStr := `{
"radius_agent": {
"enabled": false, // enables the radius agent: <true|false>
"listen_net": "udp", // network to listen on <udp|tcp>
"listen_auth": "127.0.0.1:1812", // address where to listen for radius authentication requests <x.y.z.y:1234>
"listen_acct": "127.0.0.1:1813", // address where to listen for radius accounting requests <x.y.z.y:1234>
"client_secrets": { // hash containing secrets for clients connecting here <*default|$client_ip>
"*default": "CGRateS.org"
},
"client_dictionaries": { // per client path towards directory holding additional dictionaries to load (extra to RFC)
"*default": "/usr/share/cgrates/radius/dict/", // key represents the client IP or catch-all <*default|$client_ip>
},
"sessions_conns": ["*internal"],
"request_processors": [],
},
}`
expected = RadiusAgentCfg{
expected := &RadiusAgentCfg{
Enabled: true,
ListenNet: "udp",
ListenAuth: "127.0.0.1:1812",
ListenAcct: "127.0.0.1:1813",
ClientSecrets: map[string]string{utils.MetaDefault: "CGRateS.org"},
ClientDictionaries: map[string]string{utils.MetaDefault: "/usr/share/cgrates/radius/dict/"},
SessionSConns: []string{utils.ConcatenatedKey(utils.MetaInternal, utils.MetaSessionS)},
RequestProcessors: []*RequestProcessor{
{
ID: "OutboundAUTHDryRun",
Filters: []string{"*string:~*req.request_type:OutboundAUTH", "*string:~*req.Msisdn:497700056231"},
Flags: utils.FlagsWithParams{utils.MetaDryRun: {}},
Timezone: utils.EmptyString,
RequestFields: []*FCTemplate{},
ReplyFields: []*FCTemplate{
{
Tag: "Allow",
Path: "*rep.response.Allow",
Type: utils.META_CONSTANT,
Mandatory: true,
Layout: time.RFC3339,
},
},
},
},
}
if jsnCfg, err := NewCgrJsonCfgFromBytes([]byte(cfgJSONStr)); err != nil {
for _, r := range expected.RequestProcessors[0].ReplyFields {
r.ComputePath()
}
if cfgJson, err := NewDefaultCGRConfig(); err != nil {
t.Error(err)
} else if jsnRaCfg, err := jsnCfg.RadiusAgentJsonCfg(); err != nil {
} else if err = cfgJson.radiusAgentCfg.loadFromJsonCfg(cfgJSON, cfgJson.generalCfg.RSRSep); err != nil {
t.Error(err)
} else if err = racfg.loadFromJsonCfg(jsnRaCfg, utils.INFIELD_SEP); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, racfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(racfg))
} else if !reflect.DeepEqual(expected, cfgJson.radiusAgentCfg) {
t.Errorf("Expected %+v \n, received %+v", utils.ToJSON(expected), utils.ToJSON(cfgJson.radiusAgentCfg))
}
}