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

KOP-2139 KOP-2461 XtaClientITCase: Try out checkAccountActive

parent e2c41df8
No related branches found
No related tags found
No related merge requests found
Showing
with 108 additions and 21 deletions
......@@ -14,9 +14,9 @@ import lombok.Builder;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor(access = AccessLevel.PROTECTED)
@Builder(access = AccessLevel.PROTECTED)
@Getter(AccessLevel.PROTECTED)
@RequiredArgsConstructor(access = AccessLevel.MODULE)
@Builder(access = AccessLevel.MODULE)
@Getter(AccessLevel.MODULE)
public class XtaClient {
private final WrappedXtaService service;
......
......@@ -17,6 +17,7 @@ public class XtaClientFactory {
public static XtaClientFactory from(final XtaClientConfig config) {
return XtaClientFactory.builder()
.config(config)
.configValidator(XtaConfigValidator.builder().build())
.wrappedXtaServiceFactory(WrappedXtaServiceFactory.from(config))
.build();
......
......@@ -31,7 +31,7 @@ import lombok.ToString;
public class XtaClientConfig {
@NotEmpty(message = "at least one client identifier is required")
private final List<String> clientIdentifiers;
private final List<@NotBlank String> clientIdentifiers;
@NotBlank
private final String managementServiceUrl;
......@@ -41,14 +41,19 @@ public class XtaClientConfig {
private final String msgBoxServiceUrl;
@Positive
private final int maxListItems;
@Builder.Default
private final int maxListItems = 50;
@Valid
private final KeyStore clientCertKeystore;
@Builder.Default
private final KeyStore clientCertKeystore = null;
private final boolean schemaValidation;
private final boolean logSoapRequests;
private final boolean logSoapResponses;
@Builder.Default
private final boolean schemaValidation = true;
@Builder.Default
private final boolean logSoapRequests = false;
@Builder.Default
private final boolean logSoapResponses = false;
@RequiredArgsConstructor
@Getter
......
......@@ -11,12 +11,12 @@ import lombok.RequiredArgsConstructor;
@Builder
public class WrappedXtaServiceFactory {
private final XTAServiceFactory xtaServiceFactory;
private final XTAPortTripleFactory xtaServiceFactory;
private final WebServiceTypeMapper typeMapper;
public static WrappedXtaServiceFactory from(final XtaClientConfig config) {
return WrappedXtaServiceFactory.builder()
.xtaServiceFactory(XTAServiceFactory.from(config))
.xtaServiceFactory(XTAPortTripleFactory.from(config))
.typeMapper(Mappers.getMapper(WebServiceTypeMapper.class))
.build();
}
......
......@@ -38,7 +38,7 @@ public class XtaTLSClientParametersFactory {
return parameters;
}
SSLContext createXtaSslContext() throws ClientInitializationException {
public SSLContext createXtaSslContext() throws ClientInitializationException {
try {
var sslContextBuilder = createSSLContextBuilder();
var clientCertKeystore = config.getClientCertKeystore();
......
......@@ -3,13 +3,14 @@ package de.ozgcloud.xta.client.model;
import java.util.List;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import lombok.Builder;
@Builder
public record XtaMessage(
@Valid XtaMessageMetaData metaData,
@Valid XtaFile messageFile,
@Valid List<XtaFile> attachments
@NotNull @Valid XtaMessageMetaData metaData,
@NotNull @Valid XtaFile messageFile,
@NotNull List<@Valid XtaFile> attachments
) {
}
......@@ -4,6 +4,7 @@ import java.math.BigInteger;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.PositiveOrZero;
import lombok.Builder;
......@@ -15,8 +16,8 @@ public record XtaMessageMetaData(
@NotBlank String messageTypeCode,
@NotBlank String messageTypePayloadSchema,
@NotBlank String messageId,
@Valid Identifier authorIdentifier,
@Valid Identifier readerIdentifier,
@NotNull @Valid Identifier authorIdentifier,
@NotNull @Valid Identifier readerIdentifier,
@PositiveOrZero BigInteger messageSize
) {
}
......@@ -4,6 +4,7 @@ import java.math.BigInteger;
import java.util.List;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.PositiveOrZero;
import lombok.Builder;
......@@ -11,6 +12,6 @@ import lombok.Builder;
@Builder
public record XtaMessageMetaDataListing(
@PositiveOrZero BigInteger pendingMessageCount,
@Valid List<XtaMessageMetaData> messages
@NotNull @Valid List<XtaMessageMetaData> messages
) {
}
package de.ozgcloud.xta.client;
import static org.assertj.core.api.Assertions.*;
import java.io.File;
import java.io.IOException;
import java.util.List;
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 com.google.common.io.Files;
import de.ozgcloud.xta.client.config.XtaClientConfig;
import lombok.SneakyThrows;
class XtaClientITCase {
private XtaClient client;
private static final String CLIENT_IDENTIFIER = "afmsh:010600000000_Online-Dienste";
private static final String BASE_URL = "https://li33-0005.dp.dsecurecloud.de/MB_XTA-WS/XTA210";
private static final XtaClientFactory clientFactory;
private static final XtaClientConfig CONFIG;
static {
var clientCertKeyStore = XtaClientConfig.KeyStore.builder()
.content(readBytesFromFile("/path/to/KOP_SH_KIEL_DEV.p12"))
.type("PKCS12")
.password("***".toCharArray())
.build();
CONFIG = XtaClientConfig.builder()
.clientIdentifiers(List.of(CLIENT_IDENTIFIER))
.managementServiceUrl(BASE_URL + "managementPort.svc")
.sendServiceUrl(BASE_URL + "sendPort.svc")
.msgBoxServiceUrl(BASE_URL + "msgBoxPort.svc")
.clientCertKeystore(clientCertKeyStore)
.logSoapRequests(true)
.logSoapResponses(true)
.build();
clientFactory = XtaClientFactory.from(CONFIG);
}
@BeforeEach
@SneakyThrows
void mock() {
client = clientFactory.create();
}
@DisplayName("get status list")
@Nested
class TestGetStatusList {
@DisplayName("should return with no pending messages")
@Test
@SneakyThrows
void shouldReturnWithNoPendingMessages() {
var result = client.getMessagesMetadata(CLIENT_IDENTIFIER);
assertThat(result.pendingMessageCount()).isZero();
}
}
private static byte[] readBytesFromFile(String path) {
try {
return Files.toByteArray(new File(path));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
\ No newline at end of file
......@@ -20,7 +20,7 @@ import lombok.SneakyThrows;
class WrappedXtaServiceFactoryTest {
@Mock
private XTAServiceFactory xtaServiceFactory;
private XTAPortTripleFactory xtaServiceFactory;
@Mock
private WebServiceTypeMapper typeMapper;
@Mock
......
package de.ozgcloud.xta.client.core;
import static de.ozgcloud.xta.client.core.XTAServiceFactory.*;
import static de.ozgcloud.xta.client.core.XTAPortTripleFactory.*;
import static org.assertj.core.api.AssertionsForClassTypes.*;
import static org.mockito.Mockito.*;
......@@ -52,7 +52,7 @@ class XTAServiceFactoryTest {
@Spy
@InjectMocks
private XTAServiceFactory factory;
private XTAPortTripleFactory factory;
@DisplayName("create")
@Nested
......@@ -198,6 +198,7 @@ class XTAServiceFactoryTest {
@DisplayName("should keep old")
@Test
@SneakyThrows
void shouldKeepOld() {
factory.configureRequestContext(endpointUrl, requestContext);
......@@ -216,6 +217,7 @@ class XTAServiceFactoryTest {
@DisplayName("should add schema validation")
@ParameterizedTest
@ValueSource(booleans = { true, false })
@SneakyThrows
void shouldAddSchemaValidation(boolean validation) {
reset(config);
when(config.isSchemaValidation()).thenReturn(validation);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment