diff options
Diffstat (limited to 'src/test/java/DNPM/services')
| -rw-r--r-- | src/test/java/DNPM/services/systemtherapie/DefaultSystemtherapieServiceTest.java | 90 | ||||
| -rw-r--r-- | src/test/java/DNPM/services/systemtherapie/ProzedurToProzedurwerteMapperTest.java | 77 |
2 files changed, 167 insertions, 0 deletions
diff --git a/src/test/java/DNPM/services/systemtherapie/DefaultSystemtherapieServiceTest.java b/src/test/java/DNPM/services/systemtherapie/DefaultSystemtherapieServiceTest.java new file mode 100644 index 0000000..fdf8f8d --- /dev/null +++ b/src/test/java/DNPM/services/systemtherapie/DefaultSystemtherapieServiceTest.java @@ -0,0 +1,90 @@ +package DNPM.services.systemtherapie; + +import DNPM.services.SettingsService; +import de.itc.onkostar.api.IOnkostarApi; +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.util.*; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.doAnswer; +import static org.mockito.Mockito.when; + +@ExtendWith(MockitoExtension.class) +public class DefaultSystemtherapieServiceTest { + + private IOnkostarApi onkostarApi; + + private SettingsService settingsService; + + private DefaultSystemtherapieService service; + + @BeforeEach + void setup( + @Mock IOnkostarApi onkostarApi, + @Mock SettingsService settingsService + ) { + this.onkostarApi = onkostarApi; + this.settingsService = settingsService; + this.service = new DefaultSystemtherapieService(onkostarApi, settingsService); + } + + private static Set<Map.Entry<String, Class<OsSystemischeTherapieToProzedurwerteMapper>>> expectedMapperMappings() { + return Map.ofEntries( + Map.entry("OS.Systemische Therapie", OsSystemischeTherapieToProzedurwerteMapper.class), + Map.entry("OS.Systemische Therapie.VarianteUKW", OsSystemischeTherapieToProzedurwerteMapper.class) + ).entrySet(); + } + + @ParameterizedTest + @MethodSource("expectedMapperMappings") + void testShouldMapFormNameToMapper(Map.Entry<String, Class<?>> expectedMapping) { + var procedure = new Procedure(onkostarApi); + procedure.setFormName(expectedMapping.getKey()); + + var actual = service.prozedurToProzedurwerteMapper(procedure); + + assertThat(actual).isExactlyInstanceOf(expectedMapping.getValue()); + } + + private static Set<Map.Entry<String, String>> expectedFormnameMappings() { + return Map.ofEntries( + Map.entry("2011", "OS.Systemische Therapie.VarianteUKW"), + Map.entry("20119", "OS.Systemische Therapie.VarianteUKW"), + Map.entry("Defaultwert", "OS.Systemische Therapie") + ).entrySet(); + } + + @ParameterizedTest + @MethodSource("expectedFormnameMappings") + void testShouldMapSidToFormName(Map.Entry<String, String> expectedMapping) { + var actual = service.selectFormNameBySID(expectedMapping.getKey()); + assertThat(actual).isEqualTo(expectedMapping.getValue()); + } + + @Test + void testShouldReturnSystemischeTherapienFromDiagnose() { + when(settingsService.getSID()).thenReturn(Optional.of("12345")); + + doAnswer(invocationOnMock -> { + var procedure = new Procedure(onkostarApi); + procedure.setFormName("OS.Systemische Therapie"); + return List.of(procedure); + }).when(this.onkostarApi).getProceduresForDiseaseByForm(anyInt(), anyString()); + + var actual = service.getSystemischeTherapienFromDiagnose(1); + + assertThat(actual).isNotNull(); + assertThat(actual).isExactlyInstanceOf(ArrayList.class); + assertThat(actual).hasSize(1); + } +} diff --git a/src/test/java/DNPM/services/systemtherapie/ProzedurToProzedurwerteMapperTest.java b/src/test/java/DNPM/services/systemtherapie/ProzedurToProzedurwerteMapperTest.java new file mode 100644 index 0000000..8804a52 --- /dev/null +++ b/src/test/java/DNPM/services/systemtherapie/ProzedurToProzedurwerteMapperTest.java @@ -0,0 +1,77 @@ +package DNPM.services.systemtherapie; + +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.sql.Date; +import java.time.Instant; +import java.util.ArrayList; +import java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; + +@ExtendWith(MockitoExtension.class) +public class ProzedurToProzedurwerteMapperTest { + + private IOnkostarApi onkostarApi; + + private OsSystemischeTherapieToProzedurwerteMapper mapper; + + @BeforeEach + void setup( + @Mock IOnkostarApi onkostarApi + ) { + this.onkostarApi = onkostarApi; + this.mapper = new OsSystemischeTherapieToProzedurwerteMapper(); + } + + @Test + void testShouldReturnSystemischeTherapienFromDiagnose() { + var procedure = new Procedure(onkostarApi); + procedure.setFormName("OS.Systemische Therapie"); + procedure.setValue("Beginn", new Item("Beginn", Date.from(Instant.parse("2023-01-01T00:00:00Z")))); + procedure.setValue("Ende", new Item("Ende", Date.from(Instant.parse("2023-01-31T00:00:00Z")))); + procedure.setValue("Beendigung", new Item("Beendigungsstatus", "E")); + procedure.setValue("Ergebnis", new Item("Ergebnis", "T")); + + var substanzen = new ArrayList<>(); + substanzen.add(Map.of( + "Substanz", "Testsubstanz", + "Substanz_shortDescription", "Testsubstanz" + )); + substanzen.add(Map.of( + "Substanz", "L01AA01", + "Substanz_shortDescription", "cyclophosphamide" + )); + procedure.setValue("SubstanzenList", new Item("SubstanzenList", substanzen)); + + var actual = mapper.apply(procedure); + + assertThat(actual).isPresent(); + + assertThat(actual.get().get("Beginn")) + .isEqualTo(Date.from(Instant.parse("2023-01-01T00:00:00Z")).toString()); + assertThat(actual.get().get("Ende")) + .isEqualTo(Date.from(Instant.parse("2023-01-31T00:00:00Z")).toString()); + assertThat(actual.get().get("Beendigung")) + .isEqualTo("E"); + assertThat(actual.get().get("Ergebnis")) + .isEqualTo("T"); + assertThat(actual.get().get("Wirkstoffe")) + .isEqualTo("Testsubstanz, cyclophosphamide"); + assertThat(actual.get().get("WirkstoffCodes")) + .isEqualTo( + "[" + + "{\"system\":\"other\",\"code\":\"Testsubstanz\",\"substance\":\"Testsubstanz\"}," + + "{\"system\":\"ATC\",\"code\":\"L01AA01\",\"substance\":\"cyclophosphamide\"}" + + "]" + ); + } + +} |
