You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rc...@apache.org on 2020/04/17 02:06:54 UTC

[james-project] 01/04: JAMES-3138 Strong type count and size in CurrentQuotas

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 <rc...@linagora.com>
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org