add test for exprhelpers
This commit is contained in:
parent
2901cfaa2f
commit
217aaee414
3 changed files with 120 additions and 0 deletions
115
pkg/exprhelpers/expr_test.go
Normal file
115
pkg/exprhelpers/expr_test.go
Normal file
|
@ -0,0 +1,115 @@
|
|||
package exprhelpers
|
||||
|
||||
import (
|
||||
"log"
|
||||
"testing"
|
||||
|
||||
"github.com/antonmedv/expr"
|
||||
"gotest.tools/assert"
|
||||
)
|
||||
|
||||
var (
|
||||
TestFolder = "tests"
|
||||
)
|
||||
|
||||
func TestRegexpInFile(t *testing.T) {
|
||||
if err := Init(); err != nil {
|
||||
log.Fatalf(err.Error())
|
||||
}
|
||||
|
||||
err := FileInit(TestFolder, "test_data_re.txt", "regex")
|
||||
if err != nil {
|
||||
log.Fatalf(err.Error())
|
||||
}
|
||||
|
||||
tests := []struct {
|
||||
filter string
|
||||
result bool
|
||||
err error
|
||||
}{
|
||||
{
|
||||
filter: "RegexpInFile('crowdsec', 'test_data_re.txt')",
|
||||
result: false,
|
||||
err: nil,
|
||||
},
|
||||
{
|
||||
filter: "RegexpInFile('Crowdsec', 'test_data_re.txt')",
|
||||
result: true,
|
||||
err: nil,
|
||||
},
|
||||
{
|
||||
filter: "RegexpInFile('test Crowdsec', 'test_data_re.txt')",
|
||||
result: true,
|
||||
err: nil,
|
||||
},
|
||||
{
|
||||
filter: "RegexpInFile('test CrowdSec', 'test_data_re.txt')",
|
||||
result: true,
|
||||
err: nil,
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
compiledFilter, err := expr.Compile(test.filter, expr.Env(GetExprEnv(map[string]interface{}{})))
|
||||
if err != nil {
|
||||
log.Fatalf(err.Error())
|
||||
}
|
||||
log.Printf("Running filter : %s", test.filter)
|
||||
result, err := expr.Run(compiledFilter, GetExprEnv(map[string]interface{}{}))
|
||||
if err != nil {
|
||||
log.Fatalf(err.Error())
|
||||
}
|
||||
assert.Equal(t, test.result, result)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFile(t *testing.T) {
|
||||
if err := Init(); err != nil {
|
||||
log.Fatalf(err.Error())
|
||||
}
|
||||
|
||||
err := FileInit(TestFolder, "test_data.txt", "")
|
||||
if err != nil {
|
||||
log.Fatalf(err.Error())
|
||||
}
|
||||
|
||||
tests := []struct {
|
||||
filter string
|
||||
result bool
|
||||
err error
|
||||
}{
|
||||
{
|
||||
filter: "'Crowdsec' in File('test_data.txt')",
|
||||
result: true,
|
||||
err: nil,
|
||||
},
|
||||
{
|
||||
filter: "'CrowdSecurity' in File('test_data.txt')",
|
||||
result: false,
|
||||
err: nil,
|
||||
},
|
||||
{
|
||||
filter: "'Crowdsecurity' in File('test_data.txt')",
|
||||
result: true,
|
||||
err: nil,
|
||||
},
|
||||
{
|
||||
filter: "'test' in File('test_data.txt')",
|
||||
result: false,
|
||||
err: nil,
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
compiledFilter, err := expr.Compile(test.filter, expr.Env(GetExprEnv(map[string]interface{}{})))
|
||||
if err != nil {
|
||||
log.Fatalf(err.Error())
|
||||
}
|
||||
log.Printf("Running filter : %s", test.filter)
|
||||
result, err := expr.Run(compiledFilter, GetExprEnv(map[string]interface{}{}))
|
||||
if err != nil {
|
||||
log.Fatalf(err.Error())
|
||||
}
|
||||
assert.Equal(t, test.result, result)
|
||||
}
|
||||
}
|
3
pkg/exprhelpers/tests/test_data.txt
Normal file
3
pkg/exprhelpers/tests/test_data.txt
Normal file
|
@ -0,0 +1,3 @@
|
|||
Crowdsec
|
||||
Crowdsecurity
|
||||
CrowdSec
|
2
pkg/exprhelpers/tests/test_data_re.txt
Normal file
2
pkg/exprhelpers/tests/test_data_re.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
.*Crowdsec.*
|
||||
.*Crowd[sS]ec.*
|
Loading…
Add table
Reference in a new issue