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