From cb8c5762c12170c3a059a367dad37f5e930cf877 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Fri, 28 Jun 2024 10:06:02 +0200
Subject: [PATCH] OZG-5156 Accept FIM messages in XTA adapter

---
 .../de/ozgcloud/eingang/xta/XtaService.java   |  7 +++++-
 ...ersammlungsanzeigeMetaDataTestFactory.java | 22 +++++++++++++++++++
 .../ozgcloud/eingang/xta/XtaServiceTest.java  |  7 ++++++
 3 files changed, 35 insertions(+), 1 deletion(-)
 create mode 100644 xta-adapter/src/test/java/de/ozgcloud/eingang/xta/VersammlungsanzeigeMetaDataTestFactory.java

diff --git a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaService.java b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaService.java
index 2341fbf6d..a08710f9a 100644
--- a/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaService.java
+++ b/xta-adapter/src/main/java/de/ozgcloud/eingang/xta/XtaService.java
@@ -6,7 +6,6 @@ import java.util.stream.StreamSupport;
 
 import de.ozgcloud.eingang.common.vorgang.VorgangNummerSupplier;
 import de.ozgcloud.eingang.xdomea.XdomeaMessageDataMapper;
-import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -21,6 +20,8 @@ class XtaService {
 
 	static final String XDOMEA_0201_MESSAGE_TYPE = "Geschaeftsgang.Geschaeftsgang.0201";
 
+	static final String ALL_FIM_MESSAGES_PREFIX = "fim.";
+
 	@Autowired
 	private XtaRemoteService remoteService;
 	@Autowired
@@ -46,6 +47,10 @@ class XtaService {
 			return true;
 		}
 
+		if (StringUtils.startsWith(metaData.getMessageType(), ALL_FIM_MESSAGES_PREFIX)) {
+			return true;
+		}
+
 		LOG.warn("Ignoring XTA-Message of type '{}'.", metaData.getMessageType());
 		return false;
 	}
diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/VersammlungsanzeigeMetaDataTestFactory.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/VersammlungsanzeigeMetaDataTestFactory.java
new file mode 100644
index 000000000..d7eb0f230
--- /dev/null
+++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/VersammlungsanzeigeMetaDataTestFactory.java
@@ -0,0 +1,22 @@
+package de.ozgcloud.eingang.xta;
+
+import java.time.ZonedDateTime;
+
+import static de.ozgcloud.eingang.xta.XtaMessageTestFactory.MESSAGE_ID;
+
+class VersammlungsanzeigeMetaDataTestFactory {
+
+	private static final String VERSAMMLUNGSANZEIGE_MESSAGE_TYPE = "fim.S17000652.17000652001004";
+	static final ZonedDateTime ORIGIN = ZonedDateTime.parse("2024-06-28T09:49:52.4942149+02:00");
+
+	static XtaMessageMetaData create() {
+		return createBuilder().build();
+	}
+
+	static XtaMessageMetaData.XtaMessageMetaDataBuilder createBuilder() {
+		return XtaMessageMetaData.builder()
+				.messageId(MESSAGE_ID)
+				.messageType(VERSAMMLUNGSANZEIGE_MESSAGE_TYPE)
+				.origin(ORIGIN);
+	}
+}
diff --git a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaServiceTest.java b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaServiceTest.java
index 75a00a661..9546bb7ae 100644
--- a/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaServiceTest.java
+++ b/xta-adapter/src/test/java/de/ozgcloud/eingang/xta/XtaServiceTest.java
@@ -106,6 +106,13 @@ class XtaServiceTest {
 			assertThat(service.isSupportedMessageType(metaDataDFoerder)).isTrue();
 		}
 
+		@Test
+		void shouldAcceptFimMessageType() {
+			var metaDataVersammlungsanzeige = VersammlungsanzeigeMetaDataTestFactory.create();
+
+			assertThat(service.isSupportedMessageType(metaDataVersammlungsanzeige)).isTrue();
+		}
+
 		@Test
 		void shouldNotAcceptOtherMessageType() {
 			var metaDataDFoerder = XtaMessageMetaDataTestFactory.createBuilder().messageType(MESSAGE_TYPE_OTHER).build();
-- 
GitLab