1
0
mirror of https://github.com/pcvolkmer/onkostar-plugin-dnpm.git synced 2025-07-04 10:02:55 +00:00

Verwende Factory, damit OS-API nicht beim Starten Einstellungen abrufen muss

Beim Start kann OS ggf nicht auf die Einstellungen zurückgreifen, da die
Datenbankverbindung noch nicht fertig initialisiert ist.

Aus diesem Grund muss die konkrete Implementierung des TherapieplanService zur Laufzeit
nach dem vollständigen Start von OS ermittelt werden.
This commit is contained in:
2023-03-17 11:16:28 +01:00
parent ed4b56113a
commit 610bc34bd2
6 changed files with 122 additions and 64 deletions

View File

@ -1,7 +1,8 @@
package DNPM.analyzer;
import DNPM.services.MultipleMtbTherapieplanService;
import DNPM.services.StudienService;
import DNPM.services.TherapieplanService;
import DNPM.services.TherapieplanServiceFactory;
import de.itc.onkostar.api.IOnkostarApi;
import de.itc.onkostar.api.Procedure;
import org.junit.jupiter.api.BeforeEach;
@ -15,9 +16,7 @@ import java.util.HashMap;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.*;
@ExtendWith(MockitoExtension.class)
public class TherapieplanAnalyzerTest {
@ -29,25 +28,27 @@ public class TherapieplanAnalyzerTest {
private StudienService studienService;
@Mock
private TherapieplanService therapieplanService;
private TherapieplanServiceFactory therapieplanServiceFactory;
private TherapieplanAnalyzer therapieplanAnalyzer;
@BeforeEach
void setUp() {
this.therapieplanAnalyzer = new TherapieplanAnalyzer(studienService, therapieplanService);
this.therapieplanAnalyzer = new TherapieplanAnalyzer(studienService, therapieplanServiceFactory);
}
@Test
void shouldRunServiceMethodsOnAnalyzeCalled() {
when(this.therapieplanServiceFactory.currentUsableinstance()).thenReturn(new MultipleMtbTherapieplanService());
this.therapieplanAnalyzer.analyze(new Procedure(onkostarApi), null);
verify(this.therapieplanService, times(1)).updateRequiredMtbEntries(any(Procedure.class));
verify(this.therapieplanServiceFactory, times(1)).currentUsableinstance();
}
@Test
void shouldRequestAllStudienForEmptyQueryString() {
var input = Map.of("q", (Object)" ");
var input = Map.of("q", (Object) " ");
this.therapieplanAnalyzer.getStudien(input);
verify(studienService, times(1)).findAll();
@ -63,7 +64,7 @@ public class TherapieplanAnalyzerTest {
@Test
void shouldRequestFilteredStudien() {
var input = Map.of("q", (Object)"NCT-123");
var input = Map.of("q", (Object) "NCT-123");
this.therapieplanAnalyzer.getStudien(input);
var captor = ArgumentCaptor.forClass(String.class);