diff options
Diffstat (limited to 'src/test/java/dev/dnpm/oshelper/services/systemtherapie')
2 files changed, 174 insertions, 164 deletions
diff --git a/src/test/java/dev/dnpm/oshelper/services/systemtherapie/DefaultSystemtherapieServiceTest.java b/src/test/java/dev/dnpm/oshelper/services/systemtherapie/DefaultSystemtherapieServiceTest.java index e8d474b..05cd535 100644 --- a/src/test/java/dev/dnpm/oshelper/services/systemtherapie/DefaultSystemtherapieServiceTest.java +++ b/src/test/java/dev/dnpm/oshelper/services/systemtherapie/DefaultSystemtherapieServiceTest.java @@ -19,8 +19,13 @@ package dev.dnpm.oshelper.services.systemtherapie; -import dev.dnpm.oshelper.services.SettingsService; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.*; + import de.itc.onkostar.api.*; +import dev.dnpm.oshelper.services.SettingsService; +import java.time.Instant; +import java.util.*; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -30,121 +35,126 @@ import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import java.time.Instant; -import java.util.*; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.*; - @ExtendWith(MockitoExtension.class) 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 List<String> formnameSetting() { - return List.of("OS.Systemische Therapie", "OS.Systemische Therapie.VarianteUKW"); - } - - @ParameterizedTest - @MethodSource("formnameSetting") - void testShouldRequestProceduresWithExpectedFormName(String expectedFormName) { - when(this.settingsService.getSetting(anyString())).thenReturn(Optional.of(expectedFormName)); - when(this.onkostarApi.getProceduresForDiseaseByForm(anyInt(), anyString())).thenReturn(List.of()); - - service.getSystemischeTherapienFromDiagnose(123); - - var argumentCaptor = ArgumentCaptor.forClass(String.class); - verify(onkostarApi, times(1)).getProceduresForDiseaseByForm(anyInt(), argumentCaptor.capture()); - assertThat(argumentCaptor.getValue()).isEqualTo(expectedFormName); - } - - @Test - void testShouldRequestProceduresWithDefaultFormName() { - when(this.settingsService.getSetting(anyString())).thenReturn(Optional.empty()); - when(this.onkostarApi.getProceduresForDiseaseByForm(anyInt(), anyString())).thenReturn(List.of()); - - service.getSystemischeTherapienFromDiagnose(123); - - var argumentCaptor = ArgumentCaptor.forClass(String.class); - verify(onkostarApi, times(1)).getProceduresForDiseaseByForm(anyInt(), argumentCaptor.capture()); - assertThat(argumentCaptor.getValue()).isEqualTo("OS.Systemische Therapie"); - } - - @Test - void testShouldReturnSystemischeTherapienFromDiagnose() { - 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() - .isExactlyInstanceOf(ArrayList.class) - .hasSize(1); - } - - @Test - void testShouldReturnListOfEcogStatusWithDate() { - doAnswer(invocationOnMock -> { - var disease = new Disease(onkostarApi); - disease.setId(1); - return List.of(disease); - }).when(this.onkostarApi).getDiseasesByPatientId(anyInt()); - - doAnswer(invocationOnMock -> { - var procedure1 = new Procedure(onkostarApi); - procedure1.setId(1); - procedure1.setFormName("OS.Systemische Therapie"); - procedure1.setStartDate(Date.from(Instant.parse("2023-07-01T06:00:00Z"))); - procedure1.setEditState(ProcedureEditStateType.COMPLETED); - procedure1.setValue("ECOGvorTherapie", new Item("ECOGvorTherapie", 1)); - - var procedure2 = new Procedure(onkostarApi); - procedure2.setId(2); - procedure2.setFormName("OS.Systemische Therapie"); - procedure2.setStartDate(Date.from(Instant.parse("2023-07-12T06:00:00Z"))); - procedure2.setEditState(ProcedureEditStateType.COMPLETED); - procedure2.setValue("ECOGvorTherapie", new Item("ECOGvorTherapie", 2)); - return List.of(procedure1, procedure2); - }).when(this.onkostarApi).getProceduresForDiseaseByForm(anyInt(), anyString()); - - var patient = new Patient(onkostarApi); - patient.setId(1); - - var actual = service.ecogStatus(patient); - - assertThat(actual) - .isNotNull() - .isExactlyInstanceOf(ArrayList.class) - .hasSize(2); - } + 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 List<String> formnameSetting() { + return List.of("OS.Systemische Therapie", "OS.Systemische Therapie.VarianteUKW"); + } + + @ParameterizedTest + @MethodSource("formnameSetting") + void testShouldRequestProceduresWithExpectedFormName(String expectedFormName) { + when(this.settingsService.getSetting(anyString())).thenReturn(Optional.of(expectedFormName)); + when(this.onkostarApi.getProceduresForDiseaseByForm(anyInt(), anyString())) + .thenReturn(List.of()); + + service.getSystemischeTherapienFromDiagnose(123); + + var argumentCaptor = ArgumentCaptor.forClass(String.class); + verify(onkostarApi, times(1)).getProceduresForDiseaseByForm(anyInt(), argumentCaptor.capture()); + assertThat(argumentCaptor.getValue()).isEqualTo(expectedFormName); + } + + @Test + void testShouldRequestProceduresWithDefaultFormName() { + when(this.settingsService.getSetting(anyString())).thenReturn(Optional.empty()); + when(this.onkostarApi.getProceduresForDiseaseByForm(anyInt(), anyString())) + .thenReturn(List.of()); + + service.getSystemischeTherapienFromDiagnose(123); + + var argumentCaptor = ArgumentCaptor.forClass(String.class); + verify(onkostarApi, times(1)).getProceduresForDiseaseByForm(anyInt(), argumentCaptor.capture()); + assertThat(argumentCaptor.getValue()).isEqualTo("OS.Systemische Therapie"); + } + + @Test + void testShouldReturnSystemischeTherapienFromDiagnose() { + 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().isExactlyInstanceOf(ArrayList.class).hasSize(1); + } + + @Test + void testShouldReturnListOfEcogStatusWithDate() { + doAnswer( + invocationOnMock -> { + var disease = new Disease(onkostarApi); + disease.setId(1); + return List.of(disease); + }) + .when(this.onkostarApi) + .getDiseasesByPatientId(anyInt()); + + doAnswer( + invocationOnMock -> { + var procedure1 = new Procedure(onkostarApi); + procedure1.setId(1); + procedure1.setFormName("OS.Systemische Therapie"); + procedure1.setStartDate(Date.from(Instant.parse("2023-07-01T06:00:00Z"))); + procedure1.setEditState(ProcedureEditStateType.COMPLETED); + procedure1.setValue("ECOGvorTherapie", new Item("ECOGvorTherapie", 1)); + + var procedure2 = new Procedure(onkostarApi); + procedure2.setId(2); + procedure2.setFormName("OS.Systemische Therapie"); + procedure2.setStartDate(Date.from(Instant.parse("2023-07-12T06:00:00Z"))); + procedure2.setEditState(ProcedureEditStateType.COMPLETED); + procedure2.setValue("ECOGvorTherapie", new Item("ECOGvorTherapie", 2)); + return List.of(procedure1, procedure2); + }) + .when(this.onkostarApi) + .getProceduresForDiseaseByForm(anyInt(), anyString()); + + var patient = new Patient(onkostarApi); + patient.setId(1); + + var actual = service.ecogStatus(patient); + + assertThat(actual).isNotNull().isExactlyInstanceOf(ArrayList.class).hasSize(2); + } } diff --git a/src/test/java/dev/dnpm/oshelper/services/systemtherapie/ProzedurToProzedurwerteMapperTest.java b/src/test/java/dev/dnpm/oshelper/services/systemtherapie/ProzedurToProzedurwerteMapperTest.java index 6c7c532..085834f 100644 --- a/src/test/java/dev/dnpm/oshelper/services/systemtherapie/ProzedurToProzedurwerteMapperTest.java +++ b/src/test/java/dev/dnpm/oshelper/services/systemtherapie/ProzedurToProzedurwerteMapperTest.java @@ -19,72 +19,72 @@ package dev.dnpm.oshelper.services.systemtherapie; +import static org.assertj.core.api.Assertions.assertThat; + import de.itc.onkostar.api.IOnkostarApi; import de.itc.onkostar.api.Item; import de.itc.onkostar.api.Procedure; +import java.sql.Date; +import java.time.Instant; +import java.util.ArrayList; +import java.util.Map; 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) class ProzedurToProzedurwerteMapperTest { - private IOnkostarApi onkostarApi; - - private OsSystemischeTherapieToProzedurwerteMapper mapper; + private IOnkostarApi onkostarApi; - @BeforeEach - void setup( - @Mock IOnkostarApi onkostarApi - ) { - this.onkostarApi = onkostarApi; - this.mapper = new OsSystemischeTherapieToProzedurwerteMapper(); - } + private OsSystemischeTherapieToProzedurwerteMapper mapper; - @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")); + @BeforeEach + void setup(@Mock IOnkostarApi onkostarApi) { + this.onkostarApi = onkostarApi; + this.mapper = new OsSystemischeTherapieToProzedurwerteMapper(); + } - 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)); + @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 actual = mapper.apply(procedure); + 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)); - assertThat(actual).isPresent(); + var actual = mapper.apply(procedure); - assertThat(actual.get()).containsEntry("Beginn", Date.from(Instant.parse("2023-01-01T00:00:00Z")).toString()); - assertThat(actual.get()).containsEntry("Ende", Date.from(Instant.parse("2023-01-31T00:00:00Z")).toString()); - assertThat(actual.get()).containsEntry("Beendigung", "E"); - assertThat(actual.get()).containsEntry("Ergebnis", "T"); - assertThat(actual.get()).containsEntry("Wirkstoffe", "Testsubstanz, cyclophosphamide"); - assertThat(actual.get()).containsEntry("WirkstoffCodes", - "[" + - "{\"system\":\"other\",\"code\":\"Testsubstanz\",\"substance\":\"Testsubstanz\"}," + - "{\"system\":\"ATC\",\"code\":\"L01AA01\",\"substance\":\"cyclophosphamide\"}" + - "]" - ); - } + assertThat(actual).isPresent(); + assertThat(actual.get()) + .containsEntry("Beginn", Date.from(Instant.parse("2023-01-01T00:00:00Z")).toString()); + assertThat(actual.get()) + .containsEntry("Ende", Date.from(Instant.parse("2023-01-31T00:00:00Z")).toString()); + assertThat(actual.get()).containsEntry("Beendigung", "E"); + assertThat(actual.get()).containsEntry("Ergebnis", "T"); + assertThat(actual.get()).containsEntry("Wirkstoffe", "Testsubstanz, cyclophosphamide"); + assertThat(actual.get()) + .containsEntry( + "WirkstoffCodes", + "[" + + "{\"system\":\"other\",\"code\":\"Testsubstanz\",\"substance\":\"Testsubstanz\"}," + + "{\"system\":\"ATC\",\"code\":\"L01AA01\",\"substance\":\"cyclophosphamide\"}" + + "]"); + } } |
