extended parseFilter tests

This commit is contained in:
Daniel Poßmann
2022-07-07 11:53:51 +02:00
parent 70055b0682
commit 4fa13c9b87

View File

@@ -1,8 +1,10 @@
package zabbix package zabbix
import ( import (
"reflect"
"testing" "testing"
"github.com/dlclark/regexp2"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
@@ -61,26 +63,43 @@ func TestParseFilter(t *testing.T) {
tests := []struct { tests := []struct {
name string name string
filter string filter string
want *regexp2.Regexp
expectNoError bool expectNoError bool
expectedError string expectedError string
}{ }{
{ {
name: "Simple regexp", name: "Simple regexp",
filter: "/.*/", filter: "/.*/",
want: regexp2.MustCompile(".*", regexp2.RE2),
expectNoError: true, expectNoError: true,
expectedError: "", expectedError: "",
}, },
{ {
name: "Not a regex", name: "Not a regex",
filter: "/var/lib/mysql: Total space", filter: "/var/lib/mysql: Total space",
want: nil,
expectNoError: true, expectNoError: true,
expectedError: "", expectedError: "",
}, },
{
name: "Regexp with modifier",
filter: "/.*/i",
want: regexp2.MustCompile("(?i).*", regexp2.RE2),
expectNoError: true,
expectedError: "",
},
{
name: "Regexp with unsupported modifier",
filter: "/.*/1",
want: nil,
expectNoError: false,
expectedError: "",
},
} }
for _, tt := range tests { for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) { t.Run(tt.name, func(t *testing.T) {
_, err := parseFilter(tt.filter) got, err := parseFilter(tt.filter)
if tt.expectNoError { if tt.expectNoError {
assert.NoError(t, err) assert.NoError(t, err)
} }
@@ -88,6 +107,9 @@ func TestParseFilter(t *testing.T) {
assert.Error(t, err) assert.Error(t, err)
assert.EqualError(t, err, tt.expectedError) assert.EqualError(t, err, tt.expectedError)
} }
if !reflect.DeepEqual(got, tt.want) {
t.Errorf("parseFilter() = %v, want %v", got, tt.want)
}
}) })
} }
} }