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