Repository: james-project
Updated Branches:
  refs/heads/master 40b25f848 -> 105b6da03


JAMES-1905: Make fixture test for cassandra


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

Branch: refs/heads/master
Commit: 487825de1864353d350d08ad2b16d051c532182c
Parents: 40b25f8
Author: Quynh Nguyen <[email protected]>
Authored: Mon Jan 9 10:38:40 2017 +0700
Committer: Benoit Tellier <[email protected]>
Committed: Thu Jan 19 09:22:43 2017 +0700

----------------------------------------------------------------------
 .../CassandraMessageIdManagerTestSystem.java    | 66 ++------------
 .../cassandra/CassandraTestSystemFixture.java   | 95 ++++++++++++++++++++
 2 files changed, 102 insertions(+), 59 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/487825de/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerTestSystem.java
----------------------------------------------------------------------
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerTestSystem.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerTestSystem.java
index b29a8d1..535e88d 100644
--- 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerTestSystem.java
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraMessageIdManagerTestSystem.java
@@ -19,90 +19,38 @@
 
 package org.apache.james.mailbox.cassandra;
 
-import static org.mockito.Mockito.mock;
-
 import java.util.Date;
 
 import javax.mail.Flags;
 import javax.mail.util.SharedByteArrayInputStream;
 
-import org.apache.james.backends.cassandra.CassandraCluster;
-import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
 import org.apache.james.mailbox.MailboxSession;
 import org.apache.james.mailbox.MessageIdManager;
 import org.apache.james.mailbox.MessageUid;
-import org.apache.james.mailbox.cassandra.mail.CassandraMessageDAO;
-import org.apache.james.mailbox.cassandra.mail.CassandraMessageIdDAO;
-import org.apache.james.mailbox.cassandra.mail.CassandraMessageIdToImapUidDAO;
-import org.apache.james.mailbox.cassandra.mail.CassandraModSeqProvider;
-import org.apache.james.mailbox.cassandra.mail.CassandraUidProvider;
-import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraAnnotationModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraAttachmentModule;
-import 
org.apache.james.mailbox.cassandra.modules.CassandraMailboxCounterModule;
-import org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule;
-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.model.MailboxId;
 import org.apache.james.mailbox.model.MailboxPath;
 import org.apache.james.mailbox.model.MessageId;
 import org.apache.james.mailbox.quota.QuotaManager;
-import org.apache.james.mailbox.store.Authenticator;
 import org.apache.james.mailbox.store.MessageIdManagerTestSystem;
-import org.apache.james.mailbox.store.NoMailboxPathLocker;
-import org.apache.james.mailbox.store.StoreMessageIdManager;
 import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.MailboxMessage;
-import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
 import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder;
 import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage;
-import org.apache.james.mailbox.store.quota.DefaultQuotaRootResolver;
 
 import com.google.common.base.Charsets;
 import com.google.common.base.Throwables;
 
 public class CassandraMessageIdManagerTestSystem extends 
MessageIdManagerTestSystem {
 
-    private static final CassandraCluster CASSANDRA = 
CassandraCluster.create(new CassandraModuleComposite(
-        new CassandraAclModule(),
-        new CassandraMailboxModule(),
-        new CassandraMessageModule(),
-        new CassandraMailboxCounterModule(),
-        new CassandraUidModule(),
-        new CassandraModSeqModule(),
-        new CassandraAttachmentModule(),
-        new CassandraAnnotationModule()));
-    public static final int MOD_SEQ = 452;
-
     public static MessageIdManagerTestSystem createTestingData(QuotaManager 
quotaManager, MailboxEventDispatcher dispatcher) throws Exception {
-        CASSANDRA.ensureAllTables();
-        CassandraUidProvider uidProvider = new 
CassandraUidProvider(CASSANDRA.getConf());
-        CassandraModSeqProvider modSeqProvider = new 
CassandraModSeqProvider(CASSANDRA.getConf());
-        CassandraMessageId.Factory messageIdFactory = new 
CassandraMessageId.Factory();
-        CassandraMessageIdDAO messageIdDAO = new 
CassandraMessageIdDAO(CASSANDRA.getConf(), messageIdFactory);
-        CassandraMessageIdToImapUidDAO imapUidDAO = new 
CassandraMessageIdToImapUidDAO(CASSANDRA.getConf(), messageIdFactory);
-        CassandraMessageDAO messageDAO = new 
CassandraMessageDAO(CASSANDRA.getConf(), CASSANDRA.getTypesProvider(), 
messageIdFactory);
-        CassandraMailboxSessionMapperFactory mapperFactory = new 
CassandraMailboxSessionMapperFactory(uidProvider,
-            modSeqProvider,
-            CASSANDRA.getConf(),
-            CASSANDRA.getTypesProvider(),
-            messageDAO,
-            messageIdDAO,
-            imapUidDAO);
-
-        StoreMessageIdManager messageIdManager = new 
StoreMessageIdManager(mapperFactory,
-            dispatcher,
-            new CassandraMessageId.Factory(),
-            quotaManager,
-            new DefaultQuotaRootResolver(mapperFactory));
+        CassandraMailboxSessionMapperFactory mapperFactory = 
CassandraTestSystemFixture.createMapperFactory();
 
-        CassandraMailboxManager cassandraMailboxManager = new 
CassandraMailboxManager(mapperFactory, mock(Authenticator.class), new 
NoMailboxPathLocker(), new MessageParser(), messageIdFactory);
-        cassandraMailboxManager.init();
-
-        return new CassandraMessageIdManagerTestSystem(messageIdManager, 
messageIdFactory, mapperFactory, cassandraMailboxManager);
+        return new 
CassandraMessageIdManagerTestSystem(CassandraTestSystemFixture.createMessageIdManager(mapperFactory,
 quotaManager, dispatcher),
+            new CassandraMessageId.Factory(),
+            mapperFactory,
+            CassandraTestSystemFixture.createMailboxManager(mapperFactory));
     }
 
     private final CassandraMessageId.Factory messageIdFactory;
@@ -151,13 +99,13 @@ public class CassandraMessageIdManagerTestSystem extends 
MessageIdManagerTestSys
 
     @Override
     public void clean() {
-        CASSANDRA.clearAllTables();
+        CassandraTestSystemFixture.clean();
     }
 
     private static MailboxMessage createMessage(MailboxId mailboxId, Flags 
flags, MessageId messageId, MessageUid uid) {
         MailboxMessage mailboxMessage = new SimpleMailboxMessage(messageId, 
new Date(), 1596, 1256,
             new SharedByteArrayInputStream("subject: 
any\n\nbody".getBytes(Charsets.UTF_8)), flags, new PropertyBuilder(), 
mailboxId);
-        mailboxMessage.setModSeq(MOD_SEQ);
+        mailboxMessage.setModSeq(CassandraTestSystemFixture.MOD_SEQ);
         mailboxMessage.setUid(uid);
         return mailboxMessage;
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/487825de/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java
----------------------------------------------------------------------
diff --git 
a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java
 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java
new file mode 100644
index 0000000..fdf3abe
--- /dev/null
+++ 
b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/CassandraTestSystemFixture.java
@@ -0,0 +1,95 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0                 *
+ * *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+
+package org.apache.james.mailbox.cassandra;
+
+import static org.mockito.Mockito.mock;
+
+import org.apache.james.backends.cassandra.CassandraCluster;
+import org.apache.james.backends.cassandra.init.CassandraModuleComposite;
+import org.apache.james.mailbox.cassandra.mail.CassandraMessageDAO;
+import org.apache.james.mailbox.cassandra.mail.CassandraMessageIdDAO;
+import org.apache.james.mailbox.cassandra.mail.CassandraMessageIdToImapUidDAO;
+import org.apache.james.mailbox.cassandra.mail.CassandraModSeqProvider;
+import org.apache.james.mailbox.cassandra.mail.CassandraUidProvider;
+import org.apache.james.mailbox.cassandra.modules.CassandraAclModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraAnnotationModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraAttachmentModule;
+import 
org.apache.james.mailbox.cassandra.modules.CassandraMailboxCounterModule;
+import org.apache.james.mailbox.cassandra.modules.CassandraMailboxModule;
+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.quota.QuotaManager;
+import org.apache.james.mailbox.store.Authenticator;
+import org.apache.james.mailbox.store.NoMailboxPathLocker;
+import org.apache.james.mailbox.store.StoreMessageIdManager;
+import org.apache.james.mailbox.store.event.MailboxEventDispatcher;
+import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
+import org.apache.james.mailbox.store.quota.DefaultQuotaRootResolver;
+
+public class CassandraTestSystemFixture {
+    public static final CassandraCluster CASSANDRA = 
CassandraCluster.create(new CassandraModuleComposite(
+        new CassandraAclModule(),
+        new CassandraMailboxModule(),
+        new CassandraMessageModule(),
+        new CassandraMailboxCounterModule(),
+        new CassandraUidModule(),
+        new CassandraModSeqModule(),
+        new CassandraAttachmentModule(),
+        new CassandraAnnotationModule()));
+    public static final int MOD_SEQ = 452;
+
+    public static CassandraMailboxSessionMapperFactory createMapperFactory() {
+        CASSANDRA.ensureAllTables();
+        CassandraUidProvider uidProvider = new 
CassandraUidProvider(CASSANDRA.getConf());
+        CassandraModSeqProvider modSeqProvider = new 
CassandraModSeqProvider(CASSANDRA.getConf());
+        CassandraMessageId.Factory messageIdFactory = new 
CassandraMessageId.Factory();
+        CassandraMessageIdDAO messageIdDAO = new 
CassandraMessageIdDAO(CASSANDRA.getConf(), messageIdFactory);
+        CassandraMessageIdToImapUidDAO imapUidDAO = new 
CassandraMessageIdToImapUidDAO(CASSANDRA.getConf(), messageIdFactory);
+        CassandraMessageDAO messageDAO = new 
CassandraMessageDAO(CASSANDRA.getConf(), CASSANDRA.getTypesProvider(), 
messageIdFactory);
+        return new CassandraMailboxSessionMapperFactory(uidProvider,
+            modSeqProvider,
+            CASSANDRA.getConf(),
+            CASSANDRA.getTypesProvider(),
+            messageDAO,
+            messageIdDAO,
+            imapUidDAO);
+    }
+
+    public static CassandraMailboxManager 
createMailboxManager(CassandraMailboxSessionMapperFactory mapperFactory) throws 
Exception{
+        CassandraMailboxManager cassandraMailboxManager = new 
CassandraMailboxManager(mapperFactory, mock(Authenticator.class),
+            new NoMailboxPathLocker(), new MessageParser(), new 
CassandraMessageId.Factory());
+        cassandraMailboxManager.init();
+
+        return cassandraMailboxManager;
+    }
+
+    public static StoreMessageIdManager 
createMessageIdManager(CassandraMailboxSessionMapperFactory mapperFactory, 
QuotaManager quotaManager, MailboxEventDispatcher dispatcher) {
+        return new StoreMessageIdManager(mapperFactory,
+            dispatcher,
+            new CassandraMessageId.Factory(),
+            quotaManager,
+            new DefaultQuotaRootResolver(mapperFactory));
+    }
+
+    public static void clean() {
+        CASSANDRA.clearAllTables();
+    }
+}


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to