JAMES-2468 Add tests for quota updates upon mailbox deletion
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/31662d59 Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/31662d59 Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/31662d59 Branch: refs/heads/master Commit: 31662d5969f5758754e4a0bbc846177a95d9c49c Parents: a4214bd Author: benwa <[email protected]> Authored: Wed Aug 1 15:28:43 2018 +0700 Committer: Benoit Tellier <[email protected]> Committed: Fri Aug 3 07:56:28 2018 +0700 ---------------------------------------------------------------------- .../manager/QuotaMessageManagerTest.java | 41 ++++++++++++++++++++ 1 file changed, 41 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/james-project/blob/31662d59/mailbox/api/src/test/java/org/apache/james/mailbox/manager/QuotaMessageManagerTest.java ---------------------------------------------------------------------- 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 f8e6308..cea2c5d 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 @@ -19,6 +19,8 @@ package org.apache.james.mailbox.manager; +import java.nio.charset.StandardCharsets; + import javax.mail.Flags; import org.apache.james.core.quota.QuotaCount; @@ -31,8 +33,12 @@ import org.apache.james.mailbox.exception.OverQuotaException; import org.apache.james.mailbox.mock.MockMail; import org.apache.james.mailbox.model.MailboxPath; import org.apache.james.mailbox.model.MessageRange; +import org.apache.james.mailbox.model.Quota; +import org.apache.james.mailbox.model.QuotaRoot; import org.apache.james.mailbox.quota.MaxQuotaManager; import org.apache.james.mailbox.quota.QuotaRootResolver; +import org.apache.james.mime4j.dom.Message; +import org.assertj.core.api.SoftAssertions; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -142,5 +148,40 @@ public abstract class QuotaMessageManagerTest<T extends MailboxManager> { resources.appendMessage(messageManager, session, new FlagsBuilder().add(Flags.Flag.SEEN).build()); } + @Test + public void deletingAMailboxShouldDecreaseCurrentQuota() throws Exception { + resources.fillMailbox(); + + mailboxManager.deleteMailbox(inbox, session); + + QuotaRoot quotaRoot = quotaRootResolver.getQuotaRoot(inbox); + Quota<QuotaCount> messageQuota = resources.getQuotaManager().getMessageQuota(quotaRoot); + Quota<QuotaSize> storageQuota = resources.getQuotaManager().getStorageQuota(quotaRoot); + SoftAssertions.assertSoftly(softly -> { + softly.assertThat(messageQuota.getUsed()).isEqualTo(QuotaCount.count(0)); + softly.assertThat(storageQuota.getUsed()).isEqualTo(QuotaSize.size(0)); + }); + } + + @Test + public void deletingAMailboxShouldPreserveQuotaOfOtherMailboxes() throws Exception { + resources.fillMailbox(); + mailboxManager.getMailbox(subFolder, session) + .appendMessage(MessageManager.AppendCommand.from( + Message.Builder.of() + .setSubject("test") + .setBody("testmail", StandardCharsets.UTF_8) + .build()), session); + + mailboxManager.deleteMailbox(subFolder, session); + + QuotaRoot quotaRoot = quotaRootResolver.getQuotaRoot(inbox); + Quota<QuotaCount> messageQuota = resources.getQuotaManager().getMessageQuota(quotaRoot); + Quota<QuotaSize> storageQuota = resources.getQuotaManager().getStorageQuota(quotaRoot); + SoftAssertions.assertSoftly(softly -> { + softly.assertThat(messageQuota.getUsed()).isEqualTo(QuotaCount.count(32)); + softly.assertThat(storageQuota.getUsed()).isEqualTo(QuotaSize.size(7904)); + }); + } } \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
