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 bt...@apache.org on 2019/03/20 11:54:30 UTC

[james-project] 22/33: JAMES-2687 Use InMemoryIntegrationResources for InMemoryMessageIdManagerSideEffectTest

This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit e8b82b1179f92ff9fd429ac7009f08542fab76ee
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Mar 15 14:33:53 2019 +0700

    JAMES-2687 Use InMemoryIntegrationResources for InMemoryMessageIdManagerSideEffectTest
    
    Relax some assertions as some quota events modifications might be emitted.
---
 .../manager/InMemoryIntegrationResources.java      |  9 +++-
 .../InMemoryMessageIdManagerSideEffectTest.java    | 60 +++-------------------
 .../AbstractMessageIdManagerSideEffectTest.java    |  7 +--
 3 files changed, 18 insertions(+), 58 deletions(-)

diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
index 31afd2b..c92799f 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryIntegrationResources.java
@@ -75,6 +75,7 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
         private Optional<Authorizator> authorizator;
         private Optional<EventBus> eventBus;
         private Optional<Integer> limitAnnotationCount;
+        private Optional<QuotaManager> quotaManager;
         private Optional<Integer> limitAnnotationSize;
         private Optional<MessageParser> messageParser;
         private Optional<Function<MailboxManagerPreInstanciationStage, MessageSearchIndex>> searchIndexInstanciator;
@@ -88,6 +89,7 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
             this.limitAnnotationSize = Optional.empty();
             this.searchIndexInstanciator = Optional.empty();
             this.messageParser = Optional.empty();
+            this.quotaManager = Optional.empty();
             this.preDeletionHooksInstanciators = ImmutableSet.builder();
         }
 
@@ -96,6 +98,11 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
             return this;
         }
 
+        public Factory withQuotaManager(QuotaManager quotaManager) {
+            this.quotaManager = Optional.of(quotaManager);
+            return this;
+        }
+
         public Factory withAuthenticator(Authenticator authenticator) {
             this.authenticator = Optional.of(authenticator);
             return this;
@@ -154,7 +161,7 @@ public class InMemoryIntegrationResources implements IntegrationResources<StoreM
             InMemoryPerUserMaxQuotaManager maxQuotaManager = new InMemoryPerUserMaxQuotaManager();
             DefaultUserQuotaRootResolver quotaRootResolver = new DefaultUserQuotaRootResolver(sessionProvider, mailboxSessionMapperFactory);
             InMemoryCurrentQuotaManager currentQuotaManager = new InMemoryCurrentQuotaManager(new CurrentQuotaCalculator(mailboxSessionMapperFactory, quotaRootResolver), sessionProvider);
-            StoreQuotaManager quotaManager = new StoreQuotaManager(currentQuotaManager, maxQuotaManager);
+            QuotaManager quotaManager = this.quotaManager.orElseGet(() -> new StoreQuotaManager(currentQuotaManager, maxQuotaManager));
             ListeningCurrentQuotaUpdater listeningCurrentQuotaUpdater = new ListeningCurrentQuotaUpdater(currentQuotaManager, quotaRootResolver, eventBus, quotaManager);
             QuotaComponents quotaComponents = new QuotaComponents(maxQuotaManager, quotaManager, quotaRootResolver, listeningCurrentQuotaUpdater);
 
diff --git a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryMessageIdManagerSideEffectTest.java b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryMessageIdManagerSideEffectTest.java
index d4876cf..f7d4da3 100644
--- a/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryMessageIdManagerSideEffectTest.java
+++ b/mailbox/memory/src/test/java/org/apache/james/mailbox/inmemory/manager/InMemoryMessageIdManagerSideEffectTest.java
@@ -21,33 +21,12 @@ package org.apache.james.mailbox.inmemory.manager;
 
 import java.util.Set;
 
-import org.apache.james.mailbox.acl.SimpleGroupMembershipResolver;
-import org.apache.james.mailbox.acl.UnionMailboxACLResolver;
 import org.apache.james.mailbox.events.EventBus;
 import org.apache.james.mailbox.extension.PreDeletionHook;
-import org.apache.james.mailbox.inmemory.InMemoryMailboxManager;
-import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory;
 import org.apache.james.mailbox.inmemory.InMemoryMessageId;
-import org.apache.james.mailbox.manager.ManagerTestProvisionner;
 import org.apache.james.mailbox.quota.QuotaManager;
 import org.apache.james.mailbox.store.AbstractMessageIdManagerSideEffectTest;
-import org.apache.james.mailbox.store.FakeAuthenticator;
-import org.apache.james.mailbox.store.FakeAuthorizator;
-import org.apache.james.mailbox.store.JVMMailboxPathLocker;
 import org.apache.james.mailbox.store.MessageIdManagerTestSystem;
-import org.apache.james.mailbox.store.PreDeletionHooks;
-import org.apache.james.mailbox.store.SessionProvider;
-import org.apache.james.mailbox.store.StoreMailboxAnnotationManager;
-import org.apache.james.mailbox.store.StoreMessageIdManager;
-import org.apache.james.mailbox.store.StoreRightManager;
-import org.apache.james.mailbox.store.extractor.DefaultTextExtractor;
-import org.apache.james.mailbox.store.mail.model.impl.MessageParser;
-import org.apache.james.mailbox.store.quota.DefaultUserQuotaRootResolver;
-import org.apache.james.mailbox.store.quota.NoMaxQuotaManager;
-import org.apache.james.mailbox.store.quota.NoQuotaUpdater;
-import org.apache.james.mailbox.store.quota.QuotaComponents;
-import org.apache.james.mailbox.store.search.MessageSearchIndex;
-import org.apache.james.mailbox.store.search.SimpleMessageSearchIndex;
 import org.junit.Before;
 
 public class InMemoryMessageIdManagerSideEffectTest extends AbstractMessageIdManagerSideEffectTest {
@@ -60,40 +39,17 @@ public class InMemoryMessageIdManagerSideEffectTest extends AbstractMessageIdMan
 
     @Override
     protected MessageIdManagerTestSystem createTestSystem(QuotaManager quotaManager, EventBus eventBus, Set<PreDeletionHook> preDeletionHooks) {
-        InMemoryMailboxSessionMapperFactory mapperFactory = new InMemoryMailboxSessionMapperFactory();
-
-        FakeAuthenticator fakeAuthenticator = new FakeAuthenticator();
-        fakeAuthenticator.addUser(ManagerTestProvisionner.USER, ManagerTestProvisionner.USER_PASS);
-        fakeAuthenticator.addUser(ManagerTestProvisionner.OTHER_USER, ManagerTestProvisionner.OTHER_USER_PASS);
-        FakeAuthorizator fakeAuthorizator = FakeAuthorizator.defaultReject();
-
-        StoreRightManager rightManager = new StoreRightManager(mapperFactory, new UnionMailboxACLResolver(), new SimpleGroupMembershipResolver(), eventBus);
-        JVMMailboxPathLocker locker = new JVMMailboxPathLocker();
         InMemoryMessageId.Factory messageIdFactory = new InMemoryMessageId.Factory();
-        SessionProvider sessionProvider = new SessionProvider(fakeAuthenticator, fakeAuthorizator);
 
-        QuotaComponents quotaComponents = new QuotaComponents(new NoMaxQuotaManager(), quotaManager, new DefaultUserQuotaRootResolver(sessionProvider, mapperFactory), new NoQuotaUpdater());
-        MessageSearchIndex index = new SimpleMessageSearchIndex(mapperFactory, mapperFactory, new DefaultTextExtractor());
+        InMemoryIntegrationResources resources = new InMemoryIntegrationResources.Factory()
+            .withEventBus(eventBus)
+            .withPreDeletionHooks(preDeletionHooks)
+            .withQuotaManager(quotaManager)
+            .create();
 
-        InMemoryMailboxManager mailboxManager = new InMemoryMailboxManager(mapperFactory,
-            sessionProvider,
-            locker,
-            new MessageParser(),
-            messageIdFactory,
-            eventBus,
-            new StoreMailboxAnnotationManager(mapperFactory, rightManager),
-            rightManager,
-            quotaComponents,
-            index,
-            new PreDeletionHooks(preDeletionHooks));
-        StoreMessageIdManager messageIdManager = new StoreMessageIdManager(
-            mailboxManager,
-            mapperFactory,
-            eventBus,
+        return new MessageIdManagerTestSystem(resources.getMessageIdManager(),
             messageIdFactory,
-            quotaManager,
-            quotaComponents.getQuotaRootResolver(),
-            new PreDeletionHooks(preDeletionHooks));
-        return new MessageIdManagerTestSystem(messageIdManager, messageIdFactory, mapperFactory, mailboxManager);
+            resources.getMailboxManager().getMapperFactory(),
+            resources.getMailboxManager());
     }
 }
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
index c69ac27..717968d 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/AbstractMessageIdManagerSideEffectTest.java
@@ -141,8 +141,8 @@ public abstract class AbstractMessageIdManagerSideEffectTest {
         messageIdManager.delete(messageId, ImmutableList.of(mailbox1.getMailboxId()), session);
 
         assertThat(eventCollector.getEvents())
+            .filteredOn(event -> event instanceof MailboxListener.Expunged)
             .hasSize(1).first()
-            .isInstanceOf(MailboxListener.Expunged.class)
             .satisfies(e -> {
                 MailboxListener.Expunged event = (MailboxListener.Expunged) e;
                 assertThat(event.getMailboxId()).isEqualTo(mailbox1.getMailboxId());
@@ -168,8 +168,8 @@ public abstract class AbstractMessageIdManagerSideEffectTest {
 
         AbstractListAssert<?, List<? extends MailboxListener.Expunged>, MailboxListener.Expunged, ObjectAssert<MailboxListener.Expunged>> events =
             assertThat(eventCollector.getEvents())
+                .filteredOn(event -> event instanceof MailboxListener.Expunged)
                 .hasSize(2)
-                .allSatisfy(event -> assertThat(event).isInstanceOf(MailboxListener.Expunged.class))
                 .extracting(event -> (MailboxListener.Expunged) event);
         events.extracting(MailboxListener.MailboxEvent::getMailboxId).containsOnly(mailbox1.getMailboxId(), mailbox1.getMailboxId());
         events.extracting(MailboxListener.Expunged::getExpunged)
@@ -329,7 +329,6 @@ public abstract class AbstractMessageIdManagerSideEffectTest {
         eventBus.register(eventCollector);
         messageIdManager.setInMailboxes(messageId, ImmutableList.of(mailbox1.getMailboxId(), mailbox2.getMailboxId()), session);
 
-        assertThat(eventCollector.getEvents()).hasSize(2);
         assertThat(eventCollector.getEvents()).filteredOn(event -> event instanceof MessageMoveEvent).hasSize(1);
         assertThat(eventCollector.getEvents()).filteredOn(event -> event instanceof MailboxListener.Added).hasSize(1)
             .extracting(event -> (MailboxListener.Added) event).extracting(MailboxListener.Added::getMailboxId)
@@ -346,7 +345,6 @@ public abstract class AbstractMessageIdManagerSideEffectTest {
 
         messageIdManager.getMessages(ImmutableList.of(messageId), FetchGroupImpl.MINIMAL, session);
 
-        assertThat(eventCollector.getEvents()).hasSize(3);
         assertThat(eventCollector.getEvents()).filteredOn(event -> event instanceof MessageMoveEvent).hasSize(1);
         assertThat(eventCollector.getEvents()).filteredOn(event -> event instanceof MailboxListener.Added).hasSize(2)
             .extracting(event -> (MailboxListener.Added) event).extracting(MailboxListener.Added::getMailboxId)
@@ -380,7 +378,6 @@ public abstract class AbstractMessageIdManagerSideEffectTest {
         eventBus.register(eventCollector);
         messageIdManager.setInMailboxes(messageId, ImmutableList.of(mailbox1.getMailboxId(), mailbox3.getMailboxId()), session);
 
-        assertThat(eventCollector.getEvents()).hasSize(3);
         assertThat(eventCollector.getEvents()).filteredOn(event -> event instanceof MessageMoveEvent).hasSize(1);
         assertThat(eventCollector.getEvents()).filteredOn(event -> event instanceof MailboxListener.Added).hasSize(1)
             .extracting(event -> (MailboxListener.Added) event).extracting(MailboxListener.Added::getMailboxId)


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