From 7ae349930521ed4f9b6255e12c50641ed4987e9d Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Wed, 22 Oct 2025 17:09:14 +0200 Subject: build: add spotless for java code (#158) --- .../processor/consent/GicsConsentServiceTest.java | 375 ++++++++++----------- 1 file changed, 184 insertions(+), 191 deletions(-) (limited to 'src/test/java/dev/dnpm') diff --git a/src/test/java/dev/dnpm/etl/processor/consent/GicsConsentServiceTest.java b/src/test/java/dev/dnpm/etl/processor/consent/GicsConsentServiceTest.java index 02b4d37..40fdc52 100644 --- a/src/test/java/dev/dnpm/etl/processor/consent/GicsConsentServiceTest.java +++ b/src/test/java/dev/dnpm/etl/processor/consent/GicsConsentServiceTest.java @@ -1,10 +1,19 @@ package dev.dnpm.etl.processor.consent; +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo; +import static org.springframework.test.web.client.response.MockRestResponseCreators.withServerError; +import static org.springframework.test.web.client.response.MockRestResponseCreators.withSuccess; + import ca.uhn.fhir.context.FhirContext; import com.fasterxml.jackson.databind.ObjectMapper; import dev.dnpm.etl.processor.config.AppConfiguration; import dev.dnpm.etl.processor.config.AppFhirConfig; import dev.dnpm.etl.processor.config.GIcsConfigProperties; +import java.nio.charset.StandardCharsets; +import java.time.Instant; +import java.util.Date; +import java.util.Objects; import org.apache.commons.io.IOUtils; import org.hl7.fhir.r4.model.*; import org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity; @@ -22,199 +31,183 @@ import org.springframework.test.context.TestPropertySource; import org.springframework.test.web.client.MockRestServiceServer; import org.springframework.web.client.RestTemplate; -import java.nio.charset.StandardCharsets; -import java.time.Instant; -import java.util.Date; -import java.util.Objects; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.fail; -import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo; -import static org.springframework.test.web.client.response.MockRestResponseCreators.withServerError; -import static org.springframework.test.web.client.response.MockRestResponseCreators.withSuccess; - @ContextConfiguration(classes = {AppConfiguration.class, ObjectMapper.class}) -@TestPropertySource(properties = { - "app.consent.service=gics", - "app.consent.gics.uri=http://localhost:8090/ttp-fhir/fhir/gics" -}) +@TestPropertySource( + properties = { + "app.consent.service=gics", + "app.consent.gics.uri=http://localhost:8090/ttp-fhir/fhir/gics" + }) @RestClientTest class GicsConsentServiceTest { - static final String GICS_BASE_URI = "http://localhost:8090/ttp-fhir/fhir/gics"; - - MockRestServiceServer mockRestServiceServer; - AppFhirConfig appFhirConfig; - GIcsConfigProperties gIcsConfigProperties; - - GicsConsentService gicsConsentService; - - @BeforeEach - void setUp( - @Autowired AppFhirConfig appFhirConfig, - @Autowired GIcsConfigProperties gIcsConfigProperties - ) { - this.appFhirConfig = appFhirConfig; - this.gIcsConfigProperties = gIcsConfigProperties; - - var restTemplate = new RestTemplate(); - - this.mockRestServiceServer = MockRestServiceServer.createServer(restTemplate); - this.gicsConsentService = new GicsConsentService( - this.gIcsConfigProperties, - RetryTemplate.builder().maxAttempts(1).build(), - restTemplate, - this.appFhirConfig - ); - } - - @Test - void shouldReturnTtpBroadConsentStatus() { - final Parameters consentedResponse = new Parameters() - .addParameter( - new ParametersParameterComponent() - .setName("consented") - .setValue(new BooleanType().setValue(true)) - ); - - mockRestServiceServer - .expect( - requestTo( - "http://localhost:8090/ttp-fhir/fhir/gics" + GicsConsentService.IS_CONSENTED_ENDPOINT) - ) - .andRespond( - withSuccess( - appFhirConfig.fhirContext().newJsonParser().encodeResourceToString(consentedResponse), - MediaType.APPLICATION_JSON - ) - ); - - var consentStatus = gicsConsentService.getTtpBroadConsentStatus("123456"); - assertThat(consentStatus).isEqualTo(TtpConsentStatus.BROAD_CONSENT_GIVEN); - } - - @Test - void shouldReturnRevokedConsent() { - final Parameters revokedResponse = new Parameters() - .addParameter( - new ParametersParameterComponent() - .setName("consented") - .setValue(new BooleanType().setValue(false)) - ); - - mockRestServiceServer - .expect( - requestTo( - "http://localhost:8090/ttp-fhir/fhir/gics" + GicsConsentService.IS_CONSENTED_ENDPOINT) - ) - .andRespond( - withSuccess( - appFhirConfig.fhirContext().newJsonParser().encodeResourceToString(revokedResponse), - MediaType.APPLICATION_JSON) - ); - - var consentStatus = gicsConsentService.getTtpBroadConsentStatus("123456"); - assertThat(consentStatus).isEqualTo(TtpConsentStatus.BROAD_CONSENT_MISSING_OR_REJECTED); - } - - - @Test - void shouldReturnInvalidParameterResponse() { - final OperationOutcome responseWithErrorOutcome = new OperationOutcome() - .addIssue( - new OperationOutcomeIssueComponent() - .setSeverity(IssueSeverity.ERROR) - .setCode(IssueType.PROCESSING) - .setDiagnostics("Invalid policy parameter...") - ); - - mockRestServiceServer - .expect( - requestTo(GICS_BASE_URI + GicsConsentService.IS_CONSENTED_ENDPOINT) - ) - .andRespond( - withSuccess( - appFhirConfig.fhirContext().newJsonParser().encodeResourceToString(responseWithErrorOutcome), - MediaType.APPLICATION_JSON - ) - ); - - var consentStatus = gicsConsentService.getTtpBroadConsentStatus("123456"); - assertThat(consentStatus).isEqualTo(TtpConsentStatus.FAILED_TO_ASK); - } - - @Test - void shouldReturnRequestError() { - mockRestServiceServer - .expect( - requestTo(GICS_BASE_URI + GicsConsentService.IS_CONSENTED_ENDPOINT) - ) - .andRespond( - withServerError() - ); - - var consentStatus = gicsConsentService.getTtpBroadConsentStatus("123456"); - assertThat(consentStatus).isEqualTo(TtpConsentStatus.FAILED_TO_ASK); - } - - @Test - void buildRequestParameterCurrentPolicyStatesForPersonTest() { - String pid = "12345678"; - var result = gicsConsentService - .buildRequestParameterCurrentPolicyStatesForPerson( - pid, - Date.from(Instant.now()), - ConsentDomain.MODELLVORHABEN_64E - ); - - assertThat(result.getParameter()) - .as("should contain 3 parameter resources") - .hasSize(3); - - assertThat(((StringType) result.getParameter("domain").getValue()).getValue()) - .isEqualTo( - gIcsConfigProperties.getGenomDeConsentDomainName() - ); - - assertThat(((Identifier) result.getParameter("personIdentifier").getValue()).getValue()) - .isEqualTo( - pid - ); - } - - @Test - void convertGicsResultToMiiBroadConsent() throws Exception { - var fhirJsonParser = FhirContext.forR4().newJsonParser(); - fhirJsonParser.setPrettyPrint(true); - - var gicsInputStream = Objects.requireNonNull( - this.getClass().getClassLoader().getResourceAsStream("fake_broadConsent_gics_response_permit.json") - ); - var gicsConsentBundle = (Bundle) fhirJsonParser.parseResource(IOUtils.toString(gicsInputStream, StandardCharsets.UTF_8)); - - var miiInputStream = Objects.requireNonNull( - this.getClass().getClassLoader().getResourceAsStream("fake_broadConsent_mii_response_permit.json") - ); - var miiConsent = IOUtils.toString(miiInputStream, StandardCharsets.UTF_8); - - var actual = gicsConsentService.convertGicsResultToMiiBroadConsent(gicsConsentBundle); - - assertThat(fhirJsonParser.encodeToString(actual)).isEqualTo(miiConsent); - } - - @Test - void convertedMiiBroadConsentShouldNotContainPatientId() throws Exception { - var fhirJsonParser = FhirContext.forR4().newJsonParser(); - fhirJsonParser.setPrettyPrint(true); - - var miiInputStream = Objects.requireNonNull( - this.getClass().getClassLoader().getResourceAsStream("fake_broadConsent_mii_response_permit.json") - ); - var miiConsentBundle = (Bundle) fhirJsonParser.parseResource(IOUtils.toString(miiInputStream, StandardCharsets.UTF_8)); - - var currentPatientId = miiConsentBundle.getEntry().getFirst().getResource().getIdPart(); - - var actual = gicsConsentService.anonymizeBroadConsent(miiConsentBundle); - assertThat(fhirJsonParser.encodeToString(actual)).doesNotContain(currentPatientId); - } + static final String GICS_BASE_URI = "http://localhost:8090/ttp-fhir/fhir/gics"; + + MockRestServiceServer mockRestServiceServer; + AppFhirConfig appFhirConfig; + GIcsConfigProperties gIcsConfigProperties; + + GicsConsentService gicsConsentService; + + @BeforeEach + void setUp( + @Autowired AppFhirConfig appFhirConfig, + @Autowired GIcsConfigProperties gIcsConfigProperties) { + this.appFhirConfig = appFhirConfig; + this.gIcsConfigProperties = gIcsConfigProperties; + + var restTemplate = new RestTemplate(); + + this.mockRestServiceServer = MockRestServiceServer.createServer(restTemplate); + this.gicsConsentService = + new GicsConsentService( + this.gIcsConfigProperties, + RetryTemplate.builder().maxAttempts(1).build(), + restTemplate, + this.appFhirConfig); + } + + @Test + void shouldReturnTtpBroadConsentStatus() { + final Parameters consentedResponse = + new Parameters() + .addParameter( + new ParametersParameterComponent() + .setName("consented") + .setValue(new BooleanType().setValue(true))); + + mockRestServiceServer + .expect( + requestTo( + "http://localhost:8090/ttp-fhir/fhir/gics" + + GicsConsentService.IS_CONSENTED_ENDPOINT)) + .andRespond( + withSuccess( + appFhirConfig + .fhirContext() + .newJsonParser() + .encodeResourceToString(consentedResponse), + MediaType.APPLICATION_JSON)); + + var consentStatus = gicsConsentService.getTtpBroadConsentStatus("123456"); + assertThat(consentStatus).isEqualTo(TtpConsentStatus.BROAD_CONSENT_GIVEN); + } + + @Test + void shouldReturnRevokedConsent() { + final Parameters revokedResponse = + new Parameters() + .addParameter( + new ParametersParameterComponent() + .setName("consented") + .setValue(new BooleanType().setValue(false))); + + mockRestServiceServer + .expect( + requestTo( + "http://localhost:8090/ttp-fhir/fhir/gics" + + GicsConsentService.IS_CONSENTED_ENDPOINT)) + .andRespond( + withSuccess( + appFhirConfig.fhirContext().newJsonParser().encodeResourceToString(revokedResponse), + MediaType.APPLICATION_JSON)); + + var consentStatus = gicsConsentService.getTtpBroadConsentStatus("123456"); + assertThat(consentStatus).isEqualTo(TtpConsentStatus.BROAD_CONSENT_MISSING_OR_REJECTED); + } + + @Test + void shouldReturnInvalidParameterResponse() { + final OperationOutcome responseWithErrorOutcome = + new OperationOutcome() + .addIssue( + new OperationOutcomeIssueComponent() + .setSeverity(IssueSeverity.ERROR) + .setCode(IssueType.PROCESSING) + .setDiagnostics("Invalid policy parameter...")); + + mockRestServiceServer + .expect(requestTo(GICS_BASE_URI + GicsConsentService.IS_CONSENTED_ENDPOINT)) + .andRespond( + withSuccess( + appFhirConfig + .fhirContext() + .newJsonParser() + .encodeResourceToString(responseWithErrorOutcome), + MediaType.APPLICATION_JSON)); + + var consentStatus = gicsConsentService.getTtpBroadConsentStatus("123456"); + assertThat(consentStatus).isEqualTo(TtpConsentStatus.FAILED_TO_ASK); + } + + @Test + void shouldReturnRequestError() { + mockRestServiceServer + .expect(requestTo(GICS_BASE_URI + GicsConsentService.IS_CONSENTED_ENDPOINT)) + .andRespond(withServerError()); + + var consentStatus = gicsConsentService.getTtpBroadConsentStatus("123456"); + assertThat(consentStatus).isEqualTo(TtpConsentStatus.FAILED_TO_ASK); + } + + @Test + void buildRequestParameterCurrentPolicyStatesForPersonTest() { + String pid = "12345678"; + var result = + gicsConsentService.buildRequestParameterCurrentPolicyStatesForPerson( + pid, Date.from(Instant.now()), ConsentDomain.MODELLVORHABEN_64E); + + assertThat(result.getParameter()).as("should contain 3 parameter resources").hasSize(3); + + assertThat(((StringType) result.getParameter("domain").getValue()).getValue()) + .isEqualTo(gIcsConfigProperties.getGenomDeConsentDomainName()); + + assertThat(((Identifier) result.getParameter("personIdentifier").getValue()).getValue()) + .isEqualTo(pid); + } + + @Test + void convertGicsResultToMiiBroadConsent() throws Exception { + var fhirJsonParser = FhirContext.forR4().newJsonParser(); + fhirJsonParser.setPrettyPrint(true); + + var gicsInputStream = + Objects.requireNonNull( + this.getClass() + .getClassLoader() + .getResourceAsStream("fake_broadConsent_gics_response_permit.json")); + var gicsConsentBundle = + (Bundle) + fhirJsonParser.parseResource(IOUtils.toString(gicsInputStream, StandardCharsets.UTF_8)); + + var miiInputStream = + Objects.requireNonNull( + this.getClass() + .getClassLoader() + .getResourceAsStream("fake_broadConsent_mii_response_permit.json")); + var miiConsent = IOUtils.toString(miiInputStream, StandardCharsets.UTF_8); + + var actual = gicsConsentService.convertGicsResultToMiiBroadConsent(gicsConsentBundle); + + assertThat(fhirJsonParser.encodeToString(actual)).isEqualTo(miiConsent); + } + + @Test + void convertedMiiBroadConsentShouldNotContainPatientId() throws Exception { + var fhirJsonParser = FhirContext.forR4().newJsonParser(); + fhirJsonParser.setPrettyPrint(true); + + var miiInputStream = + Objects.requireNonNull( + this.getClass() + .getClassLoader() + .getResourceAsStream("fake_broadConsent_mii_response_permit.json")); + var miiConsentBundle = + (Bundle) + fhirJsonParser.parseResource(IOUtils.toString(miiInputStream, StandardCharsets.UTF_8)); + + var currentPatientId = miiConsentBundle.getEntry().getFirst().getResource().getIdPart(); + + var actual = gicsConsentService.anonymizeBroadConsent(miiConsentBundle); + assertThat(fhirJsonParser.encodeToString(actual)).doesNotContain(currentPatientId); + } } -- cgit v1.2.3