diff options
| author | Paul-Christian Volkmer | 2025-12-04 16:02:36 +0100 |
|---|---|---|
| committer | GitHub | 2025-12-04 15:02:36 +0000 |
| commit | 0c14eefe6eb2e3b7567ce06b3118b54e1618058b (patch) | |
| tree | e139d97014d43bbea24d474353859087f1ef1cf6 /src/test/java/dev/dnpm | |
| parent | 9ed87d9e846c4044641c67c59a6edf3c09037479 (diff) | |
feat: check MII broad consent (#213)
Diffstat (limited to 'src/test/java/dev/dnpm')
| -rw-r--r-- | src/test/java/dev/dnpm/etl/processor/consent/GicsGetBroadConsentServiceTest.java | 43 | ||||
| -rw-r--r-- | src/test/java/dev/dnpm/etl/processor/consent/MiiBroadConsentEvaluatorTest.java | 37 |
2 files changed, 46 insertions, 34 deletions
diff --git a/src/test/java/dev/dnpm/etl/processor/consent/GicsGetBroadConsentServiceTest.java b/src/test/java/dev/dnpm/etl/processor/consent/GicsGetBroadConsentServiceTest.java index b3ebc08..cced1cf 100644 --- a/src/test/java/dev/dnpm/etl/processor/consent/GicsGetBroadConsentServiceTest.java +++ b/src/test/java/dev/dnpm/etl/processor/consent/GicsGetBroadConsentServiceTest.java @@ -10,14 +10,14 @@ import dev.dnpm.etl.processor.config.AppConfiguration; import dev.dnpm.etl.processor.config.AppFhirConfig; import dev.dnpm.etl.processor.config.GIcsConfigProperties; import java.net.URI; +import java.nio.charset.StandardCharsets; +import java.util.Objects; +import org.apache.commons.io.IOUtils; import org.apache.hc.core5.net.URIBuilder; -import org.hl7.fhir.r4.model.BooleanType; import org.hl7.fhir.r4.model.OperationOutcome; import org.hl7.fhir.r4.model.OperationOutcome.IssueSeverity; import org.hl7.fhir.r4.model.OperationOutcome.IssueType; import org.hl7.fhir.r4.model.OperationOutcome.OperationOutcomeIssueComponent; -import org.hl7.fhir.r4.model.Parameters; -import org.hl7.fhir.r4.model.Parameters.ParametersParameterComponent; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -78,48 +78,23 @@ class GicsGetBroadConsentServiceTest { @Test void shouldReturnTtpBroadConsentStatus() throws Exception { - final Parameters consentedResponse = - new Parameters() - .addParameter( - new ParametersParameterComponent() - .setName("consented") - .setValue(new BooleanType().setValue(true))); + var inputStream = + Objects.requireNonNull( + this.getClass() + .getClassLoader() + .getResourceAsStream("fake_broadConsent_mii_response_permit.json")); mockRestServiceServer .expect(requestTo(expectedGicsConsentedEndpoint())) .andRespond( withSuccess( - appFhirConfig - .fhirContext() - .newJsonParser() - .encodeResourceToString(consentedResponse), - MediaType.APPLICATION_JSON)); + IOUtils.toString(inputStream, StandardCharsets.UTF_8), MediaType.APPLICATION_JSON)); var consentStatus = service.getTtpBroadConsentStatus("123456"); assertThat(consentStatus).isEqualTo(TtpConsentStatus.BROAD_CONSENT_GIVEN); } @Test - void shouldReturnRevokedConsent() throws Exception { - final Parameters revokedResponse = - new Parameters() - .addParameter( - new ParametersParameterComponent() - .setName("consented") - .setValue(new BooleanType().setValue(false))); - - mockRestServiceServer - .expect(requestTo(expectedGicsConsentedEndpoint())) - .andRespond( - withSuccess( - appFhirConfig.fhirContext().newJsonParser().encodeResourceToString(revokedResponse), - MediaType.APPLICATION_JSON)); - - var consentStatus = service.getTtpBroadConsentStatus("123456"); - assertThat(consentStatus).isEqualTo(TtpConsentStatus.BROAD_CONSENT_MISSING_OR_REJECTED); - } - - @Test void shouldReturnInvalidParameterResponse() throws Exception { final OperationOutcome responseWithErrorOutcome = new OperationOutcome() diff --git a/src/test/java/dev/dnpm/etl/processor/consent/MiiBroadConsentEvaluatorTest.java b/src/test/java/dev/dnpm/etl/processor/consent/MiiBroadConsentEvaluatorTest.java new file mode 100644 index 0000000..e63dddc --- /dev/null +++ b/src/test/java/dev/dnpm/etl/processor/consent/MiiBroadConsentEvaluatorTest.java @@ -0,0 +1,37 @@ +package dev.dnpm.etl.processor.consent; + +import static org.assertj.core.api.Assertions.assertThat; + +import ca.uhn.fhir.context.FhirContext; +import java.nio.charset.StandardCharsets; +import java.util.Objects; +import java.util.stream.Stream; +import org.apache.commons.io.IOUtils; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; + +class MiiBroadConsentEvaluatorTest { + + @ParameterizedTest + @MethodSource("consentData") + void shouldEvaluateResponse(String filename, TtpConsentStatus status) throws Exception { + var inputStream = + Objects.requireNonNull(this.getClass().getClassLoader().getResourceAsStream(filename)); + + var actual = + MiiBroadConsentEvaluator.evaluate( + FhirContext.forR4(), IOUtils.toString(inputStream, StandardCharsets.UTF_8)); + + assertThat(actual).isEqualTo(status); + } + + public static Stream<Arguments> consentData() { + return Stream.of( + Arguments.of( + "fake_broadConsent_mii_response_permit.json", TtpConsentStatus.BROAD_CONSENT_GIVEN), + Arguments.of( + "fake_broadConsent_mii_response_deny.json", + TtpConsentStatus.BROAD_CONSENT_MISSING_OR_REJECTED)); + } +} |
