1package clickhouse 2 3import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7) 8 9type wmTest struct { 10 haystack string 11 needle string 12 expect bool 13} 14 15func checkMatch(haystack, needle string) bool { 16 m := newMatcher(needle) 17 for _, r := range []rune(haystack) { 18 if m.matchRune(r) { 19 return true 20 } 21 } 22 return false 23} 24 25func TestWordMatcher(t *testing.T) { 26 27 table := []wmTest{ 28 wmTest{"select * from test", "select", true}, 29 wmTest{"select * from test", "*", true}, 30 wmTest{"select * from test", "elect", true}, 31 wmTest{"select * from test", "zelect", false}, 32 wmTest{"select * from test", "sElEct", true}, 33 } 34 35 for _, test := range table { 36 assert.Equal(t, checkMatch(test.haystack, test.needle), test.expect, test.haystack) 37 } 38 39} 40