From aed0015afb98b7860f7bd39d018b4df8a556000a Mon Sep 17 00:00:00 2001
From: Lukas Malte Monnerjahn <lukasmalte.monnerjahn@dataport.de>
Date: Mon, 7 Oct 2024 11:13:07 +0200
Subject: [PATCH] OZG-6753 KOP-2725 Angleichen der Tests in XtaClientITCase und
 XtaClientRemoteITCase

---
 .../ozgcloud/xta/client/XtaClientITCase.java  |  7 +----
 .../xta/client/XtaClientRemoteITCase.java     | 31 +++++++++++++++++--
 .../XtaRemoteServerSetupExtension.java        |  7 +++++
 .../XtaServerSetupExtensionTestUtil.java      |  5 +++
 .../XtaTestServerSetupExtension.java          |  2 +-
 5 files changed, 43 insertions(+), 9 deletions(-)

diff --git a/src/test/java/de/ozgcloud/xta/client/XtaClientITCase.java b/src/test/java/de/ozgcloud/xta/client/XtaClientITCase.java
index 435ea59..53a9aee 100644
--- a/src/test/java/de/ozgcloud/xta/client/XtaClientITCase.java
+++ b/src/test/java/de/ozgcloud/xta/client/XtaClientITCase.java
@@ -92,7 +92,7 @@ class XtaClientITCase {
 			var messageConfig = XtaMessageExampleLoader.MessageExampleConfig.builder()
 					.messageLabel("dfoerdermittel")
 					.reader(READER_CLIENT_IDENTIFIER1)
-					.author(READER_CLIENT_IDENTIFIER1)
+					.author(AUTHOR_CLIENT_IDENTIFIER)
 					.build();
 			message = XtaMessageExampleLoader.load(messageConfig);
 			messageId = XtaServerSetupExtensionTestUtil.sendTestMessage(client, message);
@@ -142,11 +142,6 @@ class XtaClientITCase {
 			assertThatThrownBy(() -> client.getMessage(READER_CLIENT_IDENTIFIER2.value(), messageId))
 					.isInstanceOf(InvalidMessageIDException.class);
 		}
-
-		@SneakyThrows
-		private byte[] extractMessageFileContent(XtaMessage xtaMessage) {
-			return xtaMessage.messageFile().content().getInputStream().readAllBytes();
-		}
 	}
 
 	@DisplayName("send message")
diff --git a/src/test/java/de/ozgcloud/xta/client/XtaClientRemoteITCase.java b/src/test/java/de/ozgcloud/xta/client/XtaClientRemoteITCase.java
index bf9b055..7c02352 100644
--- a/src/test/java/de/ozgcloud/xta/client/XtaClientRemoteITCase.java
+++ b/src/test/java/de/ozgcloud/xta/client/XtaClientRemoteITCase.java
@@ -99,11 +99,18 @@ class XtaClientRemoteITCase {
 	class TestGetMessage {
 
 		private String messageId;
+		private XtaMessage message;
 
 		@BeforeEach
 		@SneakyThrows
 		void setup() {
-			messageId = XTA_REMOTE_SERVER_SETUP_EXTENSION.sendTestMessage();
+			var messageConfig = XtaMessageExampleLoader.MessageExampleConfig.builder()
+					.messageLabel("dfoerdermittel")
+					.reader(READER_CLIENT_IDENTIFIER1)
+					.author(AUTHOR_CLIENT_IDENTIFIER)
+					.build();
+			message = XtaMessageExampleLoader.load(messageConfig);
+			messageId = XTA_REMOTE_SERVER_SETUP_EXTENSION.sendTestMessage(message);
 		}
 
 		@DisplayName("should return message with green status")
@@ -117,6 +124,26 @@ class XtaClientRemoteITCase {
 			assertThat(result.transportReport().status()).isEqualTo(XtaMessageStatus.GREEN);
 		}
 
+		@DisplayName("should return message with correct message file content")
+		@Test
+		@SneakyThrows
+		void shouldReturnMessageWithCorrectMessageFileContent() {
+			var messageContent = extractMessageFileContent(message);
+
+			var result = readerClient.getMessage(READER_CLIENT_IDENTIFIER1.value(), messageId);
+			var resultContent = extractMessageFileContent(result.message());
+
+			assertThat(messageContent).isEqualTo(resultContent);
+		}
+
+		@DisplayName("should throw invalid message id exception for a closed message")
+		@Test
+		void shouldThrowInvalidMessageIdExceptionForClosedMessage() {
+			assertThatNoException().isThrownBy(() -> readerClient.getMessage(READER_CLIENT_IDENTIFIER1.value(), messageId));
+			assertThatThrownBy(() -> readerClient.getMessage(READER_CLIENT_IDENTIFIER1.value(), messageId))
+					.isInstanceOf(InvalidMessageIDException.class);
+		}
+
 		@DisplayName("should throw invalid message id exception for modified message id")
 		@Test
 		void shouldThrowInvalidMessageIdExceptionForModifiedMessageId() {
@@ -137,7 +164,7 @@ class XtaClientRemoteITCase {
 	@Nested
 	class TestSendMessage {
 
-		@DisplayName("should return with open status")
+		@DisplayName("should return transport report with open status")
 		@SneakyThrows
 		@ParameterizedTest
 		@ValueSource(strings = { "dfoerdermittel" })
diff --git a/src/test/java/de/ozgcloud/xta/client/extension/XtaRemoteServerSetupExtension.java b/src/test/java/de/ozgcloud/xta/client/extension/XtaRemoteServerSetupExtension.java
index d61b062..d59023b 100644
--- a/src/test/java/de/ozgcloud/xta/client/extension/XtaRemoteServerSetupExtension.java
+++ b/src/test/java/de/ozgcloud/xta/client/extension/XtaRemoteServerSetupExtension.java
@@ -15,6 +15,8 @@ import de.ozgcloud.xta.client.XtaClient;
 import de.ozgcloud.xta.client.XtaClientFactory;
 import de.ozgcloud.xta.client.config.XtaClientConfig;
 import de.ozgcloud.xta.client.core.WrappedXtaService;
+import de.ozgcloud.xta.client.model.XtaMessage;
+
 import lombok.Getter;
 import lombok.Setter;
 import lombok.SneakyThrows;
@@ -76,6 +78,11 @@ public class XtaRemoteServerSetupExtension implements BeforeAllCallback, BeforeE
 				.build());
 	}
 
+	@SneakyThrows
+	public String sendTestMessage(XtaMessage message) {
+		return XtaServerSetupExtensionTestUtil.sendTestMessage(authorClient, message);
+	}
+
 	@SneakyThrows
 	private static byte[] readBytesFromFile(String path) {
 		return Files.toByteArray(new File(path));
diff --git a/src/test/java/de/ozgcloud/xta/client/extension/XtaServerSetupExtensionTestUtil.java b/src/test/java/de/ozgcloud/xta/client/extension/XtaServerSetupExtensionTestUtil.java
index 84bd9f0..45888f6 100644
--- a/src/test/java/de/ozgcloud/xta/client/extension/XtaServerSetupExtensionTestUtil.java
+++ b/src/test/java/de/ozgcloud/xta/client/extension/XtaServerSetupExtensionTestUtil.java
@@ -88,4 +88,9 @@ public class XtaServerSetupExtensionTestUtil {
 		}
 	}
 
+	@SneakyThrows
+	public static byte[] extractMessageFileContent(XtaMessage xtaMessage) {
+		return xtaMessage.messageFile().content().getInputStream().readAllBytes();
+	}
+
 }
diff --git a/src/test/java/de/ozgcloud/xta/client/extension/XtaTestServerSetupExtension.java b/src/test/java/de/ozgcloud/xta/client/extension/XtaTestServerSetupExtension.java
index 18ce8e5..c66e62a 100644
--- a/src/test/java/de/ozgcloud/xta/client/extension/XtaTestServerSetupExtension.java
+++ b/src/test/java/de/ozgcloud/xta/client/extension/XtaTestServerSetupExtension.java
@@ -25,7 +25,7 @@ import lombok.extern.slf4j.Slf4j;
 public class XtaTestServerSetupExtension implements BeforeAllCallback, AfterAllCallback, BeforeEachCallback {
 
 	private static final DockerImageName XTA_TEST_SERVER_IMAGE = DockerImageName.parse("docker.ozg-sh.de/xta-test-server")
-			.withTag("1.4.1-SNAPSHOT");
+			.withTag("latest");
 
 	private static final String JOHN_SMITH_KEYSTORE_PATH = "store/john-smith-client-cert-keystore.p12";
 	private static final String JOHN_SMITH_KEYSTORE_PASSWORD = "password";
-- 
GitLab