summaryrefslogtreecommitdiff
path: root/src/test/java/dev/dnpm
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/java/dev/dnpm')
-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));
+ }
+}