summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/DNPM/analyzer/TherapieplanAnalyzer.java11
-rw-r--r--src/main/java/DNPM/config/PluginConfiguration.java11
-rw-r--r--src/main/java/DNPM/services/TherapieplanServiceFactory.java27
-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
6 files changed, 122 insertions, 64 deletions
diff --git a/src/main/java/DNPM/analyzer/TherapieplanAnalyzer.java b/src/main/java/DNPM/analyzer/TherapieplanAnalyzer.java
index 29441cf..fe2f0d7 100644
--- a/src/main/java/DNPM/analyzer/TherapieplanAnalyzer.java
+++ b/src/main/java/DNPM/analyzer/TherapieplanAnalyzer.java
@@ -2,7 +2,7 @@ package DNPM.analyzer;
import DNPM.services.Studie;
import DNPM.services.StudienService;
-import DNPM.services.TherapieplanService;
+import DNPM.services.TherapieplanServiceFactory;
import de.itc.onkostar.api.Disease;
import de.itc.onkostar.api.Procedure;
import de.itc.onkostar.api.analysis.AnalyseTriggerEvent;
@@ -25,14 +25,14 @@ public class TherapieplanAnalyzer implements IProcedureAnalyzer {
private final StudienService studienService;
- private final TherapieplanService therapieplanService;
+ private final TherapieplanServiceFactory therapieplanServiceFactory;
public TherapieplanAnalyzer(
final StudienService studienService,
- final TherapieplanService therapieplanService
+ final TherapieplanServiceFactory therapieplanServiceFactory
) {
this.studienService = studienService;
- this.therapieplanService = therapieplanService;
+ this.therapieplanServiceFactory = therapieplanServiceFactory;
}
@Override
@@ -89,7 +89,7 @@ public class TherapieplanAnalyzer implements IProcedureAnalyzer {
@Override
public void analyze(Procedure procedure, Disease disease) {
- therapieplanService.updateRequiredMtbEntries(procedure);
+ therapieplanServiceFactory.currentUsableinstance().updateRequiredMtbEntries(procedure);
}
@@ -108,6 +108,7 @@ public class TherapieplanAnalyzer implements IProcedureAnalyzer {
* false
* );
* </pre>
+ *
* @param input Map mit Eingabewerten
*/
public List<Studie> getStudien(Map<String, Object> input) {
diff --git a/src/main/java/DNPM/config/PluginConfiguration.java b/src/main/java/DNPM/config/PluginConfiguration.java
index d417132..36b1875 100644
--- a/src/main/java/DNPM/config/PluginConfiguration.java
+++ b/src/main/java/DNPM/config/PluginConfiguration.java
@@ -28,15 +28,8 @@ public class PluginConfiguration {
}
@Bean
- public TherapieplanService therapieplanService(final IOnkostarApi onkostarApi, final FormService formService) {
- if (
- null != onkostarApi.getGlobalSetting("mehrere_mtb_in_mtbepisode")
- && onkostarApi.getGlobalSetting("mehrere_mtb_in_mtbepisode").equals("true")
- ) {
- return new MultipleMtbTherapieplanService();
- }
-
- return new DefaultTherapieplanService(onkostarApi, formService);
+ public TherapieplanServiceFactory therapieplanServiceFactory(final IOnkostarApi onkostarApi, final FormService formService) {
+ return new TherapieplanServiceFactory(onkostarApi, formService);
}
}
diff --git a/src/main/java/DNPM/services/TherapieplanServiceFactory.java b/src/main/java/DNPM/services/TherapieplanServiceFactory.java
new file mode 100644
index 0000000..a6e869c
--- /dev/null
+++ b/src/main/java/DNPM/services/TherapieplanServiceFactory.java
@@ -0,0 +1,27 @@
+package DNPM.services;
+
+import de.itc.onkostar.api.IOnkostarApi;
+
+public class TherapieplanServiceFactory {
+
+ private final IOnkostarApi onkostarApi;
+
+ private final FormService formService;
+
+ public TherapieplanServiceFactory(IOnkostarApi onkostarApi, FormService formService) {
+ this.onkostarApi = onkostarApi;
+ this.formService = formService;
+ }
+
+ public TherapieplanService currentUsableinstance() {
+ if (
+ null != onkostarApi.getGlobalSetting("mehrere_mtb_in_mtbepisode")
+ && onkostarApi.getGlobalSetting("mehrere_mtb_in_mtbepisode").equals("true")
+ ) {
+ return new MultipleMtbTherapieplanService();
+ }
+
+ return new DefaultTherapieplanService(onkostarApi, formService);
+ }
+
+}
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);
+ }
+}