From 6a8c44b99546e7d702e50fb6797df0e7ae1b745d Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Fri, 26 Jul 2024 15:46:59 +0200
Subject: [PATCH] OZG-6179 set sentAt to now if missing

---
 .../antragraum/AntragraumNachrichtMapper.java |  2 +-
 .../AntragraumNachrichtMapperTest.java        | 34 ++++++++++---------
 2 files changed, 19 insertions(+), 17 deletions(-)

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 76594d7..53e7298 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
@@ -75,7 +75,7 @@ interface AntragraumNachrichtMapper {
 
 	default ZonedDateTime mapZonedDateTime(String sentAt) {
 		if (StringUtils.isBlank(sentAt)) {
-			return null;
+			return ZonedDateTime.now();
 		}
 		return ZonedDateTime.parse(sentAt);
 	}
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 aa1755d..6c6b862 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
@@ -27,6 +27,7 @@ import java.time.format.DateTimeFormatter;
 import java.time.temporal.ChronoUnit;
 
 import org.apache.commons.lang3.StringUtils;
+import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
 import org.junit.jupiter.api.Test;
 import org.mapstruct.factory.Mappers;
@@ -45,40 +46,40 @@ class AntragraumNachrichtMapperTest {
 
 		@Test
 		void shouldMapVorgangId() {
-			var result = map();
+			var result = toGrpc();
 
 			assertThat(result.getVorgangId()).isEqualTo(RueckfrageHeadTestFactory.VORGANG_ID);
 		}
 
 		@Test
 		void shouldMapId() {
-			var result = map();
+			var result = toGrpc();
 
 			assertThat(result.getId()).isEqualTo(RueckfrageHeadTestFactory.ID);
 		}
 
 		@Test
 		void shouldMapVorgangName() {
-			var result = map();
+			var result = toGrpc();
 
 			assertThat(result.getVorgangName()).isEqualTo(RueckfrageHeadTestFactory.VORGANG_NAME);
 		}
 
 		@Test
 		void shouldMapStatus() {
-			var result = map();
+			var result = toGrpc();
 
 			assertThat(result.getStatus()).isEqualTo(RueckfrageStatus.NEW.name());
 		}
 
 		@Test
 		void shouldMapSentAt() {
-			var result = map();
+			var result = toGrpc();
 
 			assertThat(result.getSentAt()).isEqualTo(PostfachNachrichtTestFactory.SENT_AT.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));
 		}
 
-		private GrpcRueckfrageHead map() {
+		private GrpcRueckfrageHead toGrpc() {
 			return mapper.toGrpc(RueckfrageHeadTestFactory.create());
 		}
 
@@ -88,63 +89,64 @@ class AntragraumNachrichtMapperTest {
 	class TestMapAnswerToPostfachNachricht {
 		@Test
 		void shouldMapText() {
-			var result = map();
+			var result = fromRueckfrageAnswer();
 
 			assertThat(result.getMailBody()).isEqualTo(GrpcRueckfrageAnswerTestFactory.TEXT);
 		}
 
 		@Test
 		void shouldMapMessageId() {
-			var result = map();
+			var result = fromRueckfrageAnswer();
 
 			assertThat(result.getMessageId()).isEqualTo(GrpcRueckfrageAnswerTestFactory.RUECKFRAGE_ID);
 		}
 
 		@Test
 		void shouldMapAttachmentIds() {
-			var result = map();
+			var result = fromRueckfrageAnswer();
 
 			assertThat(result.getAttachments()).isEqualTo(GrpcRueckfrageAnswerTestFactory.ATTACHMENT_ID_LIST);
 		}
 
 		@Test
 		void shouldSetDirection() {
-			var result = map();
+			var result = fromRueckfrageAnswer();
 
 			assertThat(result.getDirection()).isEqualTo(Direction.IN);
 		}
 
 		@Test
 		void shouldSetReplyOption() {
-			var result = map();
+			var result = fromRueckfrageAnswer();
 
 			assertThat(result.getReplyOption()).isEqualTo(ReplyOption.FORBIDDEN);
 		}
 
 		@Test
 		void shouldSetCreateAt() {
-			var result = map();
+			var result = fromRueckfrageAnswer();
 
 			assertThat(result.getCreatedAt()).isCloseTo(ZonedDateTime.now(), within(2, ChronoUnit.SECONDS));
 		}
 
 		@Test
 		void shouldSetSentAt() {
-			var result = map();
+			var result = fromRueckfrageAnswer();
 
 			assertThat(result.getSentAt()).isCloseTo(PostfachNachrichtTestFactory.SENT_AT, within(2, ChronoUnit.SECONDS));
 		}
 
+		@DisplayName("should set sentAt to now if value is missing")
 		@Test
-		void shouldHandleEmptySentAt() {
+		void shouldSetSentAtIfMissing() {
 			var rueckfrage = GrpcRueckfrageAnswerTestFactory.createBuilder().setSentAt(StringUtils.EMPTY).build();
 
 			var result = mapper.fromRueckfrageAnswer(rueckfrage);
 
-			assertThat(result.getSentAt()).isNull();
+			assertThat(result.getSentAt()).isCloseTo(ZonedDateTime.now(), within(2, ChronoUnit.SECONDS));
 		}
 
-		private PostfachNachricht map() {
+		private PostfachNachricht fromRueckfrageAnswer() {
 			return mapper.fromRueckfrageAnswer(GrpcRueckfrageAnswerTestFactory.create());
 		}
 	}
-- 
GitLab