diff options
| author | Paul-Christian Volkmer | 2023-03-17 11:16:28 +0100 |
|---|---|---|
| committer | Paul-Christian Volkmer | 2023-03-17 11:16:28 +0100 |
| commit | 610bc34bd2c70566c0af7f1856c4ab1dcf0029d2 (patch) | |
| tree | 9b0714a52a22271499f03bd5a65f3e39749e9501 /src/test/java/DNPM/config/TherapieplanServiceFactoryTest.java | |
| parent | ed4b56113ac1d05800efa707f80434102e0c6534 (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/java/DNPM/config/TherapieplanServiceFactoryTest.java')
| -rw-r--r-- | src/test/java/DNPM/config/TherapieplanServiceFactoryTest.java | 73 |
1 files changed, 73 insertions, 0 deletions
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); + } +} |
