From 3670e0ce391ff4091ee689d1727e616e22f82db5 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Mon, 13 Sep 2021 11:30:19 +0200 Subject: [PATCH] OZG-1384 formdata mapping fix subform mapping --- run_local.sh | 4 ++++ .../itvsh/ozg/adapter/GrpcFormDataMapper.java | 4 +++- .../ozg/adapter/GrpcEingangMapperITCase.java | 3 ++- .../ozg/adapter/GrpcFormDataMapperTest.java | 16 +++++++++++++ .../SimpleFormDataMapperTestFile.xml | 24 ++++++++++--------- 5 files changed, 38 insertions(+), 13 deletions(-) create mode 100755 run_local.sh diff --git a/run_local.sh b/run_local.sh new file mode 100755 index 000000000..03bcb5338 --- /dev/null +++ b/run_local.sh @@ -0,0 +1,4 @@ +#!/bin/bash + + +./mvnw spring-boot:run -Dspring-boot.run.profiles=local diff --git a/src/main/java/de/itvsh/ozg/adapter/GrpcFormDataMapper.java b/src/main/java/de/itvsh/ozg/adapter/GrpcFormDataMapper.java index 9a80a6692..cb5c660a4 100644 --- a/src/main/java/de/itvsh/ozg/adapter/GrpcFormDataMapper.java +++ b/src/main/java/de/itvsh/ozg/adapter/GrpcFormDataMapper.java @@ -81,7 +81,9 @@ interface GrpcFormDataMapper { default GrpcSubForm buildSubForm(String name, Map<String, Object> map) { return GrpcSubForm.newBuilder().setTitle(name) .addAllField(mapToAllFields(map)) - .addAllSubForm(mapToSubForms(map)).build(); + .addAllSubForm(mapToSubForms(map)) + .addAllField(mapStringListsToFields(map)) + .addAllSubForm(mapObjectListsToFields(map)).build(); } default GrpcFormField mapToField(String name, String value) { diff --git a/src/test/java/de/itvsh/ozg/adapter/GrpcEingangMapperITCase.java b/src/test/java/de/itvsh/ozg/adapter/GrpcEingangMapperITCase.java index ea5c6fc21..442d54993 100644 --- a/src/test/java/de/itvsh/ozg/adapter/GrpcEingangMapperITCase.java +++ b/src/test/java/de/itvsh/ozg/adapter/GrpcEingangMapperITCase.java @@ -169,9 +169,10 @@ class GrpcEingangMapperITCase { GrpcEingang eingang = MAPPER_INSTANCE .toEingang(FormDataTestFactory.createBuilder() - .formData(Map.of("key", List.of(Map.of("subkey", "value1"), Map.of("subkey", "value2")))).build()); + .formData(Map.of("key-1", List.of(Map.of("sub_key", "value1"), Map.of("sub_key", "value2")))).build()); assertThat(eingang.getFormData().getFormCount()).isEqualTo(2); + assertThat(eingang.getFormData().getForm(0).getFieldCount()).isEqualTo(1); } } } diff --git a/src/test/java/de/itvsh/ozg/adapter/GrpcFormDataMapperTest.java b/src/test/java/de/itvsh/ozg/adapter/GrpcFormDataMapperTest.java index 2dd41df49..7cd8ecc82 100644 --- a/src/test/java/de/itvsh/ozg/adapter/GrpcFormDataMapperTest.java +++ b/src/test/java/de/itvsh/ozg/adapter/GrpcFormDataMapperTest.java @@ -174,6 +174,22 @@ class GrpcFormDataMapperTest { assertThat(fields.get(0).getField(0).getName()).isEqualTo("a1"); assertThat(fields.get(0).getField(0).getValue()).isEqualTo("a2"); } + + @Test + void doubleNestedListObjectValuesShouldBeMapped() { + GrpcFormData formData = MAPPER_INSTANCE + .mapFormData(Map.of("key1", Map.of("key2", List.of("value1", "value2")))); + + assertThat(formData.getForm(0).getFieldCount()).isEqualTo(2); + } + + @Test + void multipleNestedListObjectValuesShouldBeMapped() { + GrpcFormData formData = MAPPER_INSTANCE + .mapFormData(Map.of("key1", Map.of("key2", Map.of("key3", List.of("value1", "value2"))))); + + assertThat(formData.getForm(0).getSubForm(0).getFieldCount()).isEqualTo(2); + } } @Nested diff --git a/src/test/resources/intelliform/SimpleFormDataMapperTestFile.xml b/src/test/resources/intelliform/SimpleFormDataMapperTestFile.xml index 116e8d1f2..2857caf12 100644 --- a/src/test/resources/intelliform/SimpleFormDataMapperTestFile.xml +++ b/src/test/resources/intelliform/SimpleFormDataMapperTestFile.xml @@ -27,16 +27,18 @@ </nestednode> </nestedlistnodewithmap> - <fs> - <fs-item> - <bez_flurstueck>12</bez_flurstueck> - </fs-item> - <fs-item> - <bez_flurstueck>14</bez_flurstueck> - </fs-item> - <fs-item> - <bez_flurstueck>4711</bez_flurstueck> - </fs-item> - </fs> + <upload_anlagen> + <fs> + <fs-item> + <bez_flurstueck>12</bez_flurstueck> + </fs-item> + <fs-item> + <bez_flurstueck>14</bez_flurstueck> + </fs-item> + <fs-item> + <bez_flurstueck>4711</bez_flurstueck> + </fs-item> + </fs> + </upload_anlagen> </myForm> -- GitLab