diff options
| author | Paul-Christian Volkmer | 2023-03-21 17:32:48 +0100 |
|---|---|---|
| committer | Paul-Christian Volkmer | 2023-03-21 17:34:46 +0100 |
| commit | 28b834d922f21a320fd02274274298bf894ac6a9 (patch) | |
| tree | ffb8216c075205d35e472517ee1aaa5a511749fa /src/test/java/DNPM | |
| parent | 9534fec4eee2a3017dca585535853d0252305515 (diff) | |
Mapping für Formular "MR.MTB_Anmeldung" zu Therapieplan-Protokollauszug hinzugefügt
Diffstat (limited to 'src/test/java/DNPM')
5 files changed, 202 insertions, 51 deletions
diff --git a/src/test/java/DNPM/services/mtb/DefaultMtbServiceTest.java b/src/test/java/DNPM/services/mtb/DefaultMtbServiceTest.java index f730c85..f5bc374 100644 --- a/src/test/java/DNPM/services/mtb/DefaultMtbServiceTest.java +++ b/src/test/java/DNPM/services/mtb/DefaultMtbServiceTest.java @@ -6,13 +6,13 @@ import de.itc.onkostar.api.Procedure; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.MethodSource; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; import java.time.Instant; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; import static org.assertj.core.api.Assertions.assertThat; @@ -28,7 +28,26 @@ public class DefaultMtbServiceTest { @Mock IOnkostarApi onkostarApi ) { this.onkostarApi = onkostarApi; - this.service = new DefaultMtbService(); + this.service = new DefaultMtbService(onkostarApi); + } + + private static Set<Map.Entry<String, Class<? extends ProcedureToProtocolMapper>>> expectedMappings() { + return Map.ofEntries( + Map.entry("OS.Tumorkonferenz", OsTumorkonferenzToProtocolMapper.class), + Map.entry("OS.Tumorkonferenz.VarianteUKW", OsTumorkonferenzVarianteUkwToProtocolMapper.class), + Map.entry("MR.MTB_Anmeldung", MrMtbAnmeldungToProtocolMapper.class) + ).entrySet(); + } + + @ParameterizedTest + @MethodSource("expectedMappings") + void testShouldMapFormNameToMapper(Map.Entry<String, Class<?>> expectedMapping) { + var procedure = new Procedure(onkostarApi); + procedure.setFormName(expectedMapping.getKey()); + + var actual = service.procedureToProtocolMapper(procedure); + + assertThat(actual).isExactlyInstanceOf(expectedMapping.getValue()); } @Test diff --git a/src/test/java/DNPM/services/mtb/MrMtbAnmeldungToProtocolMapperTest.java b/src/test/java/DNPM/services/mtb/MrMtbAnmeldungToProtocolMapperTest.java new file mode 100644 index 0000000..479549c --- /dev/null +++ b/src/test/java/DNPM/services/mtb/MrMtbAnmeldungToProtocolMapperTest.java @@ -0,0 +1,87 @@ +package DNPM.services.mtb; + +import de.itc.onkostar.api.IOnkostarApi; +import de.itc.onkostar.api.Item; +import de.itc.onkostar.api.Procedure; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.Mockito.doAnswer; + +@ExtendWith(MockitoExtension.class) +public class MrMtbAnmeldungToProtocolMapperTest { + + private IOnkostarApi onkostarApi; + + private MrMtbAnmeldungToProtocolMapper mapper; + + @BeforeEach + void setup( + @Mock IOnkostarApi onkostarApi + ) { + this.onkostarApi = onkostarApi; + this.mapper = new MrMtbAnmeldungToProtocolMapper(onkostarApi); + } + + @Test + void testShouldMapCompletedForm() { + var anmeldung = new Procedure(onkostarApi); + anmeldung.setId(1); + anmeldung.setFormName("MR.MTB_Anmeldung"); + anmeldung.setValue("Fragestellung", new Item("Fragestellung", "Frage?")); + anmeldung.setValue("Empfehlung", new Item("Empfehlung", 2)); + + var empfehlung = new Procedure(onkostarApi); + empfehlung.setId(2); + empfehlung.setFormName("MR.MTB_Empfehlung"); + + var einzelempfehlung1 = new Procedure(onkostarApi); + einzelempfehlung1.setId(10); + einzelempfehlung1.setFormName("MR.MTB_Einzelempfehlung"); + einzelempfehlung1.setValue("Prioritaet", new Item("Empfehlungsprio", 1)); + einzelempfehlung1.setValue("Empfehlung", new Item("Empfehlung", "Empfehlung1")); + + var einzelempfehlung2 = new Procedure(onkostarApi); + einzelempfehlung2.setId(20); + einzelempfehlung2.setFormName("MR.MTB_Einzelempfehlung"); + einzelempfehlung2.setValue("Prioritaet", new Item("Empfehlungsprio", 2)); + einzelempfehlung2.setValue("Empfehlung", new Item("Empfehlung", "Empfehlung2")); + + doAnswer(invocationOnMock -> { + var procedureId = invocationOnMock.getArgument(0, Integer.class); + if (2 == procedureId) { + return empfehlung; + } else if (10 == procedureId) { + return einzelempfehlung1; + } else if (20 == procedureId) { + return einzelempfehlung2; + } + return null; + }).when(onkostarApi).getProcedure(anyInt()); + + doAnswer(invocationOnMock -> { + var procedureId = invocationOnMock.getArgument(0, Integer.class); + if (2 == procedureId) { + return Set.of(einzelempfehlung1, einzelempfehlung2); + } + return null; + }).when(onkostarApi).getSubprocedures(anyInt()); + + var actual = this.mapper.apply(anmeldung); + + assertThat(actual).isPresent(); + assertThat(actual.get()).isEqualTo( + "Fragestellung:\nFrage?\n\n" + + "Empfehlung:\nEmpfehlung1\n\n" + + "Empfehlung:\nEmpfehlung2" + ); + } + +} diff --git a/src/test/java/DNPM/services/mtb/MtbServiceTest.java b/src/test/java/DNPM/services/mtb/MtbServiceTest.java deleted file mode 100644 index eca9b1a..0000000 --- a/src/test/java/DNPM/services/mtb/MtbServiceTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package DNPM.services.mtb; - -import de.itc.onkostar.api.IOnkostarApi; -import de.itc.onkostar.api.Procedure; -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.MethodSource; -import org.mockito.Mock; -import org.mockito.junit.jupiter.MockitoExtension; - -import java.util.Map; -import java.util.Set; - -import static org.assertj.core.api.Assertions.assertThat; - -@ExtendWith(MockitoExtension.class) -public class MtbServiceTest { - - private IOnkostarApi onkostarApi; - - @BeforeEach - void setup( - @Mock IOnkostarApi onkostarApi - ) { - this.onkostarApi = onkostarApi; - } - - private static Set<Map.Entry<String, Class<? extends ProcedureToProtocolMapper>>> expectedMappings() { - return Map.ofEntries( - Map.entry("OS.Tumorkonferenz", OsTumorkonferenzToProtocolMapper.class), - Map.entry("OS.Tumorkonferenz.VarianteUKW", OsTumorkonferenzVarianteUkwToProtocolMapper.class) - ).entrySet(); - } - - @ParameterizedTest - @MethodSource("expectedMappings") - void testShouldMapFormNameToMapper(Map.Entry<String, Class<?>> expectedMapping) { - var procedure = new Procedure(onkostarApi); - procedure.setFormName(expectedMapping.getKey()); - - var actual = MtbService.procedureToProtocolMapper(procedure); - - assertThat(actual).isExactlyInstanceOf(expectedMapping.getValue()); - } - -} diff --git a/src/test/java/DNPM/services/mtb/OsTumorkonferenzToProtocolMapperTest.java b/src/test/java/DNPM/services/mtb/OsTumorkonferenzToProtocolMapperTest.java new file mode 100644 index 0000000..639edac --- /dev/null +++ b/src/test/java/DNPM/services/mtb/OsTumorkonferenzToProtocolMapperTest.java @@ -0,0 +1,46 @@ +package DNPM.services.mtb; + +import de.itc.onkostar.api.IOnkostarApi; +import de.itc.onkostar.api.Item; +import de.itc.onkostar.api.Procedure; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import java.time.Instant; +import java.util.Date; + +import static org.assertj.core.api.Assertions.assertThat; + +@ExtendWith(MockitoExtension.class) +public class OsTumorkonferenzToProtocolMapperTest { + + private IOnkostarApi onkostarApi; + + private OsTumorkonferenzToProtocolMapper mapper; + + @BeforeEach + void setup( + @Mock IOnkostarApi onkostarApi + ) { + this.onkostarApi = onkostarApi; + this.mapper = new OsTumorkonferenzToProtocolMapper(); + } + + @Test + void testShouldReturnMtbProtocolForDefaultImplementation() { + var procedure = new Procedure(onkostarApi); + procedure.setFormName("OS.Tumorkonferenz"); + procedure.setStartDate(Date.from(Instant.parse("2023-01-01T00:00:00Z"))); + procedure.setValue("Fragestellung", new Item("Fragestellung", "Test ok?")); + procedure.setValue("Empfehlung", new Item("Empfehlung", "Rerun Test if not ok!")); + + var actual = mapper.apply(procedure); + + assertThat(actual).isPresent(); + assertThat(actual.get()).isEqualTo("Fragestellung:\nTest ok?\n\nEmpfehlung:\nRerun Test if not ok!"); + } + +} diff --git a/src/test/java/DNPM/services/mtb/OsTumorkonferenzVarianteUkwToProtocolMapperTest.java b/src/test/java/DNPM/services/mtb/OsTumorkonferenzVarianteUkwToProtocolMapperTest.java new file mode 100644 index 0000000..03f151c --- /dev/null +++ b/src/test/java/DNPM/services/mtb/OsTumorkonferenzVarianteUkwToProtocolMapperTest.java @@ -0,0 +1,46 @@ +package DNPM.services.mtb; + +import de.itc.onkostar.api.IOnkostarApi; +import de.itc.onkostar.api.Item; +import de.itc.onkostar.api.Procedure; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import java.time.Instant; +import java.util.Date; + +import static org.assertj.core.api.Assertions.assertThat; + +@ExtendWith(MockitoExtension.class) +public class OsTumorkonferenzVarianteUkwToProtocolMapperTest { + + private IOnkostarApi onkostarApi; + + private OsTumorkonferenzVarianteUkwToProtocolMapper mapper; + + @BeforeEach + void setup( + @Mock IOnkostarApi onkostarApi + ) { + this.onkostarApi = onkostarApi; + this.mapper = new OsTumorkonferenzVarianteUkwToProtocolMapper(); + } + + @Test + void testShouldReturnMtbProtocolForDefaultImplementation() { + var procedure = new Procedure(onkostarApi); + procedure.setFormName("OS.Tumorkonferenz.VarianteUKW"); + procedure.setStartDate(Date.from(Instant.parse("2023-01-01T00:00:00Z"))); + procedure.setValue("Fragestellung", new Item("Fragestellung", "Test ok?")); + procedure.setValue("Empfehlung", new Item("Empfehlung", "Rerun Test if not ok!")); + + var actual = mapper.apply(procedure); + + assertThat(actual).isPresent(); + assertThat(actual.get()).isEqualTo("Fragestellung:\nTest ok?\n\nEmpfehlung:\nRerun Test if not ok!"); + } + +} |
