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 <[email protected]> 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: [email protected] For additional commands, e-mail: [email protected]
