From 0cbda1aff75e60ba3351d63d9c550db334fb929b Mon Sep 17 00:00:00 2001
From: Jan Zickermann <jan.zickermann@dataport.de>
Date: Tue, 1 Oct 2024 16:09:01 +0200
Subject: [PATCH] OZG-6754 KOP-2674 Verify schemaLocation is ignored

---
 .../xdomea/XdomeaXtaMessageCreatorFactoryTest.java |  4 ++--
 .../xdomea/XdomeaXtaMessageCreatorITCase.java      | 10 +++++++---
 .../valid-ignored-schemaLocation.patch             | 14 ++++++++++++++
 3 files changed, 23 insertions(+), 5 deletions(-)
 create mode 100644 src/test/resources/messages/abgabe0401-kleiner-waffenschein/valid-ignored-schemaLocation.patch

diff --git a/src/test/java/de/ozgcloud/xta/client/xdomea/XdomeaXtaMessageCreatorFactoryTest.java b/src/test/java/de/ozgcloud/xta/client/xdomea/XdomeaXtaMessageCreatorFactoryTest.java
index f8cf3ff..723de05 100644
--- a/src/test/java/de/ozgcloud/xta/client/xdomea/XdomeaXtaMessageCreatorFactoryTest.java
+++ b/src/test/java/de/ozgcloud/xta/client/xdomea/XdomeaXtaMessageCreatorFactoryTest.java
@@ -113,10 +113,10 @@ class XdomeaXtaMessageCreatorFactoryTest {
 					.build());
 		}
 
-		@DisplayName("should set document builder feature")
+		@DisplayName("should disallow doctype declarations")
 		@Test
 		@SneakyThrows
-		void shouldSetDocumentBuilderFeature() {
+		void shouldDisallowDoctypeDeclarations() {
 			setupMocks();
 
 			factory.create();
diff --git a/src/test/java/de/ozgcloud/xta/client/xdomea/XdomeaXtaMessageCreatorITCase.java b/src/test/java/de/ozgcloud/xta/client/xdomea/XdomeaXtaMessageCreatorITCase.java
index b3de3ee..4098c50 100644
--- a/src/test/java/de/ozgcloud/xta/client/xdomea/XdomeaXtaMessageCreatorITCase.java
+++ b/src/test/java/de/ozgcloud/xta/client/xdomea/XdomeaXtaMessageCreatorITCase.java
@@ -118,11 +118,15 @@ class XdomeaXtaMessageCreatorITCase {
 		}
 
 		@DisplayName("should not throw with valid message 0401")
-		@Test
-		void shouldNotThrowWithValidMessage0401() {
+		@ParameterizedTest
+		@ValueSource(strings = {
+				"valid-unknown-namespaces.patch",
+				"valid-ignored-schemaLocation.patch"
+		})
+		void shouldNotThrowWithValidMessage0401(String patchName) {
 			var validMessageZipFile = loadMessageFileWithPatch(
 					"abgabe0401-kleiner-waffenschein",
-					"valid-unknown-namespaces.patch"
+					patchName
 			);
 
 			assertThatCode(() -> creator.createMessage(validMessageZipFile))
diff --git a/src/test/resources/messages/abgabe0401-kleiner-waffenschein/valid-ignored-schemaLocation.patch b/src/test/resources/messages/abgabe0401-kleiner-waffenschein/valid-ignored-schemaLocation.patch
new file mode 100644
index 0000000..d5a55d3
--- /dev/null
+++ b/src/test/resources/messages/abgabe0401-kleiner-waffenschein/valid-ignored-schemaLocation.patch
@@ -0,0 +1,14 @@
+diff --git a/src/test/resources/messages/abgabe0401-kleiner-waffenschein/message/84be3140-e069-4d4a-80c7-889b5eec539e_Abgabe.Abgabe.0401.zip/84be3140-e069-4d4a-80c7-889b5eec539e_Abgabe.Abgabe.0401.xml b/src/test/resources/messages/abgabe0401-kleiner-waffenschein/message/84be3140-e069-4d4a-80c7-889b5eec539e_Abgabe.Abgabe.0401.zip/84be3140-e069-4d4a-80c7-889b5eec539e_Abgabe.Abgabe.0401.xml
+index c225828..9667727 100644
+--- a/src/test/resources/messages/abgabe0401-kleiner-waffenschein/message/84be3140-e069-4d4a-80c7-889b5eec539e_Abgabe.Abgabe.0401.zip/84be3140-e069-4d4a-80c7-889b5eec539e_Abgabe.Abgabe.0401.xml
++++ b/src/test/resources/messages/abgabe0401-kleiner-waffenschein/message/84be3140-e069-4d4a-80c7-889b5eec539e_Abgabe.Abgabe.0401.zip/84be3140-e069-4d4a-80c7-889b5eec539e_Abgabe.Abgabe.0401.xml
+@@ -1,5 +1,8 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+-<xdomea:Abgabe.Abgabe.0401 xmlns:xdomea="urn:xoev-de:xdomea:schema:3.0.0">
++<xdomea:Abgabe.Abgabe.0401 xmlns:xdomea="urn:xoev-de:xdomea:schema:3.0.0"
++                           xmlns:xoev-code="http://xoev.de/schemata/code/1_0"
++                           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
++                           xsi:schemaLocation="http://xoev.de/schemata/code/1_0 http://xoev.de/schemata/code/1_0/xoev-code.xsd">
+     <xdomea:Kopf>
+         <xdomea:ProzessID>84be3140-e069-4d4a-80c7-889b5eec539e</xdomea:ProzessID>
+         <xdomea:Nachrichtentyp listURI="urn:xoev-de:xdomea:codeliste:nachrichtentyp" listVersionID="2.0">
-- 
GitLab