Skip to content
Snippets Groups Projects
Commit 776cac5b authored by Jan Zickermann's avatar Jan Zickermann
Browse files

OZG-6891 KOP-2733 Use messageIds from sendMessage

parent e0ff858d
No related branches found
No related tags found
No related merge requests found
...@@ -17,7 +17,6 @@ import org.junit.jupiter.api.Nested; ...@@ -17,7 +17,6 @@ import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.RegisterExtension; 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.StaticStringListAppender;
import de.ozgcloud.xta.client.extension.XtaMessageExampleLoader; import de.ozgcloud.xta.client.extension.XtaMessageExampleLoader;
import de.ozgcloud.xta.client.extension.XtaTestServerSetupExtension; import de.ozgcloud.xta.client.extension.XtaTestServerSetupExtension;
...@@ -57,8 +56,9 @@ class XtaClientITCase { ...@@ -57,8 +56,9 @@ class XtaClientITCase {
} }
private void closeMessagesForAllReaders() { private void closeMessagesForAllReaders() {
Stream.of(READER_CLIENT_IDENTIFIER1, READER_CLIENT_IDENTIFIER2, READER_CLIENT_IDENTIFIER3) closeAllMessages(setupClient, READER_CLIENT_IDENTIFIER1);
.forEach(clientId -> closeAllMessages(setupClient, clientId)); closeAllMessages(setupClient, READER_CLIENT_IDENTIFIER2);
closeAllMessages(setupClient, READER_CLIENT_IDENTIFIER3);
} }
...@@ -67,6 +67,7 @@ class XtaClientITCase { ...@@ -67,6 +67,7 @@ class XtaClientITCase {
class TestFetchMessages { class TestFetchMessages {
private List<XtaMessage> sendMessages; private List<XtaMessage> sendMessages;
private List<String> sendMessageIds;
@BeforeEach @BeforeEach
void setup() { void setup() {
...@@ -78,7 +79,9 @@ class XtaClientITCase { ...@@ -78,7 +79,9 @@ class XtaClientITCase {
createMessage("versammlungsanzeige", AUTHOR_CLIENT_IDENTIFIER2, READER_CLIENT_IDENTIFIER3), createMessage("versammlungsanzeige", AUTHOR_CLIENT_IDENTIFIER2, READER_CLIENT_IDENTIFIER3),
createMessage("versammlungsanzeige", AUTHOR_CLIENT_IDENTIFIER3, 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) { private XtaMessage createMessage(String messageLabel, XtaIdentifier author, XtaIdentifier reader) {
...@@ -346,18 +349,7 @@ class XtaClientITCase { ...@@ -346,18 +349,7 @@ class XtaClientITCase {
} }
private String messageIdBySendIndex(int sendIndex) { private String messageIdBySendIndex(int sendIndex) {
var expectedMessageMetadata = withoutMessageIdAndSize(sendMessages.get(sendIndex).metaData()); return sendMessageIds.get(sendIndex);
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();
} }
private List<XtaTransportReport> fetchMessages() { private List<XtaTransportReport> fetchMessages() {
......
...@@ -13,7 +13,6 @@ import java.util.stream.Stream; ...@@ -13,7 +13,6 @@ import java.util.stream.Stream;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Nested;
...@@ -53,27 +52,16 @@ class XtaClientRemoteITCase { ...@@ -53,27 +52,16 @@ class XtaClientRemoteITCase {
private static final XdomeaXtaMessageCreator XDOMEA_XTA_MESSAGE_CREATOR = XdomeaXtaMessageCreator.createInstance(); private static final XdomeaXtaMessageCreator XDOMEA_XTA_MESSAGE_CREATOR = XdomeaXtaMessageCreator.createInstance();
private static XtaClient testClient; private XtaClient testClient;
private static XtaClient silentTestClient; private XtaClient silentTestClient;
private static XtaClient devClient; private XtaClient devClient;
private static XtaClient silentDevClient; private XtaClient silentDevClient;
private List<XtaMessageMetaData> supportCheckedMetadataItems; private List<XtaMessageMetaData> supportCheckedMetadataItems;
private List<XtaMessage> processedMessages; private List<XtaMessage> processedMessages;
private Consumer<XtaMessage> processMessageDummy; private Consumer<XtaMessage> processMessageDummy;
private Predicate<XtaMessageMetaData> isSupportedDummy; 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 @BeforeEach
@SneakyThrows @SneakyThrows
void setup() { void setup() {
...@@ -82,6 +70,16 @@ class XtaClientRemoteITCase { ...@@ -82,6 +70,16 @@ class XtaClientRemoteITCase {
supportCheckedMetadataItems = new ArrayList<>(); supportCheckedMetadataItems = new ArrayList<>();
isSupportedDummy = (metaData) -> true; isSupportedDummy = (metaData) -> true;
processedMessages = new ArrayList<>(); 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(); StaticStringListAppender.clearLogLines();
} }
......
...@@ -69,8 +69,6 @@ public class XtaServerSetupExtensionTestUtil { ...@@ -69,8 +69,6 @@ public class XtaServerSetupExtensionTestUtil {
.name("Kreisordnungsbehörde Dithmarschen") .name("Kreisordnungsbehörde Dithmarschen")
.build(); .build();
public static XtaClientConfig.XtaClientConfigBuilder createClientConfigBuilder() { public static XtaClientConfig.XtaClientConfigBuilder createClientConfigBuilder() {
return XtaClientConfig.builder() return XtaClientConfig.builder()
.clientIdentifiers(emptyList()) .clientIdentifiers(emptyList())
...@@ -110,11 +108,12 @@ public class XtaServerSetupExtensionTestUtil { ...@@ -110,11 +108,12 @@ public class XtaServerSetupExtensionTestUtil {
} }
@SneakyThrows @SneakyThrows
public static void throwIfAnyMessagePending(XtaClient client, XtaIdentifier clientId) { public static void failIfAnyMessagePending(XtaClient client, XtaIdentifier clientId) {
var wrappedService = getWrappedService(client); var wrappedService = getWrappedService(client);
var result = wrappedService.getStatusList(clientId, 1); var result = wrappedService.getStatusList(clientId, 1);
if (!result.messages().isEmpty()) { 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()));
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment