Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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 org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
import org.junit.jupiter.api.extension.RegisterExtension;
import org.junit.jupiter.params.ParameterizedTest;
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;
@Slf4j
@EnabledIfEnvironmentVariable(
named = "KOP_SH_KIEL_DEV_PATH",
matches = ".+",
disabledReason =
"This test requires the path KOP_SH_KIEL_{DEV,TEST}_PATH and password KOP_SH_KIEL_{DEV,TEST}_PASSWORD of KOP_SH_KIEL_DEV.p12 and OZG-CLOUD_SH_KIEL_TEST.pfx. "
+ "Additionally, the endpoint of the DEV-xta-server at li33-0005.dp.dsecurecloud.de must be reachable."
)
class XtaClientEnaioExampleRemoteITCase {
@RegisterExtension
private static final XtaRemoteServerSetupExtension XTA_REMOTE_SERVER_SETUP_EXTENSION = new XtaRemoteServerSetupExtension();
private static final XdomeaXtaMessageCreator XDOMEA_XTA_MESSAGE_CREATOR = XdomeaXtaMessageCreator.createInstance();
private XtaClient testClient;
@BeforeEach
@SneakyThrows
void setup() {
testClient = XTA_REMOTE_SERVER_SETUP_EXTENSION.getTestClient();
}
@DisplayName("send messages")
@Nested
class TestSendMessage {
@DisplayName("should have open status for enaio messages")
@SneakyThrows
@ParameterizedTest
@ValueSource(strings = { "abgabe0401-enaio-01", "abgabe0401-enaio-02", "abgabe0401-enaio-03", "abgabe0401-enaio-04" })
void shouldReturn(String messageLabel) {
XtaMessage xtaMessage = createXdomeaMessage(loadMessage(messageLabel).messageFile());
var result = testClient.sendMessage(xtaMessage);
assertThat(result.status()).isEqualTo(XtaMessageStatus.OPEN);
}
}
@DisplayName("should fetch messages")
@Test
@SneakyThrows
void shouldFetchMessages() {
var result = testClient.fetchMessages(message -> {
log.info("message: {}", message);
throw new RuntimeException("avoid closing message");
});
assertThat(result).isNotEmpty();
}
@SneakyThrows
private static XtaMessage createXdomeaMessage(XtaFile messageFile) {
return XDOMEA_XTA_MESSAGE_CREATOR.createMessage(messageFile);
}
private static XtaMessage loadMessage(String messageLabel) {
return XtaMessageExampleLoader.load(XtaMessageExampleLoader.MessageExampleConfig.builder()
.messageLabel(messageLabel)
.author(TEST_AUTHOR_CLIENT_IDENTIFIER)
.reader(XtaIdentifier.builder()
.category("Generischer Antragsempfänger")
.value("gae:ozg-cloud-dms@optimal-systems.de")
.name("DMS enaio (Optimal-Systems)")
.build())
.build());
}
}