From 1aaaa040e4f149c3601853e2fa7311e5c6167677 Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Mon, 24 Jun 2024 15:26:20 +0200 Subject: [PATCH] OZG-5666 handle empty sentAt --- .../antragraum/AntragraumNachrichtMapper.java | 11 +++++++++++ .../antragraum/AntragraumNachrichtMapperTest.java | 10 ++++++++++ 2 files changed, 21 insertions(+) diff --git a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapper.java b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapper.java index a858266..0d576aa 100644 --- a/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapper.java +++ b/nachrichten-manager-server/src/main/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapper.java @@ -24,6 +24,9 @@ package de.ozgcloud.nachrichten.antragraum; +import java.time.ZonedDateTime; + +import org.apache.commons.lang3.StringUtils; import org.mapstruct.CollectionMappingStrategy; import org.mapstruct.Mapper; import org.mapstruct.Mapping; @@ -71,8 +74,16 @@ interface AntragraumNachrichtMapper { @Mapping(target = "sentSuccessful", constant = "true") @Mapping(target = "subject", constant = "Antwort") // TODO klären @Mapping(target = "vorgangId", ignore = true) + @Mapping(target = "sentAt", expression = "java(mapZonedDateTime(answer.getSentAt()))") PostfachNachricht fromRueckfrageAnswer(GrpcRueckfrageAnswer answer); + default ZonedDateTime mapZonedDateTime(String sentAt) { + if (StringUtils.isBlank(sentAt)) { + return null; + } + return ZonedDateTime.parse(sentAt); + } + @Mapping(target = "mergeFrom", ignore = true) @Mapping(target = "clearField", ignore = true) @Mapping(target = "clearOneof", ignore = true) diff --git a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapperTest.java b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapperTest.java index ddd404c..528286a 100644 --- a/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapperTest.java +++ b/nachrichten-manager-server/src/test/java/de/ozgcloud/nachrichten/antragraum/AntragraumNachrichtMapperTest.java @@ -26,6 +26,7 @@ import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import java.time.temporal.ChronoUnit; +import org.apache.commons.lang3.StringUtils; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.mapstruct.factory.Mappers; @@ -148,6 +149,15 @@ class AntragraumNachrichtMapperTest { assertThat(result.getSentAt()).isCloseTo(PostfachNachrichtTestFactory.SENT_AT, within(2, ChronoUnit.SECONDS)); } + @Test + void shouldHandleEmptySentAt() { + var rueckfrage = GrpcRueckfrageAnswerTestFactory.createBuilder().setSentAt(StringUtils.EMPTY).build(); + + var result = mapper.fromRueckfrageAnswer(rueckfrage); + + assertThat(result.getSentAt()).isNull(); + } + private PostfachNachricht map() { return mapper.fromRueckfrageAnswer(GrpcRueckfrageAnswerTestFactory.create()); } -- GitLab