diff --git a/src/test/java/de/ozgcloud/xta/client/XtaClientITCase.java b/src/test/java/de/ozgcloud/xta/client/XtaClientITCase.java index 435ea593ad3e03e7b0e3eda4d2e11a6c00caf411..cf0c0bc44e15d973e457666aeeb5ac3332943a1a 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); @@ -121,12 +121,15 @@ class XtaClientITCase { assertThat(messageContent).isEqualTo(resultContent); } - @DisplayName("should throw invalid message id exception for a closed message") + @DisplayName("should not show message id for a closed message in status list") @Test - void shouldThrowInvalidMessageIdExceptionForClosedMessage() { + @SneakyThrows + void shouldNotShowMessageIdForClosedMessageInStatusList() { assertThatNoException().isThrownBy(() -> client.getMessage(READER_CLIENT_IDENTIFIER1.value(), messageId)); - assertThatThrownBy(() -> client.getMessage(READER_CLIENT_IDENTIFIER1.value(), messageId)) - .isInstanceOf(InvalidMessageIDException.class); + var metadataResult = client.getMessagesMetadata(READER_CLIENT_IDENTIFIER1.value()); + if (!metadataResult.messages().isEmpty()) { + assertThat(metadataResult.messages()).allMatch(metadata -> !messageId.equals(metadata.messageId())); + } } @DisplayName("should throw invalid message id exception for modified message id") @@ -142,11 +145,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 e6dadc2b2f0b7008900ff612b98b768b53e7a5a3..42f008a07a14ec9c27d72fd802907dcead5db1af 100644 --- a/src/test/java/de/ozgcloud/xta/client/XtaClientRemoteITCase.java +++ b/src/test/java/de/ozgcloud/xta/client/XtaClientRemoteITCase.java @@ -3,6 +3,7 @@ package de.ozgcloud.xta.client; import static de.ozgcloud.xta.client.extension.XtaServerSetupExtensionTestUtil.*; import static org.assertj.core.api.Assertions.*; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; @@ -99,11 +100,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 +125,29 @@ 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 not show message id for a closed message in status list") + @Test + @SneakyThrows + void shouldNotShowMessageIdForClosedMessageInStatusList() { + assertThatNoException().isThrownBy(() -> readerClient.getMessage(READER_CLIENT_IDENTIFIER1.value(), messageId)); + var metadataResult = readerClient.getMessagesMetadata(READER_CLIENT_IDENTIFIER1.value()); + if (!metadataResult.messages().isEmpty()) { + assertThat(metadataResult.messages()).allMatch(metadata -> !messageId.equals(metadata.messageId())); + } + } + @DisplayName("should throw invalid message id exception for modified message id") @Test void shouldThrowInvalidMessageIdExceptionForModifiedMessageId() { @@ -137,7 +168,13 @@ class XtaClientRemoteITCase { @Nested class TestSendMessage { - @DisplayName("should return with open status") + @AfterEach + @SneakyThrows + void afterEach() { + closeAllMessages(readerClient, READER_CLIENT_IDENTIFIER1); + } + + @DisplayName("should return transport report with open status") @SneakyThrows @ParameterizedTest @ValueSource(strings = { "dfoerdermittel", "abgabe0401-kleiner-waffenschein" }) 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 d61b062993a157df79e806761e3c30265f93cd68..d59023bc848ab56920d9a2eed43d36f6a3b3d893 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 84bd9f0b33a69c5dfebb68db7a1c1187e955c5bd..45888f62bca53e16bcd8d6c2f29ab48c405d6144 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 18ce8e5beedaaf230c40d244481670e7bece4c22..c66e62a9a48f220288bddc86a476daa4ebf34991 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";