diff --git a/src/main/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsService.java b/src/main/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsService.java deleted file mode 100644 index 079a038ee7da87c5bd83ffc64a19361d9d3c9055..0000000000000000000000000000000000000000 --- a/src/main/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsService.java +++ /dev/null @@ -1,32 +0,0 @@ -package de.ozgcloud.admin.common.organisationseinheit; - -import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings; -import java.util.Collections; -import java.util.Map; -import java.util.stream.Collectors; -import java.util.stream.Stream; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; - -@Service -@RequiredArgsConstructor -public class OrganisationsEinheitSettingsService { - - private final OrganisationsEinheitSettingsRepository settingsRepository; - - public Map<String, OrganisationsEinheitSettings> getSettings() { - return getSettingsMap(settingsRepository.getSettings()); - } - - Map<String, OrganisationsEinheitSettings> getSettingsMap(Stream<OrganisationsEinheitWithSettings> settings) { - if(settings == null){ - return Collections.emptyMap(); - } - return settings.collect( - Collectors.toMap( - entry -> entry.organisationsEinheitId(), - entry -> entry.settings() - ) - ); - } -} diff --git a/src/main/java/de/ozgcloud/admin/setting/AlfaSettingDTO.java b/src/main/java/de/ozgcloud/admin/setting/AlfaSettingDTO.java index 1bb671267c26463067b72f3925dc86778ac72e97..3db6fd9cd75604a52d9cc7f8b8bf8c267dc93ea6 100644 --- a/src/main/java/de/ozgcloud/admin/setting/AlfaSettingDTO.java +++ b/src/main/java/de/ozgcloud/admin/setting/AlfaSettingDTO.java @@ -1,9 +1,11 @@ package de.ozgcloud.admin.setting; -import com.fasterxml.jackson.annotation.JsonProperty; -import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings; import java.util.HashMap; import java.util.Map; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings; import lombok.Builder; import lombok.Getter; @@ -15,7 +17,7 @@ class AlfaSettingDTO implements ApplicationSettingDTO { @Builder.Default private String signatur = ""; - @JsonProperty("ozgcloud.postfach.organisationsEinheitSettings") + @JsonProperty("ozgcloud.organisationsEinheitSettings") @Builder.Default - private Map<String, OrganisationsEinheitSettings> organisationsEinheitSettingsMap = new HashMap<>(); + private Map<String, OrganisationsEinheitSettings> organisationsEinheitSettings = new HashMap<>(); } diff --git a/src/main/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsRepository.java b/src/main/java/de/ozgcloud/admin/setting/OrganisationsEinheitSettingsRepository.java similarity index 90% rename from src/main/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsRepository.java rename to src/main/java/de/ozgcloud/admin/setting/OrganisationsEinheitSettingsRepository.java index 1eded7df64c78956c696ebc3e2e8c4b6d77eb19e..376d9898e05b720ee2bb2bb036cf6cf061dab91c 100644 --- a/src/main/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsRepository.java +++ b/src/main/java/de/ozgcloud/admin/setting/OrganisationsEinheitSettingsRepository.java @@ -1,4 +1,4 @@ -package de.ozgcloud.admin.common.organisationseinheit; +package de.ozgcloud.admin.setting; import java.util.stream.Stream; diff --git a/src/main/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitWithSettings.java b/src/main/java/de/ozgcloud/admin/setting/OrganisationsEinheitWithSettings.java similarity index 77% rename from src/main/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitWithSettings.java rename to src/main/java/de/ozgcloud/admin/setting/OrganisationsEinheitWithSettings.java index b2bc2fc0ecc4914180dfc36a129d0e11a90af839..e4ad3c0e0bed0d25ea4294deeb8553bfe6e0d8ef 100644 --- a/src/main/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitWithSettings.java +++ b/src/main/java/de/ozgcloud/admin/setting/OrganisationsEinheitWithSettings.java @@ -1,4 +1,4 @@ -package de.ozgcloud.admin.common.organisationseinheit; +package de.ozgcloud.admin.setting; import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings; @@ -6,5 +6,4 @@ record OrganisationsEinheitWithSettings( String organisationsEinheitId, OrganisationsEinheitSettings settings ) { - } diff --git a/src/main/java/de/ozgcloud/admin/setting/SettingMapper.java b/src/main/java/de/ozgcloud/admin/setting/SettingMapper.java index 11c57f0cc55bb20b7d9a8d6f44f2766fd93524af..8f3fd97f7b6c0515ca46655a40a525156ca197bb 100644 --- a/src/main/java/de/ozgcloud/admin/setting/SettingMapper.java +++ b/src/main/java/de/ozgcloud/admin/setting/SettingMapper.java @@ -1,23 +1,13 @@ package de.ozgcloud.admin.setting; import org.mapstruct.Mapper; -import org.mapstruct.MappingTarget; import org.mapstruct.ReportingPolicy; import de.ozgcloud.admin.setting.postfach.Absender; import de.ozgcloud.admin.setting.postfach.AbsenderVorgangManager; -import de.ozgcloud.admin.setting.postfach.PostfachSettingBody; @Mapper(unmappedTargetPolicy = ReportingPolicy.WARN) interface SettingMapper { - @Deprecated - AlfaSettingDTO.AlfaSettingDTOBuilder mapAlfaPostfach(@MappingTarget AlfaSettingDTO.AlfaSettingDTOBuilder builder, - PostfachSettingBody postfachData); - - @Deprecated - VorgangManagerSettingDTO.VorgangManagerSettingDTOBuilder mapVorgangManagerPostfach( - @MappingTarget VorgangManagerSettingDTO.VorgangManagerSettingDTOBuilder builder, PostfachSettingBody postfachData); - AbsenderVorgangManager mapAbsenderToAbsenderVorgangManager(Absender absender); } diff --git a/src/main/java/de/ozgcloud/admin/setting/SettingService.java b/src/main/java/de/ozgcloud/admin/setting/SettingService.java index cdb43369e4de9900ad78f4c21d2f8e24c01a1726..b8699568b6a2f6f84f000ec624730bce686ad1df 100644 --- a/src/main/java/de/ozgcloud/admin/setting/SettingService.java +++ b/src/main/java/de/ozgcloud/admin/setting/SettingService.java @@ -1,40 +1,42 @@ package de.ozgcloud.admin.setting; -import de.ozgcloud.admin.common.organisationseinheit.OrganisationsEinheitSettingsService; +import java.util.Map; +import java.util.stream.Collectors; + +import org.springframework.stereotype.Service; + import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings; import de.ozgcloud.admin.setting.postfach.PostfachSettingBody; -import java.util.Map; import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; @Service @RequiredArgsConstructor class SettingService { private static final String POSTFACH_SETTING_ITEM_NAME = "Postfach"; + private final OrganisationsEinheitSettingsRepository organisationsEinheitSettingsRepository; private final SettingRepository repository; - private final SettingMapper mapper; - private final OrganisationsEinheitSettingsService oeService; + private final SettingMapper mapper; public AlfaSettingDTO getAlfaSettingDTO() { var postfachData = getSettingWithPostfachFromDb(); - Map<String, OrganisationsEinheitSettings> settings = oeService.getSettings(); + Map<String, OrganisationsEinheitSettings> settings = getOrganisationsEinheitSettings(); return AlfaSettingDTO.builder() .signatur(postfachData.getSignatur()) - .organisationsEinheitSettingsMap(settings) + .organisationsEinheitSettings(settings) .build(); } public VorgangManagerSettingDTO getVorgangManagerSettingDTO() { var postfachData = getSettingWithPostfachFromDb(); - Map<String, OrganisationsEinheitSettings> settings = oeService.getSettings(); + Map<String, OrganisationsEinheitSettings> settings = getOrganisationsEinheitSettings(); return VorgangManagerSettingDTO.builder() .absender(mapper.mapAbsenderToAbsenderVorgangManager(postfachData.getAbsender())) .signatur(postfachData.getSignatur()) - .organisationsEinheitSettingsMap(settings) + .organisationsEinheitSettings(settings) .build(); } @@ -42,4 +44,10 @@ class SettingService { var postfach = repository.findOneByName(POSTFACH_SETTING_ITEM_NAME); return postfach.isPresent() ? (PostfachSettingBody) postfach.get().getSettingBody() : PostfachSettingBody.builder().build(); } + + Map<String, OrganisationsEinheitSettings> getOrganisationsEinheitSettings() { + return organisationsEinheitSettingsRepository.getSettings().collect(Collectors.toMap( + OrganisationsEinheitWithSettings::organisationsEinheitId, + OrganisationsEinheitWithSettings::settings)); + } } diff --git a/src/main/java/de/ozgcloud/admin/setting/VorgangManagerSettingDTO.java b/src/main/java/de/ozgcloud/admin/setting/VorgangManagerSettingDTO.java index 5ab2519d95d923eae3a38dc9b13e28009980b87a..75ae74020f5917c8b4734e961e2e0f89967ff19d 100644 --- a/src/main/java/de/ozgcloud/admin/setting/VorgangManagerSettingDTO.java +++ b/src/main/java/de/ozgcloud/admin/setting/VorgangManagerSettingDTO.java @@ -1,12 +1,13 @@ package de.ozgcloud.admin.setting; +import java.util.HashMap; +import java.util.Map; + import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonUnwrapped; import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings; import de.ozgcloud.admin.setting.postfach.AbsenderVorgangManager; -import java.util.HashMap; -import java.util.Map; import lombok.Builder; import lombok.Getter; @@ -21,7 +22,7 @@ class VorgangManagerSettingDTO implements ApplicationSettingDTO { @Builder.Default private String signatur = ""; - @JsonProperty("ozgcloud.postfach.organisationsEinheitSettings") + @JsonProperty("ozgcloud.organisationsEinheitSettings") @Builder.Default - private Map<String, OrganisationsEinheitSettings> organisationsEinheitSettingsMap = new HashMap<>(); + private Map<String, OrganisationsEinheitSettings> organisationsEinheitSettings = new HashMap<>(); } diff --git a/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsServiceTest.java b/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsServiceTest.java deleted file mode 100644 index 31f59f63513a01b632fb84ec6a098cbdc815e832..0000000000000000000000000000000000000000 --- a/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsServiceTest.java +++ /dev/null @@ -1,140 +0,0 @@ -package de.ozgcloud.admin.common.organisationseinheit; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.Assertions.entry; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings; -import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettingsTestFactory; -import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory; -import java.util.Map; -import java.util.stream.Stream; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Nested; -import org.junit.jupiter.api.Test; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.mockito.Spy; - -class OrganisationsEinheitSettingsServiceTest { - - @Mock - private OrganisationsEinheitSettingsRepository settingsRepository; - @Spy - @InjectMocks - private OrganisationsEinheitSettingsService service; - - private final OrganisationsEinheitWithSettings withSettings1 = mockWith(OrganisationsEinheitTestFactory.ID, - OrganisationsEinheitSettingsTestFactory.create()); - - @Nested - class TestGetSettings { - - @BeforeEach - void init2() { - when(settingsRepository.getSettings()).thenReturn(Stream.of(withSettings1)); - } - - private final Map<String, OrganisationsEinheitSettings> settingsMap = Map.of( - OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID, OrganisationsEinheitSettingsTestFactory.create() - ); - - @Captor - private ArgumentCaptor<Stream<OrganisationsEinheitWithSettings>> streamArgumentCaptor; - - @BeforeEach - void init() { - doReturn(settingsMap).when(service).getSettingsMap(any()); - } - - @Test - void shouldGetSettings() { - callService(); - - verify(settingsRepository).getSettings(); - } - - @Test - void shouldGetSettingsMap() { - callService(); - - verify(service).getSettingsMap(streamArgumentCaptor.capture()); - assertThat(streamArgumentCaptor.getValue()).containsExactly(withSettings1); - } - - private Map<String, OrganisationsEinheitSettings> callService() { - return service.getSettings(); - } - } - - @Nested - class TestGetSettingsMap { - - @Test - void shouldUseGetterWhenMapping() { - OrganisationsEinheitWithSettings settings = Mockito.mock(OrganisationsEinheitWithSettings.class); - doReturn(OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID).when(settings).organisationsEinheitId(); - doReturn(OrganisationsEinheitSettingsTestFactory.create()).when(settings).settings(); - - callService(Stream.of(settings)); - - verify(settings, times(1)).organisationsEinheitId(); - verify(settings, times(1)).settings(); - } - - @Test - void shouldConvertToMap() { - OrganisationsEinheitWithSettings oews = OrganisationsEinheitWithSettingsTestFactory.create(); - - var settingsMap = callService(Stream.of(oews)); - - assertThat(settingsMap).containsEntry(OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID, oews.settings()); - } - - @Test - void shouldGetEmptyMapIfStreamEmpty() { - var settingsMap = callService(Stream.of()); - - assertThat(settingsMap).size().isEqualTo(0); - } - - @Test - void shouldGetEmptyMapIfNull() { - var settingsMap = callService(null); - - assertThat(settingsMap).size().isEqualTo(0); - } - - @Test - void shouldHaveAllEntries() { - OrganisationsEinheitWithSettings owes = OrganisationsEinheitWithSettingsTestFactory.create(); - OrganisationsEinheitWithSettings owes2 = OrganisationsEinheitWithSettingsTestFactory.createAnother(); - - var settingsMap = callService(Stream.of(owes, owes2)); - - assertThat(settingsMap).containsExactly( - entry(owes.organisationsEinheitId(), owes.settings()), - entry(owes2.organisationsEinheitId(), owes2.settings())); - } - - Map<String, OrganisationsEinheitSettings> callService(Stream<OrganisationsEinheitWithSettings> settings) { - return service.getSettingsMap(settings); - } - - } - - private OrganisationsEinheitWithSettings mockWith(String organisationsEinheitId, OrganisationsEinheitSettings settings) { - var withSettings = mock(OrganisationsEinheitWithSettings.class); - when(withSettings.organisationsEinheitId()).thenReturn(organisationsEinheitId); - when(withSettings.settings()).thenReturn(settings); - return withSettings; - } -} diff --git a/src/test/java/de/ozgcloud/admin/setting/AlfaSettingDTOTestFactory.java b/src/test/java/de/ozgcloud/admin/setting/AlfaSettingDTOTestFactory.java index 280bdd528e6e31c0684d86d526a4efdfa6827e6e..c3f126d0984418995a5f29e60d0d5604e47eab4d 100644 --- a/src/test/java/de/ozgcloud/admin/setting/AlfaSettingDTOTestFactory.java +++ b/src/test/java/de/ozgcloud/admin/setting/AlfaSettingDTOTestFactory.java @@ -1,22 +1,25 @@ package de.ozgcloud.admin.setting; +import java.util.Map; + import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings; import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettingsTestFactory; import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory; import de.ozgcloud.admin.setting.postfach.PostfachSettingBodyTestFactory; -import java.util.Map; public class AlfaSettingDTOTestFactory { + public static AlfaSettingDTO create() { return createBuilder().build(); } - public static Map<String, OrganisationsEinheitSettings> organisationsEinheitSettingsMap = Map.of(OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID, + public static Map<String, OrganisationsEinheitSettings> organisationsEinheitSettings = Map.of( + OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID, OrganisationsEinheitSettingsTestFactory.create()); public static AlfaSettingDTO.AlfaSettingDTOBuilder createBuilder() { return AlfaSettingDTO.builder() .signatur(PostfachSettingBodyTestFactory.SIGNATUR) - .organisationsEinheitSettingsMap(organisationsEinheitSettingsMap); + .organisationsEinheitSettings(organisationsEinheitSettings); } } diff --git a/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsRepositoryITCase.java b/src/test/java/de/ozgcloud/admin/setting/OrganisationsEinheitSettingsRepositoryITCase.java similarity index 98% rename from src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsRepositoryITCase.java rename to src/test/java/de/ozgcloud/admin/setting/OrganisationsEinheitSettingsRepositoryITCase.java index b70ef355262d34d93f857a7a59da3a3b0ad02cb2..880b06ecd9c2d6f1bb2ba84fa8b2e2fefb493360 100644 --- a/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitSettingsRepositoryITCase.java +++ b/src/test/java/de/ozgcloud/admin/setting/OrganisationsEinheitSettingsRepositoryITCase.java @@ -1,4 +1,4 @@ -package de.ozgcloud.admin.common.organisationseinheit; +package de.ozgcloud.admin.setting; import static org.assertj.core.api.Assertions.*; diff --git a/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitWithSettingsTestFactory.java b/src/test/java/de/ozgcloud/admin/setting/OrganisationsEinheitWithSettingsTestFactory.java similarity index 92% rename from src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitWithSettingsTestFactory.java rename to src/test/java/de/ozgcloud/admin/setting/OrganisationsEinheitWithSettingsTestFactory.java index 7e787bdf8c161a2f93720ddb758c92a64030afed..49a02b8ecc382b800df595c2669adea8809f287b 100644 --- a/src/test/java/de/ozgcloud/admin/common/organisationseinheit/OrganisationsEinheitWithSettingsTestFactory.java +++ b/src/test/java/de/ozgcloud/admin/setting/OrganisationsEinheitWithSettingsTestFactory.java @@ -1,8 +1,9 @@ -package de.ozgcloud.admin.common.organisationseinheit; +package de.ozgcloud.admin.setting; + +import java.util.UUID; import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettingsTestFactory; import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory; -import java.util.UUID; public class OrganisationsEinheitWithSettingsTestFactory { diff --git a/src/test/java/de/ozgcloud/admin/setting/SettingEnvironmentITCase.java b/src/test/java/de/ozgcloud/admin/setting/SettingEnvironmentITCase.java index 5888ac1392c4e09f3b923e6974f442c474e0dddf..cd92c83fef3f81a6d0dfd6a42b76c156d61e8dda 100644 --- a/src/test/java/de/ozgcloud/admin/setting/SettingEnvironmentITCase.java +++ b/src/test/java/de/ozgcloud/admin/setting/SettingEnvironmentITCase.java @@ -1,4 +1,3 @@ - package de.ozgcloud.admin.setting; import static org.assertj.core.api.Assertions.*; @@ -10,9 +9,12 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.data.mongodb.core.MongoOperations; import org.springframework.security.test.context.support.WithMockUser; import org.springframework.test.web.servlet.MockMvc; +import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheit; +import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory; import de.ozgcloud.admin.setting.postfach.PostfachSettingBodyTestFactory; import de.ozgcloud.common.test.DataITCase; import lombok.SneakyThrows; @@ -25,7 +27,7 @@ class SettingEnvironmentITCase { @Autowired private MockMvc mockMvc; @Autowired - private SettingRepository settingRepository; + private MongoOperations mongoOperations; private Setting settingWithPostfach = SettingTestFactory.createBuilder() .name("Postfach") @@ -42,11 +44,13 @@ class SettingEnvironmentITCase { @Nested class TestFindOne { + @BeforeEach void fillDb() { - settingRepository.deleteAll(); - settingRepository.save(settingWithPostfach); - + mongoOperations.dropCollection(Setting.class); + mongoOperations.dropCollection(OrganisationsEinheit.class); + mongoOperations.save(settingWithPostfach); + mongoOperations.save(OrganisationsEinheitTestFactory.create()); } @Test diff --git a/src/test/java/de/ozgcloud/admin/setting/SettingMapperTest.java b/src/test/java/de/ozgcloud/admin/setting/SettingMapperTest.java deleted file mode 100644 index d19e81a2dc480db8bfc2e8d6e1daefc7e001392c..0000000000000000000000000000000000000000 --- a/src/test/java/de/ozgcloud/admin/setting/SettingMapperTest.java +++ /dev/null @@ -1,41 +0,0 @@ -package de.ozgcloud.admin.setting; - -import static org.assertj.core.api.Assertions.*; - -import org.junit.jupiter.api.Nested; -import org.junit.jupiter.api.Test; -import org.mapstruct.factory.Mappers; -import org.mockito.Spy; - -import de.ozgcloud.admin.setting.postfach.PostfachSettingBody; -import de.ozgcloud.admin.setting.postfach.PostfachSettingBodyTestFactory; - -class SettingMapperTest { - private final PostfachSettingBody postfach = PostfachSettingBodyTestFactory.create(); - private final AlfaSettingDTO alfaSettingDTO = AlfaSettingDTOTestFactory.create(); - private final VorgangManagerSettingDTO vorgangManagerSettingDTO = VorgangManagerSettingDTOTestFactory.create(); - - @Spy - private final SettingMapper mapper = Mappers.getMapper(SettingMapper.class); - - @Nested - class TestMapPostfachToAlfaSetting { - @Test - void shouldReturnFlattenedAlfaMap() { - var resultAlfaSetting = mapper.mapAlfaPostfach(AlfaSettingDTO.builder(), postfach).build(); - - assertThat(resultAlfaSetting).usingRecursiveComparison().isEqualTo(alfaSettingDTO); - } - } - - @Nested - class TestMapPostfachToVorgangManagerSetting { - @Test - void shouldReturnFlattenedVorgangManagerMap() { - var resultVorgangmanagerSetting = mapper.mapVorgangManagerPostfach(VorgangManagerSettingDTO.builder(), postfach).build(); - - assertThat(resultVorgangmanagerSetting).usingRecursiveComparison().isEqualTo(vorgangManagerSettingDTO); - } - } - -} diff --git a/src/test/java/de/ozgcloud/admin/setting/SettingServiceTest.java b/src/test/java/de/ozgcloud/admin/setting/SettingServiceTest.java index 00af130bc3b191d9c1ff8b02af5812c628922662..f463359e1002e3b3074f82f8e08a94fdb692e948 100644 --- a/src/test/java/de/ozgcloud/admin/setting/SettingServiceTest.java +++ b/src/test/java/de/ozgcloud/admin/setting/SettingServiceTest.java @@ -1,10 +1,11 @@ package de.ozgcloud.admin.setting; import static org.assertj.core.api.Assertions.*; -import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; +import java.util.Map; import java.util.Optional; +import java.util.stream.Stream; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; @@ -15,6 +16,10 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; +import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettings; +import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettingsTestFactory; +import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory; +import de.ozgcloud.admin.setting.postfach.AbsenderVorgangManagerTestFactory; import de.ozgcloud.admin.setting.postfach.PostfachSettingBody; import de.ozgcloud.admin.setting.postfach.PostfachSettingBodyTestFactory; @@ -26,6 +31,8 @@ class SettingServiceTest { @Mock private SettingRepository repository; + @Mock + private OrganisationsEinheitSettingsRepository organisationsEinheitSettingsRepository; @Mock private SettingMapper mapper; @@ -37,39 +44,37 @@ class SettingServiceTest { @Nested class TestGetAlfaSettingDTO { + @Captor private ArgumentCaptor<AlfaSettingDTO.AlfaSettingDTOBuilder> alfaBuilderCaptor; private final AlfaSettingDTO alfaSetting = AlfaSettingDTOTestFactory.create(); + private final Map<String, OrganisationsEinheitSettings> organisationsEinheitSettings = Map.of( + OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID, + OrganisationsEinheitSettingsTestFactory.create()); @BeforeEach - void mockGetSettingWithPostfachFromDb() { + void init() { + doReturn(organisationsEinheitSettings).when(service).getOrganisationsEinheitSettings(); doReturn(postfach).when(service).getSettingWithPostfachFromDb(); } @Test void shouldCallGetSettingWithPostfachFromDb() { - when(mapper.mapAlfaPostfach(any(), any())).thenReturn(AlfaSettingDTOTestFactory.createBuilder()); - service.getAlfaSettingDTO(); verify(service).getSettingWithPostfachFromDb(); } @Test - void shouldCallMapperWithEmptyBuilderAndPostfach() { - when(mapper.mapAlfaPostfach(any(), any())).thenReturn(AlfaSettingDTOTestFactory.createBuilder()); - + void shouldGetOrganisationsEinheitSettings() { service.getAlfaSettingDTO(); - verify(mapper).mapAlfaPostfach(alfaBuilderCaptor.capture(), eq(postfach)); - assertThat(alfaBuilderCaptor.getValue()).usingRecursiveComparison().isEqualTo(AlfaSettingDTO.builder()); + verify(service).getOrganisationsEinheitSettings(); } @Test void shouldReturnBuiltAlfaSettingDTO() { - when(mapper.mapAlfaPostfach(any(), any())).thenReturn(AlfaSettingDTOTestFactory.createBuilder()); - var resultSettingDTO = service.getAlfaSettingDTO(); assertThat(resultSettingDTO).usingRecursiveComparison().isEqualTo(alfaSetting); @@ -78,19 +83,20 @@ class SettingServiceTest { @Nested class TestGetVorgangManagerSettingDTO { + @Captor private ArgumentCaptor<VorgangManagerSettingDTO.VorgangManagerSettingDTOBuilder> vorgangManagerBuilderCaptor; private final VorgangManagerSettingDTO vorgangManagerSetting = VorgangManagerSettingDTOTestFactory.create(); + private final Map<String, OrganisationsEinheitSettings> organisationsEinheitSettings = Map.of( + OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID, + OrganisationsEinheitSettingsTestFactory.create()); @BeforeEach - void mockGetSettingWithPostfachFromDb() { + void init() { + doReturn(organisationsEinheitSettings).when(service).getOrganisationsEinheitSettings(); doReturn(postfach).when(service).getSettingWithPostfachFromDb(); - } - - @BeforeEach - void mockMapper() { - when(mapper.mapVorgangManagerPostfach(any(), any())).thenReturn(VorgangManagerSettingDTOTestFactory.createBuilder()); + when(mapper.mapAbsenderToAbsenderVorgangManager(postfach.getAbsender())).thenReturn(AbsenderVorgangManagerTestFactory.create()); } @Test @@ -101,11 +107,10 @@ class SettingServiceTest { } @Test - void shouldCallMapperWithEmptyBuilderAndPostfach() { + void shouldGetOrganisationsEinheitSettings() { service.getVorgangManagerSettingDTO(); - verify(mapper).mapVorgangManagerPostfach(vorgangManagerBuilderCaptor.capture(), eq(postfach)); - assertThat(vorgangManagerBuilderCaptor.getValue()).usingRecursiveComparison().isEqualTo(VorgangManagerSettingDTO.builder()); + verify(service).getOrganisationsEinheitSettings(); } @Test @@ -147,4 +152,28 @@ class SettingServiceTest { } } + @Nested + class TestGetOrganisationsEinheitSettings { + + private final OrganisationsEinheitWithSettings organisationsEinheitWithSettings = OrganisationsEinheitWithSettingsTestFactory.create(); + + @Test + void shouldReturnOrganisationsEinheitSettingsByOrganisationsEinheitId() { + when(organisationsEinheitSettingsRepository.getSettings()).thenReturn(Stream.of(organisationsEinheitWithSettings)); + + var got = service.getOrganisationsEinheitSettings(); + + assertThat(got).contains(entry(organisationsEinheitWithSettings.organisationsEinheitId(), organisationsEinheitWithSettings.settings())); + } + + @Test + void shouldReturnEmpty() { + when(organisationsEinheitSettingsRepository.getSettings()).thenReturn(Stream.of()); + + var got = service.getOrganisationsEinheitSettings(); + + assertThat(got).isEmpty(); + + } + } } diff --git a/src/test/java/de/ozgcloud/admin/setting/VorgangManagerSettingDTOTestFactory.java b/src/test/java/de/ozgcloud/admin/setting/VorgangManagerSettingDTOTestFactory.java index 14a44a1da09e8546d35ca38f510af5c78f6690d0..be53a581dce06f660aee3bd7ebcc45de579dbd99 100644 --- a/src/test/java/de/ozgcloud/admin/setting/VorgangManagerSettingDTOTestFactory.java +++ b/src/test/java/de/ozgcloud/admin/setting/VorgangManagerSettingDTOTestFactory.java @@ -1,6 +1,6 @@ package de.ozgcloud.admin.setting; -import static de.ozgcloud.admin.setting.AlfaSettingDTOTestFactory.organisationsEinheitSettingsMap; +import static de.ozgcloud.admin.setting.AlfaSettingDTOTestFactory.*; import de.ozgcloud.admin.setting.postfach.AbsenderVorgangManager; import de.ozgcloud.admin.setting.postfach.AbsenderVorgangManagerTestFactory; @@ -18,6 +18,6 @@ public class VorgangManagerSettingDTOTestFactory { return VorgangManagerSettingDTO.builder() .absender(ABSENDER) .signatur(SIGNATUR) - .organisationsEinheitSettingsMap(organisationsEinheitSettingsMap); + .organisationsEinheitSettings(organisationsEinheitSettings); } } diff --git a/src/test/java/de/ozgcloud/admin/setting/YamlTestFactory.java b/src/test/java/de/ozgcloud/admin/setting/YamlTestFactory.java index a9aa38185568cb3ad4b97718b78f9c1e23941c6f..703aff603700c5e68b03d0a1a1013eb0da59b383 100644 --- a/src/test/java/de/ozgcloud/admin/setting/YamlTestFactory.java +++ b/src/test/java/de/ozgcloud/admin/setting/YamlTestFactory.java @@ -1,10 +1,13 @@ package de.ozgcloud.admin.setting; +import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettingsTestFactory; +import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory; import de.ozgcloud.admin.setting.postfach.PostfachSettingBody; import de.ozgcloud.admin.setting.postfach.PostfachSettingBodyTestFactory; import de.ozgcloud.common.test.TestUtils; public class YamlTestFactory { + public static final PostfachSettingBody POSTFACH = PostfachSettingBodyTestFactory.create(); public static String createVorgangManagerYaml() { @@ -14,10 +17,15 @@ public class YamlTestFactory { POSTFACH.getAbsender().getDienst(), POSTFACH.getAbsender().getMandant(), POSTFACH.getAbsender().getGemeindeschluessel(), - POSTFACH.getSignatur()); + POSTFACH.getSignatur(), + OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID, + OrganisationsEinheitSettingsTestFactory.SIGNATUR); } public static String createAlfaYaml() { - return TestUtils.loadTextFile("yamlTemplates/settings/alfa.yaml.tmpl", POSTFACH.getSignatur()); + return TestUtils.loadTextFile("yamlTemplates/settings/alfa.yaml.tmpl", + POSTFACH.getSignatur(), + OrganisationsEinheitTestFactory.ORGANISATIONS_EINHEIT_ID, + OrganisationsEinheitSettingsTestFactory.SIGNATUR); } } diff --git a/src/test/resources/yamlTemplates/settings/alfa.yaml.tmpl b/src/test/resources/yamlTemplates/settings/alfa.yaml.tmpl index 3fa8a717bd38f3b276e782dfb5d2507a28f1cca5..ae5a648dfbf79c04ff27ecf393da2ac1f3355d01 100644 --- a/src/test/resources/yamlTemplates/settings/alfa.yaml.tmpl +++ b/src/test/resources/yamlTemplates/settings/alfa.yaml.tmpl @@ -1,3 +1,6 @@ ozgcloud: postfach: signatur: "%s" + organisationsEinheitSettings: + %s: + signatur: %s diff --git a/src/test/resources/yamlTemplates/settings/vorgangManager.yaml.tmpl b/src/test/resources/yamlTemplates/settings/vorgangManager.yaml.tmpl index 21a2dea1e6a71ec21c51a4ef28f0b0b3760d7eb6..ce8a10549099f3edd4999fb99f3afcfcad89ebfd 100644 --- a/src/test/resources/yamlTemplates/settings/vorgangManager.yaml.tmpl +++ b/src/test/resources/yamlTemplates/settings/vorgangManager.yaml.tmpl @@ -7,3 +7,6 @@ ozgcloud: mandant: %s gemeinde-schluessel: '%s' signatur: "%s" + organisationsEinheitSettings: + %s: + signatur: %s