You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rc...@apache.org on 2019/11/29 02:00:29 UTC
[james-project] 03/06: JAMES-2989 Replace plain string by strong
typing preview
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 <dt...@linagora.com>
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org