summaryrefslogtreecommitdiff
path: root/src/test/java/dev/dnpm/oshelper/analyzer/TherapieMitEcogAnalyzerTest.java
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2026-09-03 14:35:10 +0200
committerGitHub2026-09-03 14:35:10 +0200
commitfb91356b7777dfa5b6088bcc3a48b43924c1c0fd (patch)
treea3d384390e388395953865a286f15292aaa04a86 /src/test/java/dev/dnpm/oshelper/analyzer/TherapieMitEcogAnalyzerTest.java
parent59daf77a63bd17bb14248cf9881046dd6b331e2a (diff)
build: apply Spotless plugin (#293)
Diffstat (limited to 'src/test/java/dev/dnpm/oshelper/analyzer/TherapieMitEcogAnalyzerTest.java')
-rw-r--r--src/test/java/dev/dnpm/oshelper/analyzer/TherapieMitEcogAnalyzerTest.java302
1 files changed, 154 insertions, 148 deletions
diff --git a/src/test/java/dev/dnpm/oshelper/analyzer/TherapieMitEcogAnalyzerTest.java b/src/test/java/dev/dnpm/oshelper/analyzer/TherapieMitEcogAnalyzerTest.java
index c1f0b28..41a658a 100644
--- a/src/test/java/dev/dnpm/oshelper/analyzer/TherapieMitEcogAnalyzerTest.java
+++ b/src/test/java/dev/dnpm/oshelper/analyzer/TherapieMitEcogAnalyzerTest.java
@@ -19,10 +19,17 @@
package dev.dnpm.oshelper.analyzer;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.*;
+
+import de.itc.onkostar.api.*;
import dev.dnpm.oshelper.dto.EcogStatusWithDate;
import dev.dnpm.oshelper.services.strahlentherapie.StrahlentherapieService;
import dev.dnpm.oshelper.services.systemtherapie.SystemtherapieService;
-import de.itc.onkostar.api.*;
+import java.time.Instant;
+import java.time.temporal.ChronoUnit;
+import java.util.Date;
+import java.util.List;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
@@ -30,154 +37,153 @@ import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
-import java.time.Instant;
-import java.time.temporal.ChronoUnit;
-import java.util.Date;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.*;
-
@ExtendWith(MockitoExtension.class)
class TherapieMitEcogAnalyzerTest {
- private IOnkostarApi onkostarApi;
-
- private StrahlentherapieService strahlentherapieService;
-
- private SystemtherapieService systemtherapieService;
-
- private TherapieMitEcogAnalyzer therapieMitEcogAnalyzer;
-
- private Disease dummyDisease(int id, Date diagnosisDate) {
- var disease = new Disease(onkostarApi);
- disease.setId(id);
- disease.setDiagnosisDate(diagnosisDate);
- return disease;
- }
-
- private Date daysPassed(int days) {
- return Date.from(Instant.now().minus(days, ChronoUnit.DAYS));
- }
-
- @BeforeEach
- void setUp(
- @Mock IOnkostarApi onkostarApi,
- @Mock StrahlentherapieService strahlentherapieService,
- @Mock SystemtherapieService systemtherapieService
- ) {
- this.onkostarApi = onkostarApi;
- this.strahlentherapieService = strahlentherapieService;
- this.systemtherapieService = systemtherapieService;
- this.therapieMitEcogAnalyzer = new TherapieMitEcogAnalyzer(onkostarApi, strahlentherapieService, systemtherapieService);
- }
-
- @Test
- void shouldInsertNewEcogStatus() throws Exception {
- final var diagnosisDate = daysPassed(7);
- final var ecogDate = daysPassed(1);
- final var procedureDate = daysPassed(1);
-
- doAnswer(invocationOnMock -> List.of(new EcogStatusWithDate(ecogDate, "0")))
- .when(systemtherapieService).ecogStatus(any(Patient.class));
-
- var patient = new Patient(onkostarApi);
- patient.setId(1);
-
- var procedure = new Procedure(onkostarApi);
- procedure.setId(1000);
- procedure.setStartDate(procedureDate);
- procedure.setEditState(ProcedureEditStateType.COMPLETED);
- procedure.setPatientId(1);
- procedure.setPatient(patient);
- procedure.setValue("ECOGvorTherapie", new Item("ECOGvorTherapie", 1));
-
- doAnswer(invocationOnMock -> List.of(dummyDisease(42, diagnosisDate))).when(this.onkostarApi).getDiseasesByPatientId(anyInt());
-
- doAnswer(invocationOnMock -> List.of(procedure)).when(onkostarApi).getProceduresForDiseaseByForm(anyInt(), anyString());
-
- therapieMitEcogAnalyzer.analyze(procedure, dummyDisease(10, diagnosisDate));
-
- var idCaptor = ArgumentCaptor.forClass(Integer.class);
- var formNameCaptor = ArgumentCaptor.forClass(String.class);
- verify(onkostarApi, times(1)).getProceduresForDiseaseByForm(idCaptor.capture(), formNameCaptor.capture());
- assertThat(idCaptor.getValue()).isEqualTo(42);
- assertThat(formNameCaptor.getValue()).isEqualTo("DNPM Klinik/Anamnese");
-
- verify(onkostarApi, times(1)).saveProcedure(any(Procedure.class), anyBoolean());
- }
-
- @Test
- void shouldNotModifyEcogStatusIfNoCompletedSystemTherapy() throws Exception {
- final var diagnosisDate = daysPassed(7);
- final var procedureDate = daysPassed(1);
-
- doAnswer(invocationOnMock -> List.of())
- .when(systemtherapieService).ecogStatus(any(Patient.class));
-
- var patient = new Patient(onkostarApi);
- patient.setId(1);
-
- var procedure = new Procedure(onkostarApi);
- procedure.setId(1000);
- procedure.setStartDate(procedureDate);
- procedure.setEditState(ProcedureEditStateType.COMPLETED);
- procedure.setPatientId(1);
- procedure.setPatient(patient);
- procedure.setValue("ECOGvorTherapie", new Item("ECOGvorTherapie", 1));
-
- therapieMitEcogAnalyzer.analyze(procedure, dummyDisease(10, diagnosisDate));
-
- verify(onkostarApi, times(0)).getProceduresForDiseaseByForm(anyInt(), anyString());
- verify(onkostarApi, times(0)).saveProcedure(any(Procedure.class), anyBoolean());
- }
-
- @Test
- void shouldNotIncludeEcogStatusBeforeDiagnosisDate() throws Exception {
- final var diagnosisDate = daysPassed(7);
- final var ecogDate = daysPassed(28);
- final var procedureDate = daysPassed(1);
-
- doAnswer(invocationOnMock -> List.of(new EcogStatusWithDate(ecogDate, "0")))
- .when(systemtherapieService).ecogStatus(any(Patient.class));
-
- var patient = new Patient(onkostarApi);
- patient.setId(1);
-
- var procedure = new Procedure(onkostarApi);
- procedure.setId(1000);
- procedure.setStartDate(procedureDate);
- procedure.setEditState(ProcedureEditStateType.COMPLETED);
- procedure.setPatientId(1);
- procedure.setPatient(patient);
- procedure.setValue("ECOGvorTherapie", new Item("ECOGvorTherapie", 1));
-
- therapieMitEcogAnalyzer.analyze(procedure, dummyDisease(10, diagnosisDate));
-
- verify(onkostarApi, times(0)).getProceduresForDiseaseByForm(anyInt(), anyString());
- verify(onkostarApi, times(0)).saveProcedure(any(Procedure.class), anyBoolean());
- }
-
- @Test
- void shouldRequestEcogFromStrahlentherapieAndSystemtherapie() {
- final var diagnosisDate = daysPassed(7);
- final var procedureDate = daysPassed(1);
-
- var patient = new Patient(onkostarApi);
- patient.setId(1);
-
- var procedure = new Procedure(onkostarApi);
- procedure.setId(1000);
- procedure.setStartDate(procedureDate);
- procedure.setEditState(ProcedureEditStateType.COMPLETED);
- procedure.setPatientId(1);
- procedure.setPatient(patient);
- procedure.setValue("ECOGvorTherapie", new Item("ECOGvorTherapie", 1));
-
- therapieMitEcogAnalyzer.analyze(procedure, dummyDisease(10, diagnosisDate));
-
- verify(strahlentherapieService, times(1)).ecogStatus(any());
- verify(systemtherapieService, times(1)).ecogStatus(any());
- }
-
+ private IOnkostarApi onkostarApi;
+
+ private StrahlentherapieService strahlentherapieService;
+
+ private SystemtherapieService systemtherapieService;
+
+ private TherapieMitEcogAnalyzer therapieMitEcogAnalyzer;
+
+ private Disease dummyDisease(int id, Date diagnosisDate) {
+ var disease = new Disease(onkostarApi);
+ disease.setId(id);
+ disease.setDiagnosisDate(diagnosisDate);
+ return disease;
+ }
+
+ private Date daysPassed(int days) {
+ return Date.from(Instant.now().minus(days, ChronoUnit.DAYS));
+ }
+
+ @BeforeEach
+ void setUp(
+ @Mock IOnkostarApi onkostarApi,
+ @Mock StrahlentherapieService strahlentherapieService,
+ @Mock SystemtherapieService systemtherapieService) {
+ this.onkostarApi = onkostarApi;
+ this.strahlentherapieService = strahlentherapieService;
+ this.systemtherapieService = systemtherapieService;
+ this.therapieMitEcogAnalyzer =
+ new TherapieMitEcogAnalyzer(onkostarApi, strahlentherapieService, systemtherapieService);
+ }
+
+ @Test
+ void shouldInsertNewEcogStatus() throws Exception {
+ final var diagnosisDate = daysPassed(7);
+ final var ecogDate = daysPassed(1);
+ final var procedureDate = daysPassed(1);
+
+ doAnswer(invocationOnMock -> List.of(new EcogStatusWithDate(ecogDate, "0")))
+ .when(systemtherapieService)
+ .ecogStatus(any(Patient.class));
+
+ var patient = new Patient(onkostarApi);
+ patient.setId(1);
+
+ var procedure = new Procedure(onkostarApi);
+ procedure.setId(1000);
+ procedure.setStartDate(procedureDate);
+ procedure.setEditState(ProcedureEditStateType.COMPLETED);
+ procedure.setPatientId(1);
+ procedure.setPatient(patient);
+ procedure.setValue("ECOGvorTherapie", new Item("ECOGvorTherapie", 1));
+
+ doAnswer(invocationOnMock -> List.of(dummyDisease(42, diagnosisDate)))
+ .when(this.onkostarApi)
+ .getDiseasesByPatientId(anyInt());
+
+ doAnswer(invocationOnMock -> List.of(procedure))
+ .when(onkostarApi)
+ .getProceduresForDiseaseByForm(anyInt(), anyString());
+
+ therapieMitEcogAnalyzer.analyze(procedure, dummyDisease(10, diagnosisDate));
+
+ var idCaptor = ArgumentCaptor.forClass(Integer.class);
+ var formNameCaptor = ArgumentCaptor.forClass(String.class);
+ verify(onkostarApi, times(1))
+ .getProceduresForDiseaseByForm(idCaptor.capture(), formNameCaptor.capture());
+ assertThat(idCaptor.getValue()).isEqualTo(42);
+ assertThat(formNameCaptor.getValue()).isEqualTo("DNPM Klinik/Anamnese");
+
+ verify(onkostarApi, times(1)).saveProcedure(any(Procedure.class), anyBoolean());
+ }
+
+ @Test
+ void shouldNotModifyEcogStatusIfNoCompletedSystemTherapy() throws Exception {
+ final var diagnosisDate = daysPassed(7);
+ final var procedureDate = daysPassed(1);
+
+ doAnswer(invocationOnMock -> List.of())
+ .when(systemtherapieService)
+ .ecogStatus(any(Patient.class));
+
+ var patient = new Patient(onkostarApi);
+ patient.setId(1);
+
+ var procedure = new Procedure(onkostarApi);
+ procedure.setId(1000);
+ procedure.setStartDate(procedureDate);
+ procedure.setEditState(ProcedureEditStateType.COMPLETED);
+ procedure.setPatientId(1);
+ procedure.setPatient(patient);
+ procedure.setValue("ECOGvorTherapie", new Item("ECOGvorTherapie", 1));
+
+ therapieMitEcogAnalyzer.analyze(procedure, dummyDisease(10, diagnosisDate));
+
+ verify(onkostarApi, times(0)).getProceduresForDiseaseByForm(anyInt(), anyString());
+ verify(onkostarApi, times(0)).saveProcedure(any(Procedure.class), anyBoolean());
+ }
+
+ @Test
+ void shouldNotIncludeEcogStatusBeforeDiagnosisDate() throws Exception {
+ final var diagnosisDate = daysPassed(7);
+ final var ecogDate = daysPassed(28);
+ final var procedureDate = daysPassed(1);
+
+ doAnswer(invocationOnMock -> List.of(new EcogStatusWithDate(ecogDate, "0")))
+ .when(systemtherapieService)
+ .ecogStatus(any(Patient.class));
+
+ var patient = new Patient(onkostarApi);
+ patient.setId(1);
+
+ var procedure = new Procedure(onkostarApi);
+ procedure.setId(1000);
+ procedure.setStartDate(procedureDate);
+ procedure.setEditState(ProcedureEditStateType.COMPLETED);
+ procedure.setPatientId(1);
+ procedure.setPatient(patient);
+ procedure.setValue("ECOGvorTherapie", new Item("ECOGvorTherapie", 1));
+
+ therapieMitEcogAnalyzer.analyze(procedure, dummyDisease(10, diagnosisDate));
+
+ verify(onkostarApi, times(0)).getProceduresForDiseaseByForm(anyInt(), anyString());
+ verify(onkostarApi, times(0)).saveProcedure(any(Procedure.class), anyBoolean());
+ }
+
+ @Test
+ void shouldRequestEcogFromStrahlentherapieAndSystemtherapie() {
+ final var diagnosisDate = daysPassed(7);
+ final var procedureDate = daysPassed(1);
+
+ var patient = new Patient(onkostarApi);
+ patient.setId(1);
+
+ var procedure = new Procedure(onkostarApi);
+ procedure.setId(1000);
+ procedure.setStartDate(procedureDate);
+ procedure.setEditState(ProcedureEditStateType.COMPLETED);
+ procedure.setPatientId(1);
+ procedure.setPatient(patient);
+ procedure.setValue("ECOGvorTherapie", new Item("ECOGvorTherapie", 1));
+
+ therapieMitEcogAnalyzer.analyze(procedure, dummyDisease(10, diagnosisDate));
+
+ verify(strahlentherapieService, times(1)).ecogStatus(any());
+ verify(systemtherapieService, times(1)).ecogStatus(any());
+ }
}