aboutsummaryrefslogtreecommitdiffstats
path: root/container-core/src/test
diff options
context:
space:
mode:
authorBjørn Christian Seime <bjorncs@vespa.ai>2023-11-17 11:16:25 +0100
committerBjørn Christian Seime <bjorncs@vespa.ai>2023-11-17 11:16:25 +0100
commitbfff665b4551e299bb890fcae3b707aff4132527 (patch)
tree3dc33b2347e183a88bcb1162a7f4683e8f889b37 /container-core/src/test
parentcb8a697b6422a8e7b87a9ec9cfce792e002bb207 (diff)
Return 404 on missing path parameter
Diffstat (limited to 'container-core/src/test')
-rw-r--r--container-core/src/test/java/com/yahoo/restapi/RestApiImplTest.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/container-core/src/test/java/com/yahoo/restapi/RestApiImplTest.java b/container-core/src/test/java/com/yahoo/restapi/RestApiImplTest.java
index a7f0474aeef..95ccff1a075 100644
--- a/container-core/src/test/java/com/yahoo/restapi/RestApiImplTest.java
+++ b/container-core/src/test/java/com/yahoo/restapi/RestApiImplTest.java
@@ -170,6 +170,18 @@ class RestApiImplTest {
verifyJsonResponse(restApi, Method.GET, "/", null, 403, "{\"error-code\":\"FORBIDDEN\",\"message\":\"forbidden\"}");
}
+ @Test
+ void missing_parameters_are_mapped_to_4xx_response() {
+ var restApi = RestApi.builder()
+ .addRoute(route("/missing-path-param").get(ctx -> ctx.pathParameters().getStringOrThrow("missing")))
+ .addRoute(route("/missing-query-param").get(ctx -> ctx.queryParameters().getStringOrThrow("missing")))
+ .build();
+ verifyJsonResponse(restApi, Method.GET, "/missing-path-param", null, 404,
+ "{\"error-code\":\"NOT_FOUND\",\"message\":\"Path parameter 'missing' is missing\"}");
+ verifyJsonResponse(restApi, Method.GET, "/missing-query-param", null, 400,
+ "{\"error-code\":\"BAD_REQUEST\",\"message\":\"Query parameter 'missing' is missing\"}");
+ }
+
private static void verifyJsonResponse(
RestApi restApi, Method method, String path, String requestContent, int expectedStatusCode,
String expectedJson) {