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]

Reply via email to