@@ -20,36 +20,59 @@ func TestFilterParsing(t *testing.T) {
2020 values url.Values
2121 parser runtime.QueryParameterParser
2222 isError bool
23- expectedResult []string
23+ expectedResult [][] string
2424 }{
2525 {
2626 name : "test simple or" ,
2727 message : & assets.ListAssetsRequest {},
2828 values : map [string ][]string {"filters" : {"attributes.foo=2 OR attributes.bar=2" }},
2929 parser : & runtime.DefaultQueryParser {},
30- expectedResult : []string {"attributes.foo=2" , "attributes.bar=2" },
30+ expectedResult : [][]string {{"attributes.foo=2" , "attributes.bar=2" }},
31+ },
32+ {
33+ name : "test multiple or" ,
34+ message : & assets.ListAssetsRequest {},
35+ values : map [string ][]string {"filters" : {"attributes.foo=2 OR attributes.bar=2" , "attributes.foo=dd OR attributes.bar=77" }},
36+ parser : & runtime.DefaultQueryParser {},
37+ expectedResult : [][]string {{"attributes.foo=2" , "attributes.bar=2" }, {"attributes.foo=dd" , "attributes.bar=77" }},
3138 },
3239 {
3340 name : "test or *" ,
3441 message : & assets.ListAssetsRequest {},
3542 values : map [string ][]string {"filters" : {"attributes.foo=* oR attributes.bar=2" }},
3643 parser : & runtime.DefaultQueryParser {},
37- expectedResult : []string {"attributes.foo=*" , "attributes.bar=2" },
44+ expectedResult : [][] string {{ "attributes.foo=*" , "attributes.bar=2" } },
3845 },
3946 {
4047 name : "test or 5 terms" ,
4148 message : & assets.ListAssetsRequest {},
4249 values : map [string ][]string {"filters" : {"attributes.foo=2 or attributes.bar=2 OR attributes.lop=2 oR attributes.foo=22 Or attributes.bar=77" }},
4350 parser : & runtime.DefaultQueryParser {},
44- expectedResult : []string {"attributes.foo=2" , "attributes.bar=2" , "attributes.lop=2" , "attributes.foo=22" , "attributes.bar=77" },
51+ expectedResult : [][]string {{"attributes.foo=2" , "attributes.bar=2" , "attributes.lop=2" , "attributes.foo=22" , "attributes.bar=77" }},
52+ },
53+ {
54+ name : "test 4 filter terms" ,
55+ message : & assets.ListAssetsRequest {},
56+ values : map [string ][]string {"filters" : {
57+ "attributes.foo=2 or attributes.bar=2 OR attributes.lop=2" ,
58+ "attribtues.basss=e88 oR attributes.foxo=22" ,
59+ "attribtues.ba=e oR attributes.foo=22 Or attributes.bar=77" ,
60+ "something=xx oR attributes.gg=22 Or attributes.bar=87" ,
61+ }},
62+ parser : & runtime.DefaultQueryParser {},
63+ expectedResult : [][]string {
64+ {"attributes.foo=2" , "attributes.bar=2" , "attributes.lop=2" },
65+ {"attribtues.basss=e88" , "attributes.foxo=22" },
66+ {"attribtues.ba=e" , "attributes.foo=22" , "attributes.bar=77" },
67+ {"something=xx" , "attributes.gg=22" , "attributes.bar=87" }},
4568 },
4669 {
4770 name : "test bad filter" ,
4871 message : & assets.ListAssetsRequest {},
4972 values : map [string ][]string {"filters" : {"attributes.foo=2 OF attributes.bar=2" }},
5073 parser : & runtime.DefaultQueryParser {},
5174 isError : true ,
52- expectedResult : []string {},
75+ expectedResult : [][] string {},
5376 },
5477 {
5578 name : "test nil message" ,
@@ -68,7 +91,12 @@ func TestFilterParsing(t *testing.T) {
6891 assert .Nil (t , result )
6992 }
7093 if result == nil && test .message != nil {
71- assert .Equal (t , test .message .Filters [0 ].Or , test .expectedResult )
94+
95+ assert .Equal (t , len (test .message .Filters ), len (test .expectedResult ))
96+ for idx , expected := range test .expectedResult {
97+ assert .Equal (t , test .message .Filters [idx ].Or , expected )
98+ }
99+
72100 }
73101 })
74102 }
0 commit comments