summaryrefslogtreecommitdiff
path: root/src/test/java/dev/dnpm/etl/processor
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2025-12-04 16:02:36 +0100
committerGitHub2025-12-04 15:02:36 +0000
commit0c14eefe6eb2e3b7567ce06b3118b54e1618058b (patch)
treee139d97014d43bbea24d474353859087f1ef1cf6 /src/test/java/dev/dnpm/etl/processor
parent9ed87d9e846c4044641c67c59a6edf3c09037479 (diff)
feat: check MII broad consent (#213)
Diffstat (limited to 'src/test/java/dev/dnpm/etl/processor')
-rw-r--r--src/test/java/dev/dnpm/etl/processor/consent/GicsGetBroadConsentServiceTest.java43
-rw-r--r--src/test/java/dev/dnpm/etl/processor/consent/MiiBroadConsentEvaluatorTest.java37
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));
+ }
+}