summaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2023-03-17 11:16:28 +0100
committerPaul-Christian Volkmer2023-03-17 11:16:28 +0100
commit610bc34bd2c70566c0af7f1856c4ab1dcf0029d2 (patch)
tree9b0714a52a22271499f03bd5a65f3e39749e9501 /src/test
parented4b56113ac1d05800efa707f80434102e0c6534 (diff)
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.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/DNPM/analyzer/TherapieplanAnalyzerTest.java19
-rw-r--r--src/test/java/DNPM/config/PluginConfigurationTest.java45
-rw-r--r--src/test/java/DNPM/config/TherapieplanServiceFactoryTest.java73
3 files changed, 87 insertions, 50 deletions
diff --git a/src/test/java/DNPM/analyzer/TherapieplanAnalyzerTest.java b/src/test/java/DNPM/analyzer/TherapieplanAnalyzerTest.java
index 6196437..7a4e842 100644
--- a/src/test/java/DNPM/analyzer/TherapieplanAnalyzerTest.java
+++ b/src/test/java/DNPM/analyzer/TherapieplanAnalyzerTest.java
@@ -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);
diff --git a/src/test/java/DNPM/config/PluginConfigurationTest.java b/src/test/java/DNPM/config/PluginConfigurationTest.java
index 811e583..77c95e7 100644
--- a/src/test/java/DNPM/config/PluginConfigurationTest.java
+++ b/src/test/java/DNPM/config/PluginConfigurationTest.java
@@ -1,8 +1,7 @@
package DNPM.config;
-import DNPM.services.DefaultTherapieplanService;
import DNPM.services.FormService;
-import DNPM.services.MultipleMtbTherapieplanService;
+import DNPM.services.TherapieplanServiceFactory;
import de.itc.onkostar.api.IOnkostarApi;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -11,9 +10,6 @@ import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
public class PluginConfigurationTest {
@@ -32,41 +28,8 @@ public class PluginConfigurationTest {
}
@Test
- void testShouldReturnDefaultTherapieplanServiceIfSettingIsFalse() {
- doAnswer(invocationOnMock -> {
- var settingName = invocationOnMock.getArgument(0, String.class);
- if (settingName.equals("mehrere_mtb_in_mtbepisode")) {
- return "false";
- }
- return null;
- }).when(onkostarApi).getGlobalSetting(anyString());
-
- var actual = this.configuration.therapieplanService(onkostarApi, formService);
-
- assertThat(actual).isInstanceOf(DefaultTherapieplanService.class);
- }
-
- @Test
- void testShouldReturnDefaultTherapieplanServiceIfNoSetting() {
- when(onkostarApi.getGlobalSetting(anyString())).thenReturn(null);
-
- var actual = this.configuration.therapieplanService(onkostarApi, formService);
-
- assertThat(actual).isInstanceOf(DefaultTherapieplanService.class);
- }
-
- @Test
- void testShouldReturnMultipleMtbTherapieplanServiceIfSettingIsTrue() {
- doAnswer(invocationOnMock -> {
- var settingName = invocationOnMock.getArgument(0, String.class);
- if (settingName.equals("mehrere_mtb_in_mtbepisode")) {
- return "true";
- }
- return null;
- }).when(onkostarApi).getGlobalSetting(anyString());
-
- var actual = this.configuration.therapieplanService(onkostarApi, formService);
-
- assertThat(actual).isInstanceOf(MultipleMtbTherapieplanService.class);
+ void testShouldReturnTherapieplanServiceFactory() {
+ var actual = this.configuration.therapieplanServiceFactory(onkostarApi, formService);
+ assertThat(actual).isInstanceOf(TherapieplanServiceFactory.class);
}
}
diff --git a/src/test/java/DNPM/config/TherapieplanServiceFactoryTest.java b/src/test/java/DNPM/config/TherapieplanServiceFactoryTest.java
new file mode 100644
index 0000000..5868750
--- /dev/null
+++ b/src/test/java/DNPM/config/TherapieplanServiceFactoryTest.java
@@ -0,0 +1,73 @@
+package DNPM.config;
+
+import DNPM.services.DefaultTherapieplanService;
+import DNPM.services.FormService;
+import DNPM.services.MultipleMtbTherapieplanService;
+import DNPM.services.TherapieplanServiceFactory;
+import de.itc.onkostar.api.IOnkostarApi;
+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 static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.when;
+
+@ExtendWith(MockitoExtension.class)
+public class TherapieplanServiceFactoryTest {
+
+ @Mock
+ private IOnkostarApi onkostarApi;
+
+ @Mock
+ private FormService formService;
+
+ private TherapieplanServiceFactory therapieplanServiceFactory;
+
+ @BeforeEach
+ void setup() {
+ this.therapieplanServiceFactory = new TherapieplanServiceFactory(onkostarApi, formService);
+ }
+
+ @Test
+ void testShouldReturnDefaultTherapieplanServiceIfSettingIsFalse() {
+ doAnswer(invocationOnMock -> {
+ var settingName = invocationOnMock.getArgument(0, String.class);
+ if (settingName.equals("mehrere_mtb_in_mtbepisode")) {
+ return "false";
+ }
+ return null;
+ }).when(onkostarApi).getGlobalSetting(anyString());
+
+ var actual = this.therapieplanServiceFactory.currentUsableinstance();
+
+ assertThat(actual).isInstanceOf(DefaultTherapieplanService.class);
+ }
+
+ @Test
+ void testShouldReturnDefaultTherapieplanServiceIfNoSetting() {
+ when(onkostarApi.getGlobalSetting(anyString())).thenReturn(null);
+
+ var actual = this.therapieplanServiceFactory.currentUsableinstance();
+
+ assertThat(actual).isInstanceOf(DefaultTherapieplanService.class);
+ }
+
+ @Test
+ void testShouldReturnMultipleMtbTherapieplanServiceIfSettingIsTrue() {
+ doAnswer(invocationOnMock -> {
+ var settingName = invocationOnMock.getArgument(0, String.class);
+ if (settingName.equals("mehrere_mtb_in_mtbepisode")) {
+ return "true";
+ }
+ return null;
+ }).when(onkostarApi).getGlobalSetting(anyString());
+
+ var actual = this.therapieplanServiceFactory.currentUsableinstance();
+
+ assertThat(actual).isInstanceOf(MultipleMtbTherapieplanService.class);
+ }
+}