From c02330ae223fa866fd2c65bbd10aeff3c596c712 Mon Sep 17 00:00:00 2001 From: mdayican Date: Fri, 24 Oct 2025 17:05:01 +0100 Subject: [PATCH 1/3] EM-6800 fix code smells --- .../consumer/AnnotationsConsumerTest.java | 16 ++++----- .../consumer/BookmarkConsumerTest.java | 34 +++++++++---------- .../FilterAnnotationSetConsumerTest.java | 13 +++---- .../annotation/consumer/IdamConsumerTest.java | 4 +-- .../consumer/MetaDataConsumerTest.java | 20 +++++------ .../provider/AnnotationSetProviderTest.java | 15 ++++++-- .../provider/AnnotationsProviderTest.java | 15 ++++++-- .../annotation/provider/BaseProviderTest.java | 14 ++++---- .../provider/BookmarkProviderTest.java | 29 +++++++++------- .../provider/CommentProviderTest.java | 11 ++++-- .../FilterAnnotationSetProviderTest.java | 14 ++++++-- .../provider/MetaDataProviderTest.java | 11 ++++-- .../provider/RectangleProviderTest.java | 14 ++++++-- .../annotation/provider/TagProviderTest.java | 10 ++++-- 14 files changed, 145 insertions(+), 75 deletions(-) diff --git a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/AnnotationsConsumerTest.java b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/AnnotationsConsumerTest.java index c8be9b2c..282874c3 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/AnnotationsConsumerTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/AnnotationsConsumerTest.java @@ -25,7 +25,7 @@ class AnnotationsConsumerTest extends BaseConsumerTest { private static final String ANNOTATIONS_PROVIDER_NAME = "annotation_api_annotation_provider"; private static final String ANNOTATIONS_API_BASE_PATH = "/api/annotations"; - private final String exampleAnnotationId = "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a"; + private static final String EXAMPLE_ANNOTATION_ID = "d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a"; @Pact(provider = ANNOTATIONS_PROVIDER_NAME, consumer = "annotation_api") public V4Pact createAnnotation201(PactDslWithProvider builder) { @@ -114,7 +114,7 @@ public V4Pact getAnnotation200(PactDslWithProvider builder) { return builder .given("gets the annotation by given id") .uponReceiving("A request to get a single annotation") - .path(ANNOTATIONS_API_BASE_PATH + "/" + exampleAnnotationId) + .path(ANNOTATIONS_API_BASE_PATH + "/" + EXAMPLE_ANNOTATION_ID) .method(HttpMethod.GET.toString()) .headers(getHeaders()) .willRespondWith() @@ -130,7 +130,7 @@ void testGetAnnotation200(MockServer mockServer) { .given() .headers(getHeaders()) .contentType(ContentType.JSON) - .get(mockServer.getUrl() + ANNOTATIONS_API_BASE_PATH + "/" + exampleAnnotationId) + .get(mockServer.getUrl() + ANNOTATIONS_API_BASE_PATH + "/" + EXAMPLE_ANNOTATION_ID) .then() .statusCode(HttpStatus.OK.value()); } @@ -140,7 +140,7 @@ public V4Pact deleteAnnotation200(PactDslWithProvider builder) { return builder .given("annotation exists for deletion") .uponReceiving("A request to delete an annotation") - .path(ANNOTATIONS_API_BASE_PATH + "/" + exampleAnnotationId) + .path(ANNOTATIONS_API_BASE_PATH + "/" + EXAMPLE_ANNOTATION_ID) .method(HttpMethod.DELETE.toString()) .headers(getHeaders()) .willRespondWith() @@ -155,7 +155,7 @@ void testDeleteAnnotation200(MockServer mockServer) { .given() .headers(getHeaders()) .contentType(ContentType.JSON) - .delete(mockServer.getUrl() + ANNOTATIONS_API_BASE_PATH + "/" + exampleAnnotationId) + .delete(mockServer.getUrl() + ANNOTATIONS_API_BASE_PATH + "/" + EXAMPLE_ANNOTATION_ID) .then() .statusCode(HttpStatus.OK.value()); } @@ -176,7 +176,7 @@ protected void getLambdaDslObject(LambdaDslObject body) { buildAuditingFields(comment); comment .uuid("id", UUID.randomUUID()) - .uuid("annotationId", UUID.fromString(exampleAnnotationId)) + .uuid("annotationId", UUID.fromString(EXAMPLE_ANNOTATION_ID)) .stringType("content", "This is a sample annotation comment text which can vary."); }) .eachLike("rectangles", rectangle -> { @@ -187,7 +187,7 @@ protected void getLambdaDslObject(LambdaDslObject body) { .numberType("width", 250.0) .numberType("y", 55.2) .uuid("id", UUID.randomUUID()) - .uuid("annotationId", UUID.fromString(exampleAnnotationId)) + .uuid("annotationId", UUID.fromString(EXAMPLE_ANNOTATION_ID)) .numberType("height", 80.7); }); @@ -205,7 +205,7 @@ protected void getLambdaDslObject(LambdaDslObject body) { .uuid("createdBy", EXAMPLE_USER_ID) ) .uuid("annotationSetId", UUID.fromString("c3d4e5f6-a7b8-4c9d-0e1f-2a3b4c5d6e7f")) - .uuid("id", UUID.fromString(exampleAnnotationId)) + .uuid("id", UUID.fromString(EXAMPLE_ANNOTATION_ID)) .integerType("page", 1); } } \ No newline at end of file diff --git a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/BookmarkConsumerTest.java b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/BookmarkConsumerTest.java index 3da5d251..8818e430 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/BookmarkConsumerTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/BookmarkConsumerTest.java @@ -23,9 +23,9 @@ class BookmarkConsumerTest extends BaseConsumerTest { private static final String BOOKMARK_PROVIDER_NAME = "annotation_api_bookmark_provider"; - private static final String BOOKMARKS_API_BASE_PATH = "/api/bookmarks"; - private static final String BOOKMARKS_MULTIPLE_API_PATH = "/api/bookmarks_multiple"; - private static final String DOCUMENT_BOOKMARKS_API_PATH_FORMAT = "/api/%s/bookmarks"; + private static final String BOOKMARKS_API_BASE_URI = "/api/bookmarks"; + private static final String BOOKMARKS_MULTIPLE_API_URI = "/api/bookmarks_multiple"; + private static final String DOCUMENT_BOOKMARKS_API_URI_FORMAT = "/api/%s/bookmarks"; private static final UUID EXAMPLE_BOOKMARK_ID = UUID.fromString("1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"); private static final UUID ANOTHER_EXAMPLE_BOOKMARK_ID = UUID.fromString("5a6b7c8d-9e0f-1a2b-3c4d-5e6f7a8b9c0a"); @@ -38,7 +38,7 @@ public V4Pact createBookmark201(PactDslWithProvider builder) { return builder .given("bookmark is created successfully") .uponReceiving("A request to create a bookmark") - .path(BOOKMARKS_API_BASE_PATH) + .path(BOOKMARKS_API_BASE_URI) .method(HttpMethod.POST.toString()) .headers(getHeaders()) .body(createBookmarkDsl(EXAMPLE_BOOKMARK_ID)) @@ -56,7 +56,7 @@ void testCreateBookmark201(MockServer mockServer) { .headers(getHeaders()) .contentType(ContentType.JSON) .body(createBookmarkDsl(EXAMPLE_BOOKMARK_ID).getBody().toString()) - .post(mockServer.getUrl() + BOOKMARKS_API_BASE_PATH) + .post(mockServer.getUrl() + BOOKMARKS_API_BASE_URI) .then() .statusCode(HttpStatus.CREATED.value()); } @@ -66,7 +66,7 @@ public V4Pact updateBookmark200(PactDslWithProvider builder) { return builder .given("bookmark is updated successfully") .uponReceiving("A request to update a bookmark") - .path(BOOKMARKS_API_BASE_PATH) + .path(BOOKMARKS_API_BASE_URI) .method(HttpMethod.PUT.toString()) .headers(getHeaders()) .body(createBookmarkDsl(EXAMPLE_BOOKMARK_ID)) @@ -84,7 +84,7 @@ void testUpdateBookmark200(MockServer mockServer) { .headers(getHeaders()) .contentType(ContentType.JSON) .body(createBookmarkDsl(EXAMPLE_BOOKMARK_ID).getBody().toString()) - .put(mockServer.getUrl() + BOOKMARKS_API_BASE_PATH) + .put(mockServer.getUrl() + BOOKMARKS_API_BASE_URI) .then() .statusCode(HttpStatus.OK.value()); } @@ -94,7 +94,7 @@ public V4Pact updateMultipleBookmarks200(PactDslWithProvider builder) { return builder .given("bookmarks are updated successfully") .uponReceiving("A request to update multiple bookmarks") - .path(BOOKMARKS_MULTIPLE_API_PATH) + .path(BOOKMARKS_MULTIPLE_API_URI) .method(HttpMethod.PUT.toString()) .headers(getHeaders()) .body(createBookmarkListDsl()) @@ -112,14 +112,14 @@ void testUpdateMultipleBookmarks200(MockServer mockServer) { .headers(getHeaders()) .contentType(ContentType.JSON) .body(createBookmarkListDsl().getBody().toString()) - .put(mockServer.getUrl() + BOOKMARKS_MULTIPLE_API_PATH) + .put(mockServer.getUrl() + BOOKMARKS_MULTIPLE_API_URI) .then() .statusCode(HttpStatus.OK.value()); } @Pact(provider = BOOKMARK_PROVIDER_NAME, consumer = ANNOTATION_CONSUMER) public V4Pact getAllDocumentBookmarks200(PactDslWithProvider builder) { - String documentBookmarksPath = String.format(DOCUMENT_BOOKMARKS_API_PATH_FORMAT, EXAMPLE_DOCUMENT_ID); + String documentBookmarksPath = String.format(DOCUMENT_BOOKMARKS_API_URI_FORMAT, EXAMPLE_DOCUMENT_ID); return builder .given("bookmarks exist for a document") .uponReceiving("A request to get all bookmarks for a document") @@ -135,7 +135,7 @@ public V4Pact getAllDocumentBookmarks200(PactDslWithProvider builder) { @Test @PactTestFor(pactMethod = "getAllDocumentBookmarks200", providerName = BOOKMARK_PROVIDER_NAME) void testGetAllDocumentBookmarks200(MockServer mockServer) { - String documentBookmarksPath = String.format(DOCUMENT_BOOKMARKS_API_PATH_FORMAT, EXAMPLE_DOCUMENT_ID); + String documentBookmarksPath = String.format(DOCUMENT_BOOKMARKS_API_URI_FORMAT, EXAMPLE_DOCUMENT_ID); SerenityRest .given() .headers(getHeaders()) @@ -147,11 +147,11 @@ void testGetAllDocumentBookmarks200(MockServer mockServer) { @Pact(provider = BOOKMARK_PROVIDER_NAME, consumer = ANNOTATION_CONSUMER) public V4Pact deleteBookmark200(PactDslWithProvider builder) { - String bookmarkPath = BOOKMARKS_API_BASE_PATH + "/" + EXAMPLE_BOOKMARK_ID; + String bookmarkUri = BOOKMARKS_API_BASE_URI + "/" + EXAMPLE_BOOKMARK_ID; return builder .given("bookmark exists for deletion") .uponReceiving("A request to delete a bookmark") - .path(bookmarkPath) + .path(bookmarkUri) .method(HttpMethod.DELETE.toString()) .headers(getHeaders()) .willRespondWith() @@ -162,12 +162,12 @@ public V4Pact deleteBookmark200(PactDslWithProvider builder) { @Test @PactTestFor(pactMethod = "deleteBookmark200", providerName = BOOKMARK_PROVIDER_NAME) void testDeleteBookmark200(MockServer mockServer) { - String bookmarkPath = BOOKMARKS_API_BASE_PATH + "/" + EXAMPLE_BOOKMARK_ID; + String bookmarkUri = BOOKMARKS_API_BASE_URI + "/" + EXAMPLE_BOOKMARK_ID; SerenityRest .given() .headers(getHeaders()) .contentType(ContentType.JSON) - .delete(mockServer.getUrl() + bookmarkPath) + .delete(mockServer.getUrl() + bookmarkUri) .then() .statusCode(HttpStatus.OK.value()); } @@ -177,7 +177,7 @@ public V4Pact deleteMultipleBookmarks200(PactDslWithProvider builder) { return builder .given("bookmarks exist for multiple deletion") .uponReceiving("A request to delete multiple bookmarks") - .path(BOOKMARKS_MULTIPLE_API_PATH) + .path(BOOKMARKS_MULTIPLE_API_URI) .method(HttpMethod.DELETE.toString()) .headers(getHeaders()) .body(createDeleteBookmarkRequestDsl()) @@ -194,7 +194,7 @@ void testDeleteMultipleBookmarks200(MockServer mockServer) { .headers(getHeaders()) .contentType(ContentType.JSON) .body(createDeleteBookmarkRequestDsl().getBody().toString()) - .delete(mockServer.getUrl() + BOOKMARKS_MULTIPLE_API_PATH) + .delete(mockServer.getUrl() + BOOKMARKS_MULTIPLE_API_URI) .then() .statusCode(HttpStatus.OK.value()); } diff --git a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/FilterAnnotationSetConsumerTest.java b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/FilterAnnotationSetConsumerTest.java index feb3a64a..e23d4b58 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/FilterAnnotationSetConsumerTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/FilterAnnotationSetConsumerTest.java @@ -22,9 +22,10 @@ class FilterAnnotationSetConsumerTest extends BaseConsumerTest { private static final String FILTER_ANNOTATION_SET_PROVIDER_NAME = "annotation_api_filter_annotation_set_provider"; - private static final String FILTER_ANNOTATION_SET_API_PATH = "/api/annotation-sets/filter"; + private static final String FILTER_ANNOTATION_SET_API_URI = "/api/annotation-sets/filter"; private static final String EXAMPLE_DOCUMENT_ID = "f401727b-5a50-40bb-ac4d-87dc34910b6e"; private static final UUID EXAMPLE_ANNOTATION_SET_ID = UUID.fromString("4f6fe7a2-b8a6-4f0a-9f7c-8d9e1b0c9b3a"); + public static final String DOCUMENT_ID = "documentId"; private final AnnotationsConsumerTest annotationsConsumerTestHelper = new AnnotationsConsumerTest(); @@ -33,9 +34,9 @@ public V4Pact filterAnnotationSetByDocumentId200(PactDslWithProvider builder) { return builder .given("an annotation set exists for the given document id") .uponReceiving("A request to filter an annotation set by document id") - .path(FILTER_ANNOTATION_SET_API_PATH) + .path(FILTER_ANNOTATION_SET_API_URI) .method(HttpMethod.GET.toString()) - .matchQuery("documentId", ".+", EXAMPLE_DOCUMENT_ID) + .matchQuery(DOCUMENT_ID, ".+", EXAMPLE_DOCUMENT_ID) .headers(getHeaders()) .willRespondWith() .status(HttpStatus.OK.value()) @@ -49,8 +50,8 @@ void testFilterAnnotationSetByDocumentId200(MockServer mockServer) { SerenityRest .given() .headers(getHeaders()) - .queryParam("documentId", EXAMPLE_DOCUMENT_ID) - .get(mockServer.getUrl() + FILTER_ANNOTATION_SET_API_PATH) + .queryParam(DOCUMENT_ID, EXAMPLE_DOCUMENT_ID) + .get(mockServer.getUrl() + FILTER_ANNOTATION_SET_API_URI) .then() .statusCode(HttpStatus.OK.value()); } @@ -62,7 +63,7 @@ private DslPart createAnnotationSetDsl() { private void buildAnnotationSetBody(LambdaDslObject body) { body .uuid("id", EXAMPLE_ANNOTATION_SET_ID) - .stringType("documentId", EXAMPLE_DOCUMENT_ID); + .stringType(DOCUMENT_ID, EXAMPLE_DOCUMENT_ID); buildAuditingFields(body); body.eachLike("annotations", annotationsConsumerTestHelper::getLambdaDslObject); } diff --git a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/IdamConsumerTest.java b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/IdamConsumerTest.java index bb5103a9..b44d0b1f 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/IdamConsumerTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/IdamConsumerTest.java @@ -74,7 +74,7 @@ public RequestResponsePact executeGetIdamAccessTokenAndGet200(PactDslWithProvide @Test @PactTestFor(pactMethod = "executeGetIdamAccessTokenAndGet200") - public void should_post_to_token_endpoint_and_receive_access_token_with_200_response(MockServer mockServer) + public void shouldPostToTokenEndpointAndReceiveAccessTokenWith200Response(MockServer mockServer) throws JSONException { String actualResponseBody = SerenityRest @@ -130,7 +130,7 @@ public RequestResponsePact executeGetUserDetailsAndGet200(PactDslWithProvider bu @Test @PactTestFor(pactMethod = "executeGetUserDetailsAndGet200") - public void should_get_user_details_with_access_token(MockServer mockServer) throws JSONException { + public void shouldGetUserDetailsWithAccessToken(MockServer mockServer) throws JSONException { Map headers = Maps.newHashMap(); headers.put(HttpHeaders.AUTHORIZATION, "Bearer eyJ0eXAiOiJKV1QiLCJraWQiOiJiL082T3ZWdjEre"); diff --git a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/MetaDataConsumerTest.java b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/MetaDataConsumerTest.java index aad73e87..4ed6ace1 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/MetaDataConsumerTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/consumer/MetaDataConsumerTest.java @@ -19,7 +19,7 @@ class MetaDataConsumerTest extends BaseConsumerTest { private static final String METADATA_PROVIDER_NAME = "annotation_api_metadata_provider"; - private static final String METADATA_API_BASE_PATH = "/api/metadata"; + private static final String METADATA_API_BASE_URI = "/api/metadata/"; private static final UUID EXAMPLE_DOCUMENT_ID = UUID.fromString("8c53579b-d935-4204-82c8-250329c29d91"); private static final Integer EXAMPLE_ROTATION_ANGLE = 90; @@ -29,7 +29,7 @@ public V4Pact createMetaData201(PactDslWithProvider builder) { return builder .given("metadata can be created for a document") .uponReceiving("A request to create metadata") - .path(METADATA_API_BASE_PATH + "/") + .path(METADATA_API_BASE_URI) .method(HttpMethod.POST.toString()) .headers(getHeaders()) .body(createMetaDataDsl()) @@ -47,14 +47,14 @@ void testCreateMetaData201(MockServer mockServer) { .headers(getHeaders()) .contentType(ContentType.JSON) .body(createMetaDataDsl().getBody().toString()) - .post(mockServer.getUrl() + METADATA_API_BASE_PATH + "/") + .post(mockServer.getUrl() + METADATA_API_BASE_URI) .then() .statusCode(HttpStatus.CREATED.value()); } @Pact(provider = METADATA_PROVIDER_NAME, consumer = ANNOTATION_CONSUMER) public V4Pact getMetaData200(PactDslWithProvider builder) { - String metadataPath = METADATA_API_BASE_PATH + "/" + EXAMPLE_DOCUMENT_ID; + String metadataPath = METADATA_API_BASE_URI + EXAMPLE_DOCUMENT_ID; return builder .given("metadata exists for a document") .uponReceiving("A request to get metadata for a document") @@ -70,7 +70,7 @@ public V4Pact getMetaData200(PactDslWithProvider builder) { @Test @PactTestFor(pactMethod = "getMetaData200", providerName = METADATA_PROVIDER_NAME) void testGetMetaData200(MockServer mockServer) { - String metadataPath = METADATA_API_BASE_PATH + "/" + EXAMPLE_DOCUMENT_ID; + String metadataPath = METADATA_API_BASE_URI + EXAMPLE_DOCUMENT_ID; SerenityRest .given() .headers(getHeaders()) @@ -81,10 +81,10 @@ void testGetMetaData200(MockServer mockServer) { } private DslPart createMetaDataDsl() { - return newJsonBody(body -> { - body - .integerType("rotationAngle", EXAMPLE_ROTATION_ANGLE) - .uuid("documentId", EXAMPLE_DOCUMENT_ID); - }).build(); + return newJsonBody(body -> + body + .integerType("rotationAngle", EXAMPLE_ROTATION_ANGLE) + .uuid("documentId", EXAMPLE_DOCUMENT_ID)) + .build(); } } \ No newline at end of file diff --git a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/AnnotationSetProviderTest.java b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/AnnotationSetProviderTest.java index 761e4418..d0f6783d 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/AnnotationSetProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/AnnotationSetProviderTest.java @@ -2,6 +2,7 @@ import au.com.dius.pact.provider.junitsupport.Provider; import au.com.dius.pact.provider.junitsupport.State; +import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientAutoConfiguration; import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; @@ -10,6 +11,7 @@ import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.springframework.test.context.bean.override.mockito.MockitoBean; +import org.springframework.test.web.servlet.MockMvc; import uk.gov.hmcts.reform.em.annotation.rest.AnnotationSetResource; import uk.gov.hmcts.reform.em.annotation.service.AnnotationSetService; import uk.gov.hmcts.reform.em.annotation.service.dto.AnnotationDTO; @@ -31,14 +33,23 @@ }) public class AnnotationSetProviderTest extends BaseProviderTest { - @Autowired - private AnnotationSetResource annotationSetResource; + private final AnnotationSetResource annotationSetResource; @MockitoBean private AnnotationSetService annotationSetService; private static final UUID EXAMPLE_ANNOTATION_SET_ID = UUID.fromString("4f6fe7a2-b8a6-4f0a-9f7c-8d9e1b0c9b3a"); + @Autowired + public AnnotationSetProviderTest( + MockMvc mockMvc, + ObjectMapper objectMapper, + AnnotationSetResource annotationSetResource + ) { + super(mockMvc, objectMapper); + this.annotationSetResource = annotationSetResource; + } + @Override protected Object[] getControllersUnderTest() { diff --git a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/AnnotationsProviderTest.java b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/AnnotationsProviderTest.java index 3484b3a7..ff29fd19 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/AnnotationsProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/AnnotationsProviderTest.java @@ -2,6 +2,7 @@ import au.com.dius.pact.provider.junitsupport.Provider; import au.com.dius.pact.provider.junitsupport.State; +import com.fasterxml.jackson.databind.ObjectMapper; import org.postgresql.util.PSQLException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientAutoConfiguration; @@ -11,6 +12,7 @@ import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.springframework.test.context.bean.override.mockito.MockitoBean; +import org.springframework.test.web.servlet.MockMvc; import uk.gov.hmcts.reform.em.annotation.domain.IdamDetails; import uk.gov.hmcts.reform.em.annotation.domain.enumeration.AnnotationType; import uk.gov.hmcts.reform.em.annotation.rest.AnnotationResource; @@ -40,14 +42,23 @@ }) public class AnnotationsProviderTest extends BaseProviderTest { - @Autowired - private AnnotationResource annotationResource; + private final AnnotationResource annotationResource; @MockitoBean private AnnotationService annotationService; @MockitoBean private CcdService ccdService; + @Autowired + public AnnotationsProviderTest( + MockMvc mockMvc, + ObjectMapper objectMapper, + AnnotationResource annotationResource + ) { + super(mockMvc, objectMapper); + this.annotationResource = annotationResource; + } + @Override protected Object[] getControllersUnderTest() { return new Object[]{annotationResource}; diff --git a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/BaseProviderTest.java b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/BaseProviderTest.java index fcbab7cf..941a8115 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/BaseProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/BaseProviderTest.java @@ -25,7 +25,6 @@ @IgnoreNoPactsToVerify @AutoConfigureMockMvc(addFilters = false) //Uncomment @PactFolder and comment the @PactBroker line to test local consumer. -//using this, import au.com.dius.pact.provider.junitsupport.loader.PactFolder; //@PactFolder("target/pacts") @PactBroker( url = "${PACT_BROKER_FULL_URL:http://localhost:80}", @@ -33,15 +32,18 @@ ) public abstract class BaseProviderTest { - @Autowired - protected MockMvc mockMvc; - - @Autowired - protected ObjectMapper objectMapper; + protected final MockMvc mockMvc; + protected final ObjectMapper objectMapper; protected static final UUID EXAMPLE_USER_ID = UUID.fromString("c38fd29e-fa2e-43d4-a599-2d3f2908565b"); protected static final Instant EXAMPLE_DATE = Instant.parse("2024-01-15T10:00:00.123Z"); + @Autowired + protected BaseProviderTest(MockMvc mockMvc, ObjectMapper objectMapper) { + this.mockMvc = mockMvc; + this.objectMapper = objectMapper; + } + @BeforeEach void setupPactVerification(PactVerificationContext context) { MockMvcTestTarget testTarget = new MockMvcTestTarget(mockMvc); diff --git a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/BookmarkProviderTest.java b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/BookmarkProviderTest.java index b84fe212..3a485081 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/BookmarkProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/BookmarkProviderTest.java @@ -2,6 +2,7 @@ import au.com.dius.pact.provider.junitsupport.Provider; import au.com.dius.pact.provider.junitsupport.State; +import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientAutoConfiguration; import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; @@ -10,6 +11,7 @@ import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.springframework.test.context.bean.override.mockito.MockitoBean; +import org.springframework.test.web.servlet.MockMvc; import uk.gov.hmcts.reform.em.annotation.rest.BookmarkResource; import uk.gov.hmcts.reform.em.annotation.service.BookmarkService; import uk.gov.hmcts.reform.em.annotation.service.dto.BookmarkDTO; @@ -31,8 +33,7 @@ }) public class BookmarkProviderTest extends BaseProviderTest { - @Autowired - private BookmarkResource bookmarkResource; + private final BookmarkResource bookmarkResource; @MockitoBean private BookmarkService bookmarkService; @@ -42,6 +43,16 @@ public class BookmarkProviderTest extends BaseProviderTest { private static final UUID EXAMPLE_DOCUMENT_ID = UUID.fromString("2a3b4c5d-6e7f-8a9b-0c1d-2e3f4a5b6c7d"); private static final UUID EXAMPLE_PARENT_BOOKMARK_ID = UUID.fromString("3a4b5c6d-7e8f-9a0b-1c2d-3e4f5a6b7c8d"); private static final UUID EXAMPLE_PREVIOUS_BOOKMARK_ID = UUID.fromString("4a5b6c7d-8e9f-0a1b-2c3d-4e5f6a7b8c9d"); + public static final String EXAMPLE_BOOKMARK_NAME = "My Important Bookmark"; + + @Autowired + public BookmarkProviderTest( + MockMvc mockMvc, + ObjectMapper objectMapper, + BookmarkResource bookmarkResource) { + super(mockMvc, objectMapper); + this.bookmarkResource = bookmarkResource; + } @Override @@ -49,21 +60,15 @@ protected Object[] getControllersUnderTest() { return new Object[]{bookmarkResource}; } - @State({"bookmark is created successfully"}) + @State({"bookmark is created successfully", "bookmark is updated successfully"}) public void createBookmark() { - BookmarkDTO bookmarkDto = createBookmarkDTO(EXAMPLE_BOOKMARK_ID, "My Important Bookmark", 5); - when(bookmarkService.save(any(BookmarkDTO.class))).thenReturn(bookmarkDto); - } - - @State({"bookmark is updated successfully"}) - public void updateBookmark() { - BookmarkDTO bookmarkDto = createBookmarkDTO(EXAMPLE_BOOKMARK_ID, "My Important Bookmark", 5); + BookmarkDTO bookmarkDto = createBookmarkDTO(EXAMPLE_BOOKMARK_ID, EXAMPLE_BOOKMARK_NAME, 5); when(bookmarkService.save(any(BookmarkDTO.class))).thenReturn(bookmarkDto); } @State({"bookmarks are updated successfully"}) public void updateMultipleBookmarks() { - BookmarkDTO bookmark1 = createBookmarkDTO(EXAMPLE_BOOKMARK_ID, "My Important Bookmark", 5); + BookmarkDTO bookmark1 = createBookmarkDTO(EXAMPLE_BOOKMARK_ID, EXAMPLE_BOOKMARK_NAME, 5); BookmarkDTO bookmark2 = createBookmarkDTO(ANOTHER_EXAMPLE_BOOKMARK_ID, "Another Bookmark", 10); when(bookmarkService.save(argThat(dto -> @@ -74,7 +79,7 @@ public void updateMultipleBookmarks() { @State({"bookmarks exist for a document"}) public void getBookmarksForDocument() { - BookmarkDTO bookmark1 = createBookmarkDTO(EXAMPLE_BOOKMARK_ID, "My Important Bookmark", 5); + BookmarkDTO bookmark1 = createBookmarkDTO(EXAMPLE_BOOKMARK_ID, EXAMPLE_BOOKMARK_NAME, 5); BookmarkDTO bookmark2 = createBookmarkDTO(ANOTHER_EXAMPLE_BOOKMARK_ID, "Another Bookmark", 10); List bookmarks = List.of(bookmark1, bookmark2); Page page = new PageImpl<>(bookmarks); diff --git a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/CommentProviderTest.java b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/CommentProviderTest.java index d8db80a7..b24b213d 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/CommentProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/CommentProviderTest.java @@ -2,6 +2,7 @@ import au.com.dius.pact.provider.junitsupport.Provider; import au.com.dius.pact.provider.junitsupport.State; +import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientAutoConfiguration; import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; @@ -10,6 +11,7 @@ import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.springframework.test.context.bean.override.mockito.MockitoBean; +import org.springframework.test.web.servlet.MockMvc; import uk.gov.hmcts.reform.em.annotation.rest.CommentResource; import uk.gov.hmcts.reform.em.annotation.service.CommentService; import uk.gov.hmcts.reform.em.annotation.service.dto.CommentDTO; @@ -29,8 +31,7 @@ }) public class CommentProviderTest extends BaseProviderTest { - @Autowired - private CommentResource commentResource; + private final CommentResource commentResource; @MockitoBean private CommentService commentService; @@ -38,6 +39,12 @@ public class CommentProviderTest extends BaseProviderTest { private static final UUID EXAMPLE_COMMENT_ID = UUID.fromString("b3438f7d-0275-4063-9524-1a6d0b68636b"); private static final UUID EXAMPLE_ANNOTATION_ID = UUID.fromString("a58e5f39-2b0f-48e2-b052-e932375b4f69"); + @Autowired + public CommentProviderTest(MockMvc mockMvc, ObjectMapper objectMapper, CommentResource commentResource) { + super(mockMvc, objectMapper); + this.commentResource = commentResource; + } + @Override protected Object[] getControllersUnderTest() { return new Object[]{commentResource}; diff --git a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/FilterAnnotationSetProviderTest.java b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/FilterAnnotationSetProviderTest.java index 0e07ec16..81c47d59 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/FilterAnnotationSetProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/FilterAnnotationSetProviderTest.java @@ -2,11 +2,13 @@ import au.com.dius.pact.provider.junitsupport.Provider; import au.com.dius.pact.provider.junitsupport.State; +import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientAutoConfiguration; import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.test.context.bean.override.mockito.MockitoBean; +import org.springframework.test.web.servlet.MockMvc; import uk.gov.hmcts.reform.em.annotation.rest.FilterAnnotationSet; import uk.gov.hmcts.reform.em.annotation.service.AnnotationSetService; import uk.gov.hmcts.reform.em.annotation.service.dto.AnnotationDTO; @@ -26,8 +28,7 @@ }) public class FilterAnnotationSetProviderTest extends BaseProviderTest { - @Autowired - private FilterAnnotationSet filterAnnotationSet; + private final FilterAnnotationSet filterAnnotationSet; @MockitoBean private AnnotationSetService annotationSetService; @@ -35,6 +36,15 @@ public class FilterAnnotationSetProviderTest extends BaseProviderTest { private static final String EXAMPLE_DOCUMENT_ID = "f401727b-5a50-40bb-ac4d-87dc34910b6e"; private static final UUID EXAMPLE_ANNOTATION_SET_ID = UUID.fromString("4f6fe7a2-b8a6-4f0a-9f7c-8d9e1b0c9b3a"); + public FilterAnnotationSetProviderTest( + MockMvc mockMvc, + ObjectMapper objectMapper, + FilterAnnotationSet filterAnnotationSet + ) { + super(mockMvc, objectMapper); + this.filterAnnotationSet = filterAnnotationSet; + } + @Override protected Object[] getControllersUnderTest() { return new Object[]{filterAnnotationSet}; diff --git a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/MetaDataProviderTest.java b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/MetaDataProviderTest.java index 93013d9a..459ddcb6 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/MetaDataProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/MetaDataProviderTest.java @@ -2,11 +2,13 @@ import au.com.dius.pact.provider.junitsupport.Provider; import au.com.dius.pact.provider.junitsupport.State; +import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientAutoConfiguration; import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.test.context.bean.override.mockito.MockitoBean; +import org.springframework.test.web.servlet.MockMvc; import uk.gov.hmcts.reform.em.annotation.rest.MetaDataResource; import uk.gov.hmcts.reform.em.annotation.service.MetadataService; import uk.gov.hmcts.reform.em.annotation.service.dto.MetadataDto; @@ -23,8 +25,7 @@ }) public class MetaDataProviderTest extends BaseProviderTest { - @Autowired - private MetaDataResource metaDataResource; + private final MetaDataResource metaDataResource; @MockitoBean private MetadataService metadataService; @@ -32,6 +33,12 @@ public class MetaDataProviderTest extends BaseProviderTest { private static final UUID EXAMPLE_DOCUMENT_ID = UUID.fromString("8c53579b-d935-4204-82c8-250329c29d91"); private static final Integer EXAMPLE_ROTATION_ANGLE = 90; + @Autowired + public MetaDataProviderTest(MockMvc mockMvc, ObjectMapper objectMapper, MetaDataResource metaDataResource) { + super(mockMvc, objectMapper); + this.metaDataResource = metaDataResource; + } + @Override protected Object[] getControllersUnderTest() { return new Object[]{metaDataResource}; diff --git a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/RectangleProviderTest.java b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/RectangleProviderTest.java index 6c2da8a5..52251894 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/RectangleProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/RectangleProviderTest.java @@ -2,6 +2,7 @@ import au.com.dius.pact.provider.junitsupport.Provider; import au.com.dius.pact.provider.junitsupport.State; +import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientAutoConfiguration; import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; @@ -10,6 +11,7 @@ import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.springframework.test.context.bean.override.mockito.MockitoBean; +import org.springframework.test.web.servlet.MockMvc; import uk.gov.hmcts.reform.em.annotation.rest.RectangleResource; import uk.gov.hmcts.reform.em.annotation.service.AnnotationService; import uk.gov.hmcts.reform.em.annotation.service.RectangleService; @@ -31,8 +33,7 @@ }) public class RectangleProviderTest extends BaseProviderTest { - @Autowired - private RectangleResource rectangleResource; + private final RectangleResource rectangleResource; @MockitoBean private RectangleService rectangleService; @@ -43,6 +44,15 @@ public class RectangleProviderTest extends BaseProviderTest { private static final UUID EXAMPLE_RECTANGLE_ID = UUID.fromString("a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d"); private static final UUID EXAMPLE_ANNOTATION_ID = UUID.fromString("d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a"); + @Autowired + public RectangleProviderTest( + MockMvc mockMvc, + ObjectMapper objectMapper, + RectangleResource rectangleResource) { + super(mockMvc, objectMapper); + this.rectangleResource = rectangleResource; + } + @Override protected Object[] getControllersUnderTest() { diff --git a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/TagProviderTest.java b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/TagProviderTest.java index 53b953c7..e013bb7d 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/TagProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/TagProviderTest.java @@ -2,11 +2,13 @@ import au.com.dius.pact.provider.junitsupport.Provider; import au.com.dius.pact.provider.junitsupport.State; +import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.security.oauth2.client.OAuth2ClientAutoConfiguration; import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.test.context.bean.override.mockito.MockitoBean; +import org.springframework.test.web.servlet.MockMvc; import uk.gov.hmcts.reform.em.annotation.rest.TagResource; import uk.gov.hmcts.reform.em.annotation.service.TagService; import uk.gov.hmcts.reform.em.annotation.service.dto.TagDTO; @@ -23,12 +25,16 @@ }) public class TagProviderTest extends BaseProviderTest { - @Autowired - private TagResource tagResource; + private final TagResource tagResource; @MockitoBean private TagService tagService; + public TagProviderTest(MockMvc mockMvc, ObjectMapper objectMapper, TagResource tagResource) { + super(mockMvc, objectMapper); + this.tagResource = tagResource; + } + @Override protected Object[] getControllersUnderTest() { return new Object[]{tagResource}; From 5d911cabcdcdf5c4e0886ab1c736fb1d0794baa3 Mon Sep 17 00:00:00 2001 From: mdayican Date: Fri, 24 Oct 2025 17:31:22 +0100 Subject: [PATCH 2/3] fix checkstyle --- .../gov/hmcts/reform/em/annotation/provider/TagProviderTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/TagProviderTest.java b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/TagProviderTest.java index e013bb7d..3969a9e8 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/TagProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/TagProviderTest.java @@ -30,6 +30,7 @@ public class TagProviderTest extends BaseProviderTest { @MockitoBean private TagService tagService; + @Autowired public TagProviderTest(MockMvc mockMvc, ObjectMapper objectMapper, TagResource tagResource) { super(mockMvc, objectMapper); this.tagResource = tagResource; From 54badbf6a69178a7558b0ac3191e50a3640319a6 Mon Sep 17 00:00:00 2001 From: mdayican Date: Fri, 24 Oct 2025 17:41:11 +0100 Subject: [PATCH 3/3] fix checkstyle --- .../em/annotation/provider/FilterAnnotationSetProviderTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/FilterAnnotationSetProviderTest.java b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/FilterAnnotationSetProviderTest.java index 81c47d59..b779cf1c 100644 --- a/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/FilterAnnotationSetProviderTest.java +++ b/src/contractTest/java/uk/gov/hmcts/reform/em/annotation/provider/FilterAnnotationSetProviderTest.java @@ -36,6 +36,7 @@ public class FilterAnnotationSetProviderTest extends BaseProviderTest { private static final String EXAMPLE_DOCUMENT_ID = "f401727b-5a50-40bb-ac4d-87dc34910b6e"; private static final UUID EXAMPLE_ANNOTATION_SET_ID = UUID.fromString("4f6fe7a2-b8a6-4f0a-9f7c-8d9e1b0c9b3a"); + @Autowired public FilterAnnotationSetProviderTest( MockMvc mockMvc, ObjectMapper objectMapper,