Skip to content
Snippets Groups Projects
Commit bc2b839a authored by Lukas Malte Monnerjahn's avatar Lukas Malte Monnerjahn
Browse files

OZG-6753 api test getMessage

- zweiter call nach close() erzeugt InvalidMessageIdException
- messageFile metadata
- messageFile content
parent 8c7a13df
No related branches found
No related tags found
No related merge requests found
...@@ -3,13 +3,18 @@ package de.ozgcloud.xta.client; ...@@ -3,13 +3,18 @@ package de.ozgcloud.xta.client;
import static de.ozgcloud.xta.client.extension.XtaServerSetupExtensionTestUtil.*; import static de.ozgcloud.xta.client.extension.XtaServerSetupExtensionTestUtil.*;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
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;
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.xta.client.extension.XtaMessageExampleLoader;
import de.ozgcloud.xta.client.extension.XtaTestServerSetupExtension; import de.ozgcloud.xta.client.extension.XtaTestServerSetupExtension;
import de.ozgcloud.xta.client.model.XtaMessage;
import de.ozgcloud.xta.client.model.XtaMessageStatus; import de.ozgcloud.xta.client.model.XtaMessageStatus;
import genv3.de.xoev.transport.xta.x211.InvalidMessageIDException; import genv3.de.xoev.transport.xta.x211.InvalidMessageIDException;
import lombok.SneakyThrows; import lombok.SneakyThrows;
...@@ -81,11 +86,18 @@ class XtaClientITCase { ...@@ -81,11 +86,18 @@ class XtaClientITCase {
class TestGetMessage { class TestGetMessage {
private String messageId; private String messageId;
private XtaMessage message;
@BeforeEach @BeforeEach
@SneakyThrows @SneakyThrows
void setup() { void setup() {
messageId = XTA_TEST_SERVER_SETUP_EXTENSION.sendTestMessage(); var messageConfig = XtaMessageExampleLoader.MessageExampleConfig.builder()
.messageLabel("dfoerdermittel")
.reader(CLIENT_IDENTIFIER1)
.author(CLIENT_IDENTIFIER1)
.build();
messageId = XTA_TEST_SERVER_SETUP_EXTENSION.sendTestMessage(messageConfig);
message = XtaMessageExampleLoader.load(messageConfig);
} }
@DisplayName("should return message with green status") @DisplayName("should return message with green status")
...@@ -99,6 +111,44 @@ class XtaClientITCase { ...@@ -99,6 +111,44 @@ class XtaClientITCase {
assertThat(result.transportReport().status()).isEqualTo(XtaMessageStatus.GREEN); assertThat(result.transportReport().status()).isEqualTo(XtaMessageStatus.GREEN);
} }
@DisplayName("should return message with correct message file metadata")
@Test
@SneakyThrows
void shouldReturnMessageWithCorrectMessageFileMetadata() {
var messageFile = message.messageFile();
var result = client.getMessage(CLIENT_IDENTIFIER1.value(), messageId);
var resultMessageFile = result.message().messageFile();
assertThat(resultMessageFile.contentType()).isEqualTo(messageFile.contentType());
assertThat(resultMessageFile.contentDescription()).isEqualTo(messageFile.contentDescription());
assertThat(resultMessageFile.encoding()).isEqualTo(messageFile.encoding());
assertThat(resultMessageFile.id()).isEqualTo(messageFile.id());
assertThat(resultMessageFile.language()).isEqualTo(messageFile.language());
assertThat(resultMessageFile.name()).isEqualTo(messageFile.name());
assertThat(resultMessageFile.size()).isEqualTo(messageFile.size());
}
@DisplayName("should return message with correct message file content")
@Test
@SneakyThrows
void shouldReturnMessageWithCorrectMessageFileContent() {
var messageStream = new ZipInputStream(message.messageFile().content().getInputStream());
var result = client.getMessage(CLIENT_IDENTIFIER1.value(), messageId);
var resultStream = new ZipInputStream(result.message().messageFile().content().getInputStream());
checkZipStreamContentEquals(messageStream, resultStream);
}
@DisplayName("should throw invalid message id exception for a closed message")
@Test
void shouldThrowInvalidMessageIdExceptionForClosedMessage() {
assertThatNoException().isThrownBy(() -> client.getMessage(CLIENT_IDENTIFIER1.value(), messageId));
assertThatThrownBy(() -> client.getMessage(CLIENT_IDENTIFIER1.value(), messageId))
.isInstanceOf(InvalidMessageIDException.class);
}
@DisplayName("should throw invalid message id exception for modified message id") @DisplayName("should throw invalid message id exception for modified message id")
@Test @Test
void shouldThrowInvalidMessageIdExceptionForModifiedMessageId() { void shouldThrowInvalidMessageIdExceptionForModifiedMessageId() {
...@@ -113,6 +163,19 @@ class XtaClientITCase { ...@@ -113,6 +163,19 @@ class XtaClientITCase {
.isInstanceOf(InvalidMessageIDException.class); .isInstanceOf(InvalidMessageIDException.class);
} }
@SneakyThrows
private void checkZipStreamContentEquals(ZipInputStream expectedStream, ZipInputStream actualStream) {
ZipEntry messageEntry, resultEntry;
while((messageEntry = expectedStream.getNextEntry()) != null) {
resultEntry = actualStream.getNextEntry();
assertThat(resultEntry).isNotNull();
assertThat(resultEntry.getName()).isEqualTo(messageEntry.getName());
assertThat(resultEntry.getSize()).isEqualTo(messageEntry.getSize());
assertThat(actualStream.readAllBytes()).isEqualTo(expectedStream.readAllBytes());
}
}
} }
} }
......
...@@ -105,6 +105,11 @@ public class XtaTestServerSetupExtension implements BeforeAllCallback, AfterAllC ...@@ -105,6 +105,11 @@ public class XtaTestServerSetupExtension implements BeforeAllCallback, AfterAllC
.build()); .build());
} }
@SneakyThrows
public String sendTestMessage(XtaMessageExampleLoader.MessageExampleConfig messageExampleConfig) {
return XtaServerSetupExtensionTestUtil.sendTestMessage(client, messageExampleConfig);
}
@SneakyThrows @SneakyThrows
private static byte[] readBytesFromResource(String resourcePath) { private static byte[] readBytesFromResource(String resourcePath) {
try (var inputStream = XtaTestServerSetupExtension.class.getClassLoader().getResourceAsStream(resourcePath)) { try (var inputStream = XtaTestServerSetupExtension.class.getClassLoader().getResourceAsStream(resourcePath)) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment