extended parseFilter tests
This commit is contained in:
@@ -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)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user