diff --git a/server/src/test/java/com/objectcomputing/checkins/services/opportunities/OpportunitiesControllerTest.java b/server/src/test/java/com/objectcomputing/checkins/services/opportunities/OpportunitiesControllerTest.java index 7f7bfa7cee..c194d25c2d 100644 --- a/server/src/test/java/com/objectcomputing/checkins/services/opportunities/OpportunitiesControllerTest.java +++ b/server/src/test/java/com/objectcomputing/checkins/services/opportunities/OpportunitiesControllerTest.java @@ -22,13 +22,13 @@ import java.util.Objects; import java.util.Set; import java.util.UUID; -import java.util.stream.Collectors; import static com.objectcomputing.checkins.services.role.RoleType.Constants.ADMIN_ROLE; import static com.objectcomputing.checkins.services.role.RoleType.Constants.MEMBER_ROLE; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; class OpportunitiesControllerTest extends TestContainersSuite implements MemberProfileFixture, OpportunitiesFixture, RoleFixture { @@ -37,7 +37,7 @@ class OpportunitiesControllerTest extends TestContainersSuite implements MemberP private HttpClient client; @Test - void testCreateAOpportunities(){ + void testCreateAOpportunities() { MemberProfile memberProfile = createADefaultMemberProfile(); OpportunitiesCreateDTO opportunitiesResponseCreateDTO = new OpportunitiesCreateDTO(); @@ -47,8 +47,8 @@ void testCreateAOpportunities(){ opportunitiesResponseCreateDTO.setExpiresOn(LocalDate.now()); opportunitiesResponseCreateDTO.setPending(Boolean.FALSE); - final HttpRequest request = HttpRequest.POST("",opportunitiesResponseCreateDTO).basicAuth(memberProfile.getWorkEmail(),ADMIN_ROLE); - final HttpResponse response = client.toBlocking().exchange(request,Opportunities.class); + final HttpRequest request = HttpRequest.POST("", opportunitiesResponseCreateDTO).basicAuth(memberProfile.getWorkEmail(), ADMIN_ROLE); + final HttpResponse response = client.toBlocking().exchange(request, Opportunities.class); Opportunities opportunitiesResponseResponse = response.body(); @@ -58,7 +58,7 @@ void testCreateAOpportunities(){ } @Test - void testMemberCreateAnOpportunities(){ + void testMemberCreateAnOpportunities() { MemberProfile memberProfile = createADefaultMemberProfile(); OpportunitiesCreateDTO opportunitiesResponseCreateDTO = new OpportunitiesCreateDTO(); @@ -68,7 +68,7 @@ void testMemberCreateAnOpportunities(){ opportunitiesResponseCreateDTO.setExpiresOn(LocalDate.now()); opportunitiesResponseCreateDTO.setPending(Boolean.FALSE); - final HttpRequest request = HttpRequest.POST("",opportunitiesResponseCreateDTO).basicAuth(memberProfile.getWorkEmail(),MEMBER_ROLE); + final HttpRequest request = HttpRequest.POST("", opportunitiesResponseCreateDTO).basicAuth(memberProfile.getWorkEmail(), MEMBER_ROLE); final HttpResponse response = client.toBlocking().exchange(request, Opportunities.class); Opportunities opportunitiesResponseResponse = response.body(); @@ -82,144 +82,126 @@ void testMemberCreateAnOpportunities(){ void testCreateAnInvalidOpportunities() { OpportunitiesCreateDTO opportunitiesResponseCreateDTO = new OpportunitiesCreateDTO(); - final HttpRequest request = HttpRequest.POST("",opportunitiesResponseCreateDTO).basicAuth(ADMIN_ROLE,ADMIN_ROLE); - HttpClientResponseException responseException = assertThrows(HttpClientResponseException.class, - () -> client.toBlocking().exchange(request, Map.class)); + final HttpRequest request = HttpRequest.POST("", opportunitiesResponseCreateDTO).basicAuth(ADMIN_ROLE, ADMIN_ROLE); + HttpClientResponseException responseException = assertThrows(HttpClientResponseException.class, () -> + client.toBlocking().exchange(request, Map.class) + ); JsonNode body = responseException.getResponse().getBody(JsonNode.class).orElse(null); JsonNode errors = Objects.requireNonNull(body).get("_embedded").get("errors"); JsonNode href = Objects.requireNonNull(body).get("_links").get("self").get("href"); List errorList = List.of(errors.get(0).get("message").asText(), errors.get(1).get("message").asText(), - errors.get(2).get("message").asText(), errors.get(3).get("message").asText()) - .stream().sorted().collect(Collectors.toList()); - assertEquals(4,errorList.size()); - assertEquals(request.getPath(),href.asText()); + errors.get(2).get("message").asText(), errors.get(3).get("message").asText()) + .stream().sorted().toList(); + assertEquals(4, errorList.size()); + assertEquals(request.getPath(), href.asText()); assertEquals(HttpStatus.BAD_REQUEST, responseException.getStatus()); } @Test void testCreateANullOpportunities() { - final HttpRequest request = HttpRequest.POST("","").basicAuth(ADMIN_ROLE,ADMIN_ROLE); + final HttpRequest request = HttpRequest.POST("", "").basicAuth(ADMIN_ROLE, ADMIN_ROLE); + HttpClientResponseException responseException = assertThrows(HttpClientResponseException.class, () -> client.toBlocking().exchange(request, Map.class)); + JsonNode body = responseException.getResponse().getBody(JsonNode.class).orElse(null); JsonNode error = Objects.requireNonNull(body).get("_embedded").get("errors").get(0).get("message"); JsonNode href = Objects.requireNonNull(body).get("_links").get("self").get("href"); - assertEquals("Required Body [opportunitiesResponse] not specified",error.asText()); - assertEquals(request.getPath(),href.asText()); - assertEquals(HttpStatus.BAD_REQUEST,responseException.getStatus()); - + assertEquals("Required Body [opportunitiesResponse] not specified", error.asText()); + assertEquals(request.getPath(), href.asText()); + assertEquals(HttpStatus.BAD_REQUEST, responseException.getStatus()); } @Test void testGETFindByValueName() { - MemberProfile memberProfile = createADefaultMemberProfile(); + Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - - Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - final HttpRequest request = HttpRequest.GET(String.format("/?name=%s", opportunitiesResponse.getName())).basicAuth(ADMIN_ROLE,ADMIN_ROLE); + final HttpRequest request = HttpRequest.GET(String.format("/?name=%s", opportunitiesResponse.getName())).basicAuth(ADMIN_ROLE, ADMIN_ROLE); final HttpResponse> response = client.toBlocking().exchange(request, Argument.setOf(Opportunities.class)); - assertEquals(Set.of(opportunitiesResponse), response.body()); - assertEquals(HttpStatus.OK,response.getStatus()); + assertEquals(Set.of(opportunitiesResponse), response.body()); + assertEquals(HttpStatus.OK, response.getStatus()); } @Test void testGetFindBySubmittedBy() { - MemberProfile memberProfile = createADefaultMemberProfile(); + Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - - Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - - final HttpRequest request = HttpRequest.GET(String.format("/?submittedBy=%s", opportunitiesResponse.getSubmittedBy())).basicAuth(ADMIN_ROLE,ADMIN_ROLE); + final HttpRequest request = HttpRequest.GET(String.format("/?submittedBy=%s", opportunitiesResponse.getSubmittedBy())).basicAuth(ADMIN_ROLE, ADMIN_ROLE); final HttpResponse> response = client.toBlocking().exchange(request, Argument.setOf(Opportunities.class)); assertEquals(Set.of(opportunitiesResponse), response.body()); - assertEquals(HttpStatus.OK,response.getStatus()); - + assertEquals(HttpStatus.OK, response.getStatus()); } @Test void testGetFindByDescription() { - MemberProfile memberProfile = createADefaultMemberProfile(); + Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - - Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - - final HttpRequest request = HttpRequest.GET(String.format("/?description=%s", opportunitiesResponse.getDescription())).basicAuth(ADMIN_ROLE,ADMIN_ROLE); + final HttpRequest request = HttpRequest.GET(String.format("/?description=%s", opportunitiesResponse.getDescription())).basicAuth(ADMIN_ROLE, ADMIN_ROLE); final HttpResponse> response = client.toBlocking().exchange(request, Argument.setOf(Opportunities.class)); assertEquals(Set.of(opportunitiesResponse), response.body()); - assertEquals(HttpStatus.OK,response.getStatus()); - + assertEquals(HttpStatus.OK, response.getStatus()); } - @Test void testGetFindByPending() { - MemberProfile memberProfile = createADefaultMemberProfile(); + Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - - Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - - final HttpRequest request = HttpRequest.GET(String.format("/?pending=%s", opportunitiesResponse.getPending())).basicAuth(ADMIN_ROLE,ADMIN_ROLE); + final HttpRequest request = HttpRequest.GET(String.format("/?pending=%s", opportunitiesResponse.getPending())).basicAuth(ADMIN_ROLE, ADMIN_ROLE); final HttpResponse> response = client.toBlocking().exchange(request, Argument.setOf(Opportunities.class)); - assertEquals(Set.of(opportunitiesResponse), response.body()); - assertEquals(HttpStatus.OK,response.getStatus()); + assertEquals(Set.of(opportunitiesResponse), response.body()); + assertEquals(HttpStatus.OK, response.getStatus()); } @Test void testGetFindAll() { - MemberProfile memberProfile = createADefaultMemberProfile(); + Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - - final HttpRequest request = HttpRequest.GET("/").basicAuth(ADMIN_ROLE,ADMIN_ROLE); - + final HttpRequest request = HttpRequest.GET("/").basicAuth(ADMIN_ROLE, ADMIN_ROLE); final HttpResponse> response = client.toBlocking().exchange(request, Argument.setOf(Opportunities.class)); assertEquals(HttpStatus.OK, response.getStatus()); - assertNotNull(response.getContentLength()); - response.equals(opportunitiesResponse); + assertTrue(response.getContentLength() > 0, "response.getContentLength() > 0"); + assertEquals(Set.of(opportunitiesResponse), response.body()); } @Test void testFindOpportunitiesAllParams(){ MemberProfile memberProfile = createADefaultMemberProfile(); - Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - final HttpRequest request = HttpRequest.GET(String.format("/?submittedBy=%s", opportunitiesResponse.getSubmittedBy())).basicAuth(ADMIN_ROLE,ADMIN_ROLE); + final HttpRequest request = HttpRequest.GET(String.format("/?submittedBy=%s", opportunitiesResponse.getSubmittedBy())) + .basicAuth(ADMIN_ROLE,ADMIN_ROLE); final HttpResponse> response = client.toBlocking().exchange(request, Argument.setOf(Opportunities.class)); assertEquals(Set.of(opportunitiesResponse), response.body()); assertEquals(HttpStatus.OK,response.getStatus()); - } @Test void testOpportunitiesDoesNotExist() { - - final HttpRequest request = HttpRequest.GET(String.format("/?submittedBy=%s",UUID.randomUUID())).basicAuth(ADMIN_ROLE,ADMIN_ROLE); + final HttpRequest request = HttpRequest.GET(String.format("/?submittedBy=%s", UUID.randomUUID())).basicAuth(ADMIN_ROLE, ADMIN_ROLE); HttpResponse> response = client.toBlocking().exchange(request, Argument.setOf(Opportunities.class)); assertEquals(Set.of(), response.body()); - assertEquals(HttpStatus.OK,response.getStatus()); - + assertEquals(HttpStatus.OK, response.getStatus()); } @Test - void testUpdateOpportunities(){ + void testUpdateOpportunities() { MemberProfile memberProfile = createADefaultMemberProfile(); createAndAssignAdminRole(memberProfile); - Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); + Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); final HttpRequest request = HttpRequest.PUT("", opportunitiesResponse) .basicAuth(memberProfile.getWorkEmail(), ADMIN_ROLE); @@ -231,11 +213,11 @@ void testUpdateOpportunities(){ } @Test - void testUpdateNonExistingOpportunities(){ + void testUpdateNonExistingOpportunities() { MemberProfile memberProfile = createADefaultMemberProfile(); createAndAssignAdminRole(memberProfile); - Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); + Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); opportunitiesResponse.setId(UUID.randomUUID()); final HttpRequest request = HttpRequest.PUT("", opportunitiesResponse) @@ -253,11 +235,11 @@ void testUpdateNonExistingOpportunities(){ } @Test - void testUpdateNotExistingMemberOpportunities(){ + void testUpdateNotExistingMemberOpportunities() { MemberProfile memberProfile = createADefaultMemberProfile(); createAndAssignAdminRole(memberProfile); - Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); + Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); opportunitiesResponse.setSubmittedBy(UUID.randomUUID()); final HttpRequest request = HttpRequest.PUT("", opportunitiesResponse) @@ -271,15 +253,14 @@ void testUpdateNotExistingMemberOpportunities(){ assertEquals(String.format("Member %s doesn't exist", opportunitiesResponse.getSubmittedBy()), error); assertEquals(request.getPath(), href); - } @Test - void testUpdateNotMemberOpportunitiesWithoutId(){ + void testUpdateNotMemberOpportunitiesWithoutId() { MemberProfile memberProfile = createADefaultMemberProfile(); createAndAssignAdminRole(memberProfile); - Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); + Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); opportunitiesResponse.setId(null); final HttpRequest request = HttpRequest.PUT("", opportunitiesResponse) @@ -293,12 +274,11 @@ void testUpdateNotMemberOpportunitiesWithoutId(){ assertEquals(String.format("Unable to find opportunities record with id null", opportunitiesResponse.getId()), error); assertEquals(request.getPath(), href); - } @Test void testUpdateUnAuthorized() { - Opportunities opportunitiesResponse = new Opportunities("jobOpportunities","opportunities job interests","https://objectcomputing.com/jobs", LocalDate.now(), LocalDate.now(), UUID.randomUUID(), Boolean.TRUE ); + Opportunities opportunitiesResponse = new Opportunities("jobOpportunities", "opportunities job interests", "https://objectcomputing.com/jobs", LocalDate.now(), LocalDate.now(), UUID.randomUUID(), Boolean.TRUE); final HttpRequest request = HttpRequest.PUT("", opportunitiesResponse); HttpClientResponseException responseException = assertThrows(HttpClientResponseException.class, () -> @@ -306,36 +286,36 @@ void testUpdateUnAuthorized() { assertEquals(HttpStatus.UNAUTHORIZED, responseException.getStatus()); assertEquals("Unauthorized", responseException.getMessage()); - } @Test void testUpdateANullOpportunities() { - final HttpRequest request = HttpRequest.PUT("","").basicAuth(ADMIN_ROLE,ADMIN_ROLE); + final HttpRequest request = HttpRequest.PUT("", "") + .basicAuth(ADMIN_ROLE, ADMIN_ROLE); HttpClientResponseException responseException = assertThrows(HttpClientResponseException.class, () -> client.toBlocking().exchange(request, Map.class)); JsonNode body = responseException.getResponse().getBody(JsonNode.class).orElse(null); JsonNode error = Objects.requireNonNull(body).get("_embedded").get("errors").get(0).get("message"); JsonNode href = Objects.requireNonNull(body).get("_links").get("self").get("href"); - assertEquals("Required Body [opportunitiesResponse] not specified",error.asText()); - assertEquals(request.getPath(),href.asText()); - assertEquals(HttpStatus.BAD_REQUEST,responseException.getStatus()); - + assertEquals("Required Body [opportunitiesResponse] not specified", error.asText()); + assertEquals(request.getPath(), href.asText()); + assertEquals(HttpStatus.BAD_REQUEST, responseException.getStatus()); } @Test - void testUpdateInvalidDateOpportunities(){ + void testUpdateInvalidDateOpportunities() { MemberProfile memberProfile = createADefaultMemberProfile(); createAndAssignAdminRole(memberProfile); - Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - opportunitiesResponse.setSubmittedOn(LocalDate.of(1965,12,11)); + Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); + opportunitiesResponse.setSubmittedOn(LocalDate.of(1965, 12, 11)); final HttpRequest request = HttpRequest.PUT("", opportunitiesResponse) .basicAuth(memberProfile.getWorkEmail(), ADMIN_ROLE); final HttpClientResponseException responseException = assertThrows(HttpClientResponseException.class, () -> - client.toBlocking().exchange(request, Map.class)); + client.toBlocking().exchange(request, Map.class) + ); JsonNode body = responseException.getResponse().getBody(JsonNode.class).orElse(null); String error = Objects.requireNonNull(body).get("message").asText(); @@ -343,48 +323,45 @@ void testUpdateInvalidDateOpportunities(){ assertEquals(String.format("Invalid date for opportunities submission date %s", opportunitiesResponse.getSubmittedBy()), error); assertEquals(request.getPath(), href); - } @Test - public void testMemberGETFindByValueName() { - + void testMemberGETFindByValueName() { MemberProfile memberProfile = createADefaultMemberProfile(); + Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - final HttpRequest request = HttpRequest.GET(String.format("/?name=%s", opportunitiesResponse.getName())).basicAuth(MEMBER_ROLE,MEMBER_ROLE); + final HttpRequest request = HttpRequest.GET(String.format("/?name=%s", opportunitiesResponse.getName())) + .basicAuth(MEMBER_ROLE, MEMBER_ROLE); final HttpResponse response = client.toBlocking().exchange(request, Opportunities.class); assertEquals(opportunitiesResponse, response.body()); assertEquals(HttpStatus.OK, response.getStatus()); - } @Test - public void testMemberGetFindBySubmittedBy() { - + void testMemberGetFindBySubmittedBy() { MemberProfile memberProfile = createADefaultMemberProfile(); + Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - - Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - - final HttpRequest request = HttpRequest.GET(String.format("/?submittedBy=%s", opportunitiesResponse.getSubmittedBy())).basicAuth(MEMBER_ROLE,MEMBER_ROLE); + final HttpRequest request = HttpRequest.GET(String.format("/?submittedBy=%s", opportunitiesResponse.getSubmittedBy())) + .basicAuth(MEMBER_ROLE, MEMBER_ROLE); final HttpResponse response = client.toBlocking().exchange(request, Opportunities.class); assertEquals(opportunitiesResponse, response.body()); assertEquals(HttpStatus.OK, response.getStatus()); - } @Test - void testMemberUpdateOpportunities(){ + void testMemberUpdateOpportunities() { MemberProfile memberProfile = createADefaultMemberProfile(); - Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); + Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); final HttpRequest request = HttpRequest.PUT("", opportunitiesResponse) .basicAuth(MEMBER_ROLE, MEMBER_ROLE); - HttpClientResponseException responseException = assertThrows(HttpClientResponseException.class, () -> client.toBlocking().exchange(request, Map.class)); + HttpClientResponseException responseException = assertThrows(HttpClientResponseException.class, () -> + client.toBlocking().exchange(request, Map.class) + ); JsonNode body = responseException.getResponse().getBody(JsonNode.class).orElse(null); String error = Objects.requireNonNull(body).get("message").asText(); @@ -398,10 +375,13 @@ void testMemberUpdateOpportunities(){ void testdeleteOpportunitiesByTeamByMember() { MemberProfile memberProfile = createADefaultMemberProfile(); - Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); + Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - final HttpRequest request = HttpRequest.DELETE(String.format("/%s", opportunitiesResponse.getId())).basicAuth(MEMBER_ROLE,MEMBER_ROLE); - HttpClientResponseException responseException = assertThrows(HttpClientResponseException.class, () -> client.toBlocking().exchange(request, Map.class)); + final HttpRequest request = HttpRequest.DELETE(String.format("/%s", opportunitiesResponse.getId())) + .basicAuth(MEMBER_ROLE, MEMBER_ROLE); + HttpClientResponseException responseException = assertThrows(HttpClientResponseException.class, () -> + client.toBlocking().exchange(request, Map.class) + ); JsonNode body = responseException.getResponse().getBody(JsonNode.class).orElse(null); String error = Objects.requireNonNull(body).get("message").asText(); @@ -415,16 +395,12 @@ void testdeleteOpportunitiesByTeamByMember() { void testdeleteOpportunitiesIfAdmin() { MemberProfile memberProfile = createADefaultMemberProfile(); createAndAssignAdminRole(memberProfile); + Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - Opportunities opportunitiesResponse = createADefaultOpportunities(memberProfile); - - final HttpRequest request = HttpRequest. - DELETE(String.format("/%s", opportunitiesResponse.getId())).basicAuth(memberProfile.getWorkEmail(),ADMIN_ROLE); - + final HttpRequest request = HttpRequest.DELETE(String.format("/%s", opportunitiesResponse.getId())) + .basicAuth(memberProfile.getWorkEmail(), ADMIN_ROLE); final HttpResponse response = client.toBlocking().exchange(request, Boolean.class); - assertEquals(HttpStatus.OK,response.getStatus()); - + assertEquals(HttpStatus.OK, response.getStatus()); } - } diff --git a/server/src/test/java/com/objectcomputing/checkins/services/question_category/QuestionCategoryControllerTest.java b/server/src/test/java/com/objectcomputing/checkins/services/question_category/QuestionCategoryControllerTest.java index 455b615312..b994d15b84 100644 --- a/server/src/test/java/com/objectcomputing/checkins/services/question_category/QuestionCategoryControllerTest.java +++ b/server/src/test/java/com/objectcomputing/checkins/services/question_category/QuestionCategoryControllerTest.java @@ -16,7 +16,7 @@ import org.junit.jupiter.api.Test; import jakarta.inject.Inject; -import java.io.UnsupportedEncodingException; + import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.Map; @@ -27,6 +27,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; class QuestionCategoryControllerTest extends TestContainersSuite implements QuestionCategoryFixture, MemberProfileFixture, RoleFixture { @@ -35,79 +36,68 @@ class QuestionCategoryControllerTest extends TestContainersSuite implements Ques private HttpClient client; private String encodeValue(String value) { - try { - return URLEncoder.encode(value, StandardCharsets.UTF_8.toString()); - } catch (UnsupportedEncodingException e) { - return ""; - } + return URLEncoder.encode(value, StandardCharsets.UTF_8); } @Test void testGETNonExistingEndpointReturns404() { - - HttpClientResponseException thrown = assertThrows(HttpClientResponseException.class, () -> { - client.toBlocking().exchange(HttpRequest.GET(String.format("/?id=%s", UUID.randomUUID().toString())) - .basicAuth(MEMBER_ROLE, MEMBER_ROLE)); - }); - + HttpRequest request = HttpRequest.GET(String.format("/?id=%s", UUID.randomUUID())) + .basicAuth(MEMBER_ROLE, MEMBER_ROLE); + HttpClientResponseException thrown = assertThrows(HttpClientResponseException.class, () -> + client.toBlocking().exchange(request) + ); assertNotNull(thrown.getResponse()); assertEquals(HttpStatus.NOT_FOUND, thrown.getStatus()); } @Test void testGETFindByNameReturnsNotFound() { - final HttpRequest request = HttpRequest. GET(String.format("/?name=%s", encodeValue("silly"))).basicAuth(MEMBER_ROLE, MEMBER_ROLE); - HttpClientResponseException thrown = assertThrows(HttpClientResponseException.class, () -> { - final HttpResponse> response = client.toBlocking().exchange(request, Argument.setOf(QuestionCategory.class)); - }); + HttpClientResponseException thrown = assertThrows(HttpClientResponseException.class, () -> + client.toBlocking().exchange(request, Argument.setOf(QuestionCategory.class)) + ); assertEquals(HttpStatus.NOT_FOUND, thrown.getStatus()); - } @Test void testGetAllCategories() { QuestionCategory questionCategory = createADefaultQuestionCategory(); final HttpRequest request = HttpRequest. - GET("/").basicAuth(MEMBER_ROLE,MEMBER_ROLE); + GET("/").basicAuth(MEMBER_ROLE, MEMBER_ROLE); final HttpResponse> response = client.toBlocking().exchange(request, Argument.setOf(QuestionCategory.class)); assertEquals(HttpStatus.OK, response.getStatus()); - response.equals(questionCategory); - assertNotNull(response.getContentLength()); - + assertEquals(Set.of(questionCategory), response.body()); + assertTrue(response.getContentLength() > 0, "response.getContentLength() > 0"); } @Test void testGETGetByIdHappyPath() { - QuestionCategory questionCategory = createADefaultQuestionCategory(); final HttpRequest request = HttpRequest. - GET(String.format("/?id=%s", questionCategory.getId())).basicAuth(MEMBER_ROLE,MEMBER_ROLE); + GET(String.format("/?id=%s", questionCategory.getId())).basicAuth(MEMBER_ROLE, MEMBER_ROLE); final HttpResponse response = client.toBlocking().exchange(request, QuestionCategory.class); assertEquals(questionCategory.getName(), response.body().getName()); - assertEquals(HttpStatus.OK,response.getStatus()); - + assertEquals(HttpStatus.OK, response.getStatus()); } @Test void testGETGetByIdNotFound() { - final HttpRequest request = HttpRequest. - GET(String.format("/?id=%s", UUID.randomUUID().toString())).basicAuth(MEMBER_ROLE,MEMBER_ROLE); + GET(String.format("/?id=%s", UUID.randomUUID())).basicAuth(MEMBER_ROLE, MEMBER_ROLE); - HttpClientResponseException responseException = assertThrows(HttpClientResponseException.class, - () -> client.toBlocking().exchange(request, Map.class)); + HttpClientResponseException responseException = assertThrows(HttpClientResponseException.class, () -> + client.toBlocking().exchange(request, Map.class) + ); assertNotNull(responseException.getResponse()); - assertEquals(HttpStatus.NOT_FOUND,responseException.getStatus()); - + assertEquals(HttpStatus.NOT_FOUND, responseException.getStatus()); } @Test @@ -118,7 +108,7 @@ void testPUTSuccessfulUpdate() { QuestionCategory questionCategory = createADefaultQuestionCategory(); final HttpRequest request = HttpRequest. - PUT("/", questionCategory).basicAuth(memberProfileOfAdmin.getWorkEmail(),ADMIN_ROLE); + PUT("/", questionCategory).basicAuth(memberProfileOfAdmin.getWorkEmail(), ADMIN_ROLE); final HttpResponse response = client.toBlocking().exchange(request, QuestionCategory.class); assertEquals(HttpStatus.OK, response.getStatus()); @@ -128,11 +118,10 @@ void testPUTSuccessfulUpdate() { @Test void testPUTUpdateNoPermission() { - QuestionCategory questionCategory = createADefaultQuestionCategory(); final HttpRequest request = HttpRequest. - PUT("/", questionCategory).basicAuth(MEMBER_ROLE,MEMBER_ROLE); + PUT("/", questionCategory).basicAuth(MEMBER_ROLE, MEMBER_ROLE); HttpClientResponseException responseException = assertThrows(HttpClientResponseException.class, () -> client.toBlocking().exchange(request, Map.class)); @@ -143,13 +132,12 @@ void testPUTUpdateNoPermission() { @Test void testPUTNoIDSupplied() { - QuestionCategoryCreateDTO requestBody = new QuestionCategoryCreateDTO(); requestBody.setName("Fake Category"); - + HttpRequest request = HttpRequest.PUT("/", requestBody) + .basicAuth(ADMIN_ROLE, ADMIN_ROLE); HttpClientResponseException thrown = assertThrows(HttpClientResponseException.class, () -> { - client.toBlocking().exchange(HttpRequest.PUT("/", requestBody) - .basicAuth(ADMIN_ROLE, ADMIN_ROLE)); + client.toBlocking().exchange(request); }); JsonError responseBody = thrown.getResponse().getBody(JsonError.class).get(); @@ -160,15 +148,15 @@ void testPUTNoIDSupplied() { @Test void testPUTQuestionCategoryNotFound() { - QuestionCategory requestBody = new QuestionCategory(); requestBody.setId(UUID.randomUUID()); requestBody.setName("Fake Category"); + HttpRequest request = HttpRequest.PUT("/", requestBody) + .basicAuth(MEMBER_ROLE, MEMBER_ROLE); - HttpClientResponseException thrown = assertThrows(HttpClientResponseException.class, () -> { - client.toBlocking().exchange(HttpRequest.PUT("/", requestBody) - .basicAuth(MEMBER_ROLE, MEMBER_ROLE)); - }); + HttpClientResponseException thrown = assertThrows(HttpClientResponseException.class, () -> + client.toBlocking().exchange(request) + ); JsonError responseBody = thrown.getResponse().getBody(JsonError.class).get(); @@ -178,7 +166,6 @@ void testPUTQuestionCategoryNotFound() { @Test void testPOSTCreateAQuestionCategory() { - MemberProfile memberProfileOfAdmin = createAnUnrelatedUser(); createAndAssignAdminRole(memberProfileOfAdmin); @@ -186,11 +173,10 @@ void testPOSTCreateAQuestionCategory() { newQuestionCategory.setName("Inquisitive"); final HttpRequest request = HttpRequest. - POST("/", newQuestionCategory).basicAuth(memberProfileOfAdmin.getWorkEmail(),ADMIN_ROLE); - final HttpResponse response = client.toBlocking().exchange(request,QuestionCategory.class); + POST("/", newQuestionCategory).basicAuth(memberProfileOfAdmin.getWorkEmail(), ADMIN_ROLE); + final HttpResponse response = client.toBlocking().exchange(request, QuestionCategory.class); - assertNotNull(response); - assertEquals(HttpStatus.CREATED,response.getStatus()); + assertEquals(HttpStatus.CREATED, response.getStatus()); assertEquals(newQuestionCategory.getName(), response.body().getName()); } @@ -201,7 +187,7 @@ void testPOSTCreateAQuestionCategoryNoPermission() { newQuestionCategory.setName("Inquisitive"); final HttpRequest request = HttpRequest. - POST("/", newQuestionCategory).basicAuth(MEMBER_ROLE,MEMBER_ROLE); + POST("/", newQuestionCategory).basicAuth(MEMBER_ROLE, MEMBER_ROLE); HttpClientResponseException responseException = assertThrows(HttpClientResponseException.class, () -> client.toBlocking().exchange(request, Map.class)); @@ -225,8 +211,7 @@ void testPOSTCreateAQuestionCategoryAlreadyExists() { () -> client.toBlocking().exchange(request, Map.class)); assertNotNull(responseException.getResponse()); - assertEquals(HttpStatus.CONFLICT,responseException.getStatus()); - + assertEquals(HttpStatus.CONFLICT, responseException.getStatus()); } @Test @@ -240,8 +225,7 @@ void testPOSTCreateAQuestionNullQuestion() { () -> client.toBlocking().exchange(request, Map.class)); assertNotNull(responseException.getResponse()); - assertEquals(HttpStatus.BAD_REQUEST,responseException.getStatus()); - + assertEquals(HttpStatus.BAD_REQUEST, responseException.getStatus()); } @Test @@ -250,30 +234,28 @@ void testDELETEQuestionCategory() { createAndAssignAdminRole(memberProfileOfAdmin); QuestionCategory questionCategory = createADefaultQuestionCategory(); - QuestionCategoryCreateDTO newQuestionCategory = new QuestionCategoryCreateDTO(); final HttpRequest request = HttpRequest. - DELETE(String.format("/%s", questionCategory.getId())).basicAuth(memberProfileOfAdmin.getWorkEmail(),ADMIN_ROLE); + DELETE(String.format("/%s", questionCategory.getId())).basicAuth(memberProfileOfAdmin.getWorkEmail(), ADMIN_ROLE); final HttpResponse response = client.toBlocking().exchange(request, Boolean.class); - assertEquals(HttpStatus.OK,response.getStatus()); + assertEquals(HttpStatus.OK, response.getStatus()); } @Test void testDELETEQuestionCategoryNoPermission() { - QuestionCategory questionCategory = createADefaultQuestionCategory(); final HttpRequest request = HttpRequest. - DELETE(String.format("/%s", questionCategory.getId())).basicAuth(MEMBER_ROLE,MEMBER_ROLE); + DELETE(String.format("/%s", questionCategory.getId())).basicAuth(MEMBER_ROLE, MEMBER_ROLE); HttpClientResponseException responseException = assertThrows(HttpClientResponseException.class, - () -> client.toBlocking().exchange(request, Map.class)); + () -> client.toBlocking().exchange(request, Map.class) + ); assertEquals("You do not have permission to access this resource", responseException.getMessage()); - assertEquals(HttpStatus.FORBIDDEN,responseException.getStatus()); - + assertEquals(HttpStatus.FORBIDDEN, responseException.getStatus()); } } diff --git a/server/src/test/java/com/objectcomputing/checkins/services/questions/QuestionControllerTest.java b/server/src/test/java/com/objectcomputing/checkins/services/questions/QuestionControllerTest.java index a7de8acfeb..079498b213 100644 --- a/server/src/test/java/com/objectcomputing/checkins/services/questions/QuestionControllerTest.java +++ b/server/src/test/java/com/objectcomputing/checkins/services/questions/QuestionControllerTest.java @@ -16,7 +16,6 @@ import jakarta.inject.Inject; import org.junit.jupiter.api.Test; -import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.nio.charset.StandardCharsets; import java.util.Map; @@ -28,6 +27,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; class QuestionControllerTest extends TestContainersSuite implements QuestionFixture, QuestionCategoryFixture { @@ -36,26 +36,21 @@ class QuestionControllerTest extends TestContainersSuite implements QuestionFixt private HttpClient client; private String encodeValue(String value) { - try { - return URLEncoder.encode(value, StandardCharsets.UTF_8.toString()); - } catch (UnsupportedEncodingException e) { - return ""; - } + return URLEncoder.encode(value, StandardCharsets.UTF_8); } @Test void testGETNonExistingEndpointReturns404() { - - HttpClientResponseException thrown = assertThrows(HttpClientResponseException.class, () -> { - client.toBlocking().exchange(HttpRequest.GET((String.format("/%s", UUID.randomUUID().toString()))) - .basicAuth(MEMBER_ROLE,MEMBER_ROLE)); - }); - + HttpRequest request = HttpRequest.GET((String.format("/%s", UUID.randomUUID()))) + .basicAuth(MEMBER_ROLE, MEMBER_ROLE); + HttpClientResponseException thrown = assertThrows(HttpClientResponseException.class, () -> + client.toBlocking().exchange(request) + ); + assertEquals(HttpStatus.NOT_FOUND, thrown.getStatus()); } @Test void testGETreadAllQuestions() { - Question question = createADefaultQuestion(); final HttpRequest request = HttpRequest. GET("/").basicAuth(MEMBER_ROLE,MEMBER_ROLE); @@ -63,14 +58,12 @@ void testGETreadAllQuestions() { final HttpResponse> response = client.toBlocking().exchange(request, Argument.setOf(Question.class)); assertEquals(HttpStatus.OK, response.getStatus()); - response.equals(question); - assertNotNull(response.getContentLength()); - + assertEquals(Set.of(question), response.body()); + assertTrue(response.getContentLength() > 0, "response.getContentLength() > 0"); } @Test void testGETFindQuestionsSimilar() { - Question question = createADefaultQuestion(); String partOfQuestion = question.getText().substring(0,3); final HttpRequest request = HttpRequest. @@ -78,15 +71,13 @@ void testGETFindQuestionsSimilar() { final HttpResponse> response = client.toBlocking().exchange(request, Argument.setOf(Question.class)); - assertNotNull(response.getContentLength()); assertEquals(HttpStatus.OK, response.getStatus()); - assertEquals(Set.of(question), response.getBody().get()); - + assertEquals(Set.of(question), response.body()); + assertTrue(response.getContentLength() > 0, "response.getContentLength() > 0"); } @Test void testGETGetByIdHappyPath() { - QuestionCategory questionCategory = createADefaultQuestionCategory(); Question question = createADefaultQuestionWithCategory(questionCategory.getId()); @@ -98,26 +89,23 @@ void testGETGetByIdHappyPath() { assertEquals(question.getCategoryId(), response.body().getCategoryId()); assertEquals(question.getText(), response.body().getText()); assertEquals(HttpStatus.OK,response.getStatus()); - } @Test void testGETGetByIdNotFound() { final HttpRequest request = HttpRequest. - GET(String.format("/%s", UUID.randomUUID().toString())).basicAuth(MEMBER_ROLE,MEMBER_ROLE); + GET(String.format("/%s", UUID.randomUUID())).basicAuth(MEMBER_ROLE,MEMBER_ROLE); HttpClientResponseException responseException = assertThrows(HttpClientResponseException.class, () -> client.toBlocking().exchange(request, Map.class)); assertNotNull(responseException.getResponse()); assertEquals(HttpStatus.NOT_FOUND,responseException.getStatus()); - } @Test void testPUTSuccessfulUpdate() { - Question question = createADefaultQuestion(); final HttpRequest request = HttpRequest. @@ -131,15 +119,13 @@ void testPUTSuccessfulUpdate() { @Test void testPUTNoIDSupplied() { - QuestionCreateDTO requestBody = new QuestionCreateDTO(); requestBody.setText("Fake Question"); - + HttpRequest request = HttpRequest.PUT("/", requestBody) + .basicAuth(MEMBER_ROLE, MEMBER_ROLE); HttpClientResponseException thrown = assertThrows(HttpClientResponseException.class, () -> { - client.toBlocking().exchange(HttpRequest.PUT("/", requestBody) - .basicAuth(MEMBER_ROLE, MEMBER_ROLE)); + client.toBlocking().exchange(request); }); - JsonNode body = thrown.getResponse().getBody(JsonNode.class).orElse(null); JsonNode error = Objects.requireNonNull(body).get("_embedded").get("errors").get(0).get("message"); assertEquals("question.id: must not be null", error.asText()); @@ -148,14 +134,14 @@ void testPUTNoIDSupplied() { @Test void testPUTQuestionNotFound() { - QuestionUpdateDTO requestBody = new QuestionUpdateDTO(); requestBody.setId(UUID.randomUUID()); requestBody.setText("Fake Question"); + HttpRequest request = HttpRequest.PUT("/", requestBody) + .basicAuth(MEMBER_ROLE, MEMBER_ROLE); HttpClientResponseException thrown = assertThrows(HttpClientResponseException.class, () -> { - client.toBlocking().exchange(HttpRequest.PUT("/", requestBody) - .basicAuth(MEMBER_ROLE, MEMBER_ROLE)); + client.toBlocking().exchange(request); }); JsonError responseBody = thrown.getResponse().getBody(JsonError.class).get(); @@ -166,23 +152,20 @@ void testPUTQuestionNotFound() { @Test void testPOSTCreateAQuestion() { - - Question question = createADefaultQuestion(); + createADefaultQuestion(); QuestionCreateDTO newQuestion = new QuestionCreateDTO(); newQuestion.setText("How do you like working with Mr. Hands?"); final HttpRequest request = HttpRequest. POST("/", newQuestion).basicAuth(MEMBER_ROLE,MEMBER_ROLE); - final HttpResponse response = client.toBlocking().exchange(request,Question.class); + final HttpResponse response = client.toBlocking().exchange(request, Question.class); - assertNotNull(response); - assertEquals(HttpStatus.CREATED,response.getStatus()); + assertEquals(HttpStatus.CREATED, response.getStatus()); assertEquals(newQuestion.getText(), response.body().getText()); } @Test void testPOSTCreateAQuestionAlreadyExists() { - Question question = createADefaultQuestion(); QuestionCreateDTO newQuestion = new QuestionCreateDTO(); newQuestion.setText(question.getText()); @@ -193,13 +176,11 @@ void testPOSTCreateAQuestionAlreadyExists() { () -> client.toBlocking().exchange(request, Map.class)); assertNotNull(responseException.getResponse()); - assertEquals(HttpStatus.CONFLICT,responseException.getStatus()); - + assertEquals(HttpStatus.CONFLICT, responseException.getStatus()); } @Test void testPOSTCreateAQuestionNullQuestion() { - QuestionCreateDTO newQuestion = new QuestionCreateDTO(); final HttpRequest request = HttpRequest. @@ -209,12 +190,10 @@ void testPOSTCreateAQuestionNullQuestion() { assertNotNull(responseException.getResponse()); assertEquals(HttpStatus.BAD_REQUEST,responseException.getStatus()); - } @Test void testGETFindQuestionWithCategory() { - QuestionCategory questionCategory = createADefaultQuestionCategory(); Question question = createADefaultQuestionWithCategory(questionCategory.getId()); @@ -224,10 +203,9 @@ void testGETFindQuestionWithCategory() { final HttpResponse> response = client.toBlocking().exchange(request, Argument.setOf(Question.class)); - assertNotNull(response.getContentLength()); assertEquals(HttpStatus.OK, response.getStatus()); - assertEquals(Set.of(question), response.getBody().get()); - + assertEquals(Set.of(question), response.body()); + assertTrue(response.getContentLength() > 0, "response.getContentLength() > 0"); } @Test @@ -241,5 +219,4 @@ void testGETFindQuestionWithCategoryNotFound() { assertEquals(HttpStatus.OK, response.getStatus()); assert(response.body().isEmpty()); } - }