@@ -3,6 +3,7 @@ package io.moia.router
33import assertk.assert
44import assertk.assertions.isEqualTo
55import assertk.assertions.isFalse
6+ import assertk.assertions.isNotNull
67import assertk.assertions.isNullOrEmpty
78import assertk.assertions.isTrue
89import com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent
@@ -352,6 +353,24 @@ class RequestHandlerTest {
352353 assert (response.statusCode).isEqualTo(204 )
353354 }
354355
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+
355374 class TestRequestHandlerAuthorization : RequestHandler () {
356375 override val router = router {
357376 GET (" /some" ) { _: Request <Unit > ->
@@ -423,6 +442,7 @@ class RequestHandlerTest {
423442 throw IllegalArgumentException (" boom" )
424443 }
425444 GET (" /some/{id}" ) { r: Request <Unit > ->
445+ assert (r.pathParameters.containsKey(" id" )).isTrue()
426446 ResponseEntity .ok(
427447 TestResponse (
428448 " Hello ${r.getPathParameter(" id" )} "
@@ -457,4 +477,19 @@ class RequestHandlerTest {
457477 }
458478 }
459479 }
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+ }
460495}
0 commit comments