diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungTypeCreator.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungTypeCreator.java index 0e98a75fee4b6339c8a5db5d74aaddfc043a7017..f300fcfa08105ab88e30e3c0f1d31dab44e219cc 100644 --- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungTypeCreator.java +++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungTypeCreator.java @@ -6,7 +6,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import de.xoev.xdomea.AnwendungsspezifischeErweiterungType; -import de.xoev.xdomea.OzgcloudErweiterungType; @Component class AnwendungsspezifischeErweiterungTypeCreator { @@ -16,15 +15,12 @@ class AnwendungsspezifischeErweiterungTypeCreator { @Autowired private FeldGruppeTypeCreator feldGruppeTypeCreator; - @Autowired - private FormDataMapper formDataMapper; public AnwendungsspezifischeErweiterungType create(VorgangWithEingang vorgang) { - var ozgcloudErweiterungType = new OzgcloudErweiterungType(); + var ozgcloudErweiterungType = new AnwendungsspezifischeErweiterungType(); ozgcloudErweiterungType.setKennung(KENNUNG); ozgcloudErweiterungType.setName(NAME); ozgcloudErweiterungType.getFeldgruppe().addAll(Collections.singleton(feldGruppeTypeCreator.create(vorgang))); - ozgcloudErweiterungType.setAntragsdaten(formDataMapper.toAntragsdatenType(vorgang)); return ozgcloudErweiterungType; } diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungXMLTypeCreator.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungXMLTypeCreator.java new file mode 100644 index 0000000000000000000000000000000000000000..ed8527d1309fa29b33767e88ba6cb819d49d2c14 --- /dev/null +++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungXMLTypeCreator.java @@ -0,0 +1,19 @@ +package de.ozgcloud.alfa.vorgang; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import de.xoev.xdomea.AnwendungsspezifischeErweiterungXMLType; + +@Component +public class AnwendungsspezifischeErweiterungXMLTypeCreator { + + @Autowired + private FormDataMapper formDataMapper; + + public AnwendungsspezifischeErweiterungXMLType create(VorgangWithEingang vorgang) { + var erweiterungXmlType = new AnwendungsspezifischeErweiterungXMLType(); + erweiterungXmlType.getAny().add(formDataMapper.toAntragsdaten(vorgang)); + return erweiterungXmlType; + } +} 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 89cf757115450c9f89f4b4352d611627f0aeb8a8..f1d47e4de25f507e3897f69927c117a8edd90fd3 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 @@ -9,19 +9,17 @@ import java.util.List; import java.util.Map; import java.util.Optional; -import jakarta.validation.constraints.NotNull; - import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import de.ozgcloud.alfa.common.DateConverter; +import de.xoev.xdomea.Antragsdaten; import de.xoev.xdomea.AntragsdatenGroupType; import de.xoev.xdomea.AntragsdatenItemType; import de.xoev.xdomea.AntragsdatenMultiValueFieldType; import de.xoev.xdomea.AntragsdatenSingleValueFieldType; -import de.xoev.xdomea.AntragsdatenType; import de.xoev.xdomea.DatatypeType; -import de.xoev.xdomea.ItemListType; +import jakarta.validation.constraints.NotNull; @Component class FormDataMapper { @@ -31,15 +29,17 @@ class FormDataMapper { @Autowired private DateConverter dateConverter; - public AntragsdatenType toAntragsdatenType(@NotNull VorgangWithEingang vorgang) { - return Optional.ofNullable(vorgang.getEingang()).map(Eingang::getFormData).map(this::buileItemListType).map(AntragsdatenType.class::cast) - .orElseGet(AntragsdatenType::new); + public Antragsdaten toAntragsdaten(@NotNull VorgangWithEingang vorgang) { + return Optional.ofNullable(vorgang.getEingang()) + .map(Eingang::getFormData) + .map(this::buildAntragsdaten) + .orElseGet(Antragsdaten::new); } - ItemListType buileItemListType(Map<?, ?> formData) { - var itemList = new AntragsdatenType(); - itemList.getItem().addAll(buildItems(formData)); - return itemList; + Antragsdaten buildAntragsdaten(Map<?, ?> formData) { + var antragsdaten = new Antragsdaten(); + antragsdaten.getItem().addAll(buildItems(formData)); + return antragsdaten; } List<AntragsdatenItemType> buildItems(Map<?, ?> formData) { @@ -62,7 +62,7 @@ class FormDataMapper { AntragsdatenItemType buildAntragsdatenGroup(String name, Map<?, ?> values) { var antragsGroup = new AntragsdatenGroupType(); antragsGroup.setName(name); - antragsGroup.setValue(buileItemListType(values)); + antragsGroup.getItem().addAll(buildItems(values)); return antragsGroup; } diff --git a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/VorgangTypeCreator.java b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/VorgangTypeCreator.java index 407cf0e979cee700cace3e23fde329ebdbf4136c..8a07a45db170d28ac7ccdc593daf143c845b284a 100644 --- a/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/VorgangTypeCreator.java +++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/VorgangTypeCreator.java @@ -20,12 +20,16 @@ class VorgangTypeCreator { @Autowired private AnwendungsspezifischeErweiterungTypeCreator anwendungsspezifischeErweiterungTypeCreator; + @Autowired + private AnwendungsspezifischeErweiterungXMLTypeCreator anwendungsspezifischeErweiterungXMLTypeCreator; + @Autowired private KontaktTypeCreator kontaktTypeCreator; public VorgangType create(VorgangWithEingang vorgangWithEingang) { var vorgang = new VorgangType(); vorgang.setAnwendungsspezifischeErweiterung(anwendungsspezifischeErweiterungTypeCreator.create(vorgangWithEingang)); + vorgang.setAnwendungsspezifischeErweiterungXML(anwendungsspezifischeErweiterungXMLTypeCreator.create(vorgangWithEingang)); vorgang.setIdentifikation(createIdentifikation()); vorgang.setAllgemeineMetadaten(createAllgemeineMetadaten(vorgangWithEingang)); kontaktTypeCreator.create(vorgangWithEingang).ifPresent(vorgang.getKontakt()::add); diff --git a/alfa-xdomea/src/main/resources/ozgcloud_XML-Schemata/ozgcloud.xsd b/alfa-xdomea/src/main/resources/ozgcloud_XML-Schemata/ozgcloud.xsd index fd20e4462893778c836d38217d2b9d78e1724aa5..16daa7f5862da6b2b0e36a69b2f6d30969f555b9 100644 --- a/alfa-xdomea/src/main/resources/ozgcloud_XML-Schemata/ozgcloud.xsd +++ b/alfa-xdomea/src/main/resources/ozgcloud_XML-Schemata/ozgcloud.xsd @@ -7,21 +7,13 @@ <xs:import namespace="urn:xoev-de:xdomea:schema:3.0.0" schemaLocation="../xdomea_3-0-0_XML-Schemata/xdomea.xsd"/> - <xs:complexType name="OzgcloudErweiterungType"> - <xs:complexContent> - <xs:extension base="xdomea:AnwendungsspezifischeErweiterungType"> - <xs:sequence> - <xs:element name="Antragsdaten" type="ozgcloud:AntragsdatenType"/> - </xs:sequence> - </xs:extension> - </xs:complexContent> - </xs:complexType> - - <xs:complexType name="AntragsdatenType"> - <xs:complexContent> - <xs:extension base="ozgcloud:ItemListType"/> - </xs:complexContent> - </xs:complexType> + <xs:element name="Antragsdaten"> + <xs:complexType> + <xs:sequence> + <xs:element name="Item" type="ozgcloud:AntragsdatenItemType" minOccurs="0" maxOccurs="unbounded"/> + </xs:sequence> + </xs:complexType> + </xs:element> <xs:complexType name="AntragsdatenItemType" abstract="true"> <xs:attribute name="name" type="xs:string" use="required"/> @@ -59,18 +51,12 @@ <xs:complexContent> <xs:extension base="ozgcloud:AntragsdatenItemType"> <xs:sequence> - <xs:element name="Value" type="ozgcloud:ItemListType"/> + <xs:element name="Item" type="ozgcloud:AntragsdatenItemType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> - <xs:complexType name="ItemListType" abstract="true"> - <xs:sequence> - <xs:element name="Item" type="ozgcloud:AntragsdatenItemType" minOccurs="0" maxOccurs="unbounded"/> - </xs:sequence> - </xs:complexType> - <xs:simpleType name="DatatypeType"> <xs:restriction base="xs:string"> <xs:enumeration value="string"/> diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AntragsdatenItemTypeTestFactory.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AntragsdatenItemTypeTestFactory.java index f9d51af847460fcdc73e55073b5caa137021a560..78beaf2e220c513cd516506ea459a848fa4964f3 100644 --- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AntragsdatenItemTypeTestFactory.java +++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AntragsdatenItemTypeTestFactory.java @@ -1,9 +1,11 @@ package de.ozgcloud.alfa.vorgang; +import java.util.List; + import de.xoev.xdomea.AntragsdatenGroupType; +import de.xoev.xdomea.AntragsdatenItemType; import de.xoev.xdomea.AntragsdatenMultiValueFieldType; import de.xoev.xdomea.AntragsdatenSingleValueFieldType; -import de.xoev.xdomea.AntragsdatenType; import de.xoev.xdomea.DatatypeType; public class AntragsdatenItemTypeTestFactory { @@ -31,14 +33,15 @@ public class AntragsdatenItemTypeTestFactory { } public static AntragsdatenGroupType createGroup() { - var antragsdatenItemType = new AntragsdatenGroupType(); - antragsdatenItemType.setName(KEY_MAP); + var antragsdatenGroupType = new AntragsdatenGroupType(); + antragsdatenGroupType.setName(KEY_MAP); - var group = new AntragsdatenType(); - group.getItem().add(createMultiValueField()); - antragsdatenItemType.setValue(group); + antragsdatenGroupType.getItem().addAll(createAntragsdatenItemTypes()); - return antragsdatenItemType; + return antragsdatenGroupType; } + public static List<AntragsdatenItemType> createAntragsdatenItemTypes() { + return List.of(createMultiValueField(), createSingleValueField()); + } } diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungTypeCreatorTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungTypeCreatorTest.java index 9580936d7e586792190f6a8ca4407b85696b1603..ce274988405747bdcb4c47960c7b96699db5896d 100644 --- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungTypeCreatorTest.java +++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungTypeCreatorTest.java @@ -1,9 +1,7 @@ package de.ozgcloud.alfa.vorgang; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; +import static org.assertj.core.api.Assertions.*; +import static org.mockito.Mockito.*; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; @@ -12,10 +10,8 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Spy; -import de.xoev.xdomea.AntragsdatenType; import de.xoev.xdomea.AnwendungsspezifischeErweiterungType; import de.xoev.xdomea.FeldgruppeType; -import de.xoev.xdomea.OzgcloudErweiterungType; class AnwendungsspezifischeErweiterungTypeCreatorTest { @@ -25,20 +21,16 @@ class AnwendungsspezifischeErweiterungTypeCreatorTest { @Mock private FeldGruppeTypeCreator feldGruppeTypeCreator; - @Mock - private FormDataMapper formDataMapper; @Nested class TestCreate { private final VorgangWithEingang vorgang = VorgangWithEingangTestFactory.create(); private final FeldgruppeType feldgruppeType = new FeldgruppeType(); - private final AntragsdatenType antragsdatenType = new AntragsdatenType(); @BeforeEach void init() { when(feldGruppeTypeCreator.create(vorgang)).thenReturn(feldgruppeType); - when(formDataMapper.toAntragsdatenType(any())).thenReturn(antragsdatenType); } @Test @@ -69,20 +61,6 @@ class AnwendungsspezifischeErweiterungTypeCreatorTest { assertThat(anwendungsspezifischeErweiterung.getFeldgruppe()).hasSize(1).first().isEqualTo(feldgruppeType); } - @Test - void shouldCallFormDataMapper() { - create(); - - verify(formDataMapper).toAntragsdatenType(vorgang); - } - - @Test - void shouldHaveAntragsdaten() { - var anwendungsspezifischeErweiterung = (OzgcloudErweiterungType) create(); - - assertThat(anwendungsspezifischeErweiterung.getAntragsdaten()).isNotNull(); - } - private AnwendungsspezifischeErweiterungType create() { return creator.create(vorgang); } diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungXMLTypeCreatorTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungXMLTypeCreatorTest.java new file mode 100644 index 0000000000000000000000000000000000000000..554dd1f7d98990b064a334d55217db0b40837f73 --- /dev/null +++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungXMLTypeCreatorTest.java @@ -0,0 +1,53 @@ +package de.ozgcloud.alfa.vorgang; + +import static org.assertj.core.api.Assertions.*; +import static org.mockito.Mockito.*; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.Spy; + +import de.xoev.xdomea.Antragsdaten; +import de.xoev.xdomea.AnwendungsspezifischeErweiterungXMLType; + +public class AnwendungsspezifischeErweiterungXMLTypeCreatorTest { + + @Spy + @InjectMocks + private AnwendungsspezifischeErweiterungXMLTypeCreator creator; + @Mock + private FormDataMapper formDataMapper; + + @Nested + class TestCreate { + + private final VorgangWithEingang vorgang = VorgangWithEingangTestFactory.create(); + private final Antragsdaten Antragsdaten = new Antragsdaten(); + + @BeforeEach + void init() { + when(formDataMapper.toAntragsdaten(any())).thenReturn(Antragsdaten); + } + + @Test + void shouldCallFormDataMapper() { + create(); + + verify(formDataMapper).toAntragsdaten(vorgang); + } + + @Test + void shouldHaveAntragsdaten() { + var anwendungsspezifischeErweiterung = create(); + + assertThat(anwendungsspezifischeErweiterung.getAny()).hasSize(1).first().isEqualTo(Antragsdaten); + } + + private AnwendungsspezifischeErweiterungXMLType create() { + return creator.create(vorgang); + } + } +} diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/ExportVorgangServiceITCase.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/ExportVorgangServiceITCase.java index 636005eab233c90dc93f1f0ce352f3b59425adf9..94cb0a3ac45e052dd9fb1551e55cefbe0826d062 100644 --- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/ExportVorgangServiceITCase.java +++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/ExportVorgangServiceITCase.java @@ -11,11 +11,10 @@ import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import de.ozgcloud.common.test.ITCase; +import de.xoev.xdomea.Antragsdaten; import de.xoev.xdomea.AntragsdatenGroupType; import de.xoev.xdomea.AntragsdatenItemType; import de.xoev.xdomea.AntragsdatenSingleValueFieldType; -import de.xoev.xdomea.AntragsdatenType; -import de.xoev.xdomea.OzgcloudErweiterungType; @ITCase class ExportVorgangServiceITCase { @@ -71,17 +70,17 @@ class ExportVorgangServiceITCase { private void assertContainsItemsInGroup(List<AntragsdatenItemType> items) { var groupItem = items.stream().filter(item -> item instanceof AntragsdatenGroupType) .map(item -> ((AntragsdatenGroupType) item)) - .map(group -> group.getValue().getItem()) + .map(AntragsdatenGroupType::getItem) .flatMap(List::stream).findFirst(); assertThat(groupItem).isPresent().get().usingRecursiveComparison().isEqualTo(createMultiValueField()); } - private AntragsdatenType mapToAntragsdaten() { - var erweiterungType = exportVorgangService.createVorgangType(buildVorgang()).getAnwendungsspezifischeErweiterung(); + private Antragsdaten mapToAntragsdaten() { + var erweiterungType = exportVorgangService.createVorgangType(buildVorgang()).getAnwendungsspezifischeErweiterungXML(); - assertThat(erweiterungType).isOfAnyClassIn(OzgcloudErweiterungType.class); - return ((OzgcloudErweiterungType) erweiterungType).getAntragsdaten(); + assertThat(erweiterungType.getAny()).hasSize(1).first().isInstanceOf(Antragsdaten.class); + return (Antragsdaten) erweiterungType.getAny().get(0); } private VorgangWithEingang buildVorgang() { 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 6ffbdbf6b0e5699274a8603c442d891a112d39db..fd5111ad3b4d71b1b3dcdc92de8c5e5bae08ddd0 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 @@ -9,6 +9,7 @@ import java.util.Collections; import java.util.List; import java.util.Map; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; @@ -22,7 +23,6 @@ import de.xoev.xdomea.AntragsdatenItemType; import de.xoev.xdomea.AntragsdatenMultiValueFieldType; import de.xoev.xdomea.AntragsdatenSingleValueFieldType; import de.xoev.xdomea.DatatypeType; -import de.xoev.xdomea.ItemListType; class FormDataMapperTest { @@ -36,7 +36,7 @@ class FormDataMapperTest { private DateConverter dateConverter; @Nested - class TestToAntragsdatenType { + class TestToAntragsdaten { @Mock private VorgangWithEingang vorgang; @@ -46,16 +46,16 @@ class FormDataMapperTest { doReturn(new Object()).when(formDataMapper).formatValue(any(), any()); var vorgang = VorgangWithEingangTestFactory.create(); - formDataMapper.toAntragsdatenType(vorgang); + formDataMapper.toAntragsdaten(vorgang); - verify(formDataMapper).buileItemListType(vorgang.getEingang().getFormData()); + verify(formDataMapper).buildAntragsdaten(vorgang.getEingang().getFormData()); } @Test void shouldMapEingangNull() { - var antragsdatenType = formDataMapper.toAntragsdatenType(vorgang); + var Antragsdaten = formDataMapper.toAntragsdaten(vorgang); - assertThat(antragsdatenType.getItem()).isEmpty(); + assertThat(Antragsdaten.getItem()).isEmpty(); } @Test @@ -63,28 +63,36 @@ class FormDataMapperTest { var eingang = mock(Eingang.class); when(vorgang.getEingang()).thenReturn(eingang); - var antragsdatenType = formDataMapper.toAntragsdatenType(vorgang); + var Antragsdaten = formDataMapper.toAntragsdaten(vorgang); - assertThat(antragsdatenType.getItem()).isEmpty(); + assertThat(Antragsdaten.getItem()).isEmpty(); } } @Nested - class TestBuildItemListType { + class TestBuildAntragsdaten { - @Mock - private AntragsdatenItemType antragsdatenItemType1; - @Mock - private AntragsdatenItemType antragsdatenItemType2; + private final Map<?,?> formData = EingangTestFactory.create().getFormData(); + private final List<AntragsdatenItemType> items = AntragsdatenItemTypeTestFactory.createAntragsdatenItemTypes(); + + @BeforeEach + void init() { + doReturn(items).when(formDataMapper).buildItems(any()); + } @Test - void shouldAddItems() { - doReturn(List.of(antragsdatenItemType1, antragsdatenItemType2)).when(formDataMapper).buildItems(any()); + void shouldCallBuildItems() { + formDataMapper.buildAntragsdaten(formData); + + verify(formDataMapper).buildItems(formData); + } - var itemListType = formDataMapper.buileItemListType(EingangTestFactory.AS_MAP); + @Test + void shouldFillItems() { + var antragsdaten = formDataMapper.buildAntragsdaten(formData); - assertThat(itemListType.getItem()).containsExactly(antragsdatenItemType1, antragsdatenItemType2); + assertThat(antragsdaten.getItem()).containsExactlyElementsOf(items); } } @@ -133,9 +141,7 @@ class FormDataMapperTest { private static final String NAME = "name"; private static final Map<String, Object> FORMDATA_SUBMAP = Map.of("key", "value"); - - @Mock - private ItemListType itemListType; + private final List<AntragsdatenItemType> items = AntragsdatenItemTypeTestFactory.createAntragsdatenItemTypes(); @Test void shouldSetName() { @@ -147,21 +153,21 @@ class FormDataMapperTest { } @Test - void shouldSetValue() { - doReturn(itemListType).when(formDataMapper).buileItemListType(any()); + void shouldSetItems() { + doReturn(items).when(formDataMapper).buildItems(any()); var antragsdatenGroup = (AntragsdatenGroupType) formDataMapper.buildAntragsdatenGroup(NAME, FORMDATA_SUBMAP); - assertThat(antragsdatenGroup.getValue()).isEqualTo(itemListType); + assertThat(antragsdatenGroup.getItem()).containsExactlyElementsOf(items); } @Test - void shouldCallBuildItemListType() { + void shouldCallBuildItems() { doReturn(new Object()).when(formDataMapper).formatValue(any(), any()); formDataMapper.buildAntragsdatenGroup(NAME, FORMDATA_SUBMAP); - verify(formDataMapper).buileItemListType(FORMDATA_SUBMAP); + verify(formDataMapper).buildItems(FORMDATA_SUBMAP); } } diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/VorgangTypeCreatorTest.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/VorgangTypeCreatorTest.java index 718b296b0c7cfc33ea5221a628d042df0c7e55d2..88dc05b51d179cc817b47252c57c3cb20ab81497 100644 --- a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/VorgangTypeCreatorTest.java +++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/VorgangTypeCreatorTest.java @@ -17,6 +17,7 @@ import de.ozgcloud.alfa.export.AllgemeineMetadatenTypeTestFactory; import de.ozgcloud.alfa.export.IdentifikationObjektTypeTestFactory; import de.xoev.xdomea.AllgemeineMetadatenType; import de.xoev.xdomea.AnwendungsspezifischeErweiterungType; +import de.xoev.xdomea.AnwendungsspezifischeErweiterungXMLType; import de.xoev.xdomea.IdentifikationObjektType; import de.xoev.xdomea.KontaktType; import de.xoev.xdomea.VorgangType; @@ -30,6 +31,9 @@ class VorgangTypeCreatorTest { @Mock private AnwendungsspezifischeErweiterungTypeCreator anwendungsspezifischeErweiterungTypeCreator; + @Mock + private AnwendungsspezifischeErweiterungXMLTypeCreator anwendungsspezifischeErweiterungXMLTypeCreator; + @Mock private KontaktTypeCreator kontaktTypeCreator; @@ -41,6 +45,7 @@ class VorgangTypeCreatorTest { private final IdentifikationObjektType identifikationObjekt = IdentifikationObjektTypeTestFactory.create(); private final AllgemeineMetadatenType allgemeineMetadaten = AllgemeineMetadatenTypeTestFactory.create(); private final AnwendungsspezifischeErweiterungType anwendungsspezifischeErweiterung = AnwendungsspezifischeErweiterungTypeTestFactory.create(); + private final AnwendungsspezifischeErweiterungXMLType anwendungsspezifischeErweiterungXML = new AnwendungsspezifischeErweiterungXMLType(); private final KontaktType kontakt = KontaktTypeTestFactory.create(); @BeforeEach @@ -49,6 +54,7 @@ class VorgangTypeCreatorTest { doReturn(allgemeineMetadaten).when(creator).createAllgemeineMetadaten(vorgang); when(anwendungsspezifischeErweiterungTypeCreator.create(vorgang)).thenReturn(anwendungsspezifischeErweiterung); + when(anwendungsspezifischeErweiterungXMLTypeCreator.create(vorgang)).thenReturn(anwendungsspezifischeErweiterungXML); when(kontaktTypeCreator.create(vorgang)).thenReturn(Optional.of(kontakt)); } @@ -66,6 +72,20 @@ class VorgangTypeCreatorTest { assertThat(vorgangType.getAnwendungsspezifischeErweiterung()).isEqualTo(anwendungsspezifischeErweiterung); } + @Test + void shouldCallAnwendungsspezifischeErweiterungXMLTypeCreator() { + callCreator(); + + verify(anwendungsspezifischeErweiterungXMLTypeCreator).create(vorgang); + } + + @Test + void shouldHaveAnwendungsspezifischeErweiterungXMLType() { + var vorgangType = callCreator(); + + assertThat(vorgangType.getAnwendungsspezifischeErweiterungXML()).isEqualTo(anwendungsspezifischeErweiterungXML); + } + @Test void shouldCallCreateIdentifikation() { callCreator();