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