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..3c5ffdd39d117ac217d59a5ac0aea0816f0ae9d7 --- /dev/null +++ b/alfa-xdomea/src/main/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungXMLTypeCreator.java @@ -0,0 +1,21 @@ +package de.ozgcloud.alfa.vorgang; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import de.xoev.xdomea.AnwendungsspezifischeErweiterungXMLType; +import de.xoev.xdomea.ObjectFactory; + +@Component +public class AnwendungsspezifischeErweiterungXMLTypeCreator { + + @Autowired + private FormDataMapper formDataMapper; + private final ObjectFactory objectFactory = new ObjectFactory(); + + public AnwendungsspezifischeErweiterungXMLType create(VorgangWithEingang vorgang) { + var erweiterungXmlType = new AnwendungsspezifischeErweiterungXMLType(); + erweiterungXmlType.getAny().add(objectFactory.createAntragsdagen(formDataMapper.toAntragsdatenType(vorgang))); + return erweiterungXmlType; + } +} 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..f3bf530f91b7ac05779d7f4f87a549532531d7ca 100644 --- a/alfa-xdomea/src/main/resources/ozgcloud_XML-Schemata/ozgcloud.xsd +++ b/alfa-xdomea/src/main/resources/ozgcloud_XML-Schemata/ozgcloud.xsd @@ -7,15 +7,7 @@ <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:element name="Antragsdagen" type="ozgcloud:AntragsdatenType"/> <xs:complexType name="AntragsdatenType"> <xs:complexContent> 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..b8880a0a26aac84f135e01455f4161850c500a51 --- /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.AntragsdatenType; +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 AntragsdatenType antragsdatenType = new AntragsdatenType(); + + @BeforeEach + void init() { + when(formDataMapper.toAntragsdatenType(any())).thenReturn(antragsdatenType); + } + + @Test + void shouldCallFormDataMapper() { + create(); + + verify(formDataMapper).toAntragsdatenType(vorgang); + } + + @Test + void shouldHaveAntragsdaten() { + var anwendungsspezifischeErweiterung = create(); + + assertThat(anwendungsspezifischeErweiterung.getAny()).hasSize(1).first().isEqualTo(antragsdatenType); + } + + private AnwendungsspezifischeErweiterungXMLType create() { + return creator.create(vorgang); + } + } +} diff --git a/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungXMLTypeTestFactory.java b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungXMLTypeTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..ad287e215d90086a50449137079bea3021224348 --- /dev/null +++ b/alfa-xdomea/src/test/java/de/ozgcloud/alfa/vorgang/AnwendungsspezifischeErweiterungXMLTypeTestFactory.java @@ -0,0 +1,10 @@ +package de.ozgcloud.alfa.vorgang; + +import de.xoev.xdomea.AnwendungsspezifischeErweiterungXMLType; + +public class AnwendungsspezifischeErweiterungXMLTypeTestFactory { + + public static AnwendungsspezifischeErweiterungXMLType create() { + return new AnwendungsspezifischeErweiterungXMLType(); + } +} 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..1217edd1f7d1ed5e0cb87a11484ce58819be8308 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 @@ -15,7 +15,6 @@ 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 { @@ -78,10 +77,10 @@ class ExportVorgangServiceITCase { } private AntragsdatenType mapToAntragsdaten() { - var erweiterungType = exportVorgangService.createVorgangType(buildVorgang()).getAnwendungsspezifischeErweiterung(); + var erweiterungType = exportVorgangService.createVorgangType(buildVorgang()).getAnwendungsspezifischeErweiterungXML(); - assertThat(erweiterungType).isOfAnyClassIn(OzgcloudErweiterungType.class); - return ((OzgcloudErweiterungType) erweiterungType).getAntragsdaten(); + assertThat(erweiterungType.getAny()).hasSize(1).first().isInstanceOf(AntragsdatenType.class); + return (AntragsdatenType) erweiterungType.getAny().get(0); } private VorgangWithEingang buildVorgang() { 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..debdf30273c8a190a79c609e2bf93c2d71907421 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 = AnwendungsspezifischeErweiterungXMLTypeTestFactory.create(); 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();