From f09826a8fff78361de9cbe5eccdfffb86a6e610a Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer Date: Wed, 15 Mar 2023 12:01:50 +0100 Subject: Verwende Spring Configuration zur Pluginkonfiguration Dies erlaubt eine dynamische Konfiguration der zu verwendenden Service-Implementierungen mit Anpassungen je nach Standort oder Einstellungen. --- .../java/DNPM/config/PluginConfigurationTest.java | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/test/java/DNPM/config/PluginConfigurationTest.java (limited to 'src/test/java/DNPM/config') diff --git a/src/test/java/DNPM/config/PluginConfigurationTest.java b/src/test/java/DNPM/config/PluginConfigurationTest.java new file mode 100644 index 0000000..811e583 --- /dev/null +++ b/src/test/java/DNPM/config/PluginConfigurationTest.java @@ -0,0 +1,72 @@ +package DNPM.config; + +import DNPM.services.DefaultTherapieplanService; +import DNPM.services.FormService; +import DNPM.services.MultipleMtbTherapieplanService; +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 PluginConfigurationTest { + + @Mock + private IOnkostarApi onkostarApi; + + @Mock + private FormService formService; + + private PluginConfiguration configuration; + + @BeforeEach + void setup() { + this.configuration = new PluginConfiguration(); + } + + @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); + } +} -- cgit v1.2.3