55 lines
801 B
Go
55 lines
801 B
Go
|
package q
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
type StringAndBytes struct {
|
||
|
A string
|
||
|
B []byte
|
||
|
C int
|
||
|
}
|
||
|
|
||
|
func TestRe(t *testing.T) {
|
||
|
a := StringAndBytes{
|
||
|
A: "ABC",
|
||
|
B: []byte("234"),
|
||
|
}
|
||
|
|
||
|
b := StringAndBytes{
|
||
|
A: "123",
|
||
|
B: []byte("DEF"),
|
||
|
}
|
||
|
|
||
|
q := Re("A", "\\d+")
|
||
|
am, err := q.Match(&a)
|
||
|
require.NoError(t, err)
|
||
|
require.False(t, am)
|
||
|
|
||
|
bm, err := q.Match(&b)
|
||
|
require.NoError(t, err)
|
||
|
require.True(t, bm)
|
||
|
|
||
|
q = Re("B", "\\d+")
|
||
|
am, err = q.Match(&a)
|
||
|
require.NoError(t, err)
|
||
|
require.True(t, am)
|
||
|
|
||
|
bm, err = q.Match(&b)
|
||
|
require.NoError(t, err)
|
||
|
require.False(t, bm)
|
||
|
|
||
|
// Field C is int, regexp not supported
|
||
|
q = Re("C", "\\d+")
|
||
|
_, err = q.Match(&b)
|
||
|
require.Error(t, err)
|
||
|
|
||
|
// Invalid regexp
|
||
|
q = Re("A", "\\d++")
|
||
|
_, err = q.Match(&b)
|
||
|
require.Error(t, err)
|
||
|
|
||
|
}
|