From ef2cc6620ee88a2e5d3be7ecb44ca293efc21989 Mon Sep 17 00:00:00 2001 From: Chris Eager Date: Mon, 27 Feb 2023 11:00:09 -0600 Subject: [PATCH] Add `@Produces` annotation for validation error response --- .../controllers/AccountController.java | 1 + .../controllers/AccountControllerTest.java | 29 ++++++++++++++----- 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java index c47552a5c..8cfd4a5f4 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/AccountController.java @@ -521,6 +521,7 @@ public class AccountController { @PUT @Path("/gcm/") @Consumes(MediaType.APPLICATION_JSON) + @Produces(MediaType.APPLICATION_JSON) @ChangesDeviceEnabledState public void setGcmRegistrationId(@Auth DisabledPermittedAuthenticatedAccount disabledPermittedAuth, @NotNull @Valid GcmRegistrationId registrationId) { diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/controllers/AccountControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/controllers/AccountControllerTest.java index 54185bafe..8a9418fca 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/controllers/AccountControllerTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/controllers/AccountControllerTest.java @@ -1689,10 +1689,10 @@ class AccountControllerTest { void testSetGcmId() { Response response = resources.getJerseyTest() - .target("/v1/accounts/gcm/") - .request() - .header("Authorization", AuthHelper.getAuthHeader(AuthHelper.DISABLED_UUID, AuthHelper.DISABLED_PASSWORD)) - .put(Entity.json(new GcmRegistrationId("z000"))); + .target("/v1/accounts/gcm/") + .request() + .header("Authorization", AuthHelper.getAuthHeader(AuthHelper.DISABLED_UUID, AuthHelper.DISABLED_PASSWORD)) + .put(Entity.json(new GcmRegistrationId("z000"))); assertThat(response.getStatus()).isEqualTo(204); @@ -1700,14 +1700,27 @@ class AccountControllerTest { verify(accountsManager, times(1)).updateDevice(eq(AuthHelper.DISABLED_ACCOUNT), anyLong(), any()); } + @Test + void testSetGcmIdInvalidrequest() { + Response response = + resources.getJerseyTest() + .target("/v1/accounts/gcm/") + .request() + .header("Authorization", AuthHelper.getAuthHeader(AuthHelper.DISABLED_UUID, AuthHelper.DISABLED_PASSWORD)) + .put(Entity.json("{}")); + + assertThat(response.getStatus()).isEqualTo(422); + + } + @Test void testSetApnId() { Response response = resources.getJerseyTest() - .target("/v1/accounts/apn/") - .request() - .header("Authorization", AuthHelper.getAuthHeader(AuthHelper.DISABLED_UUID, AuthHelper.DISABLED_PASSWORD)) - .put(Entity.json(new ApnRegistrationId("first", "second"))); + .target("/v1/accounts/apn/") + .request() + .header("Authorization", AuthHelper.getAuthHeader(AuthHelper.DISABLED_UUID, AuthHelper.DISABLED_PASSWORD)) + .put(Entity.json(new ApnRegistrationId("first", "second"))); assertThat(response.getStatus()).isEqualTo(204);