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 bt...@apache.org on 2019/11/19 02:43:12 UTC
[james-project] 10/43: [Refactoring] MessageBuilder should return
SimpleMailboxMessage
This is an automated email from the ASF dual-hosted git repository.
btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git
commit 25fcfb5534cd55681d8b7d884e5f38118667efce
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Sat Nov 16 11:43:26 2019 +0700
[Refactoring] MessageBuilder should return SimpleMailboxMessage
---
.../apache/james/mailbox/store/MessageBuilder.java | 47 +++++++++++++++++++++-
1 file changed, 45 insertions(+), 2 deletions(-)
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageBuilder.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageBuilder.java
index 3d45777..a100ad6 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageBuilder.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/MessageBuilder.java
@@ -18,20 +18,34 @@
****************************************************************/
package org.apache.james.mailbox.store;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import javax.mail.Flags;
+import javax.mail.util.SharedByteArrayInputStream;
import org.apache.james.mailbox.MessageUid;
+import org.apache.james.mailbox.model.MessageAttachment;
import org.apache.james.mailbox.model.MessageId;
import org.apache.james.mailbox.model.TestId;
import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
import org.apache.james.mailbox.store.mail.model.MailboxMessage;
+import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
+import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.primitives.Bytes;
public class MessageBuilder {
-
+ private static final char[] NEW_LINE = { 0x0D, 0x0A };
+ private static final ImmutableList<MessageAttachment> NO_ATTACHMENTS = ImmutableList.of();
+
public TestId mailboxId = TestId.of(113);
public MessageUid uid = MessageUid.of(776);
public Date internalDate = new Date();
@@ -45,7 +59,26 @@ public class MessageBuilder {
}
public MailboxMessage build(MessageId messageId) throws Exception {
- return new SimpleMailboxMembership(messageId, mailboxId, uid, -1, internalDate, size, flags, body, headers);
+ byte[] headerContent = getHeaderContent();
+ SimpleMailboxMessage mailboxMessage = new SimpleMailboxMessage(messageId, internalDate, size, headerContent.length,
+ new SharedByteArrayInputStream(Bytes.concat(headerContent, body)), flags, new PropertyBuilder(), mailboxId, NO_ATTACHMENTS);
+ mailboxMessage.setUid(uid);
+ return mailboxMessage;
+ }
+
+ private byte[] getHeaderContent() throws IOException {
+ final ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ final Writer writer = new OutputStreamWriter(baos, StandardCharsets.US_ASCII);
+
+ for (Map.Entry<String, String> header : headers.entrySet()) {
+ writer.write(header.getKey());
+ writer.write(": ");
+ writer.write(header.getValue());
+ writer.write(NEW_LINE);
+ }
+ writer.write(NEW_LINE);
+ writer.flush();
+ return baos.toByteArray();
}
public MessageBuilder size(int size) {
@@ -57,6 +90,11 @@ public class MessageBuilder {
headers.put(field, value);
}
+ public MessageBuilder headers(Map<String, String> headers) {
+ this.headers.putAll(headers);
+ return this;
+ }
+
public void setKey(int mailboxId, MessageUid uid) {
this.uid = uid;
this.mailboxId = TestId.of(mailboxId);
@@ -83,4 +121,9 @@ public class MessageBuilder {
flags.add(Flags.Flag.RECENT);
}
}
+
+ public MessageBuilder flags(Flags flags) {
+ this.flags = flags;
+ return this;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org