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

OZG-7878 servicekonto: Catch runtime-exception in getPostfachAddressType

parent 18519a0b
No related tags found
No related merge requests found
...@@ -102,7 +102,12 @@ public class ServiceKontoFactory { ...@@ -102,7 +102,12 @@ public class ServiceKontoFactory {
} }
int getPostfachAddressType(Map<String, Object> restResponseName) { int getPostfachAddressType(Map<String, Object> restResponseName) {
return getMailboxType(restResponseName); try {
return getMailboxType(restResponseName);
} catch (RuntimeException e) {
LOG.error("Error while getting mailbox type from rest response name", e);
return POSTFACH_ADDRESS_DEFAULT;
}
} }
private Integer getMailboxType(Map<String, Object> restResponseName) { private Integer getMailboxType(Map<String, Object> restResponseName) {
......
...@@ -23,6 +23,7 @@ ...@@ -23,6 +23,7 @@
*/ */
package de.ozgcloud.eingang.semantik.common; package de.ozgcloud.eingang.semantik.common;
import static de.ozgcloud.eingang.semantik.common.ServiceKontoFactory.*;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import static org.mockito.ArgumentMatchers.*; import static org.mockito.ArgumentMatchers.*;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
...@@ -34,6 +35,8 @@ import org.junit.jupiter.api.BeforeEach; ...@@ -34,6 +35,8 @@ 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.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import org.mockito.InjectMocks; import org.mockito.InjectMocks;
import org.mockito.Spy; import org.mockito.Spy;
...@@ -41,10 +44,10 @@ import de.ozgcloud.eingang.common.formdata.FormData; ...@@ -41,10 +44,10 @@ import de.ozgcloud.eingang.common.formdata.FormData;
import de.ozgcloud.eingang.common.formdata.FormDataUtils; import de.ozgcloud.eingang.common.formdata.FormDataUtils;
import de.ozgcloud.eingang.common.formdata.PostfachAddressTestFactory; import de.ozgcloud.eingang.common.formdata.PostfachAddressTestFactory;
import de.ozgcloud.eingang.common.formdata.ServiceKonto; import de.ozgcloud.eingang.common.formdata.ServiceKonto;
import de.ozgcloud.eingang.common.formdata.ServiceKonto.PostfachAddress;
import de.ozgcloud.eingang.common.formdata.ServiceKonto.TrustLevel; import de.ozgcloud.eingang.common.formdata.ServiceKonto.TrustLevel;
import de.ozgcloud.eingang.common.formdata.ServiceKontoTestFactory; import de.ozgcloud.eingang.common.formdata.ServiceKontoTestFactory;
import de.ozgcloud.eingang.common.formdata.StringBasedIdentifier; import de.ozgcloud.eingang.common.formdata.StringBasedIdentifier;
import de.ozgcloud.eingang.common.formdata.ServiceKonto.PostfachAddress;
class ServiceKontoFactoryTest { class ServiceKontoFactoryTest {
...@@ -104,8 +107,9 @@ class ServiceKontoFactoryTest { ...@@ -104,8 +107,9 @@ class ServiceKontoFactoryTest {
@Nested @Nested
class TestWithRestResponseName { class TestWithRestResponseName {
@DisplayName("should call buildOsiPostfachV1Address")
@Test @Test
void shouldCallBuildAddresses() { void shouldCallBuildOsiPostfachV1Address() {
getPostfachAddresses(); getPostfachAddresses();
verify(factory).buildOsiPostfachV1Address(any(), anyInt()); verify(factory).buildOsiPostfachV1Address(any(), anyInt());
...@@ -123,11 +127,62 @@ class ServiceKontoFactoryTest { ...@@ -123,11 +127,62 @@ class ServiceKontoFactoryTest {
assertThat(addresses.get(0).getType()).isEqualTo(PostfachAddressTestFactory.POSTFACH_ADDRESS_TYPE); assertThat(addresses.get(0).getType()).isEqualTo(PostfachAddressTestFactory.POSTFACH_ADDRESS_TYPE);
} }
@DisplayName("should return with postfach address type")
@ParameterizedTest
@ValueSource(ints = { 1, 2, 3 })
void shouldReturnWithPostfachAddressType(int postfachAddressType) {
var formDataWithPostfachAddressType = FormDataUtils.from(FORM_DATA)
.put(ServiceKontoFactory.REST_RESPONSE_NAME, List.of(Map.of(
ServiceKontoFactory.REST_RESPONSE_NAME_MEMBER_SCOPE,
List.of(Map.of(ServiceKontoFactory.REST_RESPONSE_NAME_MEMBER_SCOPE_MAILBOX_TYPE,
postfachAddressType))))
)
.build();
var addresses = buildServiceKonto(formDataWithPostfachAddressType);
var types = addresses.getPostfachAddresses()
.stream()
.map(PostfachAddress::getType)
.toList();
assertThat(types).containsExactly(postfachAddressType);
}
private List<PostfachAddress> getPostfachAddresses() { private List<PostfachAddress> getPostfachAddresses() {
return buildServiceKonto(FORM_DATA).getPostfachAddresses(); return buildServiceKonto(FORM_DATA).getPostfachAddresses();
} }
} }
@DisplayName("with bad rest_response_name")
@Nested
class TestWithBadRestResponseName {
private final FormData formDataWithBadRestResponseName = FormDataUtils.from(FORM_DATA)
.put(ServiceKontoFactory.REST_RESPONSE_NAME, List.of(Map.of())).build();
@DisplayName("should call buildOsiPostfachV1Address")
@Test
void shouldCallBuildOsiPostfachV1Address() {
getPostfachAddresses();
verify(factory).buildOsiPostfachV1Address(any(), anyInt());
}
@DisplayName("should return postfach address with default type")
@Test
void shouldReturnPostfachAddressWithDefaultType() {
var addresses = getPostfachAddresses();
assertThat(addresses)
.extracting("type")
.containsExactly(POSTFACH_ADDRESS_DEFAULT);
}
private List<PostfachAddress> getPostfachAddresses() {
return buildServiceKonto(formDataWithBadRestResponseName).getPostfachAddresses();
}
}
@DisplayName("without rest_response_name") @DisplayName("without rest_response_name")
@Nested @Nested
class TestWithoutRestResponseName { class TestWithoutRestResponseName {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment