JAMES-1704 InMemoryMessageMapper should succeed unit tests

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

Branch: refs/heads/master
Commit: a435f4e8de988de500debd3e405a26da9a416177
Parents: 7fb157b
Author: Benoit Tellier <btell...@linagora.com>
Authored: Fri Mar 11 14:31:34 2016 +0700
Committer: Benoit Tellier <btell...@linagora.com>
Committed: Thu Mar 24 12:44:29 2016 +0700

----------------------------------------------------------------------
 .../inmemory/mail/InMemoryMessageMapper.java    |  2 +-
 .../mail/InMemoryMessageMapperTest.java         | 30 +++++++++++++++
 .../mail/model/AbstractMessageMapperTest.java   | 12 +++++-
 .../mailbox/store/mail/model/MessageAssert.java | 39 ++++++++++----------
 4 files changed, 61 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/a435f4e8/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
----------------------------------------------------------------------
diff --git 
a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
 
b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
index 1986946..931d399 100644
--- 
a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
+++ 
b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
@@ -148,7 +148,7 @@ public class InMemoryMessageMapper extends 
AbstractMessageMapper<InMemoryId> {
         Collections.sort(results);
 
         if (max > 0 && results.size() > max) {
-            results = results.subList(0, max - 1);
+            results = results.subList(0, max);
         }
         return results.iterator();
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/a435f4e8/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapperTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapperTest.java
 
b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapperTest.java
new file mode 100644
index 0000000..6d70e8f
--- /dev/null
+++ 
b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapperTest.java
@@ -0,0 +1,30 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.mailbox.inmemory.mail;
+
+import org.apache.james.mailbox.inmemory.InMemoryId;
+import org.apache.james.mailbox.store.mail.model.AbstractMessageMapperTest;
+
+public class InMemoryMessageMapperTest extends 
AbstractMessageMapperTest<InMemoryId> {
+
+    public InMemoryMessageMapperTest() {
+        super(new InMemoryMapperProvider());
+    }
+}

http://git-wip-us.apache.org/repos/asf/james-project/blob/a435f4e8/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMessageMapperTest.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMessageMapperTest.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMessageMapperTest.java
index 3198507..30e261d 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMessageMapperTest.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMessageMapperTest.java
@@ -442,8 +442,16 @@ public abstract class AbstractMessageMapperTest<Id extends 
MailboxId> {
         MailboxMessage<Id> message7 = 
SimpleMailboxMessage.copy(benwaInboxMailbox.getMailboxId(), message6);
         messageMapper.copy(benwaInboxMailbox, message7);
         message7.setModSeq(messageMapper.getHighestModSeq(benwaInboxMailbox));
-        
MessageAssert.assertThat(messageMapper.findInMailbox(benwaInboxMailbox, 
MessageRange.one(message7.getUid()), MessageMapper.FetchType.Full, 
LIMIT).next())
-            .isEqualTo(message7, MessageMapper.FetchType.Full);
+        
assertThat(messageMapper.getLastUid(benwaInboxMailbox)).isGreaterThan(message6.getUid());
+
+        MailboxMessage result = messageMapper.findInMailbox(benwaInboxMailbox,
+            MessageRange.one(messageMapper.getLastUid(benwaInboxMailbox)),
+            MessageMapper.FetchType.Full,
+            LIMIT)
+            .next();
+
+        MessageAssert.assertThat(result).isEqualToWithoutUid(message7, 
MessageMapper.FetchType.Full);
+        
assertThat(result.getUid()).isEqualTo(messageMapper.getLastUid(benwaInboxMailbox));
     }
     
     @Test

http://git-wip-us.apache.org/repos/asf/james-project/blob/a435f4e8/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageAssert.java
----------------------------------------------------------------------
diff --git 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageAssert.java
 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageAssert.java
index 7b0ddc0..1135763 100644
--- 
a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageAssert.java
+++ 
b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageAssert.java
@@ -26,6 +26,8 @@ import org.assertj.core.api.AbstractAssert;
 import javax.mail.Flags;
 import java.io.IOException;
 
+import com.google.common.base.Objects;
+
 public class MessageAssert extends AbstractAssert<MessageAssert, 
MailboxMessage<?>> {
 
     public MessageAssert(MailboxMessage<?> actual) {
@@ -36,47 +38,52 @@ public class MessageAssert extends 
AbstractAssert<MessageAssert, MailboxMessage<
         return new MessageAssert(actual);
     }
 
-    public MessageAssert isEqualTo(MailboxMessage<?> expected, 
MessageMapper.FetchType usedFetchType) throws IOException {
+    public MessageAssert isEqualToWithoutUid(MailboxMessage<?> expected, 
MessageMapper.FetchType usedFetchType) throws IOException {
         isNotNull();
-        if (!equals(actual.getMailboxId(), expected.getMailboxId())) {
+        if (!Objects.equal(actual.getMailboxId(), expected.getMailboxId())) {
             failWithMessage("Expected Mailbox ID to be <%s> but was <%s>", 
expected.getMailboxId().toString(), actual.getMailboxId().toString());
         }
-        if (!equals(actual.getUid(), expected.getUid())) {
-            failWithMessage("Expected UID to be <%s> but was <%s>", 
expected.getUid(), actual.getUid());
-        }
-        if (!equals(actual.getInternalDate(), expected.getInternalDate())) {
+        if (!Objects.equal(actual.getInternalDate(), 
expected.getInternalDate())) {
             failWithMessage("Expected Internal Date to be <%s> but was <%s>", 
expected.getInternalDate(), actual.getInternalDate());
         }
-        if (!equals(actual.getBodyOctets(), expected.getBodyOctets())) {
+        if (!Objects.equal(actual.getBodyOctets(), expected.getBodyOctets())) {
             failWithMessage("Expected Body octet to be <%s> but was <%s>", 
expected.getBodyOctets(), actual.getBodyOctets());
         }
-        if (!equals(actual.getMediaType(), expected.getMediaType())) {
+        if (!Objects.equal(actual.getMediaType(), expected.getMediaType())) {
             failWithMessage("Expected Media type to be <%s> but was <%s>", 
expected.getBodyOctets(), actual.getBodyOctets());
         }
-        if (!equals(actual.getSubType(), expected.getSubType())) {
+        if (!Objects.equal(actual.getSubType(), expected.getSubType())) {
             failWithMessage("Expected Sub type to be <%s> but was <%s>", 
expected.getBodyOctets(), actual.getBodyOctets());
         }
         if (usedFetchType == MessageMapper.FetchType.Full) {
-            if (!equals(actual.getFullContentOctets(), 
expected.getFullContentOctets())) {
+            if (!Objects.equal(actual.getFullContentOctets(), 
expected.getFullContentOctets())) {
                 failWithMessage("Expected MailboxMessage size to be <%s> but 
was <%s>", expected.getFullContentOctets(), actual.getFullContentOctets());
             }
-            if (!equals(IOUtils.toString(actual.getFullContent()), 
IOUtils.toString(expected.getFullContent()))) {
+            if (!Objects.equal(IOUtils.toString(actual.getFullContent()), 
IOUtils.toString(expected.getFullContent()))) {
                 failWithMessage("Expected Full content to be <%s> but was 
<%s>", IOUtils.toString(actual.getFullContent()), 
IOUtils.toString(expected.getFullContent()));
             }
         }
         if (usedFetchType == MessageMapper.FetchType.Full || usedFetchType == 
MessageMapper.FetchType.Headers) {
-            if (!equals(IOUtils.toString(actual.getHeaderContent()), 
IOUtils.toString(expected.getHeaderContent()))) {
+            if (!Objects.equal(IOUtils.toString(actual.getHeaderContent()), 
IOUtils.toString(expected.getHeaderContent()))) {
                 failWithMessage("Expected Header content to be <%s> but was 
<%s>", IOUtils.toString(actual.getHeaderContent()), 
IOUtils.toString(expected.getHeaderContent()));
             }
         }
         if (usedFetchType == MessageMapper.FetchType.Full || usedFetchType == 
MessageMapper.FetchType.Body) {
-            if (!equals(IOUtils.toString(actual.getBodyContent()), 
IOUtils.toString(expected.getBodyContent()))) {
+            if (!Objects.equal(IOUtils.toString(actual.getBodyContent()), 
IOUtils.toString(expected.getBodyContent()))) {
                 failWithMessage("Expected Body content to be <%s> but was 
<%s>", IOUtils.toString(actual.getBodyContent()), 
IOUtils.toString(expected.getBodyContent()));
             }
         }
         return this;
     }
 
+    public MessageAssert isEqualTo(MailboxMessage<?> expected, 
MessageMapper.FetchType usedFetchType) throws IOException {
+        isNotNull();
+        if (!Objects.equal(actual.getUid(), expected.getUid())) {
+            failWithMessage("Expected UID to be <%s> but was <%s>", 
expected.getUid(), actual.getUid());
+        }
+        return isEqualToWithoutUid(expected, usedFetchType);
+    }
+
     public MessageAssert hasFlags(Flags flags) {
         if (flags.contains(Flags.Flag.ANSWERED) != actual.isAnswered()) {
             failWithMessage("Expected ANSWERED flag to be <%s> but was <%>", 
flags.contains(Flags.Flag.ANSWERED), actual.isAnswered());
@@ -99,10 +106,4 @@ public class MessageAssert extends 
AbstractAssert<MessageAssert, MailboxMessage<
         return this;
     }
 
-    private boolean equals(Object object1, Object object2) {
-        if ( object1 == null && object2 == null ) {
-            return true;
-        }
-        return ( object1 != null ) && object1.equals(object2);
-    }
 }
\ No newline at end of file


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

Reply via email to