From 776cac5ba0333f3a5ae9a211ff7ea5b9f7ac5114 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Fri, 18 Oct 2024 16:36:43 +0200 Subject: [PATCH] OZG-6891 KOP-2733 Use messageIds from sendMessage --- .../ozgcloud/xta/client/XtaClientITCase.java | 24 +++++---------- .../xta/client/XtaClientRemoteITCase.java | 30 +++++++++---------- .../XtaServerSetupExtensionTestUtil.java | 7 ++--- 3 files changed, 25 insertions(+), 36 deletions(-) diff --git a/src/test/java/de/ozgcloud/xta/client/XtaClientITCase.java b/src/test/java/de/ozgcloud/xta/client/XtaClientITCase.java index feda665..b28ff46 100644 --- a/src/test/java/de/ozgcloud/xta/client/XtaClientITCase.java +++ b/src/test/java/de/ozgcloud/xta/client/XtaClientITCase.java @@ -17,7 +17,6 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; -import de.ozgcloud.common.errorhandling.TechnicalException; import de.ozgcloud.xta.client.extension.StaticStringListAppender; import de.ozgcloud.xta.client.extension.XtaMessageExampleLoader; import de.ozgcloud.xta.client.extension.XtaTestServerSetupExtension; @@ -57,8 +56,9 @@ class XtaClientITCase { } private void closeMessagesForAllReaders() { - Stream.of(READER_CLIENT_IDENTIFIER1, READER_CLIENT_IDENTIFIER2, READER_CLIENT_IDENTIFIER3) - .forEach(clientId -> closeAllMessages(setupClient, clientId)); + closeAllMessages(setupClient, READER_CLIENT_IDENTIFIER1); + closeAllMessages(setupClient, READER_CLIENT_IDENTIFIER2); + closeAllMessages(setupClient, READER_CLIENT_IDENTIFIER3); } @@ -67,6 +67,7 @@ class XtaClientITCase { class TestFetchMessages { private List<XtaMessage> sendMessages; + private List<String> sendMessageIds; @BeforeEach void setup() { @@ -78,7 +79,9 @@ class XtaClientITCase { createMessage("versammlungsanzeige", AUTHOR_CLIENT_IDENTIFIER2, READER_CLIENT_IDENTIFIER3), createMessage("versammlungsanzeige", AUTHOR_CLIENT_IDENTIFIER3, READER_CLIENT_IDENTIFIER3) ); - sendMessages.forEach(message -> sendTestMessage(setupClient, message)); + sendMessageIds = sendMessages.stream() + .map(message -> sendTestMessage(setupClient, message)) + .toList(); } private XtaMessage createMessage(String messageLabel, XtaIdentifier author, XtaIdentifier reader) { @@ -346,18 +349,7 @@ class XtaClientITCase { } private String messageIdBySendIndex(int sendIndex) { - var expectedMessageMetadata = withoutMessageIdAndSize(sendMessages.get(sendIndex).metaData()); - var messageIds = processedMessages.stream() - .map(XtaMessage::metaData) - .filter(metaData -> withoutMessageIdAndSize(metaData).equals(expectedMessageMetadata)) - .map(XtaMessageMetaData::messageId) - .toList(); - if (messageIds.size() != 1) { - throw new TechnicalException( - "Expected exactly one message id for send index %d, but found %d!".formatted(sendIndex, messageIds.size()) - + "Ensure that all test messages have unique metadata!"); - } - return messageIds.getFirst(); + return sendMessageIds.get(sendIndex); } private List<XtaTransportReport> fetchMessages() { diff --git a/src/test/java/de/ozgcloud/xta/client/XtaClientRemoteITCase.java b/src/test/java/de/ozgcloud/xta/client/XtaClientRemoteITCase.java index 6f0d11b..1ab424d 100644 --- a/src/test/java/de/ozgcloud/xta/client/XtaClientRemoteITCase.java +++ b/src/test/java/de/ozgcloud/xta/client/XtaClientRemoteITCase.java @@ -13,7 +13,6 @@ import java.util.stream.Stream; import org.junit.Ignore; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; @@ -53,27 +52,16 @@ class XtaClientRemoteITCase { private static final XdomeaXtaMessageCreator XDOMEA_XTA_MESSAGE_CREATOR = XdomeaXtaMessageCreator.createInstance(); - private static XtaClient testClient; - private static XtaClient silentTestClient; - private static XtaClient devClient; - private static XtaClient silentDevClient; + private XtaClient testClient; + private XtaClient silentTestClient; + private XtaClient devClient; + private XtaClient silentDevClient; private List<XtaMessageMetaData> supportCheckedMetadataItems; private List<XtaMessage> processedMessages; private Consumer<XtaMessage> processMessageDummy; private Predicate<XtaMessageMetaData> isSupportedDummy; - @BeforeAll - static void checkNoMessagePending() { - testClient = XTA_REMOTE_SERVER_SETUP_EXTENSION.getTestClient(); - silentTestClient = XTA_REMOTE_SERVER_SETUP_EXTENSION.getSilentTestClient(); - devClient = XTA_REMOTE_SERVER_SETUP_EXTENSION.getDevClient(); - silentDevClient = XTA_REMOTE_SERVER_SETUP_EXTENSION.getSilentDevClient(); - - throwIfAnyMessagePending(silentDevClient, DEV_READER_CLIENT_IDENTIFIER); - throwIfAnyMessagePending(silentTestClient, TEST_READER_CLIENT_IDENTIFIER); - } - @BeforeEach @SneakyThrows void setup() { @@ -82,6 +70,16 @@ class XtaClientRemoteITCase { supportCheckedMetadataItems = new ArrayList<>(); isSupportedDummy = (metaData) -> true; processedMessages = new ArrayList<>(); + + testClient = XTA_REMOTE_SERVER_SETUP_EXTENSION.getTestClient(); + silentTestClient = XTA_REMOTE_SERVER_SETUP_EXTENSION.getSilentTestClient(); + devClient = XTA_REMOTE_SERVER_SETUP_EXTENSION.getDevClient(); + silentDevClient = XTA_REMOTE_SERVER_SETUP_EXTENSION.getSilentDevClient(); + + // Fail if any message pending, to ensure that we do not clear existing messages in the DEV environment + failIfAnyMessagePending(silentDevClient, DEV_READER_CLIENT_IDENTIFIER); + failIfAnyMessagePending(silentTestClient, TEST_READER_CLIENT_IDENTIFIER); + StaticStringListAppender.clearLogLines(); } 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 7582333..9ecd3fb 100644 --- a/src/test/java/de/ozgcloud/xta/client/extension/XtaServerSetupExtensionTestUtil.java +++ b/src/test/java/de/ozgcloud/xta/client/extension/XtaServerSetupExtensionTestUtil.java @@ -69,8 +69,6 @@ public class XtaServerSetupExtensionTestUtil { .name("Kreisordnungsbehörde Dithmarschen") .build(); - - public static XtaClientConfig.XtaClientConfigBuilder createClientConfigBuilder() { return XtaClientConfig.builder() .clientIdentifiers(emptyList()) @@ -110,11 +108,12 @@ public class XtaServerSetupExtensionTestUtil { } @SneakyThrows - public static void throwIfAnyMessagePending(XtaClient client, XtaIdentifier clientId) { + public static void failIfAnyMessagePending(XtaClient client, XtaIdentifier clientId) { var wrappedService = getWrappedService(client); var result = wrappedService.getStatusList(clientId, 1); if (!result.messages().isEmpty()) { - fail("Expect no pending xta-messages for reader %s!".formatted(clientId.value())); + fail("Expect no pending xta-messages for reader %s! Ensure that the mailbox is empty before running this test.".formatted( + clientId.value())); } } -- GitLab