diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/java/DNPM/services/mtb/DefaultMtbServiceTest.java | 104 | ||||
| -rw-r--r-- | src/test/java/DNPM/services/mtb/MtbServiceTest.java | 47 |
2 files changed, 126 insertions, 25 deletions
diff --git a/src/test/java/DNPM/services/mtb/DefaultMtbServiceTest.java b/src/test/java/DNPM/services/mtb/DefaultMtbServiceTest.java index 073f25c..f730c85 100644 --- a/src/test/java/DNPM/services/mtb/DefaultMtbServiceTest.java +++ b/src/test/java/DNPM/services/mtb/DefaultMtbServiceTest.java @@ -1,6 +1,5 @@ package DNPM.services.mtb; -import DNPM.services.SettingsService; import de.itc.onkostar.api.IOnkostarApi; import de.itc.onkostar.api.Item; import de.itc.onkostar.api.Procedure; @@ -14,35 +13,26 @@ import java.time.Instant; import java.util.Arrays; import java.util.Date; import java.util.List; -import java.util.Optional; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) public class DefaultMtbServiceTest { private IOnkostarApi onkostarApi; - private SettingsService settingsService; - private DefaultMtbService service; @BeforeEach void setup( - @Mock IOnkostarApi onkostarApi, - @Mock SettingsService settingsService + @Mock IOnkostarApi onkostarApi ) { this.onkostarApi = onkostarApi; - this.settingsService = settingsService; - this.service = new DefaultMtbService(settingsService); + this.service = new DefaultMtbService(); } @Test void testShouldReturnMtbProtocolForDefaultImplementation() { - when(settingsService.getSID()).thenReturn(Optional.of("12345")); - when(settingsService.multipleMtbsInMtbEpisode()).thenReturn(false); - var procedure1 = new Procedure(onkostarApi); procedure1.setFormName("OS.Tumorkonferenz"); procedure1.setStartDate(Date.from(Instant.parse("2023-01-01T00:00:00Z"))); @@ -59,30 +49,34 @@ public class DefaultMtbServiceTest { } @Test - void testShouldReturnEmptyMtbProtocolForMultipleMtb() { - when(settingsService.getSID()).thenReturn(Optional.of("12345")); - when(settingsService.multipleMtbsInMtbEpisode()).thenReturn(true); - + void testShouldReturnMtbProtocolForMultipleTK() { var procedure1 = new Procedure(onkostarApi); procedure1.setFormName("OS.Tumorkonferenz"); - procedure1.setStartDate(Date.from(Instant.parse("2023-01-01T00:00:00Z"))); - procedure1.setValue("Fragestellung", new Item("Fragestellung", "Test ok?")); - procedure1.setValue("Empfehlung", new Item("Empfehlung", "Rerun Test if not ok!")); + procedure1.setStartDate(Date.from(Instant.parse("2023-02-01T00:00:00Z"))); + procedure1.setValue("Fragestellung", new Item("Fragestellung", "Test immer noch ok?")); + procedure1.setValue("Empfehlung", new Item("Empfehlung", "Do not rerun Test if ok!")); + + var procedure2 = new Procedure(onkostarApi); + procedure2.setFormName("OS.Tumorkonferenz"); + procedure2.setStartDate(Date.from(Instant.parse("2023-01-01T00:00:00Z"))); + procedure2.setValue("Fragestellung", new Item("Fragestellung", "Test ok?")); + procedure2.setValue("Empfehlung", new Item("Empfehlung", "Rerun Test if not ok!")); var procedures = List.of( - procedure1 + procedure1, + procedure2 ); var actual = service.getProtocol(procedures); - assertThat(actual).isEmpty(); + assertThat(actual).isEqualTo( + "Fragestellung:\nTest ok?\n\nEmpfehlung:\nRerun Test if not ok!\n\n" + + "Fragestellung:\nTest immer noch ok?\n\nEmpfehlung:\nDo not rerun Test if ok!" + ); } @Test - void testShouldReturnMtbProtocolForSID20119() { - when(settingsService.getSID()).thenReturn(Optional.of("20119")); - when(settingsService.multipleMtbsInMtbEpisode()).thenReturn(true); - + void testShouldReturnMtbProtocolForMultipleTKVarianteUKW() { var procedure1 = new Procedure(onkostarApi); procedure1.setFormName("OS.Tumorkonferenz.VarianteUKW"); procedure1.setStartDate(Date.from(Instant.parse("2023-02-01T00:00:00Z"))); @@ -109,4 +103,64 @@ public class DefaultMtbServiceTest { ); } + @Test + void testShouldReturnDistinctProtocolEntries() { + var procedure1 = new Procedure(onkostarApi); + procedure1.setFormName("OS.Tumorkonferenz.VarianteUKW"); + procedure1.setStartDate(Date.from(Instant.parse("2023-02-01T00:00:00Z"))); + procedure1.setValue("Fragestellung", new Item("Fragestellung", "Test immer noch ok?")); + procedure1.setValue("Empfehlung", new Item("Empfehlung", "Do not rerun Test if ok!")); + + var procedure2 = new Procedure(onkostarApi); + procedure2.setFormName("OS.Tumorkonferenz.VarianteUKW"); + procedure2.setStartDate(Date.from(Instant.parse("2023-02-01T00:00:00Z"))); + procedure2.setValue("Fragestellung", new Item("Fragestellung", "Test immer noch ok?")); + procedure2.setValue("Empfehlung", new Item("Empfehlung", "Do not rerun Test if ok!")); + + var procedure3 = new Procedure(onkostarApi); + procedure3.setFormName("OS.Tumorkonferenz.VarianteUKW"); + procedure3.setStartDate(Date.from(Instant.parse("2023-01-01T00:00:00Z"))); + procedure3.setValue("Fragestellung", new Item("Fragestellung", "Test ok?")); + procedure3.setValue("Empfehlung", new Item("Empfehlung", "Rerun Test if not ok!")); + + + var procedures = Arrays.asList( + procedure1, + procedure2, + procedure3 + ); + + var actual = service.getProtocol(procedures); + + assertThat(actual).isEqualTo( + "Fragestellung:\nTest ok?\n\nEmpfehlung:\nRerun Test if not ok!\n\n" + + "Fragestellung:\nTest immer noch ok?\n\nEmpfehlung:\nDo not rerun Test if ok!" + ); + } + + @Test + void testShouldReturnEmptyMtbProtocolForUnknownForm() { + var procedure1 = new Procedure(onkostarApi); + procedure1.setFormName("OS.Tumorkonferenz.Unbekannt"); + procedure1.setStartDate(Date.from(Instant.parse("2023-02-01T00:00:00Z"))); + procedure1.setValue("Fragestellung", new Item("Fragestellung", "Test immer noch ok?")); + procedure1.setValue("Empfehlung", new Item("Empfehlung", "Do not rerun Test if ok!")); + + var procedure2 = new Procedure(onkostarApi); + procedure2.setFormName("OS.Tumorkonferenz.Unbekannt"); + procedure2.setStartDate(Date.from(Instant.parse("2023-01-01T00:00:00Z"))); + procedure2.setValue("Fragestellung", new Item("Fragestellung", "Test ok?")); + procedure2.setValue("Empfehlung", new Item("Empfehlung", "Rerun Test if not ok!")); + + + var procedures = Arrays.asList( + procedure1, + procedure2 + ); + + var actual = service.getProtocol(procedures); + + assertThat(actual).isEmpty(); + } + } diff --git a/src/test/java/DNPM/services/mtb/MtbServiceTest.java b/src/test/java/DNPM/services/mtb/MtbServiceTest.java new file mode 100644 index 0000000..eca9b1a --- /dev/null +++ b/src/test/java/DNPM/services/mtb/MtbServiceTest.java @@ -0,0 +1,47 @@ +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()); + } + +} |
