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

KOP-2139 KOP-2471 Use better identifiers

parent 18d46dcb
No related branches found
No related tags found
No related merge requests found
...@@ -41,7 +41,10 @@ public class XtaClient { ...@@ -41,7 +41,10 @@ public class XtaClient {
} }
Identifier deriveIdentifier(String xtaIdentifier) { Identifier deriveIdentifier(String xtaIdentifier) {
return Identifier.builder().value(xtaIdentifier).build(); return config.getClientIdentifiers().stream()
.filter(id -> id.value().equals(xtaIdentifier))
.findFirst()
.orElseThrow(() -> new IllegalArgumentException("Unknown identifier: " + xtaIdentifier));
} }
public XtaMessage getMessage(String messageId) { public XtaMessage getMessage(String messageId) {
......
...@@ -19,6 +19,7 @@ import jakarta.validation.constraints.NotEmpty; ...@@ -19,6 +19,7 @@ import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Positive; import jakarta.validation.constraints.Positive;
import de.ozgcloud.xta.client.model.Identifier;
import lombok.Builder; import lombok.Builder;
import lombok.Getter; import lombok.Getter;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
...@@ -31,7 +32,7 @@ import lombok.ToString; ...@@ -31,7 +32,7 @@ import lombok.ToString;
public class XtaClientConfig { public class XtaClientConfig {
@NotEmpty(message = "at least one client identifier is required") @NotEmpty(message = "at least one client identifier is required")
private final List<@NotBlank String> clientIdentifiers; private final List<@Valid Identifier> clientIdentifiers;
@NotBlank @NotBlank
private final String managementServiceUrl; private final String managementServiceUrl;
......
...@@ -69,7 +69,7 @@ public interface ModelMapper { ...@@ -69,7 +69,7 @@ public interface ModelMapper {
@Mapping(target = "originators.author.identifier", source = "authorIdentifier") @Mapping(target = "originators.author.identifier", source = "authorIdentifier")
@Mapping(target = "destinations.reader.identifier", source = "readerIdentifier") @Mapping(target = "destinations.reader.identifier", source = "readerIdentifier")
@Mapping(target = "msgSize", source = "messageSize") @Mapping(target = "msgSize", source = "messageSize")
@Mapping(target = "testMsg", constant = "false") @Mapping(target = "testMsg", ignore = true)
@Mapping(target = "deliveryAttributes", ignore = true) @Mapping(target = "deliveryAttributes", ignore = true)
@Mapping(target = "messageProperties", ignore = true) @Mapping(target = "messageProperties", ignore = true)
MessageMetaData mapMessageMetaDataFromXtaMessageMetaData(XtaMessageMetaData xtaMessageMetaData); MessageMetaData mapMessageMetaDataFromXtaMessageMetaData(XtaMessageMetaData xtaMessageMetaData);
......
...@@ -21,14 +21,18 @@ import lombok.SneakyThrows; ...@@ -21,14 +21,18 @@ import lombok.SneakyThrows;
public class XtaClientConfigTestFactory { public class XtaClientConfigTestFactory {
public static final String SELF_IDENTIFIER_VALUE = "selfIdentifier"; public static final String SELF_IDENTIFIER_VALUE = "dp:selfIdentifier";
public static final Identifier SELF_IDENTIFIER = Identifier.builder() public static final Identifier SELF_IDENTIFIER = Identifier.builder()
.value(SELF_IDENTIFIER_VALUE) .value(SELF_IDENTIFIER_VALUE)
.category("Generic category") .category("Generic category")
.name("Generic Name") .name("Generic Name")
.build(); .build();
public static final int MAX_LIST_ITEMS = 10; public static final int MAX_LIST_ITEMS = 10;
static final String SELF_IDENTIFIER2 = "selfIdentifier2"; static final Identifier SELF_IDENTIFIER2 = Identifier.builder()
.value("dp:selfIdentifier2")
.category("Generic category")
.name("Generic Name")
.build();
public static final String KEYSTORE_ALIAS = "selfSigned"; public static final String KEYSTORE_ALIAS = "selfSigned";
...@@ -51,7 +55,7 @@ public class XtaClientConfigTestFactory { ...@@ -51,7 +55,7 @@ public class XtaClientConfigTestFactory {
.managementServiceUrl(MANAGEMENT_PORT_SVC) .managementServiceUrl(MANAGEMENT_PORT_SVC)
.sendServiceUrl(SEND_PORT_SVC) .sendServiceUrl(SEND_PORT_SVC)
.msgBoxServiceUrl(MSG_BOX_PORT_SVC) .msgBoxServiceUrl(MSG_BOX_PORT_SVC)
.clientIdentifiers(List.of(SELF_IDENTIFIER_VALUE, SELF_IDENTIFIER2)) .clientIdentifiers(List.of(SELF_IDENTIFIER, SELF_IDENTIFIER2))
.maxListItems(MAX_LIST_ITEMS) .maxListItems(MAX_LIST_ITEMS)
.logSoapRequests(true) .logSoapRequests(true)
.logSoapResponses(true) .logSoapResponses(true)
......
...@@ -9,8 +9,6 @@ import org.junit.jupiter.api.Nested; ...@@ -9,8 +9,6 @@ import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable;
import org.junit.jupiter.api.extension.RegisterExtension; import org.junit.jupiter.api.extension.RegisterExtension;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import lombok.SneakyThrows; import lombok.SneakyThrows;
...@@ -42,11 +40,10 @@ class XtaClientITCase { ...@@ -42,11 +40,10 @@ class XtaClientITCase {
class TestWithNoMessages { class TestWithNoMessages {
@DisplayName("should return zero pending messages") @DisplayName("should return zero pending messages")
@ParameterizedTest @Test
@ValueSource(strings = { CLIENT_IDENTIFIER1, CLIENT_IDENTIFIER2 })
@SneakyThrows @SneakyThrows
void shouldReturnZeroPendingMessages(String clientIdentifiers) { void shouldReturnZeroPendingMessages() {
var result = client.getMessagesMetadata(clientIdentifiers); var result = client.getMessagesMetadata(CLIENT_IDENTIFIER2.value());
assertThat(result.pendingMessageCount()).isZero(); assertThat(result.pendingMessageCount()).isZero();
} }
...@@ -65,7 +62,7 @@ class XtaClientITCase { ...@@ -65,7 +62,7 @@ class XtaClientITCase {
@Test @Test
@SneakyThrows @SneakyThrows
void shouldReturnOnePendingMessageClient2() { void shouldReturnOnePendingMessageClient2() {
var result = client.getMessagesMetadata(CLIENT_IDENTIFIER2); var result = client.getMessagesMetadata(CLIENT_IDENTIFIER2.value());
assertThat(result.pendingMessageCount()).isOne(); assertThat(result.pendingMessageCount()).isOne();
...@@ -75,7 +72,7 @@ class XtaClientITCase { ...@@ -75,7 +72,7 @@ class XtaClientITCase {
@Test @Test
@SneakyThrows @SneakyThrows
void shouldReturnNoPendingMessageForClient1() { void shouldReturnNoPendingMessageForClient1() {
var result = client.getMessagesMetadata(CLIENT_IDENTIFIER1); var result = client.getMessagesMetadata(CLIENT_IDENTIFIER1.value());
assertThat(result.pendingMessageCount()).isZero(); assertThat(result.pendingMessageCount()).isZero();
} }
......
...@@ -4,6 +4,8 @@ import static de.ozgcloud.xta.client.XtaClientConfigTestFactory.*; ...@@ -4,6 +4,8 @@ import static de.ozgcloud.xta.client.XtaClientConfigTestFactory.*;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
import java.util.List;
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;
...@@ -77,7 +79,6 @@ class XtaClientTest { ...@@ -77,7 +79,6 @@ class XtaClientTest {
@BeforeEach @BeforeEach
@SneakyThrows @SneakyThrows
void mock() { void mock() {
doReturn(SELF_IDENTIFIER).when(client).deriveIdentifier(SELF_IDENTIFIER_VALUE);
when(service.getStatusList(SELF_IDENTIFIER, MAX_LIST_ITEMS)).thenReturn(xtaMessageMetaDataListing); when(service.getStatusList(SELF_IDENTIFIER, MAX_LIST_ITEMS)).thenReturn(xtaMessageMetaDataListing);
when(config.getMaxListItems()).thenReturn(MAX_LIST_ITEMS); when(config.getMaxListItems()).thenReturn(MAX_LIST_ITEMS);
} }
...@@ -99,10 +100,22 @@ class XtaClientTest { ...@@ -99,10 +100,22 @@ class XtaClientTest {
@DisplayName("should use value") @DisplayName("should use value")
@Test @Test
void shouldUseValue() { void shouldUseValue() {
when(config.getClientIdentifiers()).thenReturn(List.of(SELF_IDENTIFIER2, SELF_IDENTIFIER));
var result = client.deriveIdentifier(SELF_IDENTIFIER_VALUE); var result = client.deriveIdentifier(SELF_IDENTIFIER_VALUE);
assertThat(result.value()).isEqualTo(SELF_IDENTIFIER_VALUE); assertThat(result.value()).isEqualTo(SELF_IDENTIFIER_VALUE);
} }
@DisplayName("should throw when unknown")
@Test
void shouldThrowWhenUnknown() {
when(config.getClientIdentifiers()).thenReturn(List.of(SELF_IDENTIFIER2));
assertThatThrownBy(() -> client.deriveIdentifier(SELF_IDENTIFIER_VALUE))
.isInstanceOf(IllegalArgumentException.class)
.hasMessage("Unknown identifier: " + SELF_IDENTIFIER_VALUE);
}
} }
} }
\ No newline at end of file
...@@ -33,8 +33,22 @@ public class XtaDevServerSetupExtension implements BeforeAllCallback, BeforeEach ...@@ -33,8 +33,22 @@ public class XtaDevServerSetupExtension implements BeforeAllCallback, BeforeEach
static final String BASE_URL = "https://li33-0005.dp.dsecurecloud.de/MB_XTA-WS/XTA210"; static final String BASE_URL = "https://li33-0005.dp.dsecurecloud.de/MB_XTA-WS/XTA210";
// static final String CLIENT_IDENTIFIER1 = "dp:012345678910_XtaClientITCase1"; // static final String CLIENT_IDENTIFIER1 = "dp:012345678910_XtaClientITCase1";
static final String CLIENT_IDENTIFIER1 = "ehp:010100100000"; static final Identifier CLIENT_IDENTIFIER1 = Identifier.builder()
static final String CLIENT_IDENTIFIER2 = "vbe:010550120100"; .value("gad:010103000000")
.category("DMS Schleswig-Holstein")
.name("Generischer Antragsdienst")
.build();
// static final Identifier CLIENT_IDENTIFIER1 = Identifier.builder()
// .value("gae:test-environment@ozg-cloud.de")
// .category("Generischer Antragsempfänger")
// .name("Test-Umgebung")
// .build();
// static final String CLIENT_IDENTIFIER2 = "vbe:010550120100";
static final Identifier CLIENT_IDENTIFIER2 = Identifier.builder()
.value("gae:test-environment@ozg-cloud.de")
.category("Generischer Antragsempfänger")
.name("Test-Umgebung")
.build();
@Override @Override
@SneakyThrows @SneakyThrows
...@@ -73,12 +87,12 @@ public class XtaDevServerSetupExtension implements BeforeAllCallback, BeforeEach ...@@ -73,12 +87,12 @@ public class XtaDevServerSetupExtension implements BeforeAllCallback, BeforeEach
@Override @Override
@SneakyThrows @SneakyThrows
public void beforeEach(ExtensionContext context) { public void beforeEach(ExtensionContext context) {
closeAllMessages(clientId2()); closeAllMessages(CLIENT_IDENTIFIER2);
} }
@SneakyThrows @SneakyThrows
public void sendTestMessageToClient2() { public void sendTestMessageToClient2() {
sendTestMessageToClient2(clientId(), clientId2()); sendTestMessageToClient2(CLIENT_IDENTIFIER1, CLIENT_IDENTIFIER2);
} }
@SneakyThrows @SneakyThrows
...@@ -121,12 +135,4 @@ public class XtaDevServerSetupExtension implements BeforeAllCallback, BeforeEach ...@@ -121,12 +135,4 @@ public class XtaDevServerSetupExtension implements BeforeAllCallback, BeforeEach
return Files.toByteArray(new File(path)); return Files.toByteArray(new File(path));
} }
private Identifier clientId() {
return client.deriveIdentifier(CLIENT_IDENTIFIER1);
}
private Identifier clientId2() {
return client.deriveIdentifier(CLIENT_IDENTIFIER2);
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment