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 ma...@apache.org on 2018/05/22 08:04:45 UTC

[7/8] james-project git commit: MAILBOX-335 Cassandra specific test for chunking

MAILBOX-335 Cassandra specific test for chunking


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/e9cc5022
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/e9cc5022
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/e9cc5022

Branch: refs/heads/master
Commit: e9cc5022ba233aca9b1255e160160cbeca050a40
Parents: 6052de6
Author: benwa <bt...@linagora.com>
Authored: Tue May 22 09:45:51 2018 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Tue May 22 10:04:13 2018 +0200

----------------------------------------------------------------------
 ...estCassandraMailboxSessionMapperFactory.java | 27 ++++++++-----
 .../mail/CassandraMessageIdMapperTest.java      | 40 +++++++++++++++++++-
 .../store/mail/model/MessageIdMapperTest.java   | 16 ++++----
 3 files changed, 65 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cc5022/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/TestCassandraMailboxSessionMapperFactory.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/TestCassandraMailboxSessionMapperFactory.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/TestCassandraMailboxSessionMapperFactory.java
index 3afdf36..ec7ac05 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/TestCassandraMailboxSessionMapperFactory.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/TestCassandraMailboxSessionMapperFactory.java
@@ -47,15 +47,24 @@ import org.apache.james.mailbox.cassandra.mail.CassandraUserMailboxRightsDAO;
 import com.datastax.driver.core.Session;
 
 public class TestCassandraMailboxSessionMapperFactory {
+
     public static CassandraMailboxSessionMapperFactory forTests(Session session, CassandraTypesProvider typesProvider,
                                                                 CassandraMessageId.Factory factory) {
+        return forTests(session, typesProvider, factory, CassandraConfiguration.DEFAULT_CONFIGURATION);
+    }
+
+    public static CassandraMailboxSessionMapperFactory forTests(Session session, CassandraTypesProvider typesProvider,
+                                                                CassandraMessageId.Factory factory, CassandraConfiguration cassandraConfiguration) {
+
+        CassandraUtils utils = new CassandraUtils(cassandraConfiguration);
         CassandraBlobsDAO cassandraBlobsDAO = new CassandraBlobsDAO(session);
         CassandraBlobId.Factory blobIdFactory = new CassandraBlobId.Factory();
+
         return new CassandraMailboxSessionMapperFactory(
             new CassandraUidProvider(session),
             new CassandraModSeqProvider(session),
             session,
-            new CassandraMessageDAO(session, typesProvider, cassandraBlobsDAO, blobIdFactory, CassandraUtils.WITH_DEFAULT_CONFIGURATION, factory),
+            new CassandraMessageDAO(session, typesProvider, cassandraBlobsDAO, blobIdFactory, utils, factory),
             new CassandraMessageIdDAO(session, factory),
             new CassandraMessageIdToImapUidDAO(session, factory),
             new CassandraMailboxCounterDAO(session),
@@ -64,17 +73,17 @@ public class TestCassandraMailboxSessionMapperFactory {
             new CassandraMailboxPathDAO(session, typesProvider),
             new CassandraFirstUnseenDAO(session),
             new CassandraApplicableFlagDAO(session),
-            new CassandraAttachmentDAO(session, CassandraUtils.WITH_DEFAULT_CONFIGURATION, CassandraConfiguration.DEFAULT_CONFIGURATION),
+            new CassandraAttachmentDAO(session, utils, cassandraConfiguration),
             new CassandraAttachmentDAOV2(blobIdFactory, session),
             new CassandraDeletedMessageDAO(session),
-            cassandraBlobsDAO, new CassandraAttachmentMessageIdDAO(session, factory, CassandraUtils.WITH_DEFAULT_CONFIGURATION),
-            new CassandraAttachmentOwnerDAO(session, CassandraUtils.WITH_DEFAULT_CONFIGURATION),
+            cassandraBlobsDAO, new CassandraAttachmentMessageIdDAO(session, factory, utils),
+            new CassandraAttachmentOwnerDAO(session, utils),
             new CassandraACLMapper(session,
-                new CassandraUserMailboxRightsDAO(session, CassandraUtils.WITH_DEFAULT_CONFIGURATION),
-                CassandraConfiguration.DEFAULT_CONFIGURATION),
-            new CassandraUserMailboxRightsDAO(session, CassandraUtils.WITH_DEFAULT_CONFIGURATION),
-            CassandraUtils.WITH_DEFAULT_CONFIGURATION,
-            CassandraConfiguration.DEFAULT_CONFIGURATION);
+                new CassandraUserMailboxRightsDAO(session, utils),
+                cassandraConfiguration),
+            new CassandraUserMailboxRightsDAO(session, utils),
+            utils,
+            cassandraConfiguration);
     }
 
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cc5022/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
----------------------------------------------------------------------
diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
index bc7f9b4..d6d0f65 100644
--- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
+++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMessageIdMapperTest.java
@@ -19,10 +19,18 @@
 
 package org.apache.james.mailbox.cassandra.mail;
 
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.util.List;
+
 import org.apache.james.backends.cassandra.CassandraCluster;
 import org.apache.james.backends.cassandra.DockerCassandraRule;
+import org.apache.james.backends.cassandra.init.CassandraConfiguration;
 import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
 import org.apache.james.blob.cassandra.CassandraBlobModule;
+import org.apache.james.mailbox.cassandra.CassandraMailboxSessionMapperFactory;
+import org.apache.james.mailbox.cassandra.TestCassandraMailboxSessionMapperFactory;
+import org.apache.james.mailbox.cassandra.ids.CassandraMessageId;
 import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
 import org.apache.james.mailbox.cassandra.modules.CassandraAnnotationModule;
 import org.apache.james.mailbox.cassandra.modules.CassandraApplicableFlagsModule;
@@ -36,13 +44,20 @@ import org.apache.james.mailbox.cassandra.modules.CassandraMessageModule;
 import org.apache.james.mailbox.cassandra.modules.CassandraModSeqModule;
 import org.apache.james.mailbox.cassandra.modules.CassandraUidModule;
 import org.apache.james.mailbox.exception.MailboxException;
+import org.apache.james.mailbox.mock.MockMailboxSession;
+import org.apache.james.mailbox.store.mail.MessageMapper;
+import org.apache.james.mailbox.store.mail.model.MailboxMessage;
 import org.apache.james.mailbox.store.mail.model.MessageIdMapperTest;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.ClassRule;
+import org.junit.Test;
+
+import com.google.common.collect.ImmutableList;
 
 public class CassandraMessageIdMapperTest extends MessageIdMapperTest {
-    
+
+    public static final MockMailboxSession MAILBOX_SESSION = new MockMailboxSession("benwa");
     @ClassRule public static DockerCassandraRule cassandraServer = new DockerCassandraRule();
     
     private CassandraCluster cassandra;
@@ -77,4 +92,27 @@ public class CassandraMessageIdMapperTest extends MessageIdMapperTest {
     protected CassandraMapperProvider provideMapper() {
         return new CassandraMapperProvider(cassandra);
     }
+
+    @Test
+    public void findShouldReturnCorrectElementsWhenChunking() throws Exception {
+        CassandraMessageId.Factory messageIdFactory = new CassandraMessageId.Factory();
+        CassandraMailboxSessionMapperFactory mapperFactory = TestCassandraMailboxSessionMapperFactory.forTests(
+            cassandra.getConf(), cassandra.getTypesProvider(), messageIdFactory,
+            CassandraConfiguration.builder()
+                .messageReadChunkSize(3)
+                .build());
+
+        saveMessages();
+
+        List<MailboxMessage> messages = mapperFactory.getMessageIdMapper(MAILBOX_SESSION)
+            .find(
+                ImmutableList.of(message1.getMessageId(),
+                    message2.getMessageId(),
+                    message3.getMessageId(),
+                    message4.getMessageId()),
+                MessageMapper.FetchType.Metadata);
+
+        assertThat(messages)
+            .containsOnly(message1, message2, message3, message4);
+    }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/e9cc5022/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MessageIdMapperTest.java
----------------------------------------------------------------------
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 676e1bb..054c44a 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
@@ -61,19 +61,19 @@ public abstract class MessageIdMapperTest {
 
     private static final char DELIMITER = '.';
     private static final int BODY_START = 16;
-    private static final long UID_VALIDITY = 42;
+    protected static final long UID_VALIDITY = 42;
 
     private MessageMapper messageMapper;
     private MailboxMapper mailboxMapper;
     private MessageIdMapper sut;
 
-    private SimpleMailbox benwaInboxMailbox;
-    private SimpleMailbox benwaWorkMailbox;
+    protected SimpleMailbox benwaInboxMailbox;
+    protected SimpleMailbox benwaWorkMailbox;
     
-    private SimpleMailboxMessage message1;
-    private SimpleMailboxMessage message2;
-    private SimpleMailboxMessage message3;
-    private SimpleMailboxMessage message4;
+    protected SimpleMailboxMessage message1;
+    protected SimpleMailboxMessage message2;
+    protected SimpleMailboxMessage message3;
+    protected SimpleMailboxMessage message4;
 
     @Rule
     public ExpectedException expected = ExpectedException.none();
@@ -887,7 +887,7 @@ public abstract class MessageIdMapperTest {
         return mailbox;
     }
     
-    private void saveMessages() throws MailboxException {
+    protected void saveMessages() throws MailboxException {
         addMessageAndSetModSeq(benwaInboxMailbox, message1);
         addMessageAndSetModSeq(benwaInboxMailbox, message2);
         addMessageAndSetModSeq(benwaInboxMailbox, message3);


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