From 19cb99c82f67a9748f4ba3adf36736463bea7dcf Mon Sep 17 00:00:00 2001
From: Jan Zickermann <jan.zickermann@dataport.de>
Date: Mon, 17 Mar 2025 15:04:46 +0100
Subject: [PATCH] KOP-3064 enaio: getTransportReport

---
 .../XtaClientEnaioExampleRemoteITCase.java    | 35 ++++++++++++++++---
 1 file changed, 31 insertions(+), 4 deletions(-)

diff --git a/src/test/java/de/ozgcloud/xta/client/XtaClientEnaioExampleRemoteITCase.java b/src/test/java/de/ozgcloud/xta/client/XtaClientEnaioExampleRemoteITCase.java
index c96a89a..b0736e1 100644
--- a/src/test/java/de/ozgcloud/xta/client/XtaClientEnaioExampleRemoteITCase.java
+++ b/src/test/java/de/ozgcloud/xta/client/XtaClientEnaioExampleRemoteITCase.java
@@ -3,6 +3,9 @@ package de.ozgcloud.xta.client;
 import static de.ozgcloud.xta.client.extension.XtaServerSetupExtensionTestUtil.TEST_AUTHOR_CLIENT_IDENTIFIER;
 import static org.assertj.core.api.Assertions.*;
 
+import de.ozgcloud.xta.client.core.WrappedXtaService;
+import de.ozgcloud.xta.client.core.XtaClientService;
+import de.ozgcloud.xta.client.model.*;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
@@ -14,14 +17,12 @@ import org.junit.jupiter.params.provider.ValueSource;
 
 import de.ozgcloud.xta.client.extension.XtaMessageExampleLoader;
 import de.ozgcloud.xta.client.extension.XtaRemoteServerSetupExtension;
-import de.ozgcloud.xta.client.model.XtaFile;
-import de.ozgcloud.xta.client.model.XtaIdentifier;
-import de.ozgcloud.xta.client.model.XtaMessage;
-import de.ozgcloud.xta.client.model.XtaMessageStatus;
 import de.ozgcloud.xta.client.xdomea.XdomeaXtaMessageCreator;
 import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 
+import java.util.Optional;
+
 @Slf4j
 @EnabledIfEnvironmentVariable(
 		named = "KOP_SH_KIEL_DEV_PATH",
@@ -59,6 +60,8 @@ class XtaClientEnaioExampleRemoteITCase {
 
 			var result = testClient.sendMessage(xtaMessage);
 
+			log.info("result: {}", result);
+
 			assertThat(result.status()).isEqualTo(XtaMessageStatus.OPEN);
 		}
 
@@ -76,6 +79,30 @@ class XtaClientEnaioExampleRemoteITCase {
 		assertThat(result).isNotEmpty();
 	}
 
+	@DisplayName("should get message")
+	@Test
+	@SneakyThrows
+	void shouldGetMessage() {
+		var xtaService = (XtaClientService) getPrivateFieldValue(testClient, "service").get();
+		var wrappedService = (WrappedXtaService) getPrivateFieldValue(xtaService, "service").get();
+
+		var transportReport = wrappedService.getTransportReport("urn:de:xta:messageid:dataport_xta_210:497e0d26-0070-4b20-924d-8db0c25f1f60", TEST_AUTHOR_CLIENT_IDENTIFIER);
+
+		log.info("report: {}", transportReport);
+
+		assertThat(transportReport).isNotNull();
+	}
+
+	private Optional<Object> getPrivateFieldValue(Object object, String fieldName) {
+		try {
+			var field = object.getClass().getDeclaredField(fieldName);
+			field.setAccessible(true);
+			return Optional.of(field.get(object));
+		} catch (NoSuchFieldException | IllegalAccessException | RuntimeException e) {
+			return Optional.empty();
+		}
+	}
+
 	@SneakyThrows
 	private static XtaMessage createXdomeaMessage(XtaFile messageFile) {
 		return XDOMEA_XTA_MESSAGE_CREATOR.createMessage(messageFile);
-- 
GitLab