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 <btell...@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-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org