summaryrefslogtreecommitdiff
path: root/src/test/kotlin/dev/dnpm
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/kotlin/dev/dnpm')
-rw-r--r--src/test/kotlin/dev/dnpm/etl/processor/consent/ConsentProcessorTest.kt58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/test/kotlin/dev/dnpm/etl/processor/consent/ConsentProcessorTest.kt b/src/test/kotlin/dev/dnpm/etl/processor/consent/ConsentProcessorTest.kt
new file mode 100644
index 0000000..5a86a29
--- /dev/null
+++ b/src/test/kotlin/dev/dnpm/etl/processor/consent/ConsentProcessorTest.kt
@@ -0,0 +1,58 @@
+package dev.dnpm.etl.processor.consent
+
+import ca.uhn.fhir.context.FhirContext
+import com.fasterxml.jackson.databind.ObjectMapper
+import dev.dnpm.etl.processor.config.AppConfigProperties
+import dev.dnpm.etl.processor.config.GIcsConfigProperties
+import dev.dnpm.etl.processor.services.ConsentProcessor
+import org.assertj.core.api.Assertions.assertThat
+import org.hl7.fhir.r4.model.Bundle
+import org.hl7.fhir.r4.model.Consent
+import org.junit.jupiter.api.BeforeEach
+import org.junit.jupiter.api.extension.ExtendWith
+import org.junit.jupiter.params.ParameterizedTest
+import org.junit.jupiter.params.provider.CsvSource
+import org.mockito.Mock
+import org.mockito.junit.jupiter.MockitoExtension
+import java.util.*
+
+@ExtendWith(MockitoExtension::class)
+class ConsentProcessorTest {
+
+ lateinit var consentProcessor: ConsentProcessor
+
+ val objectMapper = ObjectMapper()
+ val fhirContext = FhirContext.forR4()
+
+ @BeforeEach
+ fun setup(
+ @Mock consentService: IConsentService
+ ) {
+ val appConfigProperties = AppConfigProperties()
+ val gIcsConfigProperties = GIcsConfigProperties("http://localhost")
+
+ this.consentProcessor = ConsentProcessor(
+ appConfigProperties,
+ gIcsConfigProperties,
+ objectMapper,
+ fhirContext,
+ consentService
+ )
+ }
+
+ @ParameterizedTest
+ @CsvSource(value = [
+ "permittedConsentBundle.json,permit",
+ "deniedConsentBundle.json,deny"
+ ])
+ fun checkGetProvisionTypeByPolicyCode(filename: String, expected: String) {
+ val bundle = fhirContext.newJsonParser().parseResource(
+ this.javaClass.classLoader.getResourceAsStream(filename)
+ )
+ assertThat(bundle).isInstanceOf(Bundle::class.java)
+
+ val actual = consentProcessor.getProvisionTypeByPolicyCode(bundle as Bundle, Date(), ConsentDomain.BROAD_CONSENT)
+
+ assertThat(actual).isEqualTo(Consent.ConsentProvisionType.valueOf(expected.uppercase()))
+ }
+} \ No newline at end of file