From c06e1650cce60a9bff71194fc0bb14f8894d13bf Mon Sep 17 00:00:00 2001 From: ORybak5 <12736698+ORybak5@users.noreply.github.com> Date: Mon, 20 Jul 2026 13:39:22 +0100 Subject: [PATCH 1/8] adding more loggings --- .../adaptors/gpc/consumer/sds/SdsClient.java | 20 +++++++++++++++---- .../sds/builder/SdsRequestBuilder.java | 6 ++++++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java b/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java index 91437d2..18e065d 100644 --- a/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java +++ b/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java @@ -36,41 +36,49 @@ public class SdsClient { private String supplierOdsCode; public Mono callForGetAsid(String interactionId, String fromOdsCode, String correlationId) { + LOGGER.info("SDS lookup for consumer ASID (fromOdsCode={}, interactionId={}, correlationId={})", + fromOdsCode, interactionId, correlationId); var sdsDeviceRequest = sdsRequestBuilder.buildAsDeviceAsidRequest(fromOdsCode, supplierOdsCode, interactionId, correlationId); return retrieveAsDeviceNhsSpineAsid(sdsDeviceRequest, LOOKUP_CONTEXT_CONSUMER_ASID); } public Mono callForGetStructuredRecord(String fromOdsCode, String correlationId) { + LOGGER.info("SDS lookup for GetStructuredRecord (fromOdsCode={}, correlationId={})", fromOdsCode, correlationId); var sdsDeviceRequest = sdsRequestBuilder.buildGetStructuredRecordAsDeviceRequest(fromOdsCode, correlationId); var sdsEndpointRequest = sdsRequestBuilder.buildGetStructuredRecordEndpointRequest(fromOdsCode, correlationId); return retrieveData(sdsDeviceRequest, sdsEndpointRequest); } public Mono callForMigrateStructuredRecord(String fromOdsCode, String correlationId) { + LOGGER.info("SDS lookup for MigrateStructuredRecord (fromOdsCode={}, correlationId={})", fromOdsCode, correlationId); var sdsDeviceRequest = sdsRequestBuilder.buildMigrateStructuredRecordAsDeviceRequest(fromOdsCode, correlationId); var sdsEndpointRequest = sdsRequestBuilder.buildMigrateStructuredRecordEndpointRequest(fromOdsCode, correlationId); return retrieveData(sdsDeviceRequest, sdsEndpointRequest); } public Mono callForPatientSearchAccessDocument(String fromOdsCode, String correlationId) { + LOGGER.info("SDS lookup for PatientSearchAccessDocument (fromOdsCode={}, correlationId={})", fromOdsCode, correlationId); var sdsDeviceRequest = sdsRequestBuilder.buildPatientSearchAccessDocumentAsDeviceRequest(fromOdsCode, correlationId); var sdsEndpointRequest = sdsRequestBuilder.buildPatientSearchAccessDocumentEndpointRequest(fromOdsCode, correlationId); return retrieveData(sdsDeviceRequest, sdsEndpointRequest); } public Mono callForSearchForDocumentRecord(String fromOdsCode, String correlationId) { + LOGGER.info("SDS lookup for SearchForDocument (fromOdsCode={}, correlationId={})", fromOdsCode, correlationId); var sdsDeviceRequest = sdsRequestBuilder.buildSearchForDocumentAsDeviceRequest(fromOdsCode, correlationId); var sdsEndpointRequest = sdsRequestBuilder.buildSearchForDocumentEndpointRequest(fromOdsCode, correlationId); return retrieveData(sdsDeviceRequest, sdsEndpointRequest); } public Mono callForRetrieveDocumentRecord(String fromOdsCode, String correlationId) { + LOGGER.info("SDS lookup for RetrieveDocument (fromOdsCode={}, correlationId={})", fromOdsCode, correlationId); var sdsDeviceRequest = sdsRequestBuilder.buildRetrieveDocumentAsDeviceRequest(fromOdsCode, correlationId); var sdsEndpointRequest = sdsRequestBuilder.buildRetrieveDocumentEndpointRequest(fromOdsCode, correlationId); return retrieveData(sdsDeviceRequest, sdsEndpointRequest); } public Mono callForMigrateDocumentRecord(String fromOdsCode, String correlationId) { + LOGGER.info("SDS lookup for MigrateDocument (fromOdsCode={}, correlationId={})", fromOdsCode, correlationId); var sdsDeviceRequest = sdsRequestBuilder.buildMigrateDocumentAsDeviceRequest(fromOdsCode, correlationId); var sdsEndpointRequest = sdsRequestBuilder.buildMigrateDocumentEndpointRequest(fromOdsCode, correlationId); return retrieveData(sdsDeviceRequest, sdsEndpointRequest); @@ -86,10 +94,15 @@ private Mono retrieveData(RequestHeadersSpec { doBundleEntryCheck(bundle, LOOKUP_CONTEXT_PROVIDER_ENDPOINT); var endpoint = (Endpoint) bundle.getEntryFirstRep().getResource(); + var nhsMhsId = getNhsMhsId(endpoint); + var address = getAddressFromEndpoint(endpoint); + + LOGGER.info("SDS provider details retrieved (nhsMhsId={}, nhsSpineAsid={}, address={})", + nhsMhsId, nhsSpineAsid, address); return SdsResponseData.builder() - .address(getAddressFromEndpoint(endpoint)) - .nhsMhsId(getNhsMhsId(endpoint)) + .address(address) + .nhsMhsId(nhsMhsId) .nhsSpineAsid(nhsSpineAsid) .build(); }) @@ -165,14 +178,13 @@ private String getAddressFromEndpoint(Endpoint endpoint) { LOGGER.error("SDS Endpoint response contained an empty address"); throw new RuntimeException("SDS returned a result but with an empty address"); } - LOGGER.info("Found GPC provider endpoint in SDS: {}", address); return address; } private Mono performRequest(RequestHeadersSpec> request) { return request.retrieve() .bodyToMono(String.class) - .doOnError(e -> LOGGER.error("SDS request failed: {}", e)); + .doOnError(e -> LOGGER.error("SDS request failed", e)); } @Builder diff --git a/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilder.java b/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilder.java index 134951a..ae63ab7 100644 --- a/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilder.java +++ b/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilder.java @@ -24,6 +24,7 @@ @RequiredArgsConstructor(onConstructor = @__(@Autowired)) @Slf4j public class SdsRequestBuilder { + private static final String PIPE = "|"; private static final String ORG_CODE_PARAMETER = "organization"; private static final String ORG_CODE_IDENTIFIER = "https://fhir.nhs.uk/Id/ods-organization-code"; @@ -121,9 +122,13 @@ private RequestHeadersSpec> buildAsidClientFor(S String interaction, String correlationId) { if (StringUtils.isEmpty(supplierOdsCode)) { + LOGGER.error("Supplier ODS code is not configured — cannot build ASID lookup request"); throw new GpConnectException("Supplier ODS code variable must be defined"); } + LOGGER.debug("Building ASID Device request (consumerOdsCode={}, supplierOdsCode={}, interaction={})", + consumerOrgOdsCode, supplierOdsCode, interaction); + var httpClient = getHttpClient(); return buildWebClient(httpClient) @@ -141,6 +146,7 @@ private RequestHeadersSpec> buildAsidClientFor(S @NotNull private RequestHeadersSpec> buildClientFor(String odsCode, String interaction, String correlationId, String path) { + LOGGER.debug("Building SDS request (odsCode={}, interaction={}, path={})", odsCode, interaction, path); var httpClient = getHttpClient(); return buildWebClient(httpClient) From ea00b9f53fdc08408f72dc685543cf59f6dcb8bb Mon Sep 17 00:00:00 2001 From: ORybak5 <12736698+ORybak5@users.noreply.github.com> Date: Mon, 20 Jul 2026 13:55:08 +0100 Subject: [PATCH 2/8] revert part of the changes from the previous commit --- .../main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java b/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java index 18e065d..0b87db0 100644 --- a/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java +++ b/service/src/main/java/uk/nhs/adaptors/gpc/consumer/sds/SdsClient.java @@ -101,8 +101,8 @@ private Mono retrieveData(RequestHeadersSpec Date: Mon, 20 Jul 2026 14:42:22 +0100 Subject: [PATCH 3/8] adding tests --- .../sds/builder/SdsRequestBuilderTest.java | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java diff --git a/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java b/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java new file mode 100644 index 0000000..0709d0f --- /dev/null +++ b/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java @@ -0,0 +1,85 @@ +package uk.nhs.adaptors.gpc.consumer.sds.builder; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.NullAndEmptySource; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.junit.jupiter.MockitoSettings; +import org.mockito.quality.Strictness; +import org.springframework.web.reactive.function.client.ExchangeFilterFunction; +import org.springframework.web.reactive.function.client.ExchangeStrategies; + +import io.netty.handler.ssl.SslContext; +import reactor.core.publisher.Mono; +import uk.nhs.adaptors.gpc.consumer.gpc.exception.GpConnectException; +import uk.nhs.adaptors.gpc.consumer.sds.configuration.SdsConfiguration; +import uk.nhs.adaptors.gpc.consumer.web.RequestBuilderService; +import uk.nhs.adaptors.gpc.consumer.web.WebClientFilterService; + +@ExtendWith(MockitoExtension.class) +@MockitoSettings(strictness = Strictness.LENIENT) +class SdsRequestBuilderTest { + + private static final String ODS_CODE = "A12345"; + private static final String SUPPLIER_ODS_CODE = "SUPPLIER01"; + private static final String CORRELATION_ID = "corr-id-001"; + private static final String INTERACTION_ID = "urn:nhs:names:services:gpconnect:fhir:operation:gpc.getstructuredrecord-1"; + private static final String SDS_URL = "https://sds.example.com"; + private static final String API_KEY = "test-api-key"; + + @Mock + private SdsConfiguration sdsConfiguration; + + @Mock + private RequestBuilderService requestBuilderService; + + @Mock + private WebClientFilterService webClientFilterService; + + @Mock + private SslContext sslContext; + + private SdsRequestBuilder sdsRequestBuilder; + + @BeforeEach + void setUp() { + sdsRequestBuilder = new SdsRequestBuilder(sdsConfiguration, requestBuilderService, webClientFilterService); + when(requestBuilderService.buildStandardSslContext()).thenReturn(sslContext); + when(requestBuilderService.buildExchangeStrategies()).thenReturn(ExchangeStrategies.withDefaults()); + when(sdsConfiguration.getUrl()).thenReturn(SDS_URL); + when(sdsConfiguration.getApiKey()).thenReturn(API_KEY); + when(webClientFilterService.logRequest()) + .thenReturn((request, next) -> next.exchange(request)); + when(webClientFilterService.logResponse()) + .thenReturn(ExchangeFilterFunction.ofResponseProcessor(Mono::just)); + when(webClientFilterService.errorHandlingFilter(any(), any())) + .thenReturn(ExchangeFilterFunction.ofResponseProcessor(Mono::just)); + } + + @ParameterizedTest + @NullAndEmptySource + void buildAsDeviceAsidRequest_shouldThrowGpConnectException_whenSupplierOdsCodeIsBlank(String blankSupplierOdsCode) { + assertThatThrownBy(() -> sdsRequestBuilder.buildAsDeviceAsidRequest(ODS_CODE, blankSupplierOdsCode, INTERACTION_ID, CORRELATION_ID)) + .isInstanceOf(GpConnectException.class) + .hasMessageContaining("Supplier ODS code variable must be defined"); + } + + @Test + void buildAsDeviceAsidRequest_shouldReturnRequest_whenSupplierOdsCodeIsPresent() { + var result = sdsRequestBuilder.buildAsDeviceAsidRequest(ODS_CODE, SUPPLIER_ODS_CODE, INTERACTION_ID, CORRELATION_ID); + assertNotNull(result); + } + + @Test + void buildGetStructuredRecordAsDeviceRequest_shouldReturnRequest() { + assertNotNull(sdsRequestBuilder.buildGetStructuredRecordAsDeviceRequest(ODS_CODE, CORRELATION_ID)); + } +} From 14aae0f949668a84a5a534641b2be1e1723c4b2e Mon Sep 17 00:00:00 2001 From: ORybak5 <12736698+ORybak5@users.noreply.github.com> Date: Mon, 20 Jul 2026 14:54:04 +0100 Subject: [PATCH 4/8] adding a missing import --- .../adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java b/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java index 0709d0f..7cb4727 100644 --- a/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java +++ b/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java @@ -23,6 +23,7 @@ import uk.nhs.adaptors.gpc.consumer.sds.configuration.SdsConfiguration; import uk.nhs.adaptors.gpc.consumer.web.RequestBuilderService; import uk.nhs.adaptors.gpc.consumer.web.WebClientFilterService; +import static org.junit.jupiter.api.Assertions.assertNotNull; @ExtendWith(MockitoExtension.class) @MockitoSettings(strictness = Strictness.LENIENT) From 854aa1f6d6f53805be9851ef9cef54ead39e9e80 Mon Sep 17 00:00:00 2001 From: ORybak5 <12736698+ORybak5@users.noreply.github.com> Date: Mon, 20 Jul 2026 15:18:46 +0100 Subject: [PATCH 5/8] checkstyle --- .../gpc/consumer/sds/builder/SdsRequestBuilderTest.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java b/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java index 7cb4727..fc18c78 100644 --- a/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java +++ b/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java @@ -1,6 +1,5 @@ package uk.nhs.adaptors.gpc.consumer.sds.builder; -import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; @@ -67,20 +66,20 @@ void setUp() { @ParameterizedTest @NullAndEmptySource - void buildAsDeviceAsidRequest_shouldThrowGpConnectException_whenSupplierOdsCodeIsBlank(String blankSupplierOdsCode) { + void When_SupplierOdsCodeIsBlank_Expect_GpConnectException(String blankSupplierOdsCode) { assertThatThrownBy(() -> sdsRequestBuilder.buildAsDeviceAsidRequest(ODS_CODE, blankSupplierOdsCode, INTERACTION_ID, CORRELATION_ID)) .isInstanceOf(GpConnectException.class) .hasMessageContaining("Supplier ODS code variable must be defined"); } @Test - void buildAsDeviceAsidRequest_shouldReturnRequest_whenSupplierOdsCodeIsPresent() { + void When_SupplierOdsCodeIsPresent_Expect_BuildAsDeviceAsidRequestReturnsRequest() { var result = sdsRequestBuilder.buildAsDeviceAsidRequest(ODS_CODE, SUPPLIER_ODS_CODE, INTERACTION_ID, CORRELATION_ID); assertNotNull(result); } @Test - void buildGetStructuredRecordAsDeviceRequest_shouldReturnRequest() { + void When_Called_Expect_BuildGetStructuredRecordAsDeviceRequestReturnsRequest() { assertNotNull(sdsRequestBuilder.buildGetStructuredRecordAsDeviceRequest(ODS_CODE, CORRELATION_ID)); } } From 4f5c162b67dbffcf8a4545461e5b9549a656c5a1 Mon Sep 17 00:00:00 2001 From: ORybak5 <12736698+ORybak5@users.noreply.github.com> Date: Tue, 21 Jul 2026 10:31:08 +0100 Subject: [PATCH 6/8] adding more tests --- .../sds/builder/SdsRequestBuilderTest.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java b/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java index fc18c78..b124060 100644 --- a/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java +++ b/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java @@ -74,7 +74,9 @@ void When_SupplierOdsCodeIsBlank_Expect_GpConnectException(String blankSupplierO @Test void When_SupplierOdsCodeIsPresent_Expect_BuildAsDeviceAsidRequestReturnsRequest() { + var result = sdsRequestBuilder.buildAsDeviceAsidRequest(ODS_CODE, SUPPLIER_ODS_CODE, INTERACTION_ID, CORRELATION_ID); + assertNotNull(result); } @@ -82,4 +84,24 @@ void When_SupplierOdsCodeIsPresent_Expect_BuildAsDeviceAsidRequestReturnsRequest void When_Called_Expect_BuildGetStructuredRecordAsDeviceRequestReturnsRequest() { assertNotNull(sdsRequestBuilder.buildGetStructuredRecordAsDeviceRequest(ODS_CODE, CORRELATION_ID)); } + + @Test + void buildGetStructuredRecordEndpointRequest_shouldReturnRequest() { + assertNotNull(sdsRequestBuilder.buildGetStructuredRecordEndpointRequest(ODS_CODE, CORRELATION_ID)); + } + + @Test + void buildMigrateStructuredRecordAsDeviceRequest_shouldReturnRequest() { + assertNotNull(sdsRequestBuilder.buildMigrateStructuredRecordAsDeviceRequest(ODS_CODE, CORRELATION_ID)); + } + + @Test + void buildMigrateStructuredRecordEndpointRequest_shouldReturnRequest() { + assertNotNull(sdsRequestBuilder.buildMigrateStructuredRecordEndpointRequest(ODS_CODE, CORRELATION_ID)); + } + + @Test + void buildPatientSearchAccessDocumentAsDeviceRequest_shouldReturnRequest() { + assertNotNull(sdsRequestBuilder.buildPatientSearchAccessDocumentAsDeviceRequest(ODS_CODE, CORRELATION_ID)); + } } From f054c84799def8d00ee65f2798f0e983283815a3 Mon Sep 17 00:00:00 2001 From: ORybak5 <12736698+ORybak5@users.noreply.github.com> Date: Tue, 21 Jul 2026 10:56:00 +0100 Subject: [PATCH 7/8] checkstyle --- .../gpc/consumer/sds/builder/SdsRequestBuilderTest.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java b/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java index b124060..d334f70 100644 --- a/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java +++ b/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java @@ -86,22 +86,22 @@ void When_Called_Expect_BuildGetStructuredRecordAsDeviceRequestReturnsRequest() } @Test - void buildGetStructuredRecordEndpointRequest_shouldReturnRequest() { + void When_Called_Expect_BuildGetStructuredRecordEndpointRequestReturnsRequest() { assertNotNull(sdsRequestBuilder.buildGetStructuredRecordEndpointRequest(ODS_CODE, CORRELATION_ID)); } @Test - void buildMigrateStructuredRecordAsDeviceRequest_shouldReturnRequest() { + void When_Called_Expect_BuildMigrateStructuredRecordAsDeviceRequestReturnsRequest() { assertNotNull(sdsRequestBuilder.buildMigrateStructuredRecordAsDeviceRequest(ODS_CODE, CORRELATION_ID)); } @Test - void buildMigrateStructuredRecordEndpointRequest_shouldReturnRequest() { + void When_Called_Expect_BuildMigrateStructuredRecordEndpointRequestReturnsRequest() { assertNotNull(sdsRequestBuilder.buildMigrateStructuredRecordEndpointRequest(ODS_CODE, CORRELATION_ID)); } @Test - void buildPatientSearchAccessDocumentAsDeviceRequest_shouldReturnRequest() { + void When_Called_Expect_BuildPatientSearchAccessDocumentAsDeviceRequestReturnsRequest() { assertNotNull(sdsRequestBuilder.buildPatientSearchAccessDocumentAsDeviceRequest(ODS_CODE, CORRELATION_ID)); } } From 5532e542dfc102648eeb05835b5806a89292cca7 Mon Sep 17 00:00:00 2001 From: ORybak5 <12736698+ORybak5@users.noreply.github.com> Date: Tue, 21 Jul 2026 14:02:15 +0100 Subject: [PATCH 8/8] adding more tests --- .../sds/builder/SdsRequestBuilderTest.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java b/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java index d334f70..b8a0591 100644 --- a/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java +++ b/service/src/test/java/uk/nhs/adaptors/gpc/consumer/sds/builder/SdsRequestBuilderTest.java @@ -104,4 +104,39 @@ void When_Called_Expect_BuildMigrateStructuredRecordEndpointRequestReturnsReques void When_Called_Expect_BuildPatientSearchAccessDocumentAsDeviceRequestReturnsRequest() { assertNotNull(sdsRequestBuilder.buildPatientSearchAccessDocumentAsDeviceRequest(ODS_CODE, CORRELATION_ID)); } + + @Test + void When_Called_Expect_BuildPatientSearchAccessDocumentEndpointRequestReturnsRequest() { + assertNotNull(sdsRequestBuilder.buildPatientSearchAccessDocumentEndpointRequest(ODS_CODE, CORRELATION_ID)); + } + + @Test + void When_Called_Expect_BuildSearchForDocumentAsDeviceRequestReturnsRequest() { + assertNotNull(sdsRequestBuilder.buildSearchForDocumentAsDeviceRequest(ODS_CODE, CORRELATION_ID)); + } + + @Test + void When_Called_Expect_BuildSearchForDocumentEndpointRequestReturnsRequest() { + assertNotNull(sdsRequestBuilder.buildSearchForDocumentEndpointRequest(ODS_CODE, CORRELATION_ID)); + } + + @Test + void When_Called_Expect_BuildRetrieveDocumentAsDeviceRequestReturnsRequest() { + assertNotNull(sdsRequestBuilder.buildRetrieveDocumentAsDeviceRequest(ODS_CODE, CORRELATION_ID)); + } + + @Test + void When_Called_Expect_BuildRetrieveDocumentEndpointRequestReturnsRequest() { + assertNotNull(sdsRequestBuilder.buildRetrieveDocumentEndpointRequest(ODS_CODE, CORRELATION_ID)); + } + + @Test + void When_Called_Expect_BuildMigrateDocumentAsDeviceRequestReturnsRequest() { + assertNotNull(sdsRequestBuilder.buildMigrateDocumentAsDeviceRequest(ODS_CODE, CORRELATION_ID)); + } + + @Test + void When_Called_Expect_BuildMigrateDocumentEndpointRequestReturnsRequest() { + assertNotNull(sdsRequestBuilder.buildMigrateDocumentEndpointRequest(ODS_CODE, CORRELATION_ID)); + } }