mirror of
https://github.com/cgrates/cgrates.git
synced 2026-02-16 13:49:53 +05:00
Updated tests in ConfigSanity
This commit is contained in:
@@ -19,7 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
package config
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
@@ -189,7 +188,7 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
if !cfg.cdrsCfg.Enabled {
|
||||
for _, smgCDRSConn := range cfg.sessionSCfg.CDRsConns {
|
||||
if smgCDRSConn.Address == utils.MetaInternal {
|
||||
return fmt.Errorf("<%s> CDRS not enabled but referenced by SMGeneric component", utils.SessionS)
|
||||
return fmt.Errorf("<%s> CDRS not enabled but referenced by SMGeneric component.", utils.SessionS)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -208,7 +207,7 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
!cfg.sessionSCfg.Enabled {
|
||||
for _, connCfg := range cfg.fsAgentCfg.SessionSConns {
|
||||
if connCfg.Address == utils.MetaInternal {
|
||||
return fmt.Errorf("%s not enabled but referenced by %s",
|
||||
return fmt.Errorf("<%s> not enabled but referenced by <%s>",
|
||||
utils.SessionS, utils.FreeSWITCHAgent)
|
||||
}
|
||||
}
|
||||
@@ -224,7 +223,7 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
!cfg.sessionSCfg.Enabled {
|
||||
for _, connCfg := range cfg.kamAgentCfg.SessionSConns {
|
||||
if connCfg.Address == utils.MetaInternal {
|
||||
return fmt.Errorf("%s not enabled but referenced by %s",
|
||||
return fmt.Errorf("<%s> not enabled but referenced by <%s>",
|
||||
utils.SessionS, utils.KamailioAgent)
|
||||
}
|
||||
}
|
||||
@@ -240,7 +239,7 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
!cfg.sessionSCfg.Enabled {
|
||||
for _, smAstSMGConn := range cfg.asteriskAgentCfg.SessionSConns {
|
||||
if smAstSMGConn.Address == utils.MetaInternal {
|
||||
return fmt.Errorf("%s not enabled but referenced by %s",
|
||||
return fmt.Errorf("<%s> not enabled but referenced by <%s>",
|
||||
utils.SessionS, utils.AsteriskAgent)
|
||||
}
|
||||
}
|
||||
@@ -256,12 +255,13 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
!cfg.sessionSCfg.Enabled {
|
||||
for _, daSMGConn := range cfg.diameterAgentCfg.SessionSConns {
|
||||
if daSMGConn.Address == utils.MetaInternal {
|
||||
return fmt.Errorf("%s not enabled but referenced by %s",
|
||||
return fmt.Errorf("<%s> not enabled but referenced by <%s>",
|
||||
utils.SessionS, utils.DiameterAgent)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//Radius Agent
|
||||
if cfg.radiusAgentCfg.Enabled {
|
||||
if len(cfg.radiusAgentCfg.SessionSConns) == 0 {
|
||||
return fmt.Errorf("<%s> no %s connections defined",
|
||||
@@ -271,12 +271,13 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
!cfg.sessionSCfg.Enabled {
|
||||
for _, raSMGConn := range cfg.radiusAgentCfg.SessionSConns {
|
||||
if raSMGConn.Address == utils.MetaInternal {
|
||||
return fmt.Errorf("%s not enabled but referenced by %s",
|
||||
return fmt.Errorf("<%s> not enabled but referenced by <%s>",
|
||||
utils.SessionS, utils.RadiusAgent)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//DNS Agent
|
||||
if cfg.dnsAgentCfg.Enabled {
|
||||
if len(cfg.dnsAgentCfg.SessionSConns) == 0 {
|
||||
return fmt.Errorf("<%s> no %s connections defined",
|
||||
@@ -286,7 +287,7 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
!cfg.sessionSCfg.Enabled {
|
||||
for _, sSConn := range cfg.dnsAgentCfg.SessionSConns {
|
||||
if sSConn.Address == utils.MetaInternal {
|
||||
return fmt.Errorf("%s not enabled but referenced by %s", utils.SessionS, utils.DNSAgent)
|
||||
return fmt.Errorf("<%s> not enabled but referenced by <%s>", utils.SessionS, utils.DNSAgent)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -298,17 +299,15 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
cfg.sessionSCfg.Enabled {
|
||||
for _, sSConn := range httpAgentCfg.SessionSConns {
|
||||
if sSConn.Address == utils.MetaInternal {
|
||||
return errors.New("SessionS not enabled but referenced by HttpAgent component")
|
||||
return fmt.Errorf("<%s> not enabled but referenced by <%s> component", utils.SessionS, utils.HTTPAgent)
|
||||
}
|
||||
}
|
||||
}
|
||||
if !utils.SliceHasMember([]string{utils.MetaUrl, utils.MetaXml}, httpAgentCfg.RequestPayload) {
|
||||
return fmt.Errorf("<%s> unsupported request payload %s",
|
||||
utils.HTTPAgent, httpAgentCfg.RequestPayload)
|
||||
return fmt.Errorf("<%s> unsupported request payload %s", utils.HTTPAgent, httpAgentCfg.RequestPayload)
|
||||
}
|
||||
if !utils.SliceHasMember([]string{utils.MetaTextPlain, utils.MetaXml}, httpAgentCfg.ReplyPayload) {
|
||||
return fmt.Errorf("<%s> unsupported reply payload %s",
|
||||
utils.HTTPAgent, httpAgentCfg.ReplyPayload)
|
||||
return fmt.Errorf("<%s> unsupported reply payload %s", utils.HTTPAgent, httpAgentCfg.ReplyPayload)
|
||||
}
|
||||
}
|
||||
if cfg.attributeSCfg.Enabled {
|
||||
@@ -320,7 +319,7 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
(cfg.attributeSCfg == nil || !cfg.attributeSCfg.Enabled) {
|
||||
for _, connCfg := range cfg.chargerSCfg.AttributeSConns {
|
||||
if connCfg.Address == utils.MetaInternal {
|
||||
return errors.New("AttributeS not enabled but requested by ChargerS component.")
|
||||
return fmt.Errorf("<%s> not enabled but requested by <%s> component.", utils.AttributeS, utils.ChargerS)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -328,7 +327,7 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
if cfg.resourceSCfg.Enabled && !cfg.thresholdSCfg.Enabled && !cfg.dispatcherSCfg.Enabled {
|
||||
for _, connCfg := range cfg.resourceSCfg.ThresholdSConns {
|
||||
if connCfg.Address == utils.MetaInternal {
|
||||
return errors.New("ThresholdS not enabled but requested by ResourceS component.")
|
||||
return fmt.Errorf("<%s> not enabled but requested by <%s> component.", utils.ThresholdS, utils.ResourceS)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -336,7 +335,7 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
if cfg.statsCfg.Enabled && !cfg.thresholdSCfg.Enabled && !cfg.dispatcherSCfg.Enabled {
|
||||
for _, connCfg := range cfg.statsCfg.ThresholdSConns {
|
||||
if connCfg.Address == utils.MetaInternal {
|
||||
return errors.New("ThresholdS not enabled but requested by StatS component.")
|
||||
return fmt.Errorf("<%s> not enabled but requested by <%s> component.", utils.ThresholdS, utils.StatService)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -345,21 +344,21 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
if !cfg.resourceSCfg.Enabled {
|
||||
for _, connCfg := range cfg.supplierSCfg.ResourceSConns {
|
||||
if connCfg.Address == utils.MetaInternal {
|
||||
return errors.New("ResourceS not enabled but requested by SupplierS component.")
|
||||
return fmt.Errorf("<%s> not enabled but requested by <%s> component.", utils.ResourceS, utils.SupplierS)
|
||||
}
|
||||
}
|
||||
}
|
||||
if !cfg.statsCfg.Enabled {
|
||||
for _, connCfg := range cfg.supplierSCfg.StatSConns {
|
||||
if connCfg.Address == utils.MetaInternal {
|
||||
return errors.New("StatS not enabled but requested by SupplierS component.")
|
||||
return fmt.Errorf("<%s> not enabled but requested by <%s> component.", utils.StatService, utils.SupplierS)
|
||||
}
|
||||
}
|
||||
}
|
||||
if !cfg.attributeSCfg.Enabled {
|
||||
for _, connCfg := range cfg.supplierSCfg.AttributeSConns {
|
||||
if connCfg.Address == utils.MetaInternal {
|
||||
return errors.New("AttributeS not enabled but requested by SupplierS component.")
|
||||
return fmt.Errorf("<%s> not enabled but requested by <%s> component.", utils.AttributeS, utils.SupplierS)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -368,7 +367,7 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
if !cfg.cdrsCfg.Enabled && !cfg.dispatcherSCfg.Enabled {
|
||||
for _, connCfg := range cfg.schedulerCfg.CDRsConns {
|
||||
if connCfg.Address == utils.MetaInternal {
|
||||
return errors.New("CDR Server not enabled but requested by Scheduler")
|
||||
return fmt.Errorf("%s Server not enabled but requested by %s", utils.CDR, utils.SchedulerS)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -377,7 +376,7 @@ func (cfg *CGRConfig) checkConfigSanity() error {
|
||||
if !cfg.sessionSCfg.Enabled {
|
||||
for _, connCfg := range cfg.ersCfg.SessionSConns {
|
||||
if connCfg.Address == utils.MetaInternal {
|
||||
return errors.New("SessionS not enabled but requested by EventReader component.")
|
||||
return fmt.Errorf("<%s> not enabled but requested by EventReader component.", utils.SessionS)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,3 +165,526 @@ func TestConfigSanityCDRC(t *testing.T) {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigSanityLoaders(t *testing.T) {
|
||||
cfg, _ = NewDefaultCGRConfig()
|
||||
cfg.loaderCfg = LoaderSCfgs{
|
||||
&LoaderSCfg{
|
||||
Enabled: true,
|
||||
TpInDir: "/not/exist",
|
||||
Data: []*LoaderDataType{
|
||||
&LoaderDataType{
|
||||
Type: "strsdfing",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
expected := "<LoaderS> Nonexistent folder: /not/exist"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.loaderCfg = LoaderSCfgs{
|
||||
&LoaderSCfg{
|
||||
Enabled: true,
|
||||
TpInDir: "/usr/share/cgrates",
|
||||
TpOutDir: "/usr/share/cgrates",
|
||||
Data: []*LoaderDataType{
|
||||
&LoaderDataType{
|
||||
Type: "wrongtype",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
expected = "<LoaderS> unsupported data type wrongtype"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.loaderCfg = LoaderSCfgs{
|
||||
&LoaderSCfg{
|
||||
Enabled: true,
|
||||
TpInDir: "/usr/share/cgrates",
|
||||
TpOutDir: "/usr/share/cgrates",
|
||||
Data: []*LoaderDataType{
|
||||
&LoaderDataType{
|
||||
Type: utils.MetaStats,
|
||||
Fields: []*FCTemplate{
|
||||
&FCTemplate{
|
||||
Type: utils.MetaStats,
|
||||
Tag: "test1",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
expected = "<LoaderS> invalid field type *stats for *stats at test1"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigSanitySessionS(t *testing.T) {
|
||||
cfg, _ = NewDefaultCGRConfig()
|
||||
cfg.sessionSCfg = &SessionSCfg{
|
||||
Enabled: true,
|
||||
TerminateAttempts: 0,
|
||||
}
|
||||
expected := "<SessionS> 'terminate_attempts' should be at least 1"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.sessionSCfg.TerminateAttempts = 1
|
||||
|
||||
cfg.sessionSCfg.ChargerSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<SessionS> ChargerS not enabled"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.chargerSCfg.Enabled = true
|
||||
|
||||
cfg.sessionSCfg.RALsConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<SessionS> RALs not enabled but requested by SMGeneric component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.ralsCfg.Enabled = true
|
||||
|
||||
cfg.sessionSCfg.ResSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<SessionS> ResourceS not enabled but requested by SMGeneric component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.resourceSCfg.Enabled = true
|
||||
|
||||
cfg.sessionSCfg.ThreshSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<SessionS> ThresholdS not enabled but requested by SMGeneric component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.thresholdSCfg.Enabled = true
|
||||
|
||||
cfg.sessionSCfg.StatSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<SessionS> Stats not enabled but requested by SMGeneric component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.statsCfg.Enabled = true
|
||||
|
||||
cfg.sessionSCfg.SupplSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<SessionS> SupplierS not enabled but requested by SMGeneric component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.supplierSCfg.Enabled = true
|
||||
|
||||
cfg.sessionSCfg.AttrSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<SessionS> AttributeS not enabled but requested by SMGeneric component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.attributeSCfg.Enabled = true
|
||||
|
||||
cfg.sessionSCfg.CDRsConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<SessionS> CDRS not enabled but referenced by SMGeneric component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.cdrsCfg.Enabled = true
|
||||
|
||||
cfg.cacheCfg[utils.CacheClosedSessions].Limit = 0
|
||||
expected = "<CacheS> *closed_sessions needs to be != 0, received: 0"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestConfigSanityFreeSWITCHAgent(t *testing.T) {
|
||||
cfg, _ = NewDefaultCGRConfig()
|
||||
cfg.fsAgentCfg = &FsAgentCfg{
|
||||
Enabled: true,
|
||||
}
|
||||
|
||||
expected := "<FreeSWITCHAgent> no SessionS connections defined"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.fsAgentCfg = &FsAgentCfg{
|
||||
Enabled: true,
|
||||
SessionSConns: []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
},
|
||||
}
|
||||
expected = "<SessionS> not enabled but referenced by <FreeSWITCHAgent>"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigSanityKamailioAgent(t *testing.T) {
|
||||
cfg, _ = NewDefaultCGRConfig()
|
||||
cfg.kamAgentCfg = &KamAgentCfg{
|
||||
Enabled: true,
|
||||
}
|
||||
expected := "<KamailioAgent> no SessionS connections defined"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.kamAgentCfg.SessionSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<SessionS> not enabled but referenced by <KamailioAgent>"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigSanityAsteriskAgent(t *testing.T) {
|
||||
cfg, _ = NewDefaultCGRConfig()
|
||||
cfg.asteriskAgentCfg = &AsteriskAgentCfg{
|
||||
Enabled: true,
|
||||
}
|
||||
expected := "<AsteriskAgent> no SessionS connections defined"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.asteriskAgentCfg.SessionSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<SessionS> not enabled but referenced by <AsteriskAgent>"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigSanityDAgent(t *testing.T) {
|
||||
cfg, _ = NewDefaultCGRConfig()
|
||||
cfg.diameterAgentCfg = &DiameterAgentCfg{
|
||||
Enabled: true,
|
||||
}
|
||||
expected := "<DiameterAgent> no SessionS connections defined"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.diameterAgentCfg.SessionSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<SessionS> not enabled but referenced by <DiameterAgent>"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigSanityRadiusAgent(t *testing.T) {
|
||||
cfg, _ = NewDefaultCGRConfig()
|
||||
cfg.radiusAgentCfg = &RadiusAgentCfg{
|
||||
Enabled: true,
|
||||
}
|
||||
expected := "<RadiusAgent> no SessionS connections defined"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.radiusAgentCfg.SessionSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<SessionS> not enabled but referenced by <RadiusAgent>"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigSanityDNSAgent(t *testing.T) {
|
||||
cfg, _ = NewDefaultCGRConfig()
|
||||
cfg.dnsAgentCfg = &DNSAgentCfg{
|
||||
Enabled: true,
|
||||
}
|
||||
expected := "<DNSAgent> no SessionS connections defined"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.dnsAgentCfg.SessionSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<SessionS> not enabled but referenced by <DNSAgent>"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigSanityHTTPAgent(t *testing.T) {
|
||||
cfg, _ = NewDefaultCGRConfig()
|
||||
cfg.sessionSCfg.Enabled = true
|
||||
cfg.httpAgentCfg = HttpAgentCfgs{
|
||||
&HttpAgentCfg{
|
||||
SessionSConns: []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
expected := "<SessionS> not enabled but referenced by <HTTPAgent> component"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.sessionSCfg.Enabled = false
|
||||
|
||||
cfg.httpAgentCfg = HttpAgentCfgs{
|
||||
&HttpAgentCfg{
|
||||
RequestPayload: "test",
|
||||
},
|
||||
}
|
||||
expected = "<HTTPAgent> unsupported request payload test"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.httpAgentCfg = HttpAgentCfgs{
|
||||
&HttpAgentCfg{
|
||||
RequestPayload: utils.MetaUrl,
|
||||
ReplyPayload: "test",
|
||||
},
|
||||
}
|
||||
expected = "<HTTPAgent> unsupported reply payload test"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.httpAgentCfg[0].ReplyPayload = utils.MetaTextPlain
|
||||
|
||||
cfg.attributeSCfg = &AttributeSCfg{
|
||||
Enabled: true,
|
||||
ProcessRuns: 0,
|
||||
}
|
||||
expected = "<AttributeS> process_runs needs to be bigger than 0"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.attributeSCfg = &AttributeSCfg{
|
||||
ProcessRuns: 1,
|
||||
Enabled: false,
|
||||
}
|
||||
|
||||
cfg.chargerSCfg.Enabled = true
|
||||
cfg.chargerSCfg.AttributeSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<AttributeS> not enabled but requested by <ChargerS> component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigSanityResourceLimiter(t *testing.T) {
|
||||
cfg, _ = NewDefaultCGRConfig()
|
||||
cfg.resourceSCfg = &ResourceSConfig{
|
||||
Enabled: true,
|
||||
ThresholdSConns: []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
},
|
||||
}
|
||||
expected := "<ThresholdS> not enabled but requested by <ResourceS> component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigSanityStatS(t *testing.T) {
|
||||
cfg, _ = NewDefaultCGRConfig()
|
||||
cfg.statsCfg = &StatSCfg{
|
||||
Enabled: true,
|
||||
ThresholdSConns: []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
},
|
||||
}
|
||||
expected := "<ThresholdS> not enabled but requested by <StatS> component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigSanitySupplierS(t *testing.T) {
|
||||
cfg, _ = NewDefaultCGRConfig()
|
||||
cfg.supplierSCfg.Enabled = true
|
||||
|
||||
cfg.supplierSCfg.ResourceSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected := "<ResourceS> not enabled but requested by <SupplierS> component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.resourceSCfg.Enabled = true
|
||||
|
||||
cfg.supplierSCfg.StatSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<StatS> not enabled but requested by <SupplierS> component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.statsCfg.Enabled = true
|
||||
|
||||
cfg.supplierSCfg.AttributeSConns = []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
}
|
||||
expected = "<AttributeS> not enabled but requested by <SupplierS> component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigSanityScheduler(t *testing.T) {
|
||||
cfg, _ = NewDefaultCGRConfig()
|
||||
cfg.schedulerCfg = &SchedulerCfg{
|
||||
Enabled: true,
|
||||
CDRsConns: []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
},
|
||||
}
|
||||
expected := "CDR Server not enabled but requested by SchedulerS"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func TestConfigSanityEventReader(t *testing.T) {
|
||||
cfg, _ = NewDefaultCGRConfig()
|
||||
cfg.ersCfg = &ERsCfg{
|
||||
Enabled: true,
|
||||
SessionSConns: []*RemoteHost{
|
||||
&RemoteHost{
|
||||
Address: utils.MetaInternal,
|
||||
},
|
||||
},
|
||||
}
|
||||
expected := "<SessionS> not enabled but requested by EventReader component."
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.sessionSCfg.Enabled = true
|
||||
|
||||
cfg.ersCfg.Readers = []*EventReaderCfg{
|
||||
&EventReaderCfg{
|
||||
ID: "test",
|
||||
Type: "wrongtype",
|
||||
},
|
||||
}
|
||||
expected = "<ERs> unsupported data type: wrongtype for reader with ID: test"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.ersCfg.Readers = []*EventReaderCfg{
|
||||
&EventReaderCfg{
|
||||
ID: "test2",
|
||||
Type: utils.MetaFileCSV,
|
||||
ProcessedPath: "not/a/path",
|
||||
},
|
||||
}
|
||||
expected = "<ERs> Nonexistent folder: not/a/path for reader with ID: test2"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
|
||||
cfg.ersCfg.Readers = []*EventReaderCfg{
|
||||
&EventReaderCfg{
|
||||
ID: "test3",
|
||||
Type: utils.MetaFileCSV,
|
||||
ProcessedPath: "/usr/share/cgrates",
|
||||
SourcePath: "/usr/share/cgrates",
|
||||
FieldSep: "",
|
||||
},
|
||||
}
|
||||
expected = "<ERs> empty FieldSep for reader with ID: test3"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
cfg.ersCfg.Readers[0].FieldSep = utils.InInFieldSep
|
||||
|
||||
cfg.ersCfg.Readers[0].ID = "test4"
|
||||
cfg.ersCfg.Readers[0].Type = utils.MetaKafkajsonMap
|
||||
cfg.ersCfg.Readers[0].RunDelay = 1
|
||||
expected = "<ERs> RunDelay field can not be bigger than zero for reader with ID: test4"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestConfigSanityStorDB(t *testing.T) {
|
||||
cfg, _ = NewDefaultCGRConfig()
|
||||
cfg.storDbCfg = &StorDbCfg{
|
||||
Type: utils.POSTGRES,
|
||||
SSLMode: "wrongSSLMode",
|
||||
}
|
||||
expected := "<stor_db> Unsuported sslmode for storDB"
|
||||
if err := cfg.checkConfigSanity(); err == nil || err.Error() != expected {
|
||||
t.Errorf("Expecting: %+q received: %+q", expected, err)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user