Coverage tests for ees

This commit is contained in:
nickolasdaniel
2021-03-23 14:59:18 +02:00
committed by Dan Christian Bogos
parent 6f8523a008
commit 93297dd445
2 changed files with 174 additions and 20 deletions

View File

@@ -297,3 +297,177 @@ func TestOpenDB3Err(t *testing.T) {
t.Errorf("Expected %v but received %v", errExpect, err)
}
}
func TestSQLExportEvent1(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
cgrCfg.EEsCfg().Exporters[0].Opts[utils.SQLTableName] = "expTable"
cgrCfg.EEsCfg().Exporters[0].Opts[utils.SQLDBName] = "cgrates"
cgrCfg.EEsCfg().Exporters[0].ExportPath = `mysql://cgrates:CGRateS.org@127.0.0.1:3306`
cgrEv := new(utils.CGREvent)
newIDb := engine.NewInternalDB(nil, nil, true)
newDM := engine.NewDataManager(newIDb, cgrCfg.CacheCfg(), nil)
filterS := engine.NewFilterS(cgrCfg, nil, newDM)
dc, err := newEEMetrics(utils.FirstNonEmpty(
"Local",
utils.EmptyString,
))
if err != nil {
t.Error(err)
}
sqlEe, err := NewSQLEe(cgrCfg, 0, filterS, dc)
if err != nil {
t.Error(err)
}
cgrEv.Event = map[string]interface{}{
"test": "string",
}
cgrCfg.EEsCfg().Exporters[0].Fields = []*config.FCTemplate{
{
Path: "*exp.1", Type: utils.MetaVariable,
Value: config.NewRSRParsersMustCompile("*req.field1", utils.InfieldSep),
},
{
Path: "*exp.2", Type: utils.MetaVariable,
Value: config.NewRSRParsersMustCompile("*req.field2", utils.InfieldSep),
},
}
for _, field := range cgrCfg.EEsCfg().Exporters[0].Fields {
field.ComputePath()
}
cgrCfg.EEsCfg().Exporters[0].ComputeFields()
if err := sqlEe.ExportEvent(cgrEv); err != nil {
t.Error(err)
}
sqlEe.OnEvicted("test", "test")
}
func TestSQLExportEvent2(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
cgrCfg.EEsCfg().Exporters[0].Opts[utils.SQLTableName] = "expTable"
cgrCfg.EEsCfg().Exporters[0].Opts[utils.SQLDBName] = "cgrates"
cgrCfg.EEsCfg().Exporters[0].ExportPath = `mysql://cgrates:CGRateS.org@127.0.0.1:3306`
cgrEv := new(utils.CGREvent)
newIDb := engine.NewInternalDB(nil, nil, true)
newDM := engine.NewDataManager(newIDb, cgrCfg.CacheCfg(), nil)
filterS := engine.NewFilterS(cgrCfg, nil, newDM)
dc, err := newEEMetrics(utils.FirstNonEmpty(
"Local",
utils.EmptyString,
))
if err != nil {
t.Error(err)
}
sqlEe, err := NewSQLEe(cgrCfg, 0, filterS, dc)
if err != nil {
t.Error(err)
}
cgrEv.Event = map[string]interface{}{
"test": "string",
}
cgrCfg.EEsCfg().Exporters[0].Fields = []*config.FCTemplate{
{
Path: "*exp.*row", Type: utils.MetaVariable,
Value: config.NewRSRParsersMustCompile(utils.MetaRow, utils.InfieldSep),
},
{
Path: "*exp.2", Type: utils.MetaVariable,
Value: config.NewRSRParsersMustCompile("*req.field2", utils.InfieldSep),
},
}
for _, field := range cgrCfg.EEsCfg().Exporters[0].Fields {
field.ComputePath()
}
cgrCfg.EEsCfg().Exporters[0].ComputeFields()
if err := sqlEe.ExportEvent(cgrEv); err != nil {
t.Error(err)
}
sqlEe.OnEvicted("test", "test")
}
func TestSQLExportEvent3(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
cgrCfg.EEsCfg().Exporters[0].Opts[utils.SQLTableName] = "expTable"
cgrCfg.EEsCfg().Exporters[0].Opts[utils.SQLDBName] = "cgrates"
cgrCfg.EEsCfg().Exporters[0].ExportPath = `mysql://cgrates:CGRateS.org@127.0.0.1:3306`
cgrEv := new(utils.CGREvent)
newIDb := engine.NewInternalDB(nil, nil, true)
newDM := engine.NewDataManager(newIDb, cgrCfg.CacheCfg(), nil)
filterS := engine.NewFilterS(cgrCfg, nil, newDM)
dc, err := newEEMetrics(utils.FirstNonEmpty(
"Local",
utils.EmptyString,
))
if err != nil {
t.Error(err)
}
sqlEe, err := NewSQLEe(cgrCfg, 0, filterS, dc)
if err != nil {
t.Error(err)
}
cgrEv.Event = map[string]interface{}{
"test": "string",
}
cgrCfg.EEsCfg().Exporters[0].Fields = []*config.FCTemplate{
{
Path: "*exp.1", Type: utils.MetaVariable,
Value: config.NewRSRParsersMustCompile("*req.field1", utils.InfieldSep),
},
{
Path: "*exp.2", Type: utils.MetaVariable,
Value: config.NewRSRParsersMustCompile("*req.field2", utils.InfieldSep),
},
}
for _, field := range cgrCfg.EEsCfg().Exporters[0].Fields {
field.ComputePath()
}
cgrCfg.EEsCfg().Exporters[0].ComputeFields()
if err := sqlEe.ExportEvent(cgrEv); err != nil {
t.Error(err)
}
sqlEe.OnEvicted("test", "test")
}
func TestSQLExportEvent4(t *testing.T) {
cgrCfg := config.NewDefaultCGRConfig()
cgrCfg.EEsCfg().Exporters[0].Opts[utils.SQLTableName] = "expTable"
cgrCfg.EEsCfg().Exporters[0].Opts[utils.SQLDBName] = "cgrates"
cgrCfg.EEsCfg().Exporters[0].ExportPath = `mysql://cgrates:CGRateS.org@127.0.0.1:3306`
cgrEv := new(utils.CGREvent)
newIDb := engine.NewInternalDB(nil, nil, true)
newDM := engine.NewDataManager(newIDb, cgrCfg.CacheCfg(), nil)
filterS := engine.NewFilterS(cgrCfg, nil, newDM)
dc, err := newEEMetrics(utils.FirstNonEmpty(
"Local",
utils.EmptyString,
))
if err != nil {
t.Error(err)
}
sqlEe, err := NewSQLEe(cgrCfg, 0, filterS, dc)
if err != nil {
t.Error(err)
}
cgrEv.Event = map[string]interface{}{
"test": "string",
}
cgrCfg.EEsCfg().Exporters[0].Fields = []*config.FCTemplate{
{
Path: "*exp.1", Type: utils.MetaVariable,
Value: config.NewRSRParsersMustCompile("~*req.field1", utils.InfieldSep),
Filters: []string{"*wrong-type"},
},
{
Path: "*exp.2", Type: utils.MetaVariable,
Value: config.NewRSRParsersMustCompile("~*req.field2", utils.InfieldSep),
Filters: []string{"*wrong-type"},
},
}
for _, field := range cgrCfg.EEsCfg().Exporters[0].Fields {
field.ComputePath()
}
cgrCfg.EEsCfg().Exporters[0].ComputeFields()
errExpect := "inline parse error for string: <*wrong-type>"
if err := sqlEe.ExportEvent(cgrEv); err == nil || err.Error() != errExpect {
t.Errorf("Expected %v but received %v", errExpect, err)
}
}