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 8b213a00f6cebbaa67a6b9b166b56d0ac4fcbd37 Author: Rene Cordier <rcord...@linagora.com> AuthorDate: Thu Feb 21 16:56:17 2019 +0700 MAILBOX-378 refactor tests for MessageMapper --- .../james/mailbox/store/mail/MessageMapper.java | 12 +-- .../store/mail/model/MessageMapperTest.java | 113 +++++++++++++++------ 2 files changed, 82 insertions(+), 43 deletions(-) diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java index 4c77bed..19335e7 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java @@ -57,11 +57,7 @@ public interface MessageMapper extends Mapper { throws MailboxException; /** - * - * @param mailbox - * @param messageRange - * @return list of {@link MessageUid} which are marked as deleted - * @throws MailboxException + * Returns a list of {@link MessageUid} which are marked as deleted */ List<MessageUid> retrieveMessagesMarkedForDeletion(Mailbox mailbox, MessageRange messageRange) throws MailboxException; @@ -98,11 +94,7 @@ public interface MessageMapper extends Mapper { /** * Delete the given list of {@link MessageUid} - * - * @param mailbox - * @param uids - * @return a {@link Map} which holds the uids and metadata for all deleted messages - * @throws MailboxException + * and return a {@link Map} which holds the uids and metadata for all deleted messages */ Map<MessageUid, MessageMetaData> deleteMessages(Mailbox mailbox, List<MessageUid> uids) throws MailboxException; diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java index 3efe66e..622e6ba 100644 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageMapperTest.java @@ -28,6 +28,7 @@ import java.io.IOException; import java.time.Duration; import java.util.Date; import java.util.Iterator; +import java.util.List; import java.util.Map; import java.util.Optional; @@ -58,6 +59,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; public abstract class MessageMapperTest { @@ -66,9 +68,9 @@ public abstract class MessageMapperTest { private static final int LIMIT = 10; private static final int BODY_START = 16; public static final int UID_VALIDITY = 42; - public static final String USER_FLAG = "userFlag"; + private static final String USER_FLAG = "userFlag"; - public static final String CUSTOMS_USER_FLAGS_VALUE = "CustomsFlags"; + private static final String CUSTOMS_USER_FLAGS_VALUE = "CustomsFlags"; private MapperProvider mapperProvider; private MessageMapper messageMapper; @@ -365,33 +367,51 @@ public abstract class MessageMapperTest { messageMapper.updateFlags(benwaInboxMailbox, new FlagsUpdateCalculator(new Flags(Flags.Flag.SEEN), FlagsUpdateMode.REPLACE), MessageRange.one(message5.getUid())); assertThat(messageMapper.findFirstUnseenMessageUid(benwaInboxMailbox)).isEqualTo(message2.getUid()); } -/* + + @Test + public void retrieveMessagesMarkedForDeletionInMailboxShouldReturnEmptyResultOnEmptyMailbox() throws MailboxException { + assertThat(messageMapper.retrieveMessagesMarkedForDeletion(benwaInboxMailbox, MessageRange.all())).isEmpty(); + } + @Test - public void expungeMarkedForDeletionInMailboxShouldReturnEmptyResultOnEmptyMailbox() throws MailboxException, IOException { - assertThat(messageMapper.expungeMarkedForDeletionInMailbox(benwaInboxMailbox, MessageRange.all())).isEmpty(); + public void deleteMessagesInMailboxShouldReturnEmptyResultOnEmptyMailbox() throws MailboxException { + assertThat(messageMapper.deleteMessages(benwaInboxMailbox, ImmutableList.of())).isEmpty(); + } + + @Test + public void retrieveMessagesMarkedForDeletionInMailboxShouldReturnEmptyResultWhenNoMessageInMailboxIsMarkedAsDeleted() throws MailboxException, IOException { + saveMessages(); + assertThat(messageMapper.retrieveMessagesMarkedForDeletion(benwaInboxMailbox, MessageRange.all())).isEmpty(); } @Test - public void expungeMarkedForDeletionInMailboxShouldReturnEmptyResultWhenNoMessageInMailboxIsDeleted() throws MailboxException, IOException { + public void deleteMessagesInMailboxShouldReturnEmptyResultWhenNoMessageInMailboxIsDeleted() throws MailboxException, IOException { saveMessages(); - assertThat(messageMapper.expungeMarkedForDeletionInMailbox(benwaInboxMailbox, MessageRange.all())).isEmpty(); + assertThat(messageMapper.deleteMessages(benwaInboxMailbox, ImmutableList.of())).isEmpty(); Iterator<MailboxMessage> retrievedMessageIterator = messageMapper.findInMailbox(benwaInboxMailbox, MessageRange.all(), MessageMapper.FetchType.Full, LIMIT); assertMessages(Lists.newArrayList(retrievedMessageIterator)).containOnly(message1, message2, message3, message4, message5); } @Test - public void expungeShouldReturnCorrectMetadataWithRangeAll() throws MailboxException, IOException { + public void retrieveMessagesMarkedForDeletionShouldReturnCorrectUidsWithRangeAll() throws MailboxException { saveMessages(); - MetadataMapAssert.assertThat(markThenPerformExpunge(MessageRange.all())) + assertThat(markThenPerformRetrieveMessagesMarkedForDeletion(MessageRange.all())) + .containsOnly(message1.getUid(), message4.getUid()); + } + + @Test + public void deleteMessagesShouldReturnCorrectMetadataWithRangeAll() throws MailboxException { + saveMessages(); + MetadataMapAssert.assertThat(markThenPerformDeleteMessages(MessageRange.all())) .hasSize(2) .containsMetadataForMessages(message1, message4); } @Test - public void expungeShouldModifyUnderlyingStorageWithRangeAll() throws MailboxException, IOException { + public void deleteMessagesShouldModifyUnderlyingStorageWithRangeAll() throws MailboxException, IOException { saveMessages(); - markThenPerformExpunge(MessageRange.all()); + markThenPerformDeleteMessages(MessageRange.all()); Iterator<MailboxMessage> retrievedMessageIterator = messageMapper.findInMailbox(benwaInboxMailbox, MessageRange.all(), MessageMapper.FetchType.Full, LIMIT); @@ -399,17 +419,24 @@ public abstract class MessageMapperTest { } @Test - public void expungeShouldReturnCorrectMetadataWithRangeOne() throws MailboxException, IOException { + public void retrieveMessagesMarkedForDeletionShouldReturnCorrectMetadataWithRangeOne() throws MailboxException { saveMessages(); - MetadataMapAssert.assertThat(markThenPerformExpunge(MessageRange.one(message1.getUid()))) + assertThat(markThenPerformRetrieveMessagesMarkedForDeletion(MessageRange.one(message1.getUid()))) + .containsOnly(message1.getUid()); + } + + @Test + public void deleteMessagesShouldReturnCorrectMetadataWithRangeOne() throws MailboxException { + saveMessages(); + MetadataMapAssert.assertThat(markThenPerformDeleteMessages(MessageRange.one(message1.getUid()))) .hasSize(1) .containsMetadataForMessages(message1); } @Test - public void expungeShouldModifyUnderlyingStorageWithRangeOne() throws MailboxException, IOException { + public void deleteMessagesShouldModifyUnderlyingStorageWithRangeOne() throws MailboxException, IOException { saveMessages(); - markThenPerformExpunge(MessageRange.one(message1.getUid())); + markThenPerformDeleteMessages(MessageRange.one(message1.getUid())); Iterator<MailboxMessage> retrievedMessageIterator = messageMapper.findInMailbox(benwaInboxMailbox, MessageRange.all(), MessageMapper.FetchType.Full, LIMIT); @@ -417,17 +444,24 @@ public abstract class MessageMapperTest { } @Test - public void expungeShouldReturnCorrectMetadataWithRangeFrom() throws MailboxException, IOException { + public void retrieveMessagesMarkedForDeletionShouldReturnCorrectMetadataWithRangeFrom() throws MailboxException { saveMessages(); - MetadataMapAssert.assertThat(markThenPerformExpunge(MessageRange.from(message3.getUid()))) + assertThat(markThenPerformRetrieveMessagesMarkedForDeletion(MessageRange.from(message3.getUid()))) + .containsOnly(message4.getUid()); + } + + @Test + public void deleteMessagesShouldReturnCorrectMetadataWithRangeFrom() throws MailboxException { + saveMessages(); + MetadataMapAssert.assertThat(markThenPerformDeleteMessages(MessageRange.from(message3.getUid()))) .hasSize(1) .containsMetadataForMessages(message4); } @Test - public void expungeShouldModifyUnderlyingStorageWithRangeFrom() throws MailboxException, IOException { + public void deleteMessagesShouldModifyUnderlyingStorageWithRangeFrom() throws MailboxException, IOException { saveMessages(); - markThenPerformExpunge(MessageRange.from(message3.getUid())); + markThenPerformDeleteMessages(MessageRange.from(message3.getUid())); Iterator<MailboxMessage> retrievedMessageIterator = messageMapper.findInMailbox(benwaInboxMailbox, MessageRange.all(), MessageMapper.FetchType.Full, LIMIT); @@ -435,22 +469,29 @@ public abstract class MessageMapperTest { } @Test - public void expungeShouldReturnCorrectMetadataWithRange() throws MailboxException, IOException { + public void retrieveMessagesMarkedForDeletionShouldReturnCorrectMetadataWithRange() throws MailboxException { + saveMessages(); + assertThat(markThenPerformRetrieveMessagesMarkedForDeletion(MessageRange.range(message3.getUid(), message5.getUid()))) + .containsOnly(message4.getUid()); + } + + @Test + public void deleteMessagesShouldReturnCorrectMetadataWithRange() throws MailboxException { saveMessages(); - MetadataMapAssert.assertThat(markThenPerformExpunge(MessageRange.range(message3.getUid(), message5.getUid()))) + MetadataMapAssert.assertThat(markThenPerformDeleteMessages(MessageRange.range(message3.getUid(), message5.getUid()))) .hasSize(1) .containsMetadataForMessages(message4); } @Test - public void expungeShouldModifyUnderlyingStorageWithRange() throws MailboxException, IOException { + public void deleteMessagesShouldModifyUnderlyingStorageWithRange() throws MailboxException, IOException { saveMessages(); - markThenPerformExpunge(MessageRange.range(message3.getUid(), message5.getUid())); + markThenPerformDeleteMessages(MessageRange.range(message3.getUid(), message5.getUid())); Iterator<MailboxMessage> retrievedMessageIterator = messageMapper.findInMailbox(benwaInboxMailbox, MessageRange.all(), MessageMapper.FetchType.Full, LIMIT); assertMessages(Lists.newArrayList(retrievedMessageIterator)).containOnly(message1, message2, message3, message5); - }*/ + } @Test public void getHighestMoseqShouldBeEqualToZeroOnEmptyMailbox() throws MailboxException { @@ -481,7 +522,7 @@ public abstract class MessageMapperTest { } @Test - public void copyShouldIncrementUid() throws MailboxException, IOException { + public void copyShouldIncrementUid() throws MailboxException { saveMessages(); MessageUid uid = messageMapper.getLastUid(benwaInboxMailbox).get(); messageMapper.copy(benwaInboxMailbox, SimpleMailboxMessage.copy(benwaInboxMailbox.getMailboxId(), message6)); @@ -489,14 +530,14 @@ public abstract class MessageMapperTest { } @Test - public void copyShouldIncrementMessageCount() throws MailboxException, IOException { + public void copyShouldIncrementMessageCount() throws MailboxException { saveMessages(); messageMapper.copy(benwaInboxMailbox, SimpleMailboxMessage.copy(benwaInboxMailbox.getMailboxId(), message6)); assertThat(messageMapper.countMessagesInMailbox(benwaInboxMailbox)).isEqualTo(6); } @Test - public void copyOfUnSeenMessageShouldIncrementUnSeenMessageCount() throws MailboxException, IOException { + public void copyOfUnSeenMessageShouldIncrementUnSeenMessageCount() throws MailboxException { saveMessages(); messageMapper.copy(benwaInboxMailbox, SimpleMailboxMessage.copy(benwaInboxMailbox.getMailboxId(), message6)); assertThat(messageMapper.countUnseenMessagesInMailbox(benwaInboxMailbox)).isEqualTo(6); @@ -1076,26 +1117,32 @@ public abstract class MessageMapperTest { message4.getUid(), message5.getUid()); } -/* + @Test - public void getUidsShouldNotReturnUidsOfExpungedMessages() throws Exception { + public void getUidsShouldNotReturnUidsOfDeletedMessages() throws Exception { saveMessages(); messageMapper.updateFlags(benwaInboxMailbox, new FlagsUpdateCalculator(new Flags(Flag.DELETED), FlagsUpdateMode.ADD), MessageRange.range(message2.getUid(), message4.getUid())); - messageMapper.expungeMarkedForDeletionInMailbox(benwaInboxMailbox, MessageRange.all()); + List<MessageUid> uids = messageMapper.retrieveMessagesMarkedForDeletion(benwaInboxMailbox, MessageRange.all()); + messageMapper.deleteMessages(benwaInboxMailbox, uids); assertThat(messageMapper.listAllMessageUids(benwaInboxMailbox)) .containsOnly(message1.getUid(), message5.getUid()); } - private Map<MessageUid, MessageMetaData> markThenPerformExpunge(MessageRange range) throws MailboxException { + private List<MessageUid> markThenPerformRetrieveMessagesMarkedForDeletion(MessageRange range) throws MailboxException { messageMapper.updateFlags(benwaInboxMailbox, new FlagsUpdateCalculator(new Flags(Flags.Flag.DELETED), FlagsUpdateMode.REPLACE), MessageRange.one(message1.getUid())); messageMapper.updateFlags(benwaInboxMailbox, new FlagsUpdateCalculator(new Flags(Flags.Flag.DELETED), FlagsUpdateMode.REPLACE), MessageRange.one(message4.getUid())); - return messageMapper.expungeMarkedForDeletionInMailbox(benwaInboxMailbox, range); + return messageMapper.retrieveMessagesMarkedForDeletion(benwaInboxMailbox, range); } -*/ + + private Map<MessageUid, MessageMetaData> markThenPerformDeleteMessages(MessageRange range) throws MailboxException { + List<MessageUid> uids = markThenPerformRetrieveMessagesMarkedForDeletion(range); + return messageMapper.deleteMessages(benwaInboxMailbox, uids); + } + private SimpleMailbox createMailbox(MailboxPath mailboxPath) throws MailboxException { SimpleMailbox mailbox = new SimpleMailbox(mailboxPath, UID_VALIDITY); mailbox.setMailboxId(mapperProvider.generateId()); --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org