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 ad...@apache.org on 2017/11/03 12:27:37 UTC

[14/15] james-project git commit: MAILBOX-319 General fixes: Fix MAILDIR MPT tests

MAILBOX-319 General fixes: Fix MAILDIR MPT tests

 - We need a non null MessageId
 - User flags can be null, FlagsFactory need to support it
 - Attachment copy is not supported


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/6500ba87
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/6500ba87
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/6500ba87

Branch: refs/heads/master
Commit: 6500ba87eee6a5785da603585d7de8a10c8a6d4f
Parents: 99c1819
Author: benwa <bt...@linagora.com>
Authored: Fri Nov 3 09:50:08 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Nov 3 15:50:52 2017 +0700

----------------------------------------------------------------------
 .../maildir/mail/MaildirMessageMapper.java      |  2 +-
 .../maildir/mail/model/MaildirMessage.java      |  3 ++-
 .../mailbox/store/mail/model/FlagsFactory.java  |  6 +++++-
 .../mail/model/impl/SimpleMailboxMessage.java   | 20 +++++++++++++++-----
 .../store/mail/model/FlagsFactoryTest.java      |  9 +++++++++
 5 files changed, 32 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/6500ba87/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
index 11370ec..18f4d59 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMessageMapper.java
@@ -259,7 +259,7 @@ public class MaildirMessageMapper extends AbstractMessageMapper {
     @Override
     protected MessageMetaData copy(Mailbox mailbox, MessageUid uid, long modSeq, MailboxMessage original)
             throws MailboxException {
-        SimpleMailboxMessage theCopy = SimpleMailboxMessage.copy(mailbox.getMailboxId(), original);
+        SimpleMailboxMessage theCopy = SimpleMailboxMessage.copyWithoutAttachments(mailbox.getMailboxId(), original);
         Flags flags = theCopy.createFlags();
         flags.add(Flag.RECENT);
         theCopy.setFlags(flags);

http://git-wip-us.apache.org/repos/asf/james-project/blob/6500ba87/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
----------------------------------------------------------------------
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
index 2d8c041..3ca4267 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/model/MaildirMessage.java
@@ -33,6 +33,7 @@ import org.apache.commons.lang3.NotImplementedException;
 import org.apache.james.mailbox.maildir.MaildirMessageName;
 import org.apache.james.mailbox.model.MessageAttachment;
 import org.apache.james.mailbox.model.MessageId;
+import org.apache.james.mailbox.store.mail.model.DefaultMessageId;
 import org.apache.james.mailbox.store.mail.model.Message;
 import org.apache.james.mailbox.store.mail.model.Property;
 import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
@@ -239,7 +240,7 @@ public class MaildirMessage implements Message {
 
     @Override
     public MessageId getMessageId() {
-        return null;
+        return new DefaultMessageId();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/james-project/blob/6500ba87/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/FlagsFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/FlagsFactory.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/FlagsFactory.java
index 44a025f..eb3c9e4 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/FlagsFactory.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/FlagsFactory.java
@@ -25,6 +25,8 @@ import java.util.stream.Stream;
 
 import javax.mail.Flags;
 
+import com.google.common.collect.ImmutableList;
+
 public class FlagsFactory {
 
     private static Flags asFlags(MailboxMessage mailboxMessage, String[] userFlags) {
@@ -93,7 +95,9 @@ public class FlagsFactory {
         }
 
         public Builder addUserFlags(String... userFlags) {
-            this.userFlags.addAll(Arrays.asList(userFlags));
+            this.userFlags.addAll(Optional.ofNullable(userFlags)
+                .map(Arrays::asList)
+                .orElse(ImmutableList.of()));
             return this;
         }
 

http://git-wip-us.apache.org/repos/asf/james-project/blob/6500ba87/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java
index e3af3f5..a0311ae 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/SimpleMailboxMessage.java
@@ -24,10 +24,12 @@ import java.util.Collection;
 import java.util.Date;
 import java.util.List;
 import java.util.Optional;
+
 import javax.mail.Flags;
 import javax.mail.internet.SharedInputStream;
 import javax.mail.util.SharedByteArrayInputStream;
 
+import org.apache.commons.io.IOUtils;
 import org.apache.james.mailbox.MessageUid;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.model.ComposedMessageId;
@@ -39,7 +41,6 @@ import org.apache.james.mailbox.store.mail.model.DelegatingMailboxMessage;
 import org.apache.james.mailbox.store.mail.model.FlagsFactory;
 import org.apache.james.mailbox.store.mail.model.FlagsFilter;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
-import org.apache.commons.io.IOUtils;
 
 import com.google.common.base.MoreObjects;
 import com.google.common.base.Objects;
@@ -149,6 +150,15 @@ public class SimpleMailboxMessage extends DelegatingMailboxMessage {
     }
 
     public static Builder from(MailboxMessage original) throws MailboxException {
+        return fromWithoutAttachments(original)
+            .addAttachments(original.getAttachments());
+    }
+
+    public static SimpleMailboxMessage copy(MailboxId mailboxId, MailboxMessage original) throws MailboxException {
+        return from(original).mailboxId(mailboxId).build();
+    }
+
+    public static Builder fromWithoutAttachments(MailboxMessage original) throws MailboxException {
         PropertyBuilder propertyBuilder = new PropertyBuilder(original.getProperties());
         propertyBuilder.setTextualLineCount(original.getTextualLineCount());
         return builder()
@@ -158,12 +168,12 @@ public class SimpleMailboxMessage extends DelegatingMailboxMessage {
             .internalDate(original.getInternalDate())
             .size(original.getFullContentOctets())
             .flags(original.createFlags())
-            .propertyBuilder(propertyBuilder)
-            .addAttachments(original.getAttachments());
+            .propertyBuilder(propertyBuilder);
     }
 
-    public static SimpleMailboxMessage copy(MailboxId mailboxId, MailboxMessage original) throws MailboxException {
-        return from(original).mailboxId(mailboxId).build();
+    public static SimpleMailboxMessage copyWithoutAttachments(MailboxId mailboxId, MailboxMessage original) throws MailboxException {
+        return fromWithoutAttachments(original)
+            .mailboxId(mailboxId).build();
     }
 
     private static SharedByteArrayInputStream copyFullContent(MailboxMessage original) throws MailboxException {

http://git-wip-us.apache.org/repos/asf/james-project/blob/6500ba87/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/FlagsFactoryTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/FlagsFactoryTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/FlagsFactoryTest.java
index 8833037..9f080cd 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/FlagsFactoryTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/FlagsFactoryTest.java
@@ -60,6 +60,15 @@ public class FlagsFactoryTest {
     }
 
     @Test
+    public void builderShouldAcceptNullUserFlags() {
+        assertThat(
+            FlagsFactory.builder()
+                .addUserFlags(null)
+                .build())
+            .isEqualTo(new Flags());
+    }
+
+    @Test
     public void builderShouldFilterUserFlags() {
         Flags actual = FlagsFactory.builder()
             .flags(someFlags)


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org