diff options
| author | Paul-Christian Volkmer | 2023-03-20 22:59:02 +0100 |
|---|---|---|
| committer | GitHub | 2023-03-20 22:59:02 +0100 |
| commit | 7fe580733c1354ef8ea5a7071aeae6818a97f7cf (patch) | |
| tree | 271dc83ad9f4f4e72250b396662db92f3e37bfbe /src/test/java/DNPM/services/mtb | |
| parent | a8a5e1be8a8bc8a048106b608fa4f58d80a66444 (diff) | |
| parent | aad777b5e36238ef437210bd9ad3ea51c3274a45 (diff) | |
Merge pull request #12 from CCC-MF/issue_11
Übernahme des MTB-Protokolls in DNPM-Therapieplan - Protokollauszug
Diffstat (limited to 'src/test/java/DNPM/services/mtb')
| -rw-r--r-- | src/test/java/DNPM/services/mtb/DefaultMtbServiceTest.java | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/src/test/java/DNPM/services/mtb/DefaultMtbServiceTest.java b/src/test/java/DNPM/services/mtb/DefaultMtbServiceTest.java new file mode 100644 index 0000000..073f25c --- /dev/null +++ b/src/test/java/DNPM/services/mtb/DefaultMtbServiceTest.java @@ -0,0 +1,112 @@ +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; +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.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 + ) { + this.onkostarApi = onkostarApi; + this.settingsService = settingsService; + this.service = new DefaultMtbService(settingsService); + } + + @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"))); + procedure1.setValue("Fragestellung", new Item("Fragestellung", "Test ok?")); + procedure1.setValue("Empfehlung", new Item("Empfehlung", "Rerun Test if not ok!")); + + var procedures = List.of( + procedure1 + ); + + var actual = service.getProtocol(procedures); + + assertThat(actual).isEqualTo("Fragestellung:\nTest ok?\n\nEmpfehlung:\nRerun Test if not ok!"); + } + + @Test + void testShouldReturnEmptyMtbProtocolForMultipleMtb() { + when(settingsService.getSID()).thenReturn(Optional.of("12345")); + when(settingsService.multipleMtbsInMtbEpisode()).thenReturn(true); + + 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!")); + + var procedures = List.of( + procedure1 + ); + + var actual = service.getProtocol(procedures); + + assertThat(actual).isEmpty(); + } + + @Test + void testShouldReturnMtbProtocolForSID20119() { + when(settingsService.getSID()).thenReturn(Optional.of("20119")); + when(settingsService.multipleMtbsInMtbEpisode()).thenReturn(true); + + 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-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).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!" + ); + } + +} |
