From 5e72cd448d52b882b9414f18648c600660b0f099 Mon Sep 17 00:00:00 2001 From: Jan Zickermann <jan.zickermann@dataport.de> Date: Fri, 31 Jan 2025 15:18:31 +0100 Subject: [PATCH] OZG-4095 receive: Use html rendering in response mapper --- .../osiv2/transfer/Osi2ResponseMapper.java | 2 +- .../factory/V1ReplyMessageTestFactory.java | 11 +++--- .../osiv2/transfer/Osi2HtmlDocumentTest.java | 6 +-- .../transfer/Osi2ResponseMapperTest.java | 37 +++++++++---------- 4 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2ResponseMapper.java b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2ResponseMapper.java index ceb9579..aef50b4 100644 --- a/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2ResponseMapper.java +++ b/src/main/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2ResponseMapper.java @@ -33,7 +33,7 @@ public interface Osi2ResponseMapper { @Mapping(target = "direction", constant = "IN") @Mapping(target = "vorgangId", source = "sequencenumber") @Mapping(target = "referencedNachricht", ignore = true) - @Mapping(target = "mailBody", expression = "java( message.getIsHtml() ? Osi2HtmlDocument.renderPlainText(message.getBody()) : message.getBody() )") + @Mapping(target = "mailBody", expression = "java( message.getIsHtml() ? Osi2HtmlDocument.renderToPlainText(message.getBody()) : message.getBody() )") @Mapping(target = "replyOption", source = "replyAction") @Mapping(target = "attachments", ignore = true) PostfachNachricht toPostfachNachricht(V1ReplyMessage message); diff --git a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/factory/V1ReplyMessageTestFactory.java b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/factory/V1ReplyMessageTestFactory.java index 6675805..e51f5ef 100644 --- a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/factory/V1ReplyMessageTestFactory.java +++ b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/factory/V1ReplyMessageTestFactory.java @@ -11,11 +11,12 @@ public class V1ReplyMessageTestFactory { private static final String SEQUENCE_NUMMER = "OZG-Cloud-VorgangId"; private static final String SUBJECT = "Das ist das Subject"; - private static final String BODY = """ - Das ist das Multiline&<br><br/> + public static final String HTML_REPLY_BODY = """ + Das ist das Multiline&<b>a</b><br><br/> Body"""; - private static final String CLEAN_BODY = """ - Das ist das Multiline& + public static final String REPLY_BODY = """ + Das ist das Multiline&<b>a</b> + Body"""; private static final String DISPLAY_NAME = "Das ist der Absender"; @@ -32,7 +33,7 @@ public class V1ReplyMessageTestFactory { return new V1ReplyMessage() .sequencenumber(SEQUENCE_NUMMER) .subject(SUBJECT) - .body(BODY) + .body(REPLY_BODY) .displayName(DISPLAY_NAME) .originSender(ORIGIN_SENDER) .replyAction(V1ReplyBehavior.fromValue(REPLAY_ACTION)) diff --git a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2HtmlDocumentTest.java b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2HtmlDocumentTest.java index fd8dc9e..c4a928a 100644 --- a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2HtmlDocumentTest.java +++ b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2HtmlDocumentTest.java @@ -48,7 +48,7 @@ class Osi2HtmlDocumentTest { void shouldRenderItalic(String italicExample) { var plainText = renderPlainText(italicExample); - assertThat(plainText).isEqualTo("*Example*"); + assertThat(plainText).isEqualTo("_Example_"); } @DisplayName("should render bold") @@ -57,7 +57,7 @@ class Osi2HtmlDocumentTest { void shouldRenderBold(String boldExample) { var plainText = renderPlainText(boldExample); - assertThat(plainText).isEqualTo("**Example**"); + assertThat(plainText).isEqualTo("__Example__"); } @DisplayName("should render image") @@ -81,7 +81,7 @@ class Osi2HtmlDocumentTest { void shouldRenderHtml() { var plainText = renderPlainText("<p>Example😶</p><br/><p>Example2</p><b>"); - assertThat(plainText).isEqualTo("Example\uD83D\uDE36\nExample2****"); + assertThat(plainText).isEqualTo("Example\uD83D\uDE36\nExample2____"); } private String renderPlainText(String html) { diff --git a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2ResponseMapperTest.java b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2ResponseMapperTest.java index af8bf0b..1c417e5 100644 --- a/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2ResponseMapperTest.java +++ b/src/test/java/de/ozgcloud/nachrichten/postfach/osiv2/transfer/Osi2ResponseMapperTest.java @@ -1,5 +1,6 @@ package de.ozgcloud.nachrichten.postfach.osiv2.transfer; +import static de.ozgcloud.nachrichten.postfach.osiv2.factory.V1ReplyMessageTestFactory.*; import static org.assertj.core.api.Assertions.*; import java.time.ZonedDateTime; @@ -26,21 +27,21 @@ class Osi2ResponseMapperTest { @Nested class V1ReplyMessageToPostfachNachricht { @Test - void shouldHaveId(){ + void shouldHaveId() { var postfachNachricht = mapper.toPostfachNachricht(message); assertThat(postfachNachricht.getId()).isEqualTo(UUID.nameUUIDFromBytes("123-guid-456".getBytes()).toString()); } @Test - void shouldHaveVorgangId(){ + void shouldHaveVorgangId() { var postfachNachricht = mapper.toPostfachNachricht(message); assertThat(postfachNachricht.getVorgangId()).isEqualTo("OZG-Cloud-VorgangId"); } @Test - void shouldHavePostfachAddress(){ + void shouldHavePostfachAddress() { var postfachNachricht = mapper.toPostfachNachricht(message); assertThat(postfachNachricht.getPostfachAddress().getIdentifier().toString()) @@ -48,65 +49,63 @@ class Osi2ResponseMapperTest { } @Test - void shouldHaveCreatedAt(){ + void shouldHaveCreatedAt() { var postfachNachricht = mapper.toPostfachNachricht(message); assertThat(postfachNachricht.getCreatedAt()).isNotNull().isCloseTo(ZonedDateTime.now(), within(5, ChronoUnit.SECONDS)); } @Test - void shouldHaveCreatedBy(){ + void shouldHaveCreatedBy() { var postfachNachricht = mapper.toPostfachNachricht(message); assertThat(postfachNachricht.getCreatedBy()).isEqualTo("Das ist der Absender"); } @Test - void shouldHaveSentAt(){ + void shouldHaveSentAt() { var postfachNachricht = mapper.toPostfachNachricht(message); assertThat(postfachNachricht.getSentAt()).isNotNull().isCloseTo(ZonedDateTime.now(), within(5, ChronoUnit.SECONDS)); } @Test - void shouldHaveDirection(){ + void shouldHaveDirection() { var postfachNachricht = mapper.toPostfachNachricht(message); assertThat(postfachNachricht.getDirection()).isEqualTo(PostfachNachricht.Direction.IN); } @Test - void shouldHaveSubject(){ + void shouldHaveSubject() { var postfachNachricht = mapper.toPostfachNachricht(message); assertThat(postfachNachricht.getSubject()).isEqualTo("Das ist das Subject"); } @Test - void shouldHaveBody(){ + void shouldHaveBody() { var postfachNachricht = mapper.toPostfachNachricht(message); - assertThat(postfachNachricht.getMailBody()).isEqualTo(""" - Das ist das Multiline - Body"""); + assertThat(postfachNachricht.getMailBody()).isEqualTo(REPLY_BODY); } @Test - void shouldMapHTMLBody(){ - var postfachNachricht = mapper.toPostfachNachricht(message.isHtml(true)); + void shouldMapHTMLBody() { + var postfachNachricht = mapper.toPostfachNachricht(message + .body(HTML_REPLY_BODY) + .isHtml(true)); - assertThat(postfachNachricht.getMailBody()).isEqualTo(""" - Das ist das Multiline - Body"""); + assertThat(postfachNachricht.getMailBody()).isEqualTo(REPLY_BODY); } @Test - void shouldHaveReplyOption(){ + void shouldHaveReplyOption() { var postfachNachricht = mapper.toPostfachNachricht(message); assertThat(postfachNachricht.getReplyOption()).isEqualTo(PostfachNachricht.ReplyOption.POSSIBLE); } -// TODO:prüfen das Attachments in der PostfachNachricht enthalten sind + // TODO:prüfen das Attachments in der PostfachNachricht enthalten sind } } -- GitLab