This is an automated email from the ASF dual-hosted git repository. rcordier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 06fdadfbcdcb1ff59ab431637706aa4bf28919be Author: Tran Tien Duc <[email protected]> AuthorDate: Tue Nov 26 11:24:09 2019 +0700 JAMES-2989 Replace plain string by strong typing preview --- .../cucumber/GetMessagesMethodStepdefs.java | 6 +-- .../jmap/draft/json/ParsingWritingObjects.java | 3 +- .../jmap/draft/methods/GetMessagesMethodTest.java | 4 +- .../jmap/draft/methods/MessageSenderTest.java | 5 +-- .../methods/SetMessagesCreationProcessorTest.java | 5 +-- .../jmap/draft/model/SetMessagesResponseTest.java | 7 +++- .../model/message/view/MessageFullViewTest.java | 43 ++++++++-------------- 7 files changed, 29 insertions(+), 44 deletions(-) diff --git a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMessagesMethodStepdefs.java b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMessagesMethodStepdefs.java index 5b3acc3..d694e3e 100644 --- a/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMessagesMethodStepdefs.java +++ b/server/protocols/jmap-draft-integration-testing/jmap-draft-integration-testing-common/src/test/java/org/apache/james/jmap/draft/methods/integration/cucumber/GetMessagesMethodStepdefs.java @@ -43,15 +43,14 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.text.StringEscapeUtils; import org.apache.james.core.Username; import org.apache.james.jmap.TestingConstants; +import org.apache.james.jmap.draft.JmapGuiceProbe; import org.apache.james.jmap.draft.methods.integration.cucumber.util.TableRow; -import org.apache.james.jmap.draft.model.MessagePreviewGenerator; import org.apache.james.mailbox.model.MailboxConstants; import org.apache.james.mailbox.model.MailboxId; import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.mailbox.model.MessageId; import org.apache.james.modules.protocols.SmtpGuiceProbe; import org.apache.james.util.ClassLoaderUtils; -import org.apache.james.jmap.draft.JmapGuiceProbe; import org.apache.james.utils.SMTPMessageSender; import org.javatuples.Pair; @@ -76,6 +75,7 @@ public class GetMessagesMethodStepdefs { private static final String ATTACHMENTS = FIRST_MESSAGE + ".attachments"; private static final String FIRST_ATTACHMENT = ATTACHMENTS + "[0]"; private static final String SECOND_ATTACHMENT = ATTACHMENTS + "[1]"; + private static final int PREVIEW_LENGTH = 256; private final MainStepdefs mainStepdefs; @@ -659,7 +659,7 @@ public class GetMessagesMethodStepdefs { @Then("^the preview should not contain consecutive spaces or blank characters$") public void assertPreviewShouldBeNormalized() { String actual = httpClient.jsonPath.read(FIRST_MESSAGE + ".preview"); - assertThat(actual).hasSize(MessagePreviewGenerator.MAX_PREVIEW_LENGTH) + assertThat(actual).hasSize(PREVIEW_LENGTH) .doesNotMatch(" ") .doesNotContain(StringUtils.CR) .doesNotContain(StringUtils.LF); diff --git a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/json/ParsingWritingObjects.java b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/json/ParsingWritingObjects.java index 5baa6b4..0f355ff 100644 --- a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/json/ParsingWritingObjects.java +++ b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/json/ParsingWritingObjects.java @@ -24,6 +24,7 @@ import java.util.Optional; import javax.mail.Flags; +import org.apache.james.jmap.api.preview.Preview; import org.apache.james.jmap.draft.model.BlobId; import org.apache.james.jmap.draft.model.Emailer; import org.apache.james.jmap.draft.model.Keyword; @@ -66,7 +67,7 @@ public interface ParsingWritingObjects { String SUBJECT = "mySubject"; Instant DATE = Instant.parse("2014-10-30T14:12:00Z"); int SIZE = 1024; - String PREVIEW = "myPreview"; + Preview PREVIEW = Preview.from("myPreview"); Optional<String> TEXT_BODY = Optional.of("myTextBody"); Optional<String> HTML_BODY = Optional.of("<h1>myHtmlBody</h1>"); } diff --git a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/GetMessagesMethodTest.java b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/GetMessagesMethodTest.java index 420761e..833c8ac 100644 --- a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/GetMessagesMethodTest.java +++ b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/GetMessagesMethodTest.java @@ -40,7 +40,6 @@ import org.apache.commons.lang3.NotImplementedException; import org.apache.james.core.Username; import org.apache.james.jmap.draft.model.GetMessagesRequest; import org.apache.james.jmap.draft.model.GetMessagesResponse; -import org.apache.james.jmap.draft.model.MessagePreviewGenerator; import org.apache.james.jmap.draft.model.MessageProperties.MessageProperty; import org.apache.james.jmap.draft.model.MethodCallId; import org.apache.james.jmap.draft.model.message.view.MessageFullView; @@ -107,13 +106,12 @@ public class GetMessagesMethodTest { public void setup() throws Exception { methodCallId = MethodCallId.of("#0"); HtmlTextExtractor htmlTextExtractor = new JsoupHtmlTextExtractor(); - MessagePreviewGenerator messagePreview = new MessagePreviewGenerator(); MessageContentExtractor messageContentExtractor = new MessageContentExtractor(); BlobManager blobManager = mock(BlobManager.class); when(blobManager.toBlobId(any(MessageId.class))).thenReturn(BlobId.fromString("fake")); messageMetadataViewFactory = spy(new MessageMetadataViewFactory(blobManager)); MetaMessageViewFactory metaMessageViewFactory = new MetaMessageViewFactory( - new MessageFullViewFactory(blobManager, messagePreview, messageContentExtractor, htmlTextExtractor), + new MessageFullViewFactory(blobManager, messageContentExtractor, htmlTextExtractor), new MessageHeaderViewFactory(blobManager), messageMetadataViewFactory); diff --git a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/MessageSenderTest.java b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/MessageSenderTest.java index 4316a7f..fe2615d 100644 --- a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/MessageSenderTest.java +++ b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/MessageSenderTest.java @@ -36,7 +36,6 @@ import org.apache.james.core.MaybeSender; import org.apache.james.jmap.draft.model.EnvelopeUtils; import org.apache.james.jmap.draft.model.Keyword; import org.apache.james.jmap.draft.model.Keywords; -import org.apache.james.jmap.draft.model.MessagePreviewGenerator; import org.apache.james.jmap.draft.model.message.view.MessageFullView; import org.apache.james.jmap.draft.model.message.view.MessageFullViewFactory; import org.apache.james.jmap.draft.model.message.view.MessageFullViewFactory.MetaDataWithContent; @@ -84,14 +83,12 @@ class MessageSenderTest { .messageId(TestMessageId.of(2)) .build(); - MessagePreviewGenerator messagePreview = mock(MessagePreviewGenerator.class); HtmlTextExtractor htmlTextExtractor = mock(HtmlTextExtractor.class); - when(messagePreview.compute(any())).thenReturn("text preview"); MessageContentExtractor messageContentExtractor = new MessageContentExtractor(); BlobManager blobManager = mock(BlobManager.class); when(blobManager.toBlobId(any(MessageId.class))).thenReturn(BlobId.fromString("fake")); - MessageFullViewFactory messageFullViewFactory = new MessageFullViewFactory(blobManager, messagePreview, messageContentExtractor, htmlTextExtractor); + MessageFullViewFactory messageFullViewFactory = new MessageFullViewFactory(blobManager, messageContentExtractor, htmlTextExtractor); jmapMessage = messageFullViewFactory.fromMetaDataWithContent(message); envelope = EnvelopeUtils.fromMessage(jmapMessage); } diff --git a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/SetMessagesCreationProcessorTest.java b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/SetMessagesCreationProcessorTest.java index 7ffd423..4bf45dc 100644 --- a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/SetMessagesCreationProcessorTest.java +++ b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/methods/SetMessagesCreationProcessorTest.java @@ -37,7 +37,6 @@ import org.apache.james.jmap.draft.exceptions.MailboxNotOwnedException; import org.apache.james.jmap.draft.model.CreationMessage; import org.apache.james.jmap.draft.model.CreationMessage.DraftEmailer; import org.apache.james.jmap.draft.model.CreationMessageId; -import org.apache.james.jmap.draft.model.MessagePreviewGenerator; import org.apache.james.jmap.draft.model.SetMessagesRequest; import org.apache.james.jmap.draft.model.SetMessagesResponse; import org.apache.james.jmap.draft.model.message.view.MessageFullViewFactory; @@ -122,12 +121,10 @@ public class SetMessagesCreationProcessorTest { @Before public void setUp() throws MailboxException { HtmlTextExtractor htmlTextExtractor = mock(HtmlTextExtractor.class); - MessagePreviewGenerator messagePreview = mock(MessagePreviewGenerator.class); MessageContentExtractor messageContentExtractor = new MessageContentExtractor(); - when(messagePreview.compute(any())).thenReturn("text preview"); BlobManager blobManager = mock(BlobManager.class); when(blobManager.toBlobId(any(MessageId.class))).thenReturn(org.apache.james.mailbox.model.BlobId.fromString("fake")); - messageFullViewFactory = new MessageFullViewFactory(blobManager, messagePreview, messageContentExtractor, htmlTextExtractor); + messageFullViewFactory = new MessageFullViewFactory(blobManager, messageContentExtractor, htmlTextExtractor); mockedMailSpool = mock(MailSpool.class); mockedAttachmentManager = mock(AttachmentManager.class); mockedMailboxManager = mock(MailboxManager.class); diff --git a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/SetMessagesResponseTest.java b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/SetMessagesResponseTest.java index 9b89f94..94c678b 100644 --- a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/SetMessagesResponseTest.java +++ b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/SetMessagesResponseTest.java @@ -25,6 +25,7 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import java.time.Instant; import org.apache.commons.lang3.NotImplementedException; +import org.apache.james.jmap.api.preview.Preview; import org.apache.james.jmap.draft.model.message.view.MessageFullView; import org.apache.james.mailbox.inmemory.InMemoryId; import org.apache.james.mailbox.model.MessageId; @@ -36,6 +37,8 @@ import com.google.common.collect.ImmutableMap; public class SetMessagesResponseTest { + private static final Preview PREVIEW = Preview.from("preview"); + @Test public void builderShouldThrowWhenAccountIdIsGiven() { assertThatThrownBy(() -> SetMessagesResponse.builder().accountId("")) @@ -67,7 +70,7 @@ public class SetMessagesResponseTest { .subject("subject") .size(123) .date(currentDate) - .preview("preview") + .preview(PREVIEW) .build()); ImmutableList<MessageId> updated = ImmutableList.of(TestMessageId.of(2)); ImmutableList<MessageId> destroyed = ImmutableList.of(TestMessageId.of(3)); @@ -121,7 +124,7 @@ public class SetMessagesResponseTest { .subject("subject") .size(0) .date(Instant.now()) - .preview("preview") + .preview(PREVIEW) .build()); } diff --git a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/message/view/MessageFullViewTest.java b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/message/view/MessageFullViewTest.java index 1b5b63b..ff503b6 100644 --- a/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/message/view/MessageFullViewTest.java +++ b/server/protocols/jmap-draft/src/test/java/org/apache/james/jmap/draft/model/message/view/MessageFullViewTest.java @@ -24,12 +24,14 @@ import static org.assertj.core.api.Assertions.assertThatThrownBy; import java.time.Instant; import java.util.Optional; +import org.apache.james.jmap.api.preview.Preview; import org.apache.james.jmap.draft.model.Attachment; import org.apache.james.jmap.draft.model.BlobId; import org.apache.james.jmap.draft.model.Emailer; import org.apache.james.jmap.draft.model.Keyword; import org.apache.james.jmap.draft.model.Keywords; import org.apache.james.jmap.draft.model.Number; +import org.apache.james.jmap.draft.model.PreviewDTO; import org.apache.james.mailbox.inmemory.InMemoryId; import org.apache.james.mailbox.model.TestMessageId; import org.junit.jupiter.api.Test; @@ -39,6 +41,9 @@ import com.google.common.collect.ImmutableMap; class MessageFullViewTest { + private static final Preview PREVIEW = Preview.from("preview"); + private static final PreviewDTO PREVIEW_DTO = PreviewDTO.from(PREVIEW); + @Test void buildShouldThrowWhenIdIsNull() { assertThatThrownBy(() -> MessageFullView.builder().build()) @@ -153,22 +158,6 @@ class MessageFullViewTest { } @Test - void buildShouldThrowWhenPreviewIsEmpty() { - assertThatThrownBy(() -> MessageFullView.builder() - .id(TestMessageId.of(1)) - .blobId(BlobId.of("blobId")) - .threadId("threadId") - .fluentMailboxIds() - .headers(ImmutableMap.of()) - .subject("subject") - .size(123) - .date(Instant.now()) - .preview("") - .build()) - .isInstanceOf(IllegalStateException.class); - } - - @Test void buildShouldWorkWhenMandatoryFieldsArePresent() { Instant currentDate = Instant.now(); Number messageSize = Number.fromLong(123); @@ -176,7 +165,7 @@ class MessageFullViewTest { MessageFullView expected = new MessageFullView(TestMessageId.of(1), BlobId.of("blobId"), "threadId", ImmutableList.of(InMemoryId.of(456)), Optional.empty(), false, ImmutableMap.of("key", "value"), Optional.empty(), ImmutableList.of(), ImmutableList.of(), ImmutableList.of(), ImmutableList.of(), - "subject", currentDate, messageSize, "preview", Optional.empty(), Optional.empty(), + "subject", currentDate, messageSize, PREVIEW_DTO, Optional.empty(), Optional.empty(), ImmutableList.of(), ImmutableMap.of(), Keywords.DEFAULT_VALUE); MessageFullView tested = MessageFullView.builder() @@ -188,7 +177,7 @@ class MessageFullViewTest { .subject("subject") .size(123) .date(currentDate) - .preview("preview") + .preview(PREVIEW) .build(); assertThat(tested).isEqualToComparingFieldByField(expected); } @@ -215,7 +204,7 @@ class MessageFullViewTest { .subject("subject") .size(123) .date(Instant.now()) - .preview("preview") + .preview(PREVIEW) .attachments(attachments) .attachedMessages(attachedMessages) .build()) @@ -261,7 +250,7 @@ class MessageFullViewTest { "subject", currentDate, messageSize, - "preview", + PREVIEW_DTO, Optional.of("textBody"), Optional.of("htmlBody"), attachments, @@ -284,7 +273,7 @@ class MessageFullViewTest { .subject("subject") .date(currentDate) .size(123) - .preview("preview") + .preview(PREVIEW) .textBody(Optional.of("textBody")) .htmlBody(Optional.of("htmlBody")) .attachments(attachments) @@ -305,7 +294,7 @@ class MessageFullViewTest { .subject("subject") .size(1) .date(Instant.now()) - .preview("preview") + .preview(PREVIEW) .attachedMessages(ImmutableMap.of(BlobId.of("key"), SubMessage.builder() .headers(ImmutableMap.of("key", "value")) .subject("subject") @@ -326,7 +315,7 @@ class MessageFullViewTest { .subject("subject") .size(1) .date(Instant.now()) - .preview("preview") + .preview(PREVIEW) .attachments(ImmutableList.of(Attachment.builder() .blobId(BlobId.of("key")) .size(1) @@ -351,7 +340,7 @@ class MessageFullViewTest { .subject("subject") .size(1) .date(Instant.now()) - .preview("preview") + .preview(PREVIEW) .attachments(ImmutableList.of()) .build(); @@ -369,7 +358,7 @@ class MessageFullViewTest { .subject("subject") .size(1) .date(Instant.now()) - .preview("preview") + .preview(PREVIEW) .attachments(ImmutableList.of( Attachment.builder() .blobId(BlobId.of("key")) @@ -401,7 +390,7 @@ class MessageFullViewTest { .subject("subject") .size(1) .date(Instant.now()) - .preview("preview") + .preview(PREVIEW) .attachments(ImmutableList.of( Attachment.builder() .blobId(BlobId.of("key")) @@ -439,7 +428,7 @@ class MessageFullViewTest { .subject("subject") .size(1) .date(Instant.now()) - .preview("preview") + .preview(PREVIEW) .attachments(ImmutableList.of( Attachment.builder() .blobId(BlobId.of("key")) --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
