diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/ValueKeysRemover.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataExportAdjuster.java similarity index 69% rename from alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/ValueKeysRemover.java rename to alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataExportAdjuster.java index e12499d41b0db62ab471ae8fb435343e4a82c453..ee3802fbf5b7fc6e79d438dceab2e526e92a2f70 100644 --- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/ValueKeysRemover.java +++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataExportAdjuster.java @@ -7,11 +7,15 @@ import lombok.AccessLevel; import lombok.NoArgsConstructor; @NoArgsConstructor(access = AccessLevel.PRIVATE) -class ValueKeysRemover { +class FormDataExportAdjuster { static final String VALUE_KEY = "value"; - public static Map<String, Object> removeValueKeys(Map<String, Object> formData) { + public static Map<String, Object> adjustFormDataForExport(Map<String, Object> formData) { + return removeValueKeys(formData); + } + + static Map<String, Object> removeValueKeys(Map<String, Object> formData) { Map<String, Object> result = new HashMap<>(); for (var entry : formData.entrySet()) { result.put(entry.getKey(), removeValueKeysFromValue(entry.getValue())); @@ -25,12 +29,12 @@ class ValueKeysRemover { return value; } Map<String, Object> formData = (Map<String, Object>) value; - return containsValueKeyAsSingleEntry(formData) ? + return containsValueKeyOnly(formData) ? removeValueKeysFromValue(formData.get(VALUE_KEY)) : removeValueKeys(formData); } - private static boolean containsValueKeyAsSingleEntry(Map<String, Object> formData) { + private static boolean containsValueKeyOnly(Map<String, Object> formData) { return formData.containsKey(VALUE_KEY) && formData.size() == 1; } } diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataMapper.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataMapper.java index 0c34564a6ddcfb3f617f2c93fd4895ea275f07db..8ab2e778ed10968019b8c1dc67d9a9f0586692c8 100644 --- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataMapper.java +++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/FormDataMapper.java @@ -32,7 +32,7 @@ class FormDataMapper { public Antragsdaten toAntragsdaten(@NotNull VorgangWithEingang vorgang) { return Optional.ofNullable(vorgang.getEingang()) .map(Eingang::getFormData) - .map(ValueKeysRemover::removeValueKeys) + .map(FormDataExportAdjuster::adjustFormDataForExport) .map(this::buildAntragsdaten) .orElseGet(Antragsdaten::new); } diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/ValueKeysRemoverTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataExportAdjusterTest.java similarity index 56% rename from alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/ValueKeysRemoverTest.java rename to alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataExportAdjusterTest.java index 8758bc6008c860dcb26d593ad287150508920b7f..7bf7579b62fc7215b55303f7b25d4962e4552295 100644 --- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/ValueKeysRemoverTest.java +++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataExportAdjusterTest.java @@ -1,13 +1,32 @@ package de.ozgcloud.alfa.vorgang; import static org.assertj.core.api.Assertions.*; +import static org.mockito.Mockito.*; import java.util.Map; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import org.mockito.MockedStatic; -public class ValueKeysRemoverTest { +public class FormDataExportAdjusterTest { + + @Nested + class TestAdjustFormDataForExport { + + private final Map<String, Object> formData = Map.of("key", "value"); + + @Test + void shouldCallRemoveValueKeys() { + try (MockedStatic<FormDataExportAdjuster> adjusterMock = mockStatic(FormDataExportAdjuster.class)) { + adjusterMock.when(() -> FormDataExportAdjuster.adjustFormDataForExport(any())).thenCallRealMethod(); + + FormDataExportAdjuster.adjustFormDataForExport(formData); + + adjusterMock.verify(() -> FormDataExportAdjuster.removeValueKeys(formData)); + } + } + } @Nested class TestRemoveValueKeys { @@ -16,7 +35,7 @@ public class ValueKeysRemoverTest { void shouldPreserveValueKeyWithoutParent() { Map<String, Object> formData = Map.of("value", "Kiel"); - var formDataWithoutValueKeys = ValueKeysRemover.removeValueKeys(formData); + var formDataWithoutValueKeys = FormDataExportAdjuster.removeValueKeys(formData); assertThat(formDataWithoutValueKeys).isEqualTo(formData); } @@ -26,7 +45,7 @@ public class ValueKeysRemoverTest { Map<String, Object> formData = Map.of("ort", Map.of("value", "Kiel")); Map<String, Object> expected = Map.of("ort", "Kiel"); - var formDataWithoutValueKeys = ValueKeysRemover.removeValueKeys(formData); + var formDataWithoutValueKeys = FormDataExportAdjuster.removeValueKeys(formData); assertThat(formDataWithoutValueKeys).isEqualTo(expected); } @@ -35,7 +54,7 @@ public class ValueKeysRemoverTest { void shouldPreserveValueKeyIfHasSiblings() { Map<String, Object> formData = Map.of("ort", Map.of("value", "Kiel", "value2", "Kiel")); - var formDataWithoutValueKeys = ValueKeysRemover.removeValueKeys(formData); + var formDataWithoutValueKeys = FormDataExportAdjuster.removeValueKeys(formData); assertThat(formDataWithoutValueKeys).isEqualTo(formData); } @@ -46,7 +65,7 @@ public class ValueKeysRemoverTest { Map.of("value", Map.of("OrganisationseinheitenAuswahl", Map.of("value", "123456")))); Map<String, Object> expected = Map.of("empfangendestelle", Map.of("OrganisationseinheitenAuswahl", "123456")); - var formDataWithoutValueKeys = ValueKeysRemover.removeValueKeys(formData); + var formDataWithoutValueKeys = FormDataExportAdjuster.removeValueKeys(formData); assertThat(formDataWithoutValueKeys).isEqualTo(expected); } diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataMapperTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataMapperTest.java index 3c0c2519b83fd379091d789a8cc9044c8c407b5d..43cd844e02dc23f896233c235ff48fca4e6b00d0 100644 --- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataMapperTest.java +++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/FormDataMapperTest.java @@ -45,10 +45,10 @@ class FormDataMapperTest { @Test void shouldCallBuildAntragsdaten() { - try (MockedStatic<ValueKeysRemover> valueKeysRemover = mockStatic(ValueKeysRemover.class)) { + try (MockedStatic<FormDataExportAdjuster> valueKeysRemover = mockStatic(FormDataExportAdjuster.class)) { var vorgang = VorgangWithEingangTestFactory.create(); Map<String, Object> formDataWithoutValueKeys = Map.of(UUID.randomUUID().toString(), "value1"); - valueKeysRemover.when(() -> ValueKeysRemover.removeValueKeys(any())).thenReturn(formDataWithoutValueKeys); + valueKeysRemover.when(() -> FormDataExportAdjuster.adjustFormDataForExport(any())).thenReturn(formDataWithoutValueKeys); doReturn(new Object()).when(formDataMapper).formatValue(any(), any()); formDataMapper.toAntragsdaten(vorgang);