From fce7282421bf636927990552f40efd890bb6081a Mon Sep 17 00:00:00 2001 From: "Zickermann, Jan" <jan.zickermann@dataport.de> Date: Fri, 3 May 2024 15:12:13 +0200 Subject: [PATCH] OZG-5415 Mantelantrag: Log warning instead of throwing exception --- .../MantelantragFormBasedMapper.java | 13 +++++++- .../MantelantragFormBasedMapperTest.java | 31 +++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/MantelantragFormBasedMapper.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/MantelantragFormBasedMapper.java index e0b943c70..d6e7196a5 100644 --- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/MantelantragFormBasedMapper.java +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/MantelantragFormBasedMapper.java @@ -13,9 +13,11 @@ import de.ozgcloud.eingang.common.errorhandling.TechnicalException; import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle; import lombok.RequiredArgsConstructor; +import lombok.extern.log4j.Log4j2; @Component @RequiredArgsConstructor +@Log4j2 public class MantelantragFormBasedMapper implements FormBasedMapper { private final Environment environment; @@ -42,6 +44,15 @@ public class MantelantragFormBasedMapper implements FormBasedMapper { @Override public FormData adaptFormData(FormData formData) { + try { + return adaptFormDataWithPossibleException(formData); + } catch (TechnicalException exception) { + LOG.warn("Mantelantrag is invalid: %s".formatted(exception.getMessage())); + return formData; + } + } + + FormData adaptFormDataWithPossibleException(FormData formData) { var fieldMap = formData.getFormData(); var slotIndex = findSlotIndex(fieldMap); UnaryOperator<String> getValueOrEmpty = field -> getFieldByKeyOrEmpty( @@ -51,7 +62,7 @@ public class MantelantragFormBasedMapper implements FormBasedMapper { var organisationseinheitId = getValueOrEmpty.apply(ORGANISATIONSEINHEIT_ID_FIELD); if (organisationseinheitId.isBlank()) { - throw new TechnicalException("OrganistaionseinheitId not found in Mantelantrag!"); + throw new TechnicalException("OrganistaionseinheitId not found!"); } return formData.toBuilder() diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/MantelantragFormBasedMapperTest.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/MantelantragFormBasedMapperTest.java index 744115a58..bdc78480b 100644 --- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/MantelantragFormBasedMapperTest.java +++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/MantelantragFormBasedMapperTest.java @@ -76,6 +76,37 @@ class MantelantragFormBasedMapperTest { @Nested class TestAdaptFormData { + @Mock + private FormData formData; + + @Mock + private FormData formData2; + + @DisplayName("should return adapted value") + @Test + void shouldReturnAdaptedValue() { + doReturn(formData2).when(mapper).adaptFormDataWithPossibleException(formData); + + var resultFormData = mapper.adaptFormData(formData); + + assertThat(resultFormData).isEqualTo(formData2); + } + + @DisplayName("should return original value with exception") + @Test + void shouldReturnOriginalValueWithException() { + doThrow(new TechnicalException("some error")).when(mapper).adaptFormDataWithPossibleException(formData); + + var resultFormData = mapper.adaptFormData(formData); + + assertThat(resultFormData).isEqualTo(formData); + } + } + + @DisplayName("adapt form data with possible exception") + @Nested + class TestAdaptFormDataWithPossibleException { + private FormData formData; private Map<String, Object> fieldMap; -- GitLab