@@ -10,48 +10,48 @@ func TestParser(t *testing.T) {
1010 t .Parallel ()
1111
1212 t .Run ("MissingLogicalOperatorsAfterConditionsAreDetected" , func (t * testing.T ) {
13- _ , err := Parse ("(a=b|c=d)e=f" )
13+ _ , err := ParseFilter ("(a=b|c=d)e=f" )
1414
1515 expected := "invalid filter '(a=b|c=d)e=f', unexpected e at pos 10: Expected logical operator"
1616 assert .EqualError (t , err , expected , "Errors should be the same" )
1717 })
1818
1919 t .Run ("MissingLogicalOperatorsAfterOperatorsAreDetected" , func (t * testing.T ) {
20- _ , err := Parse ("(a=b|c=d|)e=f" )
20+ _ , err := ParseFilter ("(a=b|c=d|)e=f" )
2121
2222 expected := "invalid filter '(a=b|c=d|)e=f', unexpected e at pos 11: Expected logical operator"
2323 assert .EqualError (t , err , expected , "Errors should be the same" )
2424 })
2525
2626 t .Run ("ParserIdentifiesInvalidExpression" , func (t * testing.T ) {
27- _ , err := Parse ("col=(" )
27+ _ , err := ParseFilter ("col=(" )
2828 assert .EqualError (t , err , "invalid filter 'col=(', unexpected ( at pos 5" , "Errors should be the same" )
2929
30- _ , err = Parse ("(((x=a)&y=b" )
30+ _ , err = ParseFilter ("(((x=a)&y=b" )
3131 assert .EqualError (t , err , "invalid filter '(((x=a)&y=b', missing 2 closing ')' at pos 11" , "Errors should be the same" )
3232
33- _ , err = Parse ("(x=a)&y=b)" )
33+ _ , err = ParseFilter ("(x=a)&y=b)" )
3434 assert .EqualError (t , err , "invalid filter '(x=a)&y=b)', unexpected ) at pos 10" , "Errors should be the same" )
3535
36- _ , err = Parse ("!(&" )
36+ _ , err = ParseFilter ("!(&" )
3737 assert .EqualError (t , err , "invalid filter '!(&', unexpected & at pos 3" , "Errors should be the same" )
3838
39- _ , err = Parse ("!(!&" )
39+ _ , err = ParseFilter ("!(!&" )
4040 assert .EqualError (t , err , "invalid filter '!(!&', unexpected & at pos 4: operator level 1" , "Errors should be the same" )
4141
42- _ , err = Parse ("!(|test" )
42+ _ , err = ParseFilter ("!(|test" )
4343 assert .EqualError (t , err , "invalid filter '!(|test', unexpected | at pos 3" , "Errors should be the same" )
4444
45- _ , err = Parse ("foo&bar=(te(st)" )
45+ _ , err = ParseFilter ("foo&bar=(te(st)" )
4646 assert .EqualError (t , err , "invalid filter 'foo&bar=(te(st)', unexpected ( at pos 9" , "Errors should be the same" )
4747
48- _ , err = Parse ("foo&bar=te(st)" )
48+ _ , err = ParseFilter ("foo&bar=te(st)" )
4949 assert .EqualError (t , err , "invalid filter 'foo&bar=te(st)', unexpected ( at pos 11" , "Errors should be the same" )
5050
51- _ , err = Parse ("foo&bar=test)" )
51+ _ , err = ParseFilter ("foo&bar=test)" )
5252 assert .EqualError (t , err , "invalid filter 'foo&bar=test)', unexpected ) at pos 13" , "Errors should be the same" )
5353
54- _ , err = Parse ("!()|&()&)" )
54+ _ , err = ParseFilter ("!()|&()&)" )
5555 assert .EqualError (t , err , "invalid filter '!()|&()&)', unexpected closing ')' at pos 9" , "Errors should be the same" )
5656 })
5757}
@@ -60,60 +60,61 @@ func TestFilter(t *testing.T) {
6060 t .Parallel ()
6161
6262 t .Run ("ParserIdentifiesAllKindOfFilters" , func (t * testing.T ) {
63- rule , err := Parse ("foo=bar" )
63+ rule , err := ParseFilter ("foo=bar" )
6464 assert .Nil (t , err , "There should be no errors but got: %s" , err )
6565 assert .IsType (t , & Equal {}, rule )
6666
67- rule , err = Parse ("foo!=bar" )
67+ rule , err = ParseFilter ("foo!=bar" )
6868 assert .Nil (t , err , "There should be no errors but got: %s" , err )
6969 assert .IsType (t , & UnEqual {}, rule )
7070
71- rule , err = Parse ("foo=bar*" )
71+ rule , err = ParseFilter ("foo=bar*" )
7272 assert .Nil (t , err , "There should be no errors but got: %s" , err )
7373 assert .IsType (t , & Like {}, rule )
7474
75- rule , err = Parse ("foo!=bar*" )
75+ rule , err = ParseFilter ("foo!=bar*" )
7676 assert .Nil (t , err , "There should be no errors but got: %s" , err )
7777 assert .IsType (t , & Unlike {}, rule )
7878
79- rule , err = Parse ("foo<bar" )
79+ rule , err = ParseFilter ("foo<bar" )
8080 assert .Nil (t , err , "There should be no errors but got: %s" , err )
8181 assert .IsType (t , & LessThan {}, rule )
8282
83- rule , err = Parse ("foo<=bar" )
83+ rule , err = ParseFilter ("foo<=bar" )
8484 assert .Nil (t , err , "There should be no errors but got: %s" , err )
8585 assert .IsType (t , & LessThanOrEqual {}, rule )
8686
87- rule , err = Parse ("foo>bar" )
87+ rule , err = ParseFilter ("foo>bar" )
8888 assert .Nil (t , err , "There should be no errors but got: %s" , err )
8989 assert .IsType (t , & GreaterThan {}, rule )
9090
91- rule , err = Parse ("foo>=bar" )
91+ rule , err = ParseFilter ("foo>=bar" )
9292 assert .Nil (t , err , "There should be no errors but got: %s" , err )
9393 assert .IsType (t , & GreaterThanOrEqual {}, rule )
9494
95- rule , err = Parse ("foo=bar&bar=foo" )
95+ rule , err = ParseFilter ("foo=bar&bar=foo" )
9696 assert .Nil (t , err , "There should be no errors but got: %s" , err )
9797 assert .IsType (t , & All {}, rule )
9898
99- rule , err = Parse ("foo=bar|bar=foo" )
99+ rule , err = ParseFilter ("foo=bar|bar=foo" )
100100 assert .Nil (t , err , "There should be no errors but got: %s" , err )
101101 assert .IsType (t , & Any {}, rule )
102102
103- rule , err = Parse ("!(foo=bar|bar=foo)" )
103+ rule , err = ParseFilter ("!(foo=bar|bar=foo)" )
104104 assert .Nil (t , err , "There should be no errors but got: %s" , err )
105105 assert .IsType (t , & None {}, rule )
106106
107- rule , err = Parse ("!foo" )
107+ rule , err = ParseFilter ("!foo" )
108108 assert .Nil (t , err , "There should be no errors but got: %s" , err )
109109
110- assert .Equal (t , & None {rules : []Filter {NewExists ("foo" )}}, rule )
110+ exists , _ := NewExists ("foo" )
111+ assert .Equal (t , & None {rules : []Filter {exists }}, rule )
111112
112- rule , err = Parse ("foo" )
113+ rule , err = ParseFilter ("foo" )
113114 assert .Nil (t , err , "There should be no errors but got: %s" , err )
114- assert .Equal (t , NewExists ( "foo" ) , rule )
115+ assert .Equal (t , exists , rule )
115116
116- rule , err = Parse ("!(foo=bar|bar=foo)&(foo=bar|bar=foo)" )
117+ rule , err = ParseFilter ("!(foo=bar|bar=foo)&(foo=bar|bar=foo)" )
117118 assert .Nil (t , err , "There should be no errors but got: %s" , err )
118119
119120 expected := & All {rules : []Filter {
@@ -130,31 +131,31 @@ func TestFilter(t *testing.T) {
130131 })
131132
132133 t .Run ("ParserIdentifiesSingleCondition" , func (t * testing.T ) {
133- rule , err := Parse ("foo=bar" )
134+ rule , err := ParseFilter ("foo=bar" )
134135 assert .Nil (t , err , "There should be no errors but got: %s" , err )
135136
136137 expected := & Equal {column : "foo" , value : "bar" }
137138 assert .Equal (t , expected , rule , "Parser doesn't parse single condition correctly" )
138139 })
139140
140141 t .Run ("UrlEncodedFilterExpression" , func (t * testing.T ) {
141- rule , err := Parse ("col%3Cumn<val%3Cue" )
142+ rule , err := ParseFilter ("col%3Cumn<val%3Cue" )
142143 assert .Nil (t , err , "There should be no errors but got: %s" , err )
143144 assert .Equal (t , & LessThan {column : "col<umn" , value : "val<ue" }, rule )
144145
145- rule , err = Parse ("col%7Cumn=val%7Cue" )
146+ rule , err = ParseFilter ("col%7Cumn=val%7Cue" )
146147 assert .Nil (t , err , "There should be no errors but got: %s" , err )
147148 assert .Equal (t , & Equal {column : "col|umn" , value : "val|ue" }, rule )
148149
149- rule , err = Parse ("col%26umn<=val%26ue" )
150+ rule , err = ParseFilter ("col%26umn<=val%26ue" )
150151 assert .Nil (t , err , "There should be no errors but got: %s" , err )
151152 assert .Equal (t , & LessThanOrEqual {column : "col&umn" , value : "val&ue" }, rule )
152153
153- rule , err = Parse ("col%28umn>val%28ue" )
154+ rule , err = ParseFilter ("col%28umn>val%28ue" )
154155 assert .Nil (t , err , "There should be no errors but got: %s" , err )
155156 assert .Equal (t , & GreaterThan {column : "col(umn" , value : "val(ue" }, rule )
156157
157- rule , err = Parse ("col%29umn>=val%29ue" )
158+ rule , err = ParseFilter ("col%29umn>=val%29ue" )
158159 assert .Nil (t , err , "There should be no errors but got: %s" , err )
159160 assert .Equal (t , & GreaterThanOrEqual {column : "col)umn" , value : "val)ue" }, rule )
160161 })
@@ -193,7 +194,7 @@ func FuzzParser(f *testing.F) {
193194 f .Add ("col%29umn>val%29ue" )
194195
195196 f .Fuzz (func (t * testing.T , expr string ) {
196- _ , err := Parse (expr )
197+ _ , err := ParseFilter (expr )
197198
198199 if strings .Count (expr , "(" ) != strings .Count (expr , ")" ) {
199200 assert .Error (t , err )
0 commit comments