mirror of
https://github.com/pcvolkmer/onkostar-plugin-dnpm.git
synced 2025-07-04 10:02:55 +00:00
Reorganisation TherapieplanAnalyzer und weitere Tests hinzugefügt
This commit is contained in:
@ -13,6 +13,7 @@ import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
@ -59,22 +60,70 @@ public class TherapieplanAnalyzerTest {
|
||||
void shouldNotUpdateSectionsIfSectionsNotEnabled() throws Exception {
|
||||
when(onkostarApi.getGlobalSetting(anyString())).thenReturn(null);
|
||||
|
||||
var testProcedure = new Procedure(onkostarApi);
|
||||
testProcedure.setId(1000);
|
||||
|
||||
// Setzen MTB Referenz und Datum MTB
|
||||
testProcedure.setValue("referstemtb", new Item("ref_tumorkonferenz", 1234));
|
||||
testProcedure.setValue("datum", new Item("datum", new Date()));
|
||||
var testProcedure = baseProcedure(onkostarApi);
|
||||
|
||||
// Keine humangenetische Beratung und keine Reevaluation empfohlen
|
||||
testProcedure.setValue("humangenberatung", new Item("humangen_beratung", JaNeinUnbekannt.NEIN));
|
||||
testProcedure.setValue("reevaluation", new Item("reevaluation", JaNeinUnbekannt.NEIN));
|
||||
testProcedure.setValue("humangenberatung", new Item("humangen_beratung", JaNeinUnbekannt.NEIN.getCode()));
|
||||
testProcedure.setValue("reevaluation", new Item("reevaluation", JaNeinUnbekannt.NEIN.getCode()));
|
||||
|
||||
this.therapieplanAnalyzer.analyze(testProcedure, null);
|
||||
|
||||
verify(onkostarApi, never()).saveProcedure(any(Procedure.class), anyBoolean());
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldUpdateSectionsIfNoReevaluation() throws Exception {
|
||||
when(onkostarApi.getGlobalSetting(anyString())).thenReturn(null);
|
||||
|
||||
var testProcedure = baseProcedure(onkostarApi);
|
||||
|
||||
// Humangenetische Beratung aber keine Reevaluation
|
||||
testProcedure.setValue("humangenberatung", new Item("humangen_beratung", JaNeinUnbekannt.JA.getCode()));
|
||||
testProcedure.setValue("humangenberbegruendung", new Item("humangen_ber_begruendung", "Das ist die Begründung"));
|
||||
testProcedure.setValue("reevaluation", new Item("reevaluation", JaNeinUnbekannt.NEIN.getCode()));
|
||||
|
||||
this.therapieplanAnalyzer.analyze(testProcedure, null);
|
||||
|
||||
var captor = ArgumentCaptor.forClass(Procedure.class);
|
||||
verify(onkostarApi, times(1)).saveProcedure(captor.capture(), anyBoolean());
|
||||
|
||||
var capturedProcedure = captor.getValue();
|
||||
|
||||
assertThat(capturedProcedure.getValue("reftkreevaluation")).isNull();
|
||||
assertThat(capturedProcedure.getValue("datumtkreevaluation")).isNull();
|
||||
|
||||
assertThat(capturedProcedure.getValue("reftkhumangenber")).isNotNull();
|
||||
assertThat(capturedProcedure.getValue("reftkhumangenber").getInt()).isEqualTo(procedureId);
|
||||
assertThat(capturedProcedure.getValue("datumtkhumangenber")).isNotNull();
|
||||
assertThat(capturedProcedure.getValue("datumtkhumangenber").getDate()).isEqualTo(testDate);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldUpdateSectionsIfNoHumanGenConsultation() throws Exception {
|
||||
when(onkostarApi.getGlobalSetting(anyString())).thenReturn(null);
|
||||
|
||||
var testProcedure = baseProcedure(onkostarApi);
|
||||
|
||||
// Humangenetische Beratung aber keine Reevaluation
|
||||
testProcedure.setValue("humangenberatung", new Item("humangen_beratung", JaNeinUnbekannt.NEIN.getCode()));
|
||||
testProcedure.setValue("reevaluation", new Item("reevaluation", JaNeinUnbekannt.JA.getCode()));
|
||||
|
||||
this.therapieplanAnalyzer.analyze(testProcedure, null);
|
||||
|
||||
var captor = ArgumentCaptor.forClass(Procedure.class);
|
||||
verify(onkostarApi, times(1)).saveProcedure(captor.capture(), anyBoolean());
|
||||
|
||||
var capturedProcedure = captor.getValue();
|
||||
|
||||
assertThat(capturedProcedure.getValue("reftkhumangenber")).isNull();
|
||||
assertThat(capturedProcedure.getValue("datumtkhumangenber")).isNull();
|
||||
|
||||
assertThat(capturedProcedure.getValue("reftkreevaluation")).isNotNull();
|
||||
assertThat(capturedProcedure.getValue("reftkreevaluation").getInt()).isEqualTo(procedureId);
|
||||
assertThat(capturedProcedure.getValue("datumtkreevaluation")).isNotNull();
|
||||
assertThat(capturedProcedure.getValue("datumtkreevaluation").getDate()).isEqualTo(testDate);
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldRequestAllStudienForEmptyQueryString() {
|
||||
var input = Map.of("q", (Object)" ");
|
||||
@ -101,4 +150,19 @@ public class TherapieplanAnalyzerTest {
|
||||
assertThat(captor.getValue()).isEqualTo("NCT-123");
|
||||
}
|
||||
|
||||
|
||||
private static final int procedureId = 1234;
|
||||
private static final Date testDate = Date.from(Instant.parse("2023-03-15T09:43:00Z"));
|
||||
|
||||
private Procedure baseProcedure(final IOnkostarApi onkostarApi) {
|
||||
var testProcedure = new Procedure(onkostarApi);
|
||||
testProcedure.setId(1000);
|
||||
|
||||
// Setzen MTB Referenz und Datum MTB
|
||||
testProcedure.setValue("referstemtb", new Item("ref_tumorkonferenz", procedureId));
|
||||
testProcedure.setValue("datum", new Item("datum", testDate));
|
||||
|
||||
return testProcedure;
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user