From 146ff9298a0ac50ccca5c13fc4af3c55739bb5bb Mon Sep 17 00:00:00 2001
From: Jan Zickermann <jan.zickermann@dataport.de>
Date: Thu, 26 Sep 2024 14:57:27 +0200
Subject: [PATCH] OZG-6754 KOP-2703 abgabe0401: Test with invalid ProzessID

---
 .../de/ozgcloud/xta/client/extension/Patch.java     |  1 +
 .../xdomea/XdomeaXtaMessageFactoryITCase.java       | 13 +++++++++++++
 .../invalid-ProzessID.patch                         | 13 +++++++++++++
 3 files changed, 27 insertions(+)
 create mode 100644 src/test/resources/messages/abgabe0401-kleiner-waffenschein/invalid-ProzessID.patch

diff --git a/src/test/java/de/ozgcloud/xta/client/extension/Patch.java b/src/test/java/de/ozgcloud/xta/client/extension/Patch.java
index d5763ba..d71dd28 100644
--- a/src/test/java/de/ozgcloud/xta/client/extension/Patch.java
+++ b/src/test/java/de/ozgcloud/xta/client/extension/Patch.java
@@ -27,6 +27,7 @@ public record Patch(
 					patchedContent.append(patchedLine).append("\n");
 				}
 			}
+			lines.forEachRemaining(patchedContent::append);
 		} catch (TechnicalException exception) {
 			throw new TechnicalException("Error applying patch! filePath=" + filePath, exception);
 		}
diff --git a/src/test/java/de/ozgcloud/xta/client/xdomea/XdomeaXtaMessageFactoryITCase.java b/src/test/java/de/ozgcloud/xta/client/xdomea/XdomeaXtaMessageFactoryITCase.java
index 1fbac8b..4005d3b 100644
--- a/src/test/java/de/ozgcloud/xta/client/xdomea/XdomeaXtaMessageFactoryITCase.java
+++ b/src/test/java/de/ozgcloud/xta/client/xdomea/XdomeaXtaMessageFactoryITCase.java
@@ -92,6 +92,19 @@ class XdomeaXtaMessageFactoryITCase {
 
 			assertThat(xtaMessage.metaData().messageTypeCode()).isEqualTo(MESSAGE_TYPE_CODE_0401);
 		}
+
+		@DisplayName("should throw client exception for invalid message 0401")
+		@Test
+		@SneakyThrows
+		void shouldThrowClientExceptionForInvalidMessage0401() {
+			var invalidMessageZipFile = XtaMessageExampleLoader.load(createExampleConfigBuilder()
+					.messageLabel("abgabe0401-kleiner-waffenschein")
+					.patchLabel("invalid-ProzessID.patch")
+					.build()).messageFile();
+
+			assertThatThrownBy(() -> creator.createMessage(invalidMessageZipFile))
+					.isInstanceOf(ClientException.class);
+		}
 	}
 
 	private XtaMessageExampleLoader.MessageExampleConfig.MessageExampleConfigBuilder createExampleConfigBuilder() {
diff --git a/src/test/resources/messages/abgabe0401-kleiner-waffenschein/invalid-ProzessID.patch b/src/test/resources/messages/abgabe0401-kleiner-waffenschein/invalid-ProzessID.patch
new file mode 100644
index 0000000..9b87657
--- /dev/null
+++ b/src/test/resources/messages/abgabe0401-kleiner-waffenschein/invalid-ProzessID.patch
@@ -0,0 +1,13 @@
+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 cac00bf..d36bfc6 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,7 +1,7 @@
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+ <xdomea:Abgabe.Abgabe.0401 xmlns:xdomea="urn:xoev-de:xdomea:schema:3.0.0">
+     <xdomea:Kopf>
+-        <xdomea:ProzessID>84be3140-e069-4d4a-80c7-889b5eec539e</xdomea:ProzessID>
++        <xdomea:ProzessID>66a76331-3872-3519-5ad8-00000000e7d7</xdomea:ProzessID>
+         <xdomea:Nachrichtentyp listURI="urn:xoev-de:xdomea:codeliste:nachrichtentyp" listVersionID="2.0">
+             <code>0401</code>
+         </xdomea:Nachrichtentyp>
-- 
GitLab