From 26474d5650a12971e52ecde3af21a77d6261f59f Mon Sep 17 00:00:00 2001
From: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de>
Date: Wed, 5 Mar 2025 12:25:13 +0100
Subject: [PATCH] KOP-2694 KOP-3010 adjust XtaITCase

---
 .../de/ozgcloud/eingang/xta/XtaITCase.java    | 13 ++++--
 ...ava => XtaMessageMetaDataTestFactory.java} |  0
 .../eingang/xta/XtaResponseTestFactory.java   | 41 ++++++-------------
 .../ozgcloud/eingang/xta/XtaServiceTest.java  |  3 +-
 ...ava => XtaTransportReportTestFactory.java} |  2 +-
 5 files changed, 25 insertions(+), 34 deletions(-)
 rename src/test/java/de/ozgcloud/eingang/xta/{XtaMessageMetaDataFactory.java => XtaMessageMetaDataTestFactory.java} (100%)
 rename src/test/java/de/ozgcloud/eingang/xta/{XtaTransportReportFactory.java => XtaTransportReportTestFactory.java} (91%)

diff --git a/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java b/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java
index fd0e48cd..be203512 100644
--- a/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java
+++ b/src/test/java/de/ozgcloud/eingang/xta/XtaITCase.java
@@ -31,6 +31,8 @@ import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
+import java.util.List;
+import java.util.function.Consumer;
 
 import lombok.SneakyThrows;
 import org.junit.jupiter.api.BeforeEach;
@@ -56,6 +58,7 @@ import de.ozgcloud.vorgang.grpc.binaryFile.BinaryFileServiceGrpc.BinaryFileServi
 import de.ozgcloud.vorgang.vorgang.GrpcEingang;
 import de.ozgcloud.vorgang.vorgang.VorgangServiceGrpc.VorgangServiceBlockingStub;
 import de.ozgcloud.xta.client.XtaClient;
+import de.ozgcloud.xta.client.model.XtaMessage;
 
 import io.grpc.Channel;
 import org.springframework.test.context.bean.override.mockito.MockitoBean;
@@ -81,7 +84,6 @@ class XtaITCase {
 	private ManagableStub<BinaryFileServiceStub> binaryFileManageableServiceStub;
 	@Mock
 	private BinaryFileServiceStub binaryFileServiceStub;
-
 	@Mock
 	private Channel channel;
 
@@ -90,7 +92,6 @@ class XtaITCase {
 
 	@Captor
 	private ArgumentCaptor<FormData> formDataArgumentCaptor;
-
 	@Captor
 	private ArgumentCaptor<GrpcEingang> eingangArgumentCaptor;
 
@@ -254,7 +255,13 @@ class XtaITCase {
 
 	@SneakyThrows
 	private void mockNachrichtenBroker(String zipFileName) {
-		// TODO
+		XtaMessage xtaMessage = XtaResponseTestFactory.createGetMessageResponse(zipFileName);
+		when(xtaClient.fetchMessages(any())).thenAnswer(invocation -> {
+			@SuppressWarnings("unchecked")
+			var processMessage = (Consumer<XtaMessage>) invocation.getArguments()[0];
+			processMessage.accept(xtaMessage);
+			return List.of(XtaTransportReportTestFactory.create());
+		});
 	}
 
 	@Target({ ElementType.METHOD })
diff --git a/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMetaDataFactory.java b/src/test/java/de/ozgcloud/eingang/xta/XtaMessageMetaDataTestFactory.java
similarity index 100%
rename from src/test/java/de/ozgcloud/eingang/xta/XtaMessageMetaDataFactory.java
rename to src/test/java/de/ozgcloud/eingang/xta/XtaMessageMetaDataTestFactory.java
diff --git a/src/test/java/de/ozgcloud/eingang/xta/XtaResponseTestFactory.java b/src/test/java/de/ozgcloud/eingang/xta/XtaResponseTestFactory.java
index beee8d00..5eca0d33 100644
--- a/src/test/java/de/ozgcloud/eingang/xta/XtaResponseTestFactory.java
+++ b/src/test/java/de/ozgcloud/eingang/xta/XtaResponseTestFactory.java
@@ -34,7 +34,7 @@ import java.math.BigInteger;
 import java.nio.charset.StandardCharsets;
 import java.time.ZonedDateTime;
 import java.util.Arrays;
-import java.util.List;
+import java.util.Collections;
 import java.util.Map;
 import java.util.Objects;
 import java.util.UUID;
@@ -50,6 +50,7 @@ import org.apache.commons.io.IOUtils;
 import de.ozgcloud.common.binaryfile.TempFileUtils;
 import de.ozgcloud.xta.client.model.XtaFile;
 import de.ozgcloud.xta.client.model.XtaMessage;
+import de.ozgcloud.xta.client.model.XtaMessageMetaData;
 
 public class XtaResponseTestFactory {
 
@@ -72,33 +73,6 @@ public class XtaResponseTestFactory {
 		return "urn:de:xta:messageid:dataport_xta_210:%s".formatted(UUID.randomUUID().toString());
 	}
 
-	public static XtaMessageMetaDatasAndHeader createEmptyGetStatusListResponse() {
-		return XtaMessageMetaDatasAndHeader.builder()
-				.msgBoxRequestID("testid-empty")
-				.moreMessagesAvailable(false)
-				.messages(Stream.empty())
-				.build();
-	}
-
-	public static XtaMessageMetaDatasAndHeader createGetStatusListResponse(List<String> xtaAttachmentFileNames) {
-		var messageMetaDataItems = xtaAttachmentFileNames.stream()
-				.map(name ->
-						XtaFormMetaData.builder()
-								.messageId(new XtaMessageId(MESSAGE_ID_BY_ATTACHMENT_FILENAME.get(name)))
-								.messageType(MESSAGE_TYPE_BY_ATTACHMENT_FILENAME.get(name))
-								.origin(ZonedDateTime.now())
-								.delivery(ZonedDateTime.now())
-								.build()
-				)
-				.toList();
-
-		return XtaMessageMetaDatasAndHeader.builder()
-				.msgBoxRequestID("testid-withattachment")
-				.moreMessagesAvailable(true)
-				.messages(messageMetaDataItems.stream())
-				.build();
-	}
-
 	public static XtaMessage createGetMessageResponse(String xtaAttachmentFileName) {
 		File file;
 		try (var inputStream = getAttachmentInputStream(xtaAttachmentFileName)) {
@@ -111,12 +85,23 @@ public class XtaResponseTestFactory {
 		DataHandler dataHandler = new DataHandler(dataSource);
 
 		return XtaMessage.builder()
+				.metaData(createMessageMetaData(xtaAttachmentFileName))
 				.messageFile(XtaFile.builder()
 						.contentType("application/zip")
 						.name(xtaAttachmentFileName)
 						.size(BigInteger.valueOf(file.length()))
 						.content(dataHandler)
 						.build())
+				.attachmentFiles(Collections.emptyList())
+				.build();
+	}
+
+	private static XtaMessageMetaData createMessageMetaData(String xtaAttachmentFileName) {
+		return XtaMessageMetaDataTestFactory.createBuilder()
+				.messageId(new XtaMessageId(MESSAGE_ID_BY_ATTACHMENT_FILENAME.get(xtaAttachmentFileName)).toString())
+				.messageTypeCode(getMessageType(xtaAttachmentFileName))
+				.deliveryAttributesOrigin(ZonedDateTime.now())
+				.deliveryAttributesDelivery(ZonedDateTime.now())
 				.build();
 	}
 
diff --git a/src/test/java/de/ozgcloud/eingang/xta/XtaServiceTest.java b/src/test/java/de/ozgcloud/eingang/xta/XtaServiceTest.java
index 8e138936..a6283344 100644
--- a/src/test/java/de/ozgcloud/eingang/xta/XtaServiceTest.java
+++ b/src/test/java/de/ozgcloud/eingang/xta/XtaServiceTest.java
@@ -84,7 +84,7 @@ class XtaServiceTest {
 	@Nested
 	class TestFetchMessages {
 
-		private final XtaTransportReport transportReport = XtaTransportReportFactory.create();
+		private final XtaTransportReport transportReport = XtaTransportReportTestFactory.create();
 
 		@BeforeEach
 		@SneakyThrows
@@ -97,7 +97,6 @@ class XtaServiceTest {
 		void shouldCallXtaClient() {
 			service.fetchMessages();
 
-			// Can't test for passing the correct method when service is wrapped in a spy
 			verify(xtaClient).fetchMessages(any());
 		}
 	}
diff --git a/src/test/java/de/ozgcloud/eingang/xta/XtaTransportReportFactory.java b/src/test/java/de/ozgcloud/eingang/xta/XtaTransportReportTestFactory.java
similarity index 91%
rename from src/test/java/de/ozgcloud/eingang/xta/XtaTransportReportFactory.java
rename to src/test/java/de/ozgcloud/eingang/xta/XtaTransportReportTestFactory.java
index 38d23653..e6131596 100644
--- a/src/test/java/de/ozgcloud/eingang/xta/XtaTransportReportFactory.java
+++ b/src/test/java/de/ozgcloud/eingang/xta/XtaTransportReportTestFactory.java
@@ -5,7 +5,7 @@ import java.time.ZonedDateTime;
 import de.ozgcloud.xta.client.model.XtaMessageStatus;
 import de.ozgcloud.xta.client.model.XtaTransportReport;
 
-public class XtaTransportReportFactory {
+public class XtaTransportReportTestFactory {
 
 
 	public static XtaTransportReport create() {
-- 
GitLab