diff options
Diffstat (limited to 'src/test/kotlin/dev/dnpm/etl')
| -rw-r--r-- | src/test/kotlin/dev/dnpm/etl/processor/consent/ConsentProcessorTest.kt | 58 |
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 |
