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/02/21 02:27:21 UTC

[james-project] 08/13: JAMES-3057 Making MailboxId final in Mailbox object

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 00067621372b8dc8c571a7550c1c9ab884a5baf8
Author: Rene Cordier <rc...@linagora.com>
AuthorDate: Thu Feb 20 14:36:21 2020 +0700

    JAMES-3057 Making MailboxId final in Mailbox object
---
 .../org/apache/james/mailbox/model/Mailbox.java    | 11 +--
 .../mailbox/model/MailboxAssertingToolTest.java    | 84 ++++++++--------------
 .../cassandra/mail/CassandraMailboxDAO.java        | 17 ++---
 .../cassandra/mail/CassandraMailboxDAOTest.java    | 15 ++--
 .../cassandra/mail/CassandraMailboxMapperTest.java | 23 +++---
 .../mail/CassandraModSeqProviderTest.java          |  3 +-
 .../cassandra/mail/CassandraUidProviderTest.java   |  3 +-
 .../james/mailbox/jpa/mail/JPAMailboxMapper.java   |  1 -
 .../apache/james/mailbox/maildir/MaildirStore.java |  3 +-
 .../mailbox/maildir/mail/MaildirMailboxMapper.java |  1 -
 .../james/mailbox/store/StoreRightManagerTest.java | 34 +++++----
 .../store/mail/model/ListMailboxAssertTest.java    | 18 +++--
 .../store/mail/model/ListMessageAssertTest.java    |  5 +-
 .../store/mail/model/MessageIdMapperTest.java      |  6 +-
 .../model/MessageWithAttachmentMapperTest.java     |  6 +-
 .../quota/DefaultUserQuotaRootResolverTest.java    |  6 +-
 .../mailbox/store/quota/QuotaCheckerTest.java      |  5 +-
 17 files changed, 99 insertions(+), 142 deletions(-)

diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/Mailbox.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/Mailbox.java
index fef8088..83b7a6b 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/Mailbox.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/Mailbox.java
@@ -29,7 +29,7 @@ import com.google.common.base.Objects;
  * Models long term mailbox data.
  */
 public class Mailbox {
-    private MailboxId id = null;
+    private final MailboxId id;
     private String namespace;
     private Username user;
     private String name;
@@ -44,10 +44,6 @@ public class Mailbox {
         this.uidValidity = uidValidity;
     }
 
-    public Mailbox(MailboxPath path, long uidValidity) {
-        this(path, uidValidity, null);
-    }
-
     public Mailbox(Mailbox mailbox) {
         this.id = mailbox.getMailboxId();
         this.namespace = mailbox.getNamespace();
@@ -125,11 +121,6 @@ public class Mailbox {
         return new MailboxPath(getNamespace(), getUser(), getName());
     }
 
-
-    public void setMailboxId(MailboxId id) {
-        this.id = id;
-    }
-
     /**
      * Gets the current ACL for this mailbox.
      */
diff --git a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxAssertingToolTest.java b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxAssertingToolTest.java
index 02e09ad..573bc36 100644
--- a/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxAssertingToolTest.java
+++ b/mailbox/api/src/test/java/org/apache/james/mailbox/model/MailboxAssertingToolTest.java
@@ -38,20 +38,16 @@ class MailboxAssertingToolTest {
     class MailboxAssertTest {
         @Test
         void isEqualToShouldNotFailWithEqualMailbox() {
-            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            mailbox1.setMailboxId(MAILBOX_ID);
-            mailbox2.setMailboxId(MAILBOX_ID);
+            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
+            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
 
             MailboxAssertingTool.assertThat(mailbox1).isEqualTo(mailbox2);
         }
 
         @Test
         void isEqualToShouldFailWithNotEqualNamespace() {
-            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            Mailbox mailbox2 = new Mailbox(new MailboxPath("other_namespace", USER, "name"), UID_VALIDITY);
-            mailbox1.setMailboxId(MAILBOX_ID);
-            mailbox2.setMailboxId(MAILBOX_ID);
+            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
+            Mailbox mailbox2 = new Mailbox(new MailboxPath("other_namespace", USER, "name"), UID_VALIDITY, MAILBOX_ID);
 
             assertThatThrownBy(() -> MailboxAssertingTool.assertThat(mailbox1).isEqualTo(mailbox2))
                 .isInstanceOf(AssertionError.class);
@@ -59,10 +55,8 @@ class MailboxAssertingToolTest {
 
         @Test
         void isEqualToShouldFailWithNotEqualUser() {
-            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            Mailbox mailbox2 = new Mailbox(new MailboxPath("namespace", Username.of("other_user"), "name"), UID_VALIDITY);
-            mailbox1.setMailboxId(MAILBOX_ID);
-            mailbox2.setMailboxId(MAILBOX_ID);
+            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
+            Mailbox mailbox2 = new Mailbox(new MailboxPath("namespace", Username.of("other_user"), "name"), UID_VALIDITY, MAILBOX_ID);
 
             assertThatThrownBy(() -> MailboxAssertingTool.assertThat(mailbox1).isEqualTo(mailbox2))
                 .isInstanceOf(AssertionError.class);
@@ -70,10 +64,8 @@ class MailboxAssertingToolTest {
 
         @Test
         void isEqualToShouldFailWithNotEqualName() {
-            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            Mailbox mailbox2 = new Mailbox(new MailboxPath("namespace", USER, "other_name"), UID_VALIDITY);
-            mailbox1.setMailboxId(MAILBOX_ID);
-            mailbox2.setMailboxId(MAILBOX_ID);
+            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
+            Mailbox mailbox2 = new Mailbox(new MailboxPath("namespace", USER, "other_name"), UID_VALIDITY, MAILBOX_ID);
 
             assertThatThrownBy(() -> MailboxAssertingTool.assertThat(mailbox1).isEqualTo(mailbox2))
                 .isInstanceOf(AssertionError.class);
@@ -81,10 +73,8 @@ class MailboxAssertingToolTest {
 
         @Test
         void isEqualToShouldFailWithNotEqualId() {
-            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            mailbox1.setMailboxId(MAILBOX_ID);
-            mailbox2.setMailboxId(TestId.of(MAILBOX_ID.id + 1));
+            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
+            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, TestId.of(MAILBOX_ID.id + 1));
 
             assertThatThrownBy(() -> MailboxAssertingTool.assertThat(mailbox1).isEqualTo(mailbox2))
                 .isInstanceOf(AssertionError.class);
@@ -92,10 +82,8 @@ class MailboxAssertingToolTest {
 
         @Test
         void isEqualToShouldFailWithNotEqualUidValidity() {
-            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY + 1);
-            mailbox1.setMailboxId(MAILBOX_ID);
-            mailbox2.setMailboxId(MAILBOX_ID);
+            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
+            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY + 1, MAILBOX_ID);
 
             assertThatThrownBy(() -> MailboxAssertingTool.assertThat(mailbox1).isEqualTo(mailbox2))
                 .isInstanceOf(AssertionError.class);
@@ -108,10 +96,8 @@ class MailboxAssertingToolTest {
 
         @Test
         void isEqualToShouldNotFailWithEqualMailbox() {
-            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            mailbox1.setMailboxId(MAILBOX_ID);
-            mailbox2.setMailboxId(MAILBOX_ID);
+            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
+            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
 
             SoftAssertions.assertSoftly(softly -> {
                 MailboxAssertingTool.softly(softly)
@@ -122,10 +108,8 @@ class MailboxAssertingToolTest {
 
         @Test
         void isEqualToShouldFailWithNotEqualNamespace() {
-            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            Mailbox mailbox2 = new Mailbox(new MailboxPath("other_namespace", USER, "name"), UID_VALIDITY);
-            mailbox1.setMailboxId(MAILBOX_ID);
-            mailbox2.setMailboxId(MAILBOX_ID);
+            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
+            Mailbox mailbox2 = new Mailbox(new MailboxPath("other_namespace", USER, "name"), UID_VALIDITY, MAILBOX_ID);
 
             assertThatThrownBy(() -> {
                     SoftAssertions.assertSoftly(softly -> {
@@ -140,10 +124,8 @@ class MailboxAssertingToolTest {
 
         @Test
         void isEqualToShouldFailWithNotEqualName() {
-            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "other_name"), UID_VALIDITY);
-            mailbox1.setMailboxId(MAILBOX_ID);
-            mailbox2.setMailboxId(MAILBOX_ID);
+            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
+            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "other_name"), UID_VALIDITY, MAILBOX_ID);
 
             assertThatThrownBy(() -> {
                     SoftAssertions.assertSoftly(softly -> {
@@ -158,10 +140,8 @@ class MailboxAssertingToolTest {
 
         @Test
         void isEqualToShouldFailWithNotEqualId() {
-            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            mailbox1.setMailboxId(MAILBOX_ID);
-            mailbox2.setMailboxId(TestId.of(MAILBOX_ID.id + 1));
+            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
+            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, TestId.of(MAILBOX_ID.id + 1));
 
             assertThatThrownBy(() -> {
                     SoftAssertions.assertSoftly(softly -> {
@@ -176,10 +156,8 @@ class MailboxAssertingToolTest {
 
         @Test
         void isEqualToShouldFailWithNotEqualUidValidity() {
-            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY + 1);
-            mailbox1.setMailboxId(MAILBOX_ID);
-            mailbox2.setMailboxId(MAILBOX_ID);
+            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
+            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY + 1, MAILBOX_ID);
 
             assertThatThrownBy(() -> {
                     SoftAssertions.assertSoftly(softly -> {
@@ -194,10 +172,8 @@ class MailboxAssertingToolTest {
 
         @Test
         void isEqualToShouldFailWithNotSameSizeEntries() throws Exception {
-            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            mailbox1.setMailboxId(MAILBOX_ID);
-            mailbox2.setMailboxId(MAILBOX_ID);
+            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
+            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
 
             mailbox1.setACL(new MailboxACL(
                 new MailboxACL.Entry(USER.asString(), MailboxACL.Right.Write)));
@@ -218,10 +194,8 @@ class MailboxAssertingToolTest {
 
         @Test
         void isEqualToShouldFailWithSameSizeButDifferentEntries() throws Exception {
-            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            mailbox1.setMailboxId(MAILBOX_ID);
-            mailbox2.setMailboxId(MAILBOX_ID);
+            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
+            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
 
             mailbox1.setACL(new MailboxACL(
                 new MailboxACL.Entry(USER.asString(), MailboxACL.Right.Write)));
@@ -241,10 +215,8 @@ class MailboxAssertingToolTest {
 
         @Test
         void isEqualToShouldPassWithSameSizeEntriesButDifferentOrder() throws Exception {
-            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY);
-            mailbox1.setMailboxId(MAILBOX_ID);
-            mailbox2.setMailboxId(MAILBOX_ID);
+            Mailbox mailbox1 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
+            Mailbox mailbox2 = new Mailbox(MailboxPath.forUser(USER, "name"), UID_VALIDITY, MAILBOX_ID);
 
             mailbox1.setACL(new MailboxACL(
                 new MailboxACL.Entry(USER1.asString(), MailboxACL.Right.Read),
diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java
index 1fd07a7..3c7a9f9 100644
--- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java
+++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAO.java
@@ -135,22 +135,17 @@ public class CassandraMailboxDAO {
     public Mono<Mailbox> retrieveMailbox(CassandraId mailboxId) {
         return executor.executeSingleRow(readStatement.bind()
             .setUUID(ID, mailboxId.asUuid()))
-            .map(this::mailboxFromRow)
-            .map(mailbox -> addMailboxId(mailboxId, mailbox));
+            .map(row -> mailboxFromRow(row, mailboxId));
     }
 
-    private Mailbox addMailboxId(CassandraId cassandraId, Mailbox mailbox) {
-        mailbox.setMailboxId(cassandraId);
-        return mailbox;
-    }
-
-    private Mailbox mailboxFromRow(Row row) {
+    private Mailbox mailboxFromRow(Row row, CassandraId cassandraId) {
         return new Mailbox(
             new MailboxPath(
                 row.getUDTValue(MAILBOX_BASE).getString(CassandraMailboxTable.MailboxBase.NAMESPACE),
                 Username.of(row.getUDTValue(MAILBOX_BASE).getString(CassandraMailboxTable.MailboxBase.USER)),
                 row.getString(NAME)),
-            row.getLong(UIDVALIDITY));
+            row.getLong(UIDVALIDITY),
+            cassandraId);
     }
 
     public Flux<Mailbox> retrieveAllMailboxes() {
@@ -160,9 +155,7 @@ public class CassandraMailboxDAO {
     }
 
     private Mailbox toMailboxWithId(Row row) {
-        Mailbox mailbox = mailboxFromRow(row);
-        mailbox.setMailboxId(CassandraId.of(row.getUUID(ID)));
-        return mailbox;
+        return mailboxFromRow(row, CassandraId.of(row.getUUID(ID)));
     }
 
 }
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAOTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAOTest.java
index 59d4dcc..459bd6e 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAOTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxDAOTest.java
@@ -33,6 +33,7 @@ import org.apache.james.mailbox.cassandra.ids.CassandraId;
 import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
 import org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule;
 import org.apache.james.mailbox.model.Mailbox;
+import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -44,7 +45,6 @@ class CassandraMailboxDAOTest {
     private static final Username USER = Username.of("user");
     private static final MailboxPath NEW_MAILBOX_PATH = MailboxPath.forUser(USER, "xyz");
     private static CassandraId CASSANDRA_ID_1 = CassandraId.timeBased();
-    private static CassandraId CASSANDRA_ID_2 = CassandraId.timeBased();
 
     @RegisterExtension
     static CassandraClusterExtension cassandraCluster = new CassandraClusterExtension(
@@ -56,7 +56,6 @@ class CassandraMailboxDAOTest {
 
     private CassandraMailboxDAO testee;
     private Mailbox mailbox1;
-    private Mailbox mailbox2;
 
     @BeforeEach
     void setUp(CassandraCluster cassandra) {
@@ -65,9 +64,6 @@ class CassandraMailboxDAOTest {
         mailbox1 = new Mailbox(MailboxPath.forUser(USER, "abcd"),
             UID_VALIDITY_1,
             CASSANDRA_ID_1);
-        mailbox2 = new Mailbox(MailboxPath.forUser(USER, "defg"),
-            UID_VALIDITY_2,
-            CASSANDRA_ID_2);
     }
 
     @Test
@@ -90,10 +86,9 @@ class CassandraMailboxDAOTest {
     void saveShouldOverride() {
         testee.save(mailbox1).block();
 
-        mailbox2.setMailboxId(CASSANDRA_ID_1);
+        Mailbox mailbox2 = createMailbox(CASSANDRA_ID_1);
         testee.save(mailbox2).block();
 
-
         Optional<Mailbox> readMailbox = testee.retrieveMailbox(CASSANDRA_ID_1)
             .blockOptional();
         assertThat(readMailbox.isPresent()).isTrue();
@@ -122,6 +117,8 @@ class CassandraMailboxDAOTest {
 
     @Test
     void retrieveAllMailboxesShouldReturnMultiMailboxes() {
+        Mailbox mailbox2 = createMailbox(CassandraId.timeBased());
+
         testee.save(mailbox1).block();
         testee.save(mailbox2).block();
 
@@ -165,4 +162,8 @@ class CassandraMailboxDAOTest {
         assertThat(readMailbox.isPresent()).isTrue();
         assertThat(readMailbox.get()).isEqualToComparingFieldByField(mailbox1);
     }
+
+    private Mailbox createMailbox(MailboxId mailboxId) {
+        return new Mailbox(MailboxPath.forUser(USER, "defg"), UID_VALIDITY_2, mailboxId);
+    }
 }
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperTest.java
index 220e817..c2835a6 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperTest.java
@@ -45,6 +45,7 @@ import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.MailboxNotFoundException;
 import org.apache.james.mailbox.exception.TooLongMailboxNameException;
 import org.apache.james.mailbox.model.Mailbox;
+import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.search.ExactName;
 import org.apache.james.mailbox.model.search.MailboxQuery;
@@ -112,7 +113,6 @@ class CassandraMailboxMapperTest {
 
         private MailboxPath inboxPath;
         private MailboxPath inboxPathRenamed;
-        private Mailbox inboxRenamed;
         private MailboxQuery.UserBound allMailboxesSearchQuery;
         private MailboxQuery.UserBound inboxSearchQuery;
         private MailboxQuery.UserBound inboxRenamedSearchQuery;
@@ -121,7 +121,6 @@ class CassandraMailboxMapperTest {
         void setUp() {
             inboxPath = MailboxPath.forUser(USER, INBOX);
             inboxPathRenamed = MailboxPath.forUser(USER, INBOX_RENAMED);
-            inboxRenamed = new Mailbox(inboxPathRenamed, UID_VALIDITY);
             allMailboxesSearchQuery = MailboxQuery.builder()
                 .userAndNamespaceFrom(inboxPath)
                 .expression(Wildcard.INSTANCE)
@@ -161,7 +160,7 @@ class CassandraMailboxMapperTest {
         void renameThenFailToRetrieveMailboxShouldBeConsistentWhenFindByInbox() throws Exception {
             Mailbox inbox = testee.create(inboxPath, UID_VALIDITY);
             CassandraId inboxId = (CassandraId) inbox.getMailboxId();
-            inboxRenamed.setMailboxId(inboxId);
+            Mailbox inboxRenamed = createInboxRenamedMailbox(inboxId);
 
             when(mailboxDAO.retrieveMailbox(inboxId))
                 .thenReturn(Mono.error(new RuntimeException("mock exception")))
@@ -188,7 +187,7 @@ class CassandraMailboxMapperTest {
         void renameThenFailToRetrieveMailboxShouldBeConsistentWhenFindAll() throws Exception {
             Mailbox inbox = testee.create(inboxPath, UID_VALIDITY);
             CassandraId inboxId = (CassandraId) inbox.getMailboxId();
-            inboxRenamed.setMailboxId(inboxId);
+            Mailbox inboxRenamed = createInboxRenamedMailbox(inboxId);
 
             when(mailboxDAO.retrieveMailbox(inboxId))
                 .thenReturn(Mono.error(new RuntimeException("mock exception")))
@@ -209,7 +208,7 @@ class CassandraMailboxMapperTest {
         void renameThenFailToRetrieveMailboxShouldBeConsistentWhenFindByRenamedInbox() throws Exception {
             Mailbox inbox = testee.create(inboxPath, UID_VALIDITY);
             CassandraId inboxId = (CassandraId) inbox.getMailboxId();
-            inboxRenamed.setMailboxId(inboxId);
+            Mailbox inboxRenamed = createInboxRenamedMailbox(inboxId);
 
             when(mailboxDAO.retrieveMailbox(inboxId))
                 .thenReturn(Mono.error(new RuntimeException("mock exception")))
@@ -229,7 +228,7 @@ class CassandraMailboxMapperTest {
         void renameThenFailToDeleteMailboxPathShouldBeConsistentWhenFindByInbox() throws Exception {
             Mailbox inbox = testee.create(inboxPath, UID_VALIDITY);
             CassandraId inboxId = (CassandraId) inbox.getMailboxId();
-            inboxRenamed.setMailboxId(inboxId);
+            Mailbox inboxRenamed = createInboxRenamedMailbox(inboxId);
 
             when(mailboxPathV2DAO.delete(inboxPath))
                 .thenReturn(Mono.error(new RuntimeException("mock exception")))
@@ -256,7 +255,7 @@ class CassandraMailboxMapperTest {
         void renameThenFailToDeleteMailboxPathShouldBeConsistentWhenFindAll() throws Exception {
             Mailbox inbox = testee.create(inboxPath, UID_VALIDITY);
             CassandraId inboxId = (CassandraId) inbox.getMailboxId();
-            inboxRenamed.setMailboxId(inboxId);
+            Mailbox inboxRenamed = createInboxRenamedMailbox(inboxId);
 
             when(mailboxPathV2DAO.delete(inboxPath))
                 .thenReturn(Mono.error(new RuntimeException("mock exception")))
@@ -277,7 +276,7 @@ class CassandraMailboxMapperTest {
         void renameThenFailToDeleteMailboxPathShouldBeConsistentWhenFindByRenamedInbox() throws Exception {
             Mailbox inbox = testee.create(inboxPath, UID_VALIDITY);
             CassandraId inboxId = (CassandraId) inbox.getMailboxId();
-            inboxRenamed.setMailboxId(inboxId);
+            Mailbox inboxRenamed = createInboxRenamedMailbox(inboxId);
 
             when(mailboxPathV2DAO.delete(inboxPath))
                 .thenReturn(Mono.error(new RuntimeException("mock exception")))
@@ -426,7 +425,7 @@ class CassandraMailboxMapperTest {
         void renameAfterRenameFailOnRetrieveMailboxShouldRenameTheMailbox() throws Exception {
             Mailbox inbox = testee.create(inboxPath, UID_VALIDITY);
             CassandraId inboxId = (CassandraId) inbox.getMailboxId();
-            inboxRenamed.setMailboxId(inboxId);
+            Mailbox inboxRenamed = createInboxRenamedMailbox(inboxId);
 
             when(mailboxDAO.retrieveMailbox(inboxId))
                 .thenReturn(Mono.error(new RuntimeException("mock exception")))
@@ -460,7 +459,7 @@ class CassandraMailboxMapperTest {
         void renameAfterRenameFailOnDeletePathShouldRenameTheMailbox() throws Exception {
             Mailbox inbox = testee.create(inboxPath, UID_VALIDITY);
             CassandraId inboxId = (CassandraId) inbox.getMailboxId();
-            inboxRenamed.setMailboxId(inboxId);
+            Mailbox inboxRenamed = createInboxRenamedMailbox(inboxId);
 
             when(mailboxPathV2DAO.delete(inboxPath))
                 .thenReturn(Mono.error(new RuntimeException("mock exception")))
@@ -497,6 +496,10 @@ class CassandraMailboxMapperTest {
                 // ignore
             }
         }
+
+        private Mailbox createInboxRenamedMailbox(MailboxId mailboxId) {
+            return new Mailbox(inboxPathRenamed, UID_VALIDITY, mailboxId);
+        }
     }
 
     @Disabled("JAMES-2514 Cassandra 3 supports long mailbox names. Hence we can not rely on this for failing")
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProviderTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProviderTest.java
index 5daf429..93637ef 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProviderTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraModSeqProviderTest.java
@@ -55,8 +55,7 @@ class CassandraModSeqProviderTest {
     void setUp(CassandraCluster cassandra) {
         modSeqProvider = new CassandraModSeqProvider(cassandra.getConf(), CassandraConfiguration.DEFAULT_CONFIGURATION);
         MailboxPath path = new MailboxPath("gsoc", Username.of("ieugen"), "Trash");
-        mailbox = new Mailbox(path, 1234);
-        mailbox.setMailboxId(CASSANDRA_ID);
+        mailbox = new Mailbox(path, 1234, CASSANDRA_ID);
     }
 
     @Test
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProviderTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProviderTest.java
index 9f93323..88c4294 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProviderTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraUidProviderTest.java
@@ -55,8 +55,7 @@ class CassandraUidProviderTest {
     void setUp(CassandraCluster cassandra) {
         uidProvider = new CassandraUidProvider(cassandra.getConf(), CassandraConfiguration.DEFAULT_CONFIGURATION);
         MailboxPath path = new MailboxPath("gsoc", Username.of("ieugen"), "Trash");
-        mailbox = new Mailbox(path, 1234);
-        mailbox.setMailboxId(CASSANDRA_ID);
+        mailbox = new Mailbox(path, 1234, CASSANDRA_ID);
     }
 
     @Test
diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
index 5ba8264..40613e9 100644
--- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
+++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
@@ -113,7 +113,6 @@ public class JPAMailboxMapper extends JPATransactionalMapper implements MailboxM
             JPAMailbox persistedMailbox = jpaMailbox(mailbox);
 
             getEntityManager().persist(persistedMailbox);
-            mailbox.setMailboxId(persistedMailbox.getMailboxId());
             return persistedMailbox.getMailboxId();
         } catch (PersistenceException e) {
             throw new MailboxException("Save of mailbox " + mailbox.getName() + " failed", e);
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirStore.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirStore.java
index 8637da7..18a81c7 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirStore.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/MaildirStore.java
@@ -131,8 +131,7 @@ public class MaildirStore implements UidProvider, ModSeqProvider {
         MaildirFolder folder = new MaildirFolder(mailboxFile.getAbsolutePath(), mailboxPath, locker);
         folder.setMessageNameStrictParse(isMessageNameStrictParse());
         try {
-            Mailbox loadedMailbox = new Mailbox(mailboxPath, folder.getUidValidity());
-            loadedMailbox.setMailboxId(folder.readMailboxId());
+            Mailbox loadedMailbox = new Mailbox(mailboxPath, folder.getUidValidity(), folder.readMailboxId());
             loadedMailbox.setACL(folder.getACL());
             return loadedMailbox;
         } catch (IOException e) {
diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
index 16fc17b..4be42b9 100644
--- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
+++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
@@ -180,7 +180,6 @@ public class MaildirMailboxMapper extends NonTransactionalMapper implements Mail
         try {
             folder.setUidValidity(mailbox.getUidValidity());
             folder.setMailboxId(maildirId);
-            mailbox.setMailboxId(maildirId);
         } catch (IOException ioe) {
             throw new MailboxException("Failed to save Mailbox " + mailbox, ioe);
 
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java
index 3dc1564..a9e7933 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/StoreRightManagerTest.java
@@ -48,14 +48,18 @@ import org.apache.james.mailbox.model.MailboxACL;
 import org.apache.james.mailbox.model.MailboxACL.ACLCommand;
 import org.apache.james.mailbox.model.MailboxACL.Right;
 import org.apache.james.mailbox.model.MailboxConstants;
+import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mailbox.model.TestId;
 import org.apache.james.mailbox.store.mail.MailboxMapper;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
 class StoreRightManagerTest {
 
+    static final MailboxId MAILBOX_ID = TestId.of(42);
     static final long UID_VALIDITY = 3421L;
+
     StoreRightManager storeRightManager;
     MailboxSession aliceSession;
     MailboxACLResolver mailboxAclResolver;
@@ -89,7 +93,7 @@ class StoreRightManagerTest {
 
     @Test
     void hasRightShouldReturnTrueWhenTheUserOwnTheMailbox() throws MailboxException {
-        Mailbox mailbox = new Mailbox(MailboxPath.forUser(ALICE, MailboxConstants.INBOX), UID_VALIDITY);
+        Mailbox mailbox = new Mailbox(MailboxPath.forUser(ALICE, MailboxConstants.INBOX), UID_VALIDITY, MAILBOX_ID);
 
         assertThat(storeRightManager.hasRight(mailbox, Right.Write, aliceSession))
             .isTrue();
@@ -97,7 +101,7 @@ class StoreRightManagerTest {
 
     @Test
     void hasRightShouldReturnTrueWhenTheUserDoesNotOwnTheMailboxButHaveTheCorrectRightOnIt() throws MailboxException {
-        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
+        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY, MAILBOX_ID);
         mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.Write)));
 
         assertThat(storeRightManager.hasRight(mailbox, Right.Write, aliceSession))
@@ -106,7 +110,7 @@ class StoreRightManagerTest {
 
     @Test
     void hasRightShouldReturnTrueWhenTheUserDoesNotOwnTheMailboxButHasAtLeastTheCorrectRightOnIt() throws MailboxException {
-        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
+        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY, MAILBOX_ID);
         mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.Write, Right.Lookup)));
 
         assertThat(storeRightManager.hasRight(mailbox, Right.Write, aliceSession))
@@ -115,7 +119,7 @@ class StoreRightManagerTest {
 
     @Test
     void hasRightShouldReturnFalseWhenTheUserDoesNotOwnTheMailboxAndHasNoRightOnIt() throws MailboxException {
-        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
+        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY, MAILBOX_ID);
 
         assertThat(storeRightManager.hasRight(mailbox, Right.Write, aliceSession))
             .isFalse();
@@ -124,7 +128,7 @@ class StoreRightManagerTest {
     @Test
     void isReadWriteShouldReturnTrueWhenUserHasInsertRightOnMailbox() throws Exception {
         Flags flags = new Flags();
-        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
+        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY, MAILBOX_ID);
         mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.Insert)));
 
         assertThat(storeRightManager.isReadWrite(aliceSession, mailbox, flags))
@@ -134,7 +138,7 @@ class StoreRightManagerTest {
     @Test
     void isReadWriteShouldReturnTrueWhenUserHasPerformExpungeRightOnMailbox() throws Exception {
         Flags flags = new Flags();
-        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
+        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY, MAILBOX_ID);
         mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.PerformExpunge)));
 
         assertThat(storeRightManager.isReadWrite(aliceSession, mailbox, flags))
@@ -144,7 +148,7 @@ class StoreRightManagerTest {
     @Test
     void isReadWriteShouldReturnTrueWhenUserHasDeleteMessagesRightOnMailboxAndFlagsContainDeletedFlag() throws Exception {
         Flags flags = new Flags(Flags.Flag.DELETED);
-        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
+        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY, MAILBOX_ID);
         mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.DeleteMessages)));
 
         assertThat(storeRightManager.isReadWrite(aliceSession, mailbox, flags))
@@ -154,7 +158,7 @@ class StoreRightManagerTest {
     @Test
     void isReadWriteShouldReturnFalseWhenUserHasDeleteMessagesRightOnMailboxButFlagsDoesNotContainDeletedFlag() throws Exception {
         Flags flags = new Flags();
-        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
+        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY, MAILBOX_ID);
         mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.DeleteMessages)));
 
         assertThat(storeRightManager.isReadWrite(aliceSession, mailbox, flags))
@@ -164,7 +168,7 @@ class StoreRightManagerTest {
     @Test
     void isReadWriteShouldReturnTrueWhenUserHasWriteSeenFlagRightOnMailboxAndFlagsContainSeenFlag() throws Exception {
         Flags flags = new Flags(Flags.Flag.SEEN);
-        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
+        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY, MAILBOX_ID);
         mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.WriteSeenFlag)));
 
         assertThat(storeRightManager.isReadWrite(aliceSession, mailbox, flags))
@@ -174,7 +178,7 @@ class StoreRightManagerTest {
     @Test
     void isReadWriteShouldReturnFalseWhenUserHasWriteSeenFlagRightOnMailboxAndFlagsDoesNotContainSeenFlag() throws Exception {
         Flags flags = new Flags();
-        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
+        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY, MAILBOX_ID);
         mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.WriteSeenFlag)));
 
         assertThat(storeRightManager.isReadWrite(aliceSession, mailbox, flags))
@@ -184,7 +188,7 @@ class StoreRightManagerTest {
     @Test
     void isReadWriteShouldReturnTrueWhenUserHasWriteRightOnMailboxAndFlagsContainAnsweredFlag() throws Exception {
         Flags flags = new Flags(Flags.Flag.ANSWERED);
-        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
+        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY, MAILBOX_ID);
         mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.Write)));
 
         assertThat(storeRightManager.isReadWrite(aliceSession, mailbox, flags))
@@ -193,7 +197,7 @@ class StoreRightManagerTest {
 
     @Test
     void isReadWriteShouldReturnFalseWhenUserDoesNotHaveInsertOrPerformExpungeRightOnMailboxAndNullFlag() throws Exception {
-        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY);
+        Mailbox mailbox = new Mailbox(MailboxPath.forUser(BOB, MailboxConstants.INBOX), UID_VALIDITY, MAILBOX_ID);
         mailbox.setACL(new MailboxACL(new MailboxACL.Entry(MailboxFixture.ALICE.asString(), Right.Administer)));
 
         assertThat(storeRightManager.isReadWrite(aliceSession, mailbox, new Flags()))
@@ -206,7 +210,7 @@ class StoreRightManagerTest {
             .apply(MailboxACL.command().rights(Right.Read, Right.Write).forUser(BOB).asAddition())
             .apply(MailboxACL.command().rights(Right.Read, Right.Write, Right.Administer).forUser(CEDRIC).asAddition());
         MailboxACL actual = StoreRightManager.filteredForSession(
-            new Mailbox(INBOX_ALICE, UID_VALIDITY), acl, aliceSession);
+            new Mailbox(INBOX_ALICE, UID_VALIDITY, MAILBOX_ID), acl, aliceSession);
         assertThat(actual).isEqualTo(acl);
     }
 
@@ -216,7 +220,7 @@ class StoreRightManagerTest {
             .apply(MailboxACL.command().rights(Right.Read, Right.Write).forUser(BOB).asAddition())
             .apply(MailboxACL.command().rights(Right.Read, Right.Write, Right.Administer).forUser(CEDRIC).asAddition());
         MailboxACL actual = StoreRightManager.filteredForSession(
-            new Mailbox(INBOX_ALICE, UID_VALIDITY), acl, MailboxSessionUtil.create(CEDRIC));
+            new Mailbox(INBOX_ALICE, UID_VALIDITY, MAILBOX_ID), acl, MailboxSessionUtil.create(CEDRIC));
         assertThat(actual).isEqualTo(acl);
     }
 
@@ -226,7 +230,7 @@ class StoreRightManagerTest {
             .apply(MailboxACL.command().rights(Right.Read, Right.Write).forUser(BOB).asAddition())
             .apply(MailboxACL.command().rights(Right.Read, Right.Write, Right.Administer).forUser(CEDRIC).asAddition());
         MailboxACL actual = StoreRightManager.filteredForSession(
-            new Mailbox(INBOX_ALICE, UID_VALIDITY), acl, MailboxSessionUtil.create(BOB));
+            new Mailbox(INBOX_ALICE, UID_VALIDITY, MAILBOX_ID), acl, MailboxSessionUtil.create(BOB));
         assertThat(actual.getEntries()).containsKey(MailboxACL.EntryKey.createUserEntryKey(BOB));
     }
 
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssertTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssertTest.java
index ac87c08..de14605 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssertTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMailboxAssertTest.java
@@ -26,7 +26,9 @@ import java.util.List;
 
 import org.apache.james.core.Username;
 import org.apache.james.mailbox.model.Mailbox;
+import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
+import org.apache.james.mailbox.model.TestId;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 
@@ -38,16 +40,18 @@ class ListMailboxAssertTest {
     static final Username USER = Username.of("user");
     static final String NAMESPACE = "namespace";
     static final long UID_VALIDITY = 42;
-    static final Mailbox mailbox1 = new Mailbox(new MailboxPath(NAMESPACE, USER, NAME), UID_VALIDITY);
-    static final Mailbox mailbox2 = new Mailbox(new MailboxPath(OTHER_NAMESPACE, USER, NAME), UID_VALIDITY);
+    static final MailboxId MAILBOX_ID_1 = TestId.of(1);
+    static final MailboxId MAILBOX_ID_2 = TestId.of(2);
+    static final Mailbox MAILBOX_1 = new Mailbox(new MailboxPath(NAMESPACE, USER, NAME), UID_VALIDITY, MAILBOX_ID_1);
+    static final Mailbox MAILBOX_2 = new Mailbox(new MailboxPath(OTHER_NAMESPACE, USER, NAME), UID_VALIDITY, MAILBOX_ID_2);
 
     ListMailboxAssert listMaiboxAssert;
-    List<Mailbox> actualMailbox;
+    List<Mailbox> actualMailboxes;
 
     @BeforeEach
     void setUp() {
-        actualMailbox = ImmutableList.of(mailbox1, mailbox2);
-        listMaiboxAssert = ListMailboxAssert.assertMailboxes(actualMailbox);
+        actualMailboxes = ImmutableList.of(MAILBOX_1, MAILBOX_2);
+        listMaiboxAssert = ListMailboxAssert.assertMailboxes(actualMailboxes);
     }
 
     @Test
@@ -57,7 +61,7 @@ class ListMailboxAssertTest {
 
     @Test
     void assertListMailboxShouldWork() {
-        assertMailboxes(actualMailbox).containOnly(new Mailbox(new MailboxPath(NAMESPACE, USER, NAME), UID_VALIDITY),
-            new Mailbox(new MailboxPath(OTHER_NAMESPACE, USER, NAME), UID_VALIDITY));
+        assertMailboxes(actualMailboxes).containOnly(new Mailbox(new MailboxPath(NAMESPACE, USER, NAME), UID_VALIDITY, MAILBOX_ID_1),
+            new Mailbox(new MailboxPath(OTHER_NAMESPACE, USER, NAME), UID_VALIDITY, MAILBOX_ID_2));
     }
 }
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssertTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssertTest.java
index 51e9487..bd50a2a 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssertTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/ListMessageAssertTest.java
@@ -97,10 +97,7 @@ class ListMessageAssertTest {
     }
 
     private Mailbox createMailbox(MailboxPath mailboxPath) {
-        Mailbox mailbox = new Mailbox(mailboxPath, UID_VALIDITY);
-        mailbox.setMailboxId(MAILBOX_ID);
-
-        return mailbox;
+        return new Mailbox(mailboxPath, UID_VALIDITY, MAILBOX_ID);
     }
 
     private MailboxMessage createMessage(Mailbox mailbox, MessageId messageId, String content, int bodyStart, PropertyBuilder propertyBuilder) {
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
index 292feea..630afc7 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
@@ -162,8 +162,7 @@ public abstract class MessageIdMapperTest {
 
     @Test
     void saveShouldThrowWhenMailboxDoesntExist() throws Exception {
-        Mailbox notPersistedMailbox = new Mailbox(MailboxPath.forUser(BENWA, "mybox"), UID_VALIDITY);
-        notPersistedMailbox.setMailboxId(mapperProvider.generateId());
+        Mailbox notPersistedMailbox = new Mailbox(MailboxPath.forUser(BENWA, "mybox"), UID_VALIDITY, mapperProvider.generateId());
         SimpleMailboxMessage message = createMessage(notPersistedMailbox, "Subject: Test \n\nBody\n.\n", BODY_START, new PropertyBuilder());
         message.setUid(mapperProvider.generateMessageUid());
         message.setModSeq(mapperProvider.generateModSeq(notPersistedMailbox));
@@ -207,8 +206,7 @@ public abstract class MessageIdMapperTest {
         message1.setModSeq(mapperProvider.generateModSeq(benwaInboxMailbox));
         sut.save(message1);
 
-        Mailbox notPersistedMailbox = new Mailbox(MailboxPath.forUser(BENWA, "mybox"), UID_VALIDITY);
-        notPersistedMailbox.setMailboxId(mapperProvider.generateId());
+        Mailbox notPersistedMailbox = new Mailbox(MailboxPath.forUser(BENWA, "mybox"), UID_VALIDITY, mapperProvider.generateId());
 
         SimpleMailboxMessage message1InOtherMailbox = SimpleMailboxMessage.copy(notPersistedMailbox.getMailboxId(), message1);
         message1InOtherMailbox.setUid(mapperProvider.generateMessageUid());
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageWithAttachmentMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageWithAttachmentMapperTest.java
index a270819..b6d22de 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageWithAttachmentMapperTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageWithAttachmentMapperTest.java
@@ -36,7 +36,6 @@ import org.apache.james.mailbox.model.Attachment;
 import org.apache.james.mailbox.model.AttachmentId;
 import org.apache.james.mailbox.model.Cid;
 import org.apache.james.mailbox.model.Mailbox;
-import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageAttachment;
 import org.apache.james.mailbox.model.MessageId;
@@ -185,10 +184,7 @@ public abstract class MessageWithAttachmentMapperTest {
     }
 
     private Mailbox createMailbox(MailboxPath mailboxPath) {
-        Mailbox mailbox = new Mailbox(mailboxPath, UID_VALIDITY);
-        MailboxId id = mapperProvider.generateId();
-        mailbox.setMailboxId(id);
-        return mailbox;
+        return new Mailbox(mailboxPath, UID_VALIDITY, mapperProvider.generateId());
     }
     
     private void saveMessages() throws MailboxException {
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolverTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolverTest.java
index 320a8b0..283945a 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolverTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/DefaultUserQuotaRootResolverTest.java
@@ -46,12 +46,12 @@ import com.google.common.collect.Lists;
 class DefaultUserQuotaRootResolverTest {
 
     static final Username BENWA = Username.of("benwa");
+    static final MailboxId MAILBOX_ID = TestId.of(42);
     static final MailboxPath MAILBOX_PATH = MailboxPath.inbox(BENWA);
-    static final Mailbox MAILBOX = new Mailbox(MAILBOX_PATH, 10);
+    static final Mailbox MAILBOX = new Mailbox(MAILBOX_PATH, 10, MAILBOX_ID);
     static final MailboxPath MAILBOX_PATH_2 = MailboxPath.forUser(BENWA, "test");
-    static final Mailbox MAILBOX_2 = new Mailbox(MAILBOX_PATH_2, 10);
+    static final Mailbox MAILBOX_2 = new Mailbox(MAILBOX_PATH_2, 10, MAILBOX_ID);
     static final QuotaRoot QUOTA_ROOT = QuotaRoot.quotaRoot("#private&benwa", Optional.empty());
-    static final MailboxId MAILBOX_ID = TestId.of(42);
     static final MailboxSession MAILBOX_SESSION = null;
 
     DefaultUserQuotaRootResolver testee;
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/QuotaCheckerTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/QuotaCheckerTest.java
index c2b14f3..b162050 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/QuotaCheckerTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/quota/QuotaCheckerTest.java
@@ -33,9 +33,11 @@ import org.apache.james.core.quota.QuotaSizeUsage;
 import org.apache.james.mailbox.exception.MailboxException;
 import org.apache.james.mailbox.exception.OverQuotaException;
 import org.apache.james.mailbox.model.Mailbox;
+import org.apache.james.mailbox.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.Quota;
 import org.apache.james.mailbox.model.QuotaRoot;
+import org.apache.james.mailbox.model.TestId;
 import org.apache.james.mailbox.quota.QuotaManager;
 import org.apache.james.mailbox.quota.QuotaRootResolver;
 import org.junit.jupiter.api.BeforeEach;
@@ -44,8 +46,9 @@ import org.junit.jupiter.api.Test;
 class QuotaCheckerTest {
 
     static final QuotaRoot QUOTA_ROOT = QuotaRoot.quotaRoot("benwa", Optional.empty());
+    static final MailboxId MAILBOX_ID = TestId.of(42);
     static final MailboxPath MAILBOX_PATH = MailboxPath.inbox(Username.of("benwa"));
-    static final Mailbox MAILBOX = new Mailbox(MAILBOX_PATH, 10);
+    static final Mailbox MAILBOX = new Mailbox(MAILBOX_PATH, 10, MAILBOX_ID);
 
     QuotaRootResolver mockedQuotaRootResolver;
     QuotaManager mockedQuotaManager;


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org