diff --git a/run_local.sh b/run_local.sh new file mode 100755 index 0000000000000000000000000000000000000000..03bcb53381dac095444e4e14789a991f15233333 --- /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 9a80a66929a58f54cf5fb1569bff0ffcd5ac2482..cb5c660a4d867330635e50ffc5f1d11a0ae318e4 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 ea5c6fc215dbc98c16c3a3c8074faef47e6a9272..442d54993a8ca9d70ac09ee68409487979729bd8 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 2dd41df494e98ccea31da4419e6517db27de9436..7cd8ecc82af0a39f27382c374d45391b87865543 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 116e8d1f27f1b551b674bdfdabb59b431427d016..2857caf12785ad7800eb3f18af678da675da8904 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>