From 0016fec617621bade811d393893f909d1b2dfb82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ira=20=28=E3=83=84=29?= <45-lambdaclan@users.noreply.gitlab.archlinux.org> Date: Fri, 25 Dec 2020 18:30:19 +0900 Subject: [PATCH] Add exception testing and message validation --- .../rest/MailPassResourceIntegrationTest.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/roles/keycloak/files/providers/keycloak-mailpass-rest/src/integrationTest/java/org/archlinux/keycloak/mailpass/rest/MailPassResourceIntegrationTest.java b/roles/keycloak/files/providers/keycloak-mailpass-rest/src/integrationTest/java/org/archlinux/keycloak/mailpass/rest/MailPassResourceIntegrationTest.java index 867e089c3..0b8e10996 100644 --- a/roles/keycloak/files/providers/keycloak-mailpass-rest/src/integrationTest/java/org/archlinux/keycloak/mailpass/rest/MailPassResourceIntegrationTest.java +++ b/roles/keycloak/files/providers/keycloak-mailpass-rest/src/integrationTest/java/org/archlinux/keycloak/mailpass/rest/MailPassResourceIntegrationTest.java @@ -54,4 +54,42 @@ public class MailPassResourceIntegrationTest { assertEquals(201, response.getStatusCode()); } + @Test + public void testMalformedJsonRaisesBadRequestException400() { + Response response = given().header("Authorization", "Bearer " + token).contentType(ContentType.JSON) + .body("{ \"password\"x \"password\" }").when() + .post(MessageFormat.format(ROOT_URI, port) + "/compute-password-hash"); + assertEquals(400, response.getStatusCode()); + } + + @Test + public void testMalformedJsonExceptionMessage() { + Response response = given().header("Authorization", "Bearer " + token).contentType(ContentType.JSON) + .body("{ \"password\"x \"password\" }").when() + .post(MessageFormat.format(ROOT_URI, port) + "/compute-password-hash"); + + String error = response.jsonPath().getString("error"); + + assertEquals("provided data is not in valid JSON format", error); + } + + @Test + public void testMissingJsonObjectRaisesBadRequestException400() { + Response response = given().header("Authorization", "Bearer " + token).contentType(ContentType.JSON) + .body("{ \"missing_password\": \"password\" }").when() + .post(MessageFormat.format(ROOT_URI, port) + "/compute-password-hash"); + assertEquals(400, response.getStatusCode()); + } + + @Test + public void testMissingJsonObjectExceptionMessage() { + Response response = given().header("Authorization", "Bearer " + token).contentType(ContentType.JSON) + .body("{ \"missing_password\": \"password\" }").when() + .post(MessageFormat.format(ROOT_URI, port) + "/compute-password-hash"); + + String error = response.jsonPath().getString("error"); + + assertEquals("password object not detected in provided JSON body", error); + } + } -- GitLab