@@ -3,6 +3,7 @@ package io.moia.router
3
3
import assertk.assert
4
4
import assertk.assertions.isEqualTo
5
5
import assertk.assertions.isFalse
6
+ import assertk.assertions.isNotNull
6
7
import assertk.assertions.isNullOrEmpty
7
8
import assertk.assertions.isTrue
8
9
import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent
@@ -352,6 +353,24 @@ class RequestHandlerTest {
352
353
assert (response.statusCode).isEqualTo(204 )
353
354
}
354
355
356
+ @Test
357
+ fun `Should handle query parameters successfully` () {
358
+ TestQueryParamParsingHandler ().handleRequest(
359
+ GET (" /search" )
360
+ .withQueryStringParameters(mapOf (
361
+ " testQueryParam" to " foo"
362
+ ))
363
+ .withMultiValueQueryStringParameters(mapOf (
364
+ " testMultiValueQueryStringParam" to listOf (" foo" , " bar" )
365
+ )),
366
+ mockk()
367
+ )
368
+ TestQueryParamParsingHandler ().handleRequest(
369
+ GET (" /search?testQueryParam=foo&testMultiValueQueryStringParam=foo&testMultiValueQueryStringParam=bar" ),
370
+ mockk()
371
+ )
372
+ }
373
+
355
374
class TestRequestHandlerAuthorization : RequestHandler () {
356
375
override val router = router {
357
376
GET (" /some" ) { _: Request <Unit > ->
@@ -423,6 +442,7 @@ class RequestHandlerTest {
423
442
throw IllegalArgumentException (" boom" )
424
443
}
425
444
GET (" /some/{id}" ) { r: Request <Unit > ->
445
+ assert (r.pathParameters.containsKey(" id" )).isTrue()
426
446
ResponseEntity .ok(
427
447
TestResponse (
428
448
" Hello ${r.getPathParameter(" id" )} "
@@ -457,4 +477,19 @@ class RequestHandlerTest {
457
477
}
458
478
}
459
479
}
480
+
481
+ class TestQueryParamParsingHandler : RequestHandler () {
482
+
483
+ override val router = router {
484
+ GET (" /search" ) { r: Request <TestRequestHandler .TestRequest > ->
485
+ assert (r.getQueryParameter(" testQueryParam" )).isNotNull()
486
+ assert (r.getQueryParameter(" testQueryParam" )).isEqualTo(" foo" )
487
+ assert (r.queryParameters!! [" testQueryParam" ]).isNotNull()
488
+ assert (r.getMultiValueQueryStringParameter(" testMultiValueQueryStringParam" )).isNotNull()
489
+ assert (r.getMultiValueQueryStringParameter(" testMultiValueQueryStringParam" )).isEqualTo(listOf (" foo" , " bar" ))
490
+ assert (r.multiValueQueryStringParameters!! [" testMultiValueQueryStringParam" ]).isNotNull()
491
+ ResponseEntity .ok(null )
492
+ }
493
+ }
494
+ }
460
495
}
0 commit comments