From 4d9688d8a0c255604e3f9e210a6e97802d5f8a19 Mon Sep 17 00:00:00 2001 From: Felix Reichenbach <felix.reichenbach@mgm-tp.com> Date: Tue, 18 Feb 2025 15:01:56 +0100 Subject: [PATCH 1/2] OZG-7609 add ozgcloud prefix to aggregation properties and ITCase --- ...ngAggregationManagerSettingDtoService.java | 2 +- ...gationMappingEnvironmentSettingITCase.java | 81 +++++++++++++++++++ .../admin/setting/YamlTestFactory.java | 34 ++++++++ .../settings/aggregation.yaml.tmpl | 21 +++++ 4 files changed, 137 insertions(+), 1 deletion(-) create mode 100644 src/test/java/de/ozgcloud/admin/reporting/AggregationMappingEnvironmentSettingITCase.java create mode 100644 src/test/resources/yamlTemplates/settings/aggregation.yaml.tmpl diff --git a/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoService.java b/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoService.java index acb46bf4..0e0ad48f 100644 --- a/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoService.java +++ b/src/main/java/de/ozgcloud/admin/reporting/ReportingAggregationManagerSettingDtoService.java @@ -52,6 +52,6 @@ class ReportingAggregationManagerSettingDtoService implements SettingDtoService @Override public String getSettingKeyName() { - return "aggregation"; + return "ozgcloud.aggregation"; } } diff --git a/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingEnvironmentSettingITCase.java b/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingEnvironmentSettingITCase.java new file mode 100644 index 00000000..a7f20f9d --- /dev/null +++ b/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingEnvironmentSettingITCase.java @@ -0,0 +1,81 @@ +package de.ozgcloud.admin.reporting; + +import static org.assertj.core.api.Assertions.*; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; + +import org.junit.jupiter.api.BeforeEach; +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 org.springframework.test.web.servlet.ResultActions; + +import de.ozgcloud.admin.common.user.UserRole; +import de.ozgcloud.admin.setting.YamlTestFactory; +import de.ozgcloud.common.test.DataITCase; +import lombok.SneakyThrows; + +@DataITCase +@AutoConfigureMockMvc +@WithMockUser(roles = UserRole.DATENBEAUFTRAGUNG) +public class AggregationMappingEnvironmentSettingITCase { + + @Autowired + private MockMvc mockMvc; + @Autowired + private MongoOperations mongoOperations; + + @Nested + class TestGetAggregationSettings { + + @BeforeEach + void fillDb() { + fillDbWithAggregationMappings(); + } + + @Test + @SneakyThrows + void shouldReturnValuesForAggregationManager() { + var result = getAggregationSettings(); + + assertThat(result.andReturn().getResponse().getContentAsString()).isEqualTo(YamlTestFactory.createAggregationYaml()); + } + + private ResultActions getAggregationSettings() throws Exception { + return mockMvc.perform(get("/configserver/OzgCloud_AggregationManager-any.yaml")).andExpect(status().isOk()); + } + + private void fillDbWithAggregationMappings() { + var aggregationMapping1 = AggregationMapping.builder() + .formIdentifier(AggregationMapping.FormIdentifier.builder() + .formEngineName(YamlTestFactory.FORM_ENGINE_NAME_1) + .formId(YamlTestFactory.FORM_ID_1) + .build()) + .mapping(AggregationMapping.FieldMapping.builder().sourcePath(YamlTestFactory.SOURCE_PATH_1_1) + .targetPath(YamlTestFactory.TARGET_PATH_1_1).build()) + .mapping(AggregationMapping.FieldMapping.builder().sourcePath(YamlTestFactory.SOURCE_PATH_1_2) + .targetPath(YamlTestFactory.TARGET_PATH_1_2).build()) + .mapping(AggregationMapping.FieldMapping.builder().sourcePath(YamlTestFactory.SOURCE_PATH_1_3) + .targetPath(YamlTestFactory.TARGET_PATH_1_3).build()) + .build(); + var aggregationMapping2 = AggregationMapping.builder() + .formIdentifier(AggregationMapping.FormIdentifier.builder() + .formEngineName(YamlTestFactory.FORM_ENGINE_NAME_2) + .formId(YamlTestFactory.FORM_ID_2) + .build()) + .mapping(AggregationMapping.FieldMapping.builder().sourcePath(YamlTestFactory.SOURCE_PATH_2_1) + .targetPath(YamlTestFactory.TARGET_PATH_2_1).build()) + .mapping(AggregationMapping.FieldMapping.builder().sourcePath(YamlTestFactory.SOURCE_PATH_2_2) + .targetPath(YamlTestFactory.TARGET_PATH_2_2).build()) + .build(); + + mongoOperations.dropCollection("settings"); + mongoOperations.save(aggregationMapping1); + mongoOperations.save(aggregationMapping2); + } + } +} diff --git a/src/test/java/de/ozgcloud/admin/setting/YamlTestFactory.java b/src/test/java/de/ozgcloud/admin/setting/YamlTestFactory.java index e6b1c019..40ac3f16 100644 --- a/src/test/java/de/ozgcloud/admin/setting/YamlTestFactory.java +++ b/src/test/java/de/ozgcloud/admin/setting/YamlTestFactory.java @@ -23,6 +23,8 @@ */ package de.ozgcloud.admin.setting; +import com.thedeanda.lorem.LoremIpsum; + import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitSettingsTestFactory; import de.ozgcloud.admin.organisationseinheit.OrganisationsEinheitTestFactory; import de.ozgcloud.admin.setting.postfach.PostfachSettingBody; @@ -32,6 +34,20 @@ import de.ozgcloud.common.test.TestUtils; public class YamlTestFactory { public static final PostfachSettingBody POSTFACH = PostfachSettingBodyTestFactory.create(); + public static final String FORM_ENGINE_NAME_1 = LoremIpsum.getInstance().getWords(1); + public static final String FORM_ID_1 = LoremIpsum.getInstance().getWords(1); + public static final String SOURCE_PATH_1_1 = LoremIpsum.getInstance().getWords(1); + public static final String TARGET_PATH_1_1 = LoremIpsum.getInstance().getWords(1); + public static final String SOURCE_PATH_1_2 = LoremIpsum.getInstance().getWords(1); + public static final String TARGET_PATH_1_2 = LoremIpsum.getInstance().getWords(1); + public static final String SOURCE_PATH_1_3 = LoremIpsum.getInstance().getWords(1); + public static final String TARGET_PATH_1_3 = LoremIpsum.getInstance().getWords(1); + public static final String FORM_ENGINE_NAME_2 = LoremIpsum.getInstance().getWords(1); + public static final String FORM_ID_2 = LoremIpsum.getInstance().getWords(1); + public static final String SOURCE_PATH_2_1 = LoremIpsum.getInstance().getWords(1); + public static final String TARGET_PATH_2_1 = LoremIpsum.getInstance().getWords(1); + public static final String SOURCE_PATH_2_2 = LoremIpsum.getInstance().getWords(1); + public static final String TARGET_PATH_2_2 = LoremIpsum.getInstance().getWords(1); public static String createVorgangManagerYaml() { return TestUtils.loadTextFile("yamlTemplates/settings/vorgangManager.yaml.tmpl", @@ -55,4 +71,22 @@ public class YamlTestFactory { public static String createInitialYaml() { return TestUtils.loadTextFile("yamlTemplates/settings/initial.yaml.tmpl"); } + + public static String createAggregationYaml() { + return TestUtils.loadTextFile("yamlTemplates/settings/aggregation.yaml.tmpl", + FORM_ENGINE_NAME_1, + FORM_ID_1, + SOURCE_PATH_1_1, + TARGET_PATH_1_1, + SOURCE_PATH_1_2, + TARGET_PATH_1_2, + SOURCE_PATH_1_3, + TARGET_PATH_1_3, + FORM_ENGINE_NAME_2, + FORM_ID_2, + SOURCE_PATH_2_1, + TARGET_PATH_2_1, + SOURCE_PATH_2_2, + TARGET_PATH_2_2); + } } diff --git a/src/test/resources/yamlTemplates/settings/aggregation.yaml.tmpl b/src/test/resources/yamlTemplates/settings/aggregation.yaml.tmpl new file mode 100644 index 00000000..0b8a9c51 --- /dev/null +++ b/src/test/resources/yamlTemplates/settings/aggregation.yaml.tmpl @@ -0,0 +1,21 @@ +ozgcloud: + aggregation: + aggregationMappings: + - formIdentifier: + formEngineName: %s + formId: %s + fieldMappings: + - sourcePath: %s + targetPath: %s + - sourcePath: %s + targetPath: %s + - sourcePath: %s + targetPath: %s + - formIdentifier: + formEngineName: %s + formId: %s + fieldMappings: + - sourcePath: %s + targetPath: %s + - sourcePath: %s + targetPath: %s -- GitLab From 565809489cc9ea4df4630183519a283b89073fde Mon Sep 17 00:00:00 2001 From: Felix Reichenbach <felix.reichenbach@mgm-tp.com> Date: Fri, 21 Feb 2025 11:04:35 +0100 Subject: [PATCH 2/2] OZG-7609 add missing license header --- ...gationMappingEnvironmentSettingITCase.java | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingEnvironmentSettingITCase.java b/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingEnvironmentSettingITCase.java index a7f20f9d..0457a9e3 100644 --- a/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingEnvironmentSettingITCase.java +++ b/src/test/java/de/ozgcloud/admin/reporting/AggregationMappingEnvironmentSettingITCase.java @@ -1,3 +1,26 @@ +/* + * Copyright (C) 2025 Das Land Schleswig-Holstein vertreten durch den + * Ministerpräsidenten des Landes Schleswig-Holstein + * Staatskanzlei + * Abteilung Digitalisierung und zentrales IT-Management der Landesregierung + * + * Lizenziert unter der EUPL, Version 1.2 oder - sobald + * diese von der Europäischen Kommission genehmigt wurden - + * Folgeversionen der EUPL ("Lizenz"); + * Sie dürfen dieses Werk ausschließlich gemäß + * dieser Lizenz nutzen. + * Eine Kopie der Lizenz finden Sie hier: + * + * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12 + * + * Sofern nicht durch anwendbare Rechtsvorschriften + * gefordert oder in schriftlicher Form vereinbart, wird + * die unter der Lizenz verbreitete Software "so wie sie + * ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN - + * ausdrücklich oder stillschweigend - verbreitet. + * Die sprachspezifischen Genehmigungen und Beschränkungen + * unter der Lizenz sind dem Lizenztext zu entnehmen. + */ package de.ozgcloud.admin.reporting; import static org.assertj.core.api.Assertions.*; @@ -42,11 +65,13 @@ public class AggregationMappingEnvironmentSettingITCase { void shouldReturnValuesForAggregationManager() { var result = getAggregationSettings(); - assertThat(result.andReturn().getResponse().getContentAsString()).isEqualTo(YamlTestFactory.createAggregationYaml()); + assertThat(result.andReturn().getResponse().getContentAsString()) + .isEqualTo(YamlTestFactory.createAggregationYaml()); } private ResultActions getAggregationSettings() throws Exception { - return mockMvc.perform(get("/configserver/OzgCloud_AggregationManager-any.yaml")).andExpect(status().isOk()); + return mockMvc.perform(get("/configserver/OzgCloud_AggregationManager-any.yaml")) + .andExpect(status().isOk()); } private void fillDbWithAggregationMappings() { -- GitLab