77import java .math .BigDecimal ;
88import java .util .Arrays ;
99import java .util .Collections ;
10+ import java .util .HashMap ;
1011import java .util .LinkedHashSet ;
12+ import java .util .Map ;
1113import java .util .Optional ;
1214import java .util .function .Consumer ;
1315
@@ -217,7 +219,8 @@ public void valueToMap() {
217219 public void verifyIllegalAccess () {
218220 /** Object: */
219221 queryString ("foo=bar" , queryString -> {
220- assertThrows (MissingValueException .class , () -> queryString .get ("a" ).get ("a" ).get ("a" ).value ());
222+ assertThrows (MissingValueException .class ,
223+ () -> queryString .get ("a" ).get ("a" ).get ("a" ).value ());
221224 assertThrows (MissingValueException .class , () -> queryString .get ("missing" ).value ());
222225 assertThrows (MissingValueException .class , () -> queryString .get (0 ).value ());
223226 assertEquals ("missing" , queryString .get ("missing" ).value ("missing" ));
@@ -236,13 +239,15 @@ public void verifyIllegalAccess() {
236239
237240 /** Single Property: */
238241 queryString ("foo=bar" , queryString -> {
239- assertThrows (MissingValueException .class , () -> queryString .get ("foo" ).get ("missing" ).value ());
242+ assertThrows (MissingValueException .class ,
243+ () -> queryString .get ("foo" ).get ("missing" ).value ());
240244 assertEquals ("bar" , queryString .get ("foo" ).get (0 ).value ());
241245 });
242246
243247 /** Missing Property: */
244248 queryString ("" , queryString -> {
245- assertThrows (MissingValueException .class , () -> queryString .get ("foo" ).get ("missing" ).value ());
249+ assertThrows (MissingValueException .class ,
250+ () -> queryString .get ("foo" ).get ("missing" ).value ());
246251 assertThrows (MissingValueException .class , () -> queryString .get ("foo" ).get (0 ).value ());
247252 });
248253 }
@@ -267,7 +272,20 @@ public void decode() {
267272 queryString ("tail=a%20%2B" , queryString -> {
268273 assertEquals ("a +" , queryString .get ("tail" ).value ());
269274 });
275+ }
270276
277+ @ Test
278+ public void empty () {
279+ queryString ("n&x=&&" , queryString -> {
280+ assertEquals ("" , queryString .get ("n" ).value ());
281+ assertEquals ("" , queryString .get ("x" ).value ());
282+ assertEquals (Collections .singletonList ("" ), queryString .get ("n" ).toList ());
283+ assertEquals (Collections .singletonList ("" ), queryString .get ("x" ).toList ());
284+ Map <String , String > map = new HashMap <>();
285+ map .put ("n" , "" );
286+ map .put ("x" , "" );
287+ assertEquals (map , queryString .toMap ());
288+ });
271289 }
272290
273291 @ Test
@@ -281,11 +299,17 @@ public void customMapper() {
281299 @ Test
282300 public void toCollection () {
283301 /** Array: */
302+ queryString ("a=1,2,1" , queryString -> {
303+ assertEquals (Arrays .asList ("1" , "2" , "1" ), queryString .get ("a" ).toList ());
304+
305+ assertEquals (new LinkedHashSet <>(Arrays .asList ("1" , "2" )), queryString .get ("a" ).toSet ());
306+ });
284307 queryString ("a=1;a=2;a=1" , queryString -> {
285308 assertEquals (Arrays .asList ("1" , "2" , "1" ), queryString .get ("a" ).toList ());
286309
287310 assertEquals (new LinkedHashSet <>(Arrays .asList ("1" , "2" )), queryString .get ("a" ).toSet ());
288311 });
312+
289313 queryString ("a=1" , queryString -> {
290314 assertEquals (Arrays .asList ("1" ), queryString .get ("a" ).toList ());
291315 });
@@ -310,7 +334,7 @@ public void toOptional() {
310334 }
311335
312336 enum Letter {
313- A , B ;
337+ A , B
314338 }
315339
316340 @ Test
@@ -352,7 +376,8 @@ public void verifyExceptionMessage() {
352376 "Missing value: 'a[3]'" );
353377 assertMessage (MissingValueException .class , () -> queryString .get ("a" ).get ("b" ).value (),
354378 "Missing value: 'a.b'" );
355- assertMessage (MissingValueException .class , () -> queryString .get ("a" ).get ("b" ).get (3 ).longValue (),
379+ assertMessage (MissingValueException .class ,
380+ () -> queryString .get ("a" ).get ("b" ).get (3 ).longValue (),
356381 "Missing value: 'a.b[3]'" );
357382 });
358383
0 commit comments