Skip to content
Snippets Groups Projects
Commit 3d6e2a92 authored by OZGCloud's avatar OZGCloud
Browse files

Merge pull request 'OZG-6845 Wert für ozgcloud_nachrichten-manager.address...

Merge pull request 'OZG-6845 Wert für ozgcloud_nachrichten-manager.address korrigieren' (#38) from OZG-6845-Wert-ozgcloud_nachrichten-manager_address-korrigieren into master

Reviewed-on: https://git.ozg-sh.de/ozgcloud-app/info-manager/pulls/38


Reviewed-by: default avatarOZGCloud <ozgcloud@mgm-tp.com>
parents 58b2aade 37664938
No related branches found
No related tags found
No related merge requests found
......@@ -32,8 +32,9 @@ import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
class NachrichtMapper {
static final String LOCAL_PROFILE = "local";
private static final String NACHRICHTEN_LIST_URL_REGEX = "^[A-Za-z\\d-]+(\\.[A-Za-z\\d-]+){0,512}:\\d{1,5}$";
static final String NACHRICHTEN_LIST_URL_FORMAT = "dns:///%s";
private static final String NACHRICHTEN_LIST_URL_REGEX = "^(dns:///)?[A-Za-z\\d-]+(\\.[A-Za-z\\d-]+){0,512}:\\d{1,5}$";
static final String DNS_PREFIX = "dns:///";
static final String NACHRICHTEN_LIST_URL_FORMAT = DNS_PREFIX + "%s";
private final Environment environment;
......@@ -54,6 +55,6 @@ class NachrichtMapper {
throw new InvalidNachrichtenListUrlException(nachrichtenListUrl);
}
return String.format(NACHRICHTEN_LIST_URL_FORMAT, nachrichtenListUrl);
return nachrichtenListUrl.startsWith(DNS_PREFIX) ? nachrichtenListUrl : NACHRICHTEN_LIST_URL_FORMAT.formatted(nachrichtenListUrl);
}
}
......@@ -34,6 +34,7 @@ public class NachrichtEventTestFactory {
public static final String POSTKORB_HANDLE = UserTestFactory.POSTKORB_HANDLE;
public static final String EMPTY_POSTFACH_HANDLE = "73228744-a28a-4485-845b-d8cc02422760";
public static final String URL = "localhost:6789";
public static final String URL_WITH_DNS = "dns:///" + URL;
public static NachrichtEvent createNachrichtEvent() {
return createNachrichtEventBuilder().build();
......
......@@ -25,6 +25,7 @@ import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*;
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.extension.ExtendWith;
......@@ -93,32 +94,39 @@ class NachrichtenMapperTest {
assertThat(result).isEqualTo(NachrichtEventTestFactory.URL);
}
@Test
void shouldHaveValidFormat() {
var grpcNachricht = NachrichtEventTestFactory.createGrpcNachricht();
var expectedNachrichtenListUrl = String.format(NACHRICHTEN_LIST_URL_FORMAT, NachrichtEventTestFactory.URL);
var result = nachrichtenMapper.getNachrichtenListUrl(grpcNachricht);
assertThat(result).isEqualTo(expectedNachrichtenListUrl);
}
@Test
void shouldHaveValidSubdomainFormat() {
var url = "test.example.com:20";
@DisplayName("should have valid format when")
@ParameterizedTest(name = "url: {0}")
@ValueSource(strings = { NachrichtEventTestFactory.URL, NachrichtEventTestFactory.URL_WITH_DNS, "test.example.com:20" })
void shouldHaveValidFormat(String url) {
var grpcNachricht = NachrichtEventTestFactory.createGrpcNachrichtBuilder().setNachrichtenListUrl(url).build();
var expectedNachrichtenListUrl = String.format(NACHRICHTEN_LIST_URL_FORMAT, url);
var result = nachrichtenMapper.getNachrichtenListUrl(grpcNachricht);
assertThat(result).isEqualTo(expectedNachrichtenListUrl);
assertThatNoException().isThrownBy(() -> nachrichtenMapper.getNachrichtenListUrl(grpcNachricht));
}
@ParameterizedTest
@ValueSource(strings = { "invalidUrl", "%test%:2345", "localhost:234567" })
@ValueSource(strings = { "invalidUrl", "%test%:2345", "localhost:234567", "dns://host:9090" })
void shouldHaveInvalidFormat(String url) {
var grpcNachricht = NachrichtEventTestFactory.createGrpcNachrichtBuilder().setNachrichtenListUrl(url).build();
assertThatExceptionOfType(InvalidNachrichtenListUrlException.class).isThrownBy(
() -> nachrichtenMapper.getNachrichtenListUrl(grpcNachricht));
}
@Test
void shouldAddDnsPrefix() {
var result = nachrichtenMapper.getNachrichtenListUrl(NachrichtEventTestFactory.createGrpcNachricht());
assertThat(result).isEqualTo(NachrichtEventTestFactory.URL_WITH_DNS);
}
@Test
void shouldNotAddDnsPrefix() {
var grpcNachricht = NachrichtEventTestFactory.createGrpcNachrichtBuilder().setNachrichtenListUrl(NachrichtEventTestFactory.URL_WITH_DNS)
.build();
var result = nachrichtenMapper.getNachrichtenListUrl(grpcNachricht);
assertThat(result).isEqualTo(NachrichtEventTestFactory.URL_WITH_DNS);
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment