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 2e58ac60029ef4098431e2ee1254b8bac6a2b532 Author: Rene Cordier <[email protected]> AuthorDate: Thu Feb 21 15:57:03 2019 +0700 MAILBOX-378 add tests for MessageManager --- .../apache/james/mailbox/MailboxManagerTest.java | 17 ++++++++++ .../mailbox/manager/QuotaMessageManagerTest.java | 38 ++++++++++++++++++++-- 2 files changed, 53 insertions(+), 2 deletions(-) diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java index a7044c0..db11402 100644 --- a/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java +++ b/mailbox/api/src/test/java/org/apache/james/mailbox/MailboxManagerTest.java @@ -475,6 +475,23 @@ public abstract class MailboxManagerTest<T extends MailboxManager> { } @Test + void deleteMessageShouldFireExpungedEvent() throws Exception { + ComposedMessageId messageId = inboxManager.appendMessage(MessageManager.AppendCommand.builder().build(message), session); + inboxManager.setFlags(new Flags(Flags.Flag.DELETED), MessageManager.FlagsUpdateMode.ADD, MessageRange.all(), session); + + retrieveEventBus(mailboxManager).register(listener, new MailboxIdRegistrationKey(inboxId)); + inboxManager.delete(ImmutableList.of(messageId.getUid()), session); + + assertThat(listener.getEvents()) + .filteredOn(event -> event instanceof MailboxListener.Expunged) + .hasSize(1) + .extracting(event -> (MailboxListener.Expunged) event) + .element(0) + .satisfies(event -> assertThat(event.getMailboxId()).isEqualTo(inboxId)) + .satisfies(event -> assertThat(event.getUids()).hasSize(1)); + } + + @Test void setFlagsShouldFireFlagsUpdatedEvent() throws Exception { inboxManager.appendMessage(MessageManager.AppendCommand.builder().build(message), session); diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/manager/QuotaMessageManagerTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/manager/QuotaMessageManagerTest.java index f110fcc..7ac4a76 100644 --- a/mailbox/api/src/test/java/org/apache/james/mailbox/manager/QuotaMessageManagerTest.java +++ b/mailbox/api/src/test/java/org/apache/james/mailbox/manager/QuotaMessageManagerTest.java @@ -20,6 +20,7 @@ package org.apache.james.mailbox.manager; import java.nio.charset.StandardCharsets; +import java.util.List; import javax.mail.Flags; @@ -29,6 +30,7 @@ import org.apache.james.mailbox.FlagsBuilder; import org.apache.james.mailbox.MailboxManager; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.MessageManager; +import org.apache.james.mailbox.MessageUid; import org.apache.james.mailbox.exception.OverQuotaException; import org.apache.james.mailbox.mock.MockMail; import org.apache.james.mailbox.model.MailboxPath; @@ -121,7 +123,7 @@ public abstract class QuotaMessageManagerTest<T extends MailboxManager> { } @Test - public void testRetrievalOverMaxMessage() throws Exception { + public void testRetrievalOverMaxMessageAfterExpunge() throws Exception { QuotaCount maxMessageCount = QuotaCount.count(15L); maxQuotaManager.setMaxMessage(quotaRootResolver.getQuotaRoot(inbox), maxMessageCount); try { @@ -135,7 +137,7 @@ public abstract class QuotaMessageManagerTest<T extends MailboxManager> { } @Test - public void testRetrievalOverMaxStorage() throws Exception { + public void testRetrievalOverMaxStorageAfterExpunge() throws Exception { QuotaSize maxQuotaSize = QuotaSize.size(15 * MockMail.MAIL_TEXT_PLAIN.getBytes(StandardCharsets.UTF_8).length + 1); maxQuotaManager.setMaxStorage(quotaRootResolver.getQuotaRoot(inbox), maxQuotaSize); try { @@ -149,6 +151,38 @@ public abstract class QuotaMessageManagerTest<T extends MailboxManager> { } @Test + public void testRetrievalOverMaxMessageAfterDelete() throws Exception { + QuotaCount maxMessageCount = QuotaCount.count(15L); + maxQuotaManager.setMaxMessage(quotaRootResolver.getQuotaRoot(inbox), maxMessageCount); + try { + resources.fillMailbox(); + } catch (OverQuotaException overQuotaException) { + // We are here over quota + } + + List<MessageUid> uids = messageManager.getMetaData(true, session, MessageManager.MetaData.FetchGroup.UNSEEN_COUNT).getRecent(); + messageManager.delete(uids, session); + // We have suppressed at list one message. Ensure we can add an other message. If is impossible, an exception will be thrown. + resources.appendMessage(messageManager, session, new FlagsBuilder().add(Flags.Flag.SEEN).build()); + } + + @Test + public void testRetrievalOverMaxStorageAfterDelete() throws Exception { + QuotaSize maxQuotaSize = QuotaSize.size(15 * MockMail.MAIL_TEXT_PLAIN.getBytes(StandardCharsets.UTF_8).length + 1); + maxQuotaManager.setMaxStorage(quotaRootResolver.getQuotaRoot(inbox), maxQuotaSize); + try { + resources.fillMailbox(); + } catch (OverQuotaException overQuotaException) { + // We are here over quota + } + + List<MessageUid> uids = messageManager.getMetaData(true, session, MessageManager.MetaData.FetchGroup.UNSEEN_COUNT).getRecent(); + messageManager.delete(uids, session); + // We have suppressed at list one message. Ensure we can add an other message. If is impossible, an exception will be thrown. + resources.appendMessage(messageManager, session, new FlagsBuilder().add(Flags.Flag.SEEN).build()); + } + + @Test public void deletingAMailboxShouldDecreaseCurrentQuota() throws Exception { resources.fillMailbox(); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
