This is an automated email from the ASF dual-hosted git repository. rcordier pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/james-project.git
commit b9a1ddc24b589d305c0a9d70112f2ba2f7ab19cd Author: Rene Cordier <[email protected]> AuthorDate: Wed Apr 8 16:55:34 2020 +0700 JAMES-3138 Strong type count and size in CurrentQuotas --- .../inmemory/quota/InMemoryCurrentQuotaManager.java | 7 ++++--- .../inmemory/quota/InMemoryCurrentQuotaManagerTest.java | 10 +++++++--- .../james/mailbox/store/quota/CurrentQuotaCalculator.java | 14 ++++++++------ 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java index 89ae43e..392196a 100644 --- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java +++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManager.java @@ -31,6 +31,7 @@ import org.apache.james.mailbox.SessionProvider; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.QuotaRoot; import org.apache.james.mailbox.store.quota.CurrentQuotaCalculator; +import org.apache.james.mailbox.store.quota.CurrentQuotaCalculator.CurrentQuotas; import org.apache.james.mailbox.store.quota.StoreCurrentQuotaManager; import com.google.common.base.Preconditions; @@ -102,9 +103,9 @@ public class InMemoryCurrentQuotaManager implements StoreCurrentQuotaManager { private final AtomicLong count; private final AtomicLong size; - public Entry(CurrentQuotaCalculator.CurrentQuotas currentQuotas) { - this.count = new AtomicLong(currentQuotas.getCount()); - this.size = new AtomicLong(currentQuotas.getSize()); + public Entry(CurrentQuotas currentQuotas) { + this.count = new AtomicLong(currentQuotas.count().asLong()); + this.size = new AtomicLong(currentQuotas.size().asLong()); } public AtomicLong getCount() { diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManagerTest.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManagerTest.java index 182978b..75c9427 100644 --- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManagerTest.java +++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/quota/InMemoryCurrentQuotaManagerTest.java @@ -31,12 +31,16 @@ import org.apache.james.core.quota.QuotaSizeUsage; import org.apache.james.mailbox.SessionProvider; import org.apache.james.mailbox.model.QuotaRoot; import org.apache.james.mailbox.store.quota.CurrentQuotaCalculator; +import org.apache.james.mailbox.store.quota.CurrentQuotaCalculator.CurrentQuotas; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; class InMemoryCurrentQuotaManagerTest { static final QuotaRoot QUOTA_ROOT = QuotaRoot.quotaRoot("benwa", Optional.empty()); + static final CurrentQuotas CURRENT_QUOTAS = new CurrentQuotas( + QuotaCountUsage.count(18), + QuotaSizeUsage.size(512)); InMemoryCurrentQuotaManager testee; CurrentQuotaCalculator mockedCurrentQuotaCalculator; @@ -50,7 +54,7 @@ class InMemoryCurrentQuotaManagerTest { @Test void getCurrentMessageCountShouldReturnRecalculateMessageCountWhenEntryIsNotInitialized() throws Exception { when(mockedCurrentQuotaCalculator.recalculateCurrentQuotas(QUOTA_ROOT, null)) - .thenReturn(new CurrentQuotaCalculator.CurrentQuotas(18, 512)); + .thenReturn(CURRENT_QUOTAS); assertThat(testee.getCurrentMessageCount(QUOTA_ROOT)).isEqualTo(QuotaCountUsage.count(18)); } @@ -58,7 +62,7 @@ class InMemoryCurrentQuotaManagerTest { @Test void getCurrentStorageShouldReturnRecalculateSizeWhenEntryIsNotInitialized() throws Exception { when(mockedCurrentQuotaCalculator.recalculateCurrentQuotas(QUOTA_ROOT, null)) - .thenReturn(new CurrentQuotaCalculator.CurrentQuotas(18, 512)); + .thenReturn(CURRENT_QUOTAS); assertThat(testee.getCurrentStorage(QUOTA_ROOT)).isEqualTo(QuotaSizeUsage.size(512)); } @@ -66,7 +70,7 @@ class InMemoryCurrentQuotaManagerTest { @Test void getCurrentStorageShouldReRetrieveStoredQuotasWhenCalculateOnUnknownQuotaIsTrue() throws Exception { when(mockedCurrentQuotaCalculator.recalculateCurrentQuotas(QUOTA_ROOT, null)) - .thenReturn(new CurrentQuotaCalculator.CurrentQuotas(18, 512)); + .thenReturn(CURRENT_QUOTAS); testee.increase(QUOTA_ROOT, 10, 100); diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/CurrentQuotaCalculator.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/CurrentQuotaCalculator.java index a46b2dd..99fcaff 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/CurrentQuotaCalculator.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/quota/CurrentQuotaCalculator.java @@ -26,6 +26,8 @@ import java.util.List; import javax.inject.Inject; +import org.apache.james.core.quota.QuotaCountUsage; +import org.apache.james.core.quota.QuotaSizeUsage; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.exception.MailboxException; import org.apache.james.mailbox.model.Mailbox; @@ -60,23 +62,23 @@ public class CurrentQuotaCalculator { messagesSizes += messages.next().getFullContentOctets(); } } - return new CurrentQuotas(messageCount, messagesSizes); + return new CurrentQuotas(QuotaCountUsage.count(messageCount), QuotaSizeUsage.size(messagesSizes)); } public static class CurrentQuotas { - private final long count; - private final long size; + private final QuotaCountUsage count; + private final QuotaSizeUsage size; - public CurrentQuotas(long count, long size) { + public CurrentQuotas(QuotaCountUsage count, QuotaSizeUsage size) { this.count = count; this.size = size; } - public long getCount() { + public QuotaCountUsage count() { return count; } - public long getSize() { + public QuotaSizeUsage size() { return size; } } --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
