mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-22 15:48:44 +05:00
Updated load tests for radiuscfg
This commit is contained in:
committed by
Dan Christian Bogos
parent
2cec2ed0cd
commit
6193f52e8f
@@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user