summaryrefslogtreecommitdiff
path: root/src/test/java/DNPM/analyzer/SystemtherapieAnalyzerTest.java
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2023-08-28 12:17:29 +0200
committerPaul-Christian Volkmer2023-08-28 12:17:29 +0200
commitaef9dd7889ddf03cc75f5d682a26380ac6fb75d3 (patch)
tree58c8a4251d23014fcfea2cc22bbbce0607454914 /src/test/java/DNPM/analyzer/SystemtherapieAnalyzerTest.java
parentcf9a68f6cd1a689145c52728309269e466c0113e (diff)
Issue #29: Aktualisiere keinen EcogStatus vor Diagnosedatum
Diffstat (limited to 'src/test/java/DNPM/analyzer/SystemtherapieAnalyzerTest.java')
-rw-r--r--src/test/java/DNPM/analyzer/SystemtherapieAnalyzerTest.java66
1 files changed, 54 insertions, 12 deletions
diff --git a/src/test/java/DNPM/analyzer/SystemtherapieAnalyzerTest.java b/src/test/java/DNPM/analyzer/SystemtherapieAnalyzerTest.java
index 2450f96..4028aec 100644
--- a/src/test/java/DNPM/analyzer/SystemtherapieAnalyzerTest.java
+++ b/src/test/java/DNPM/analyzer/SystemtherapieAnalyzerTest.java
@@ -9,6 +9,8 @@ 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;
@@ -25,10 +27,21 @@ class SystemtherapieAnalyzerTest {
private SystemtherapieAnalyzer systemtherapieAnalyzer;
+ 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 SystemtherapieService systemtherapieService
+ @Mock IOnkostarApi onkostarApi,
+ @Mock SystemtherapieService systemtherapieService
) {
this.onkostarApi = onkostarApi;
this.systemtherapieService = systemtherapieService;
@@ -37,7 +50,11 @@ class SystemtherapieAnalyzerTest {
@Test
void shouldInsertNewEcogStatus() throws Exception {
- doAnswer(invocationOnMock -> List.of(new SystemtherapieService.EcogStatusWithDate(new Date(), "0")))
+ final var diagnosisDate = daysPassed(7);
+ final var ecogDate = daysPassed(1);
+ final var procedureDate = daysPassed(1);
+
+ doAnswer(invocationOnMock -> List.of(new SystemtherapieService.EcogStatusWithDate(ecogDate, "0")))
.when(systemtherapieService).ecogSatus(any(Patient.class));
var patient = new Patient(onkostarApi);
@@ -45,21 +62,17 @@ class SystemtherapieAnalyzerTest {
var procedure = new Procedure(onkostarApi);
procedure.setId(1000);
- procedure.setStartDate(new Date());
+ procedure.setStartDate(procedureDate);
procedure.setEditState(ProcedureEditStateType.COMPLETED);
procedure.setPatientId(1);
procedure.setPatient(patient);
procedure.setValue("ECOGvorTherapie", new Item("ECOGvorTherapie", 1));
- doAnswer(invocationOnMock -> {
- var disease = new Disease(onkostarApi);
- disease.setId(42);
- return List.of(disease);
- }).when(this.onkostarApi).getDiseasesByPatientId(anyInt());
+ doAnswer(invocationOnMock -> List.of(dummyDisease(42, diagnosisDate))).when(this.onkostarApi).getDiseasesByPatientId(anyInt());
doAnswer(invocationOnMock -> List.of(procedure)).when(onkostarApi).getProceduresForDiseaseByForm(anyInt(), anyString());
- systemtherapieAnalyzer.analyze(procedure, null);
+ systemtherapieAnalyzer.analyze(procedure, dummyDisease(10, diagnosisDate));
var idCaptor = ArgumentCaptor.forClass(Integer.class);
var formNameCaptor = ArgumentCaptor.forClass(String.class);
@@ -72,6 +85,9 @@ class SystemtherapieAnalyzerTest {
@Test
void shouldNotModifyEcogStatusIfNoCompletedSystemTherapy() throws Exception {
+ final var diagnosisDate = daysPassed(7);
+ final var procedureDate = daysPassed(1);
+
doAnswer(invocationOnMock -> List.of())
.when(systemtherapieService).ecogSatus(any(Patient.class));
@@ -80,13 +96,39 @@ class SystemtherapieAnalyzerTest {
var procedure = new Procedure(onkostarApi);
procedure.setId(1000);
- procedure.setStartDate(new Date());
+ procedure.setStartDate(procedureDate);
+ procedure.setEditState(ProcedureEditStateType.COMPLETED);
+ procedure.setPatientId(1);
+ procedure.setPatient(patient);
+ procedure.setValue("ECOGvorTherapie", new Item("ECOGvorTherapie", 1));
+
+ systemtherapieAnalyzer.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 SystemtherapieService.EcogStatusWithDate(ecogDate, "0")))
+ .when(systemtherapieService).ecogSatus(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));
- systemtherapieAnalyzer.analyze(procedure, null);
+ systemtherapieAnalyzer.analyze(procedure, dummyDisease(10, diagnosisDate));
verify(onkostarApi, times(0)).getProceduresForDiseaseByForm(anyInt(), anyString());
verify(onkostarApi, times(0)).saveProcedure(any(Procedure.class), anyBoolean());