From da8a7ba08c964508efa2521ff70a9fb79cf98e23 Mon Sep 17 00:00:00 2001
From: Jan Zickermann <jan.zickermann@dataport.de>
Date: Tue, 22 Oct 2024 13:33:39 +0200
Subject: [PATCH] OZG-6891 KOP-2735 xdomeaMapper: Add support for 0402

---
 .../client/xdomea/mapper/MetadataMapper.java  |  7 ++--
 .../xdomea/mapper/MetadataMapperTest.java     | 32 ++++++++++++++++---
 2 files changed, 33 insertions(+), 6 deletions(-)

diff --git a/src/main/java/de/ozgcloud/xta/client/xdomea/mapper/MetadataMapper.java b/src/main/java/de/ozgcloud/xta/client/xdomea/mapper/MetadataMapper.java
index 94ccf09..cfa714d 100644
--- a/src/main/java/de/ozgcloud/xta/client/xdomea/mapper/MetadataMapper.java
+++ b/src/main/java/de/ozgcloud/xta/client/xdomea/mapper/MetadataMapper.java
@@ -16,8 +16,10 @@ import de.ozgcloud.xta.client.xdomea.reader.XdomeaXmlValues;
 public interface MetadataMapper {
 	String CODE_0201 = "0201";
 	String CODE_0401 = "0401";
+	String CODE_0402 = "0402";
 	String MESSAGE_TYPE_CODE_0201 = "Geschaeftsgang.Geschaeftsgang.0201";
 	String MESSAGE_TYPE_CODE_0401 = "Abgabe.Abgabe.0401";
+	String MESSAGE_TYPE_CODE_0402 = "Abgabe.ImportBestaetigen.0402";
 	String AUTHOR_ID_PREFIX = "gad";
 	String AUTHOR_ID_CATEGORY = "Generischer Antragsdienst";
 
@@ -49,7 +51,7 @@ public interface MetadataMapper {
 	default String getServiceByMessageTypeCode(String messageTypeCode) {
 		return switch (messageTypeCode) {
 			case CODE_0201 -> SERVICE_XDOMEA_240;
-			case CODE_0401 -> SERVICE_XDOMEA_300;
+			case CODE_0401,CODE_0402 -> SERVICE_XDOMEA_300;
 			default -> throw new TechnicalException("Unknown messageTypeCode: " + messageTypeCode);
 		};
 	}
@@ -59,6 +61,7 @@ public interface MetadataMapper {
 		return switch (messageTypeCode) {
 			case CODE_0201 -> MESSAGE_TYPE_CODE_0201;
 			case CODE_0401 -> MESSAGE_TYPE_CODE_0401;
+			case CODE_0402 -> MESSAGE_TYPE_CODE_0402;
 			default -> throw new TechnicalException("Unknown messageTypeCode: " + messageTypeCode);
 		};
 	}
@@ -67,7 +70,7 @@ public interface MetadataMapper {
 	default String getMessageTypePayloadSchemaByMessageTypeCode(String messageTypeCode) {
 		return switch (messageTypeCode) {
 			case CODE_0201 -> MESSAGE_TYPE_PAYLOAD_SCHEMA_XDOMEA_240;
-			case CODE_0401 -> MESSAGE_TYPE_PAYLOAD_SCHEMA_XDOMEA_300;
+			case CODE_0401,CODE_0402 -> MESSAGE_TYPE_PAYLOAD_SCHEMA_XDOMEA_300;
 			default -> throw new TechnicalException("Unknown messageTypeCode: " + messageTypeCode);
 		};
 	}
diff --git a/src/test/java/de/ozgcloud/xta/client/xdomea/mapper/MetadataMapperTest.java b/src/test/java/de/ozgcloud/xta/client/xdomea/mapper/MetadataMapperTest.java
index 46ed9f9..59f5515 100644
--- a/src/test/java/de/ozgcloud/xta/client/xdomea/mapper/MetadataMapperTest.java
+++ b/src/test/java/de/ozgcloud/xta/client/xdomea/mapper/MetadataMapperTest.java
@@ -31,6 +31,14 @@ class MetadataMapperTest {
 			assertThat(metadata.service()).isEqualTo(SERVICE_XDOMEA_300);
 		}
 
+		@DisplayName("should map service 0402")
+		@Test
+		void shouldMapService0402() {
+			var metadata = doMapping(CODE_0402);
+
+			assertThat(metadata.service()).isEqualTo(SERVICE_XDOMEA_300);
+		}
+
 		@DisplayName("should map service 0201")
 		@Test
 		void shouldMapService0201() {
@@ -74,6 +82,14 @@ class MetadataMapperTest {
 			assertThat(metadata.messageTypeCode()).isEqualTo(MESSAGE_TYPE_CODE_0401);
 		}
 
+		@DisplayName("should map message type code 0402")
+		@Test
+		void shouldMapMessageTypeCode0402() {
+			var metadata = doMapping(CODE_0402);
+
+			assertThat(metadata.messageTypeCode()).isEqualTo(MESSAGE_TYPE_CODE_0402);
+		}
+
 		@DisplayName("should map message type code 0201")
 		@Test
 		void shouldMapMessageTypeCode0201() {
@@ -90,6 +106,14 @@ class MetadataMapperTest {
 			assertThat(metadata.messageTypePayloadSchema()).isEqualTo(MESSAGE_TYPE_PAYLOAD_SCHEMA_XDOMEA_300);
 		}
 
+		@DisplayName("should map message type payload schema 0402")
+		@Test
+		void shouldMapMessageTypePayloadSchema0402() {
+			var metadata = doMapping(CODE_0402);
+
+			assertThat(metadata.messageTypePayloadSchema()).isEqualTo(MESSAGE_TYPE_PAYLOAD_SCHEMA_XDOMEA_300);
+		}
+
 		@DisplayName("should map message type payload schema 0201")
 		@Test
 		void shouldMapMessageTypePayloadSchema0201() {
@@ -100,7 +124,7 @@ class MetadataMapperTest {
 
 		@DisplayName("should map author identifier value")
 		@ParameterizedTest
-		@ValueSource(strings = { CODE_0201, CODE_0401 })
+		@ValueSource(strings = { CODE_0201, CODE_0401, CODE_0402 })
 		void shouldMapAuthorIdentifierValue(String code) {
 			var metadata = doMapping(code);
 
@@ -109,7 +133,7 @@ class MetadataMapperTest {
 
 		@DisplayName("should map author identifier category")
 		@ParameterizedTest
-		@ValueSource(strings = { CODE_0201, CODE_0401 })
+		@ValueSource(strings = { CODE_0201, CODE_0401, CODE_0402 })
 		void shouldMapAuthorIdentifierCategory(String code) {
 			var metadata = doMapping(code);
 
@@ -118,7 +142,7 @@ class MetadataMapperTest {
 
 		@DisplayName("should map reader identifier value")
 		@ParameterizedTest
-		@ValueSource(strings = { CODE_0201, CODE_0401 })
+		@ValueSource(strings = { CODE_0201, CODE_0401, CODE_0402 })
 		void shouldMapReaderIdentifierValue(String code) {
 			var metadata = doMapping(code);
 
@@ -127,7 +151,7 @@ class MetadataMapperTest {
 
 		@DisplayName("should map reader identifier category")
 		@ParameterizedTest
-		@ValueSource(strings = { CODE_0201, CODE_0401 })
+		@ValueSource(strings = { CODE_0201, CODE_0401, CODE_0402 })
 		void shouldMapReaderIdentifierCategory(String code) {
 			var metadata = doMapping(code);
 
-- 
GitLab