Added tests for AsteriskAgentCfg and AsteriskConnCfg loadFromJsonCfg

This commit is contained in:
Trial97
2018-10-26 11:57:54 +03:00
committed by Dan Christian Bogos
parent d98ec1a0b3
commit 8b113f6605
4 changed files with 134 additions and 18 deletions

View File

@@ -49,7 +49,7 @@ func TestAsTransCacheConfig(t *testing.T) {
}
}
func TestCacheConfigloadFromJsonCfg(t *testing.T) {
func TestCacheCfgloadFromJsonCfg(t *testing.T) {
var cachecfg, expected CacheCfg
if err := cachecfg.loadFromJsonCfg(nil); err != nil {
t.Error(err)
@@ -84,3 +84,34 @@ func TestCacheConfigloadFromJsonCfg(t *testing.T) {
t.Errorf("Expected: %+v , recived: %+v", expected, cachecfg)
}
}
func TestCacheParamCfgloadFromJsonCfg(t *testing.T) {
var fscocfg, expected CacheParamCfg
if err := fscocfg.loadFromJsonCfg(nil); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(fscocfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, fscocfg)
}
if err := fscocfg.loadFromJsonCfg(new(CacheParamJsonCfg)); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(fscocfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, fscocfg)
}
json := &CacheParamJsonCfg{
Limit: utils.IntPointer(5),
Ttl: utils.StringPointer("1s"),
Static_ttl: utils.BoolPointer(true),
Precache: utils.BoolPointer(true),
}
expected = CacheParamCfg{
Limit: 5,
TTL: time.Duration(time.Second),
StaticTTL: true,
Precache: true,
}
if err = fscocfg.loadFromJsonCfg(json); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, fscocfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(fscocfg))
}
}

View File

@@ -148,9 +148,9 @@ func NewDefaultCGRConfig() (*CGRConfig, error) {
cfg.sessionSCfg = new(SessionSCfg)
cfg.fsAgentCfg = new(FsAgentCfg)
cfg.kamAgentCfg = new(KamAgentCfg)
cfg.asteriskAgentCfg = new(AsteriskAgentCfg)
cfg.SmOsipsConfig = new(SmOsipsConfig)
cfg.asteriskAgentCfg = new(AsteriskAgentCfg)
cfg.diameterAgentCfg = new(DiameterAgentCfg)
cfg.radiusAgentCfg = new(RadiusAgentCfg)
cfg.dispatcherSCfg = new(DispatcherSCfg)
@@ -261,7 +261,6 @@ type CGRConfig struct {
loaderCfg []*LoaderSCfg // LoaderS configurations
SmOsipsConfig *SmOsipsConfig // SMOpenSIPS Configuration
asteriskAgentCfg *AsteriskAgentCfg // SMAsterisk Configuration
diameterAgentCfg *DiameterAgentCfg // DiameterAgent configuration
radiusAgentCfg *RadiusAgentCfg // RadiusAgent configuration
httpAgentCfg []*HttpAgentCfg // HttpAgent configuration
@@ -290,21 +289,22 @@ type CGRConfig struct {
dfltCdreProfile *CdreCfg // Default cdreConfig profile
dfltCdrcProfile *CdrcCfg // Default cdrcConfig profile
generalCfg *GeneralCfg // General config
dataDbCfg *DataDbCfg // Database config
storDbCfg *StorDbCfg // StroreDb config
tlsCfg *TlsCfg // TLS config
cacheCfg CacheCfg // Cache config
listenCfg *ListenCfg // Listen config
httpCfg *HTTPCfg // HTTP config
filterSCfg *FilterSCfg // FilterS config
ralsCfg *RalsCfg // Rals config
schedulerCfg *SchedulerCfg // Scheduler config
cdrsCfg *CdrsCfg // Cdrs config
cdrStatsCfg *CdrStatsCfg // CdrStats config - deprecated
sessionSCfg *SessionSCfg // SessionS config
fsAgentCfg *FsAgentCfg // FreeSWITCHAgent config
kamAgentCfg *KamAgentCfg // KamailioAgent config
generalCfg *GeneralCfg // General config
dataDbCfg *DataDbCfg // Database config
storDbCfg *StorDbCfg // StroreDb config
tlsCfg *TlsCfg // TLS config
cacheCfg CacheCfg // Cache config
listenCfg *ListenCfg // Listen config
httpCfg *HTTPCfg // HTTP config
filterSCfg *FilterSCfg // FilterS config
ralsCfg *RalsCfg // Rals config
schedulerCfg *SchedulerCfg // Scheduler config
cdrsCfg *CdrsCfg // Cdrs config
cdrStatsCfg *CdrStatsCfg // CdrStats config - deprecated
sessionSCfg *SessionSCfg // SessionS config
fsAgentCfg *FsAgentCfg // FreeSWITCHAgent config
kamAgentCfg *KamAgentCfg // KamailioAgent config
asteriskAgentCfg *AsteriskAgentCfg // AsteriskAgent config
analyzerSCfg *AnalyzerSCfg
}

View File

@@ -414,6 +414,9 @@ type AsteriskConnCfg struct {
}
func (aConnCfg *AsteriskConnCfg) loadFromJsonCfg(jsnCfg *AstConnJsonCfg) error {
if jsnCfg == nil {
return nil
}
if jsnCfg.Address != nil {
aConnCfg.Address = *jsnCfg.Address
}
@@ -440,6 +443,9 @@ type AsteriskAgentCfg struct {
}
func (aCfg *AsteriskAgentCfg) loadFromJsonCfg(jsnCfg *AsteriskAgentJsonCfg) (err error) {
if jsnCfg == nil {
return nil
}
if jsnCfg.Enabled != nil {
aCfg.Enabled = *jsnCfg.Enabled
}

View File

@@ -237,3 +237,82 @@ func TestHaPoolConfigloadFromJsonCfg(t *testing.T) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(hpoolcfg))
}
}
func TestAsteriskAgentCfgloadFromJsonCfg(t *testing.T) {
var asagcfg, expected AsteriskAgentCfg
if err := asagcfg.loadFromJsonCfg(nil); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(asagcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, asagcfg)
}
if err := asagcfg.loadFromJsonCfg(new(AsteriskAgentJsonCfg)); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(asagcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, asagcfg)
}
cfgJSONStr := `{
"asterisk_agent": {
"enabled": true, // starts the Asterisk agent: <true|false>
"sessions_conns": [
{"address": "*internal"} // connection towards session service: <*internal>
],
"create_cdr": false, // create CDR out of events and sends it to CDRS component
"asterisk_conns":[ // instantiate connections to multiple Asterisk servers
{"address": "127.0.0.1:8088", "user": "cgrates", "password": "CGRateS.org", "connect_attempts": 3,"reconnects": 5}
],
},
}`
expected = AsteriskAgentCfg{
Enabled: true,
SessionSConns: []*HaPoolConfig{{Address: "*internal"}},
AsteriskConns: []*AsteriskConnCfg{{
Address: "127.0.0.1:8088",
User: "cgrates",
Password: "CGRateS.org",
ConnectAttempts: 3,
Reconnects: 5,
}},
}
if jsnCfg, err := NewCgrJsonCfgFromReader(strings.NewReader(cfgJSONStr)); err != nil {
t.Error(err)
} else if jsnAsAgCfg, err := jsnCfg.AsteriskAgentJsonCfg(); err != nil {
t.Error(err)
} else if err = asagcfg.loadFromJsonCfg(jsnAsAgCfg); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, asagcfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(asagcfg))
}
}
func TestAsteriskConnCfgloadFromJsonCfg(t *testing.T) {
var asconcfg, expected AsteriskConnCfg
if err := asconcfg.loadFromJsonCfg(nil); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(asconcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, asconcfg)
}
if err := asconcfg.loadFromJsonCfg(new(AstConnJsonCfg)); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(asconcfg, expected) {
t.Errorf("Expected: %+v ,recived: %+v", expected, asconcfg)
}
json := &AstConnJsonCfg{
Address: utils.StringPointer("127.0.0.1:8088"),
User: utils.StringPointer("cgrates"),
Password: utils.StringPointer("CGRateS.org"),
Connect_attempts: utils.IntPointer(3),
Reconnects: utils.IntPointer(5),
}
expected = AsteriskConnCfg{
Address: "127.0.0.1:8088",
User: "cgrates",
Password: "CGRateS.org",
ConnectAttempts: 3,
Reconnects: 5,
}
if err = asconcfg.loadFromJsonCfg(json); err != nil {
t.Error(err)
} else if !reflect.DeepEqual(expected, asconcfg) {
t.Errorf("Expected: %+v , recived: %+v", utils.ToJSON(expected), utils.ToJSON(asconcfg))
}
}