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 d90ace71201584a59718128d27101a4198cf28d6 Author: Benoit Tellier <[email protected]> AuthorDate: Tue May 5 08:40:58 2020 +0700 JAMES-3149 Reactify MailboxMapper::list --- .../cassandra/mail/CassandraMailboxMapper.java | 7 ++-- .../CassandraMailboxMapperConcurrencyTest.java | 4 +-- .../james/mailbox/jpa/mail/JPAMailboxMapper.java | 15 ++++----- .../jpa/mail/TransactionalMailboxMapper.java | 4 +-- .../mailbox/maildir/mail/MaildirMailboxMapper.java | 39 +++++++++++----------- .../inmemory/mail/InMemoryMailboxMapper.java | 6 ++-- .../inmemory/mail/InMemoryMessageIdMapper.java | 21 +++++------- .../james/mailbox/store/StoreMailboxManager.java | 4 +-- .../james/mailbox/store/mail/MailboxMapper.java | 2 +- .../store/mail/model/MailboxMapperTest.java | 5 +-- .../mailbox/tools/indexer/ReIndexerPerformer.java | 5 ++- .../adapter/mailbox/MailboxManagementTest.java | 26 +++++++-------- 12 files changed, 60 insertions(+), 78 deletions(-) diff --git a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java index a0b4fd4..e84978f 100644 --- a/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java +++ b/mailbox/cassandra/src/main/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapper.java @@ -20,7 +20,6 @@ package org.apache.james.mailbox.cassandra.mail; import java.time.Duration; -import java.util.List; import javax.inject.Inject; @@ -276,11 +275,9 @@ public class CassandraMailboxMapper implements MailboxMapper { } @Override - public List<Mailbox> list() { + public Flux<Mailbox> list() { return mailboxDAO.retrieveAllMailboxes() - .flatMap(this::toMailboxWithAcl) - .collectList() - .block(); + .flatMap(this::toMailboxWithAcl); } @Override diff --git a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java index 54e7290..35400d8 100644 --- a/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java +++ b/mailbox/cassandra/src/test/java/org/apache/james/mailbox/cassandra/mail/CassandraMailboxMapperConcurrencyTest.java @@ -70,7 +70,7 @@ class CassandraMailboxMapperConcurrencyTest { .operationCount(OPERATION_COUNT) .runAcceptingErrorsWithin(Duration.ofMinutes(1)); - assertThat(testee.list()).hasSize(1); + assertThat(testee.list().collectList().block()).hasSize(1); } @Test @@ -85,7 +85,7 @@ class CassandraMailboxMapperConcurrencyTest { .operationCount(OPERATION_COUNT) .runAcceptingErrorsWithin(Duration.ofMinutes(1)); - List<Mailbox> list = testee.list(); + List<Mailbox> list = testee.list().collectList().block(); assertThat(list).hasSize(1); assertThat(list.get(0)).isEqualToComparingFieldByField(mailbox); } diff --git a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java index c2d4514..d5bfe96 100644 --- a/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java +++ b/mailbox/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java @@ -19,8 +19,6 @@ package org.apache.james.mailbox.jpa.mail; -import java.util.List; - import javax.persistence.EntityExistsException; import javax.persistence.EntityManagerFactory; import javax.persistence.NoResultException; @@ -46,7 +44,6 @@ import org.apache.james.mailbox.model.search.MailboxQuery; import org.apache.james.mailbox.store.MailboxExpressionBackwardCompatibility; import org.apache.james.mailbox.store.mail.MailboxMapper; -import com.github.steveash.guavate.Guavate; import com.google.common.base.Preconditions; import reactor.core.publisher.Flux; @@ -221,14 +218,14 @@ public class JPAMailboxMapper extends JPATransactionalMapper implements MailboxM } @Override - public List<Mailbox> list() throws MailboxException { + public Flux<Mailbox> list() { try { - return getEntityManager().createNamedQuery("listMailboxes", JPAMailbox.class).getResultList() - .stream() - .map(JPAMailbox::toMailbox) - .collect(Guavate.toImmutableList()); + return Flux.fromIterable(getEntityManager() + .createNamedQuery("listMailboxes", JPAMailbox.class) + .getResultList()) + .map(JPAMailbox::toMailbox); } catch (PersistenceException e) { - throw new MailboxException("Delete of mailboxes failed", e); + return Flux.error(new MailboxException("Delete of mailboxes failed", e)); } } diff --git a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java index 787db5b..f876158 100644 --- a/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java +++ b/mailbox/jpa/src/test/java/org/apache/james/mailbox/jpa/mail/TransactionalMailboxMapper.java @@ -19,8 +19,6 @@ package org.apache.james.mailbox.jpa.mail; -import java.util.List; - import org.apache.commons.lang3.NotImplementedException; import org.apache.james.core.Username; import org.apache.james.mailbox.acl.ACLDiff; @@ -102,7 +100,7 @@ public class TransactionalMailboxMapper implements MailboxMapper { } @Override - public List<Mailbox> list() throws MailboxException { + public Flux<Mailbox> list() { return wrapped.list(); } diff --git a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java index 05d9799..f5af09c 100644 --- a/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java +++ b/mailbox/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java @@ -22,8 +22,10 @@ import java.io.File; import java.io.FilenameFilter; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.regex.Pattern; +import java.util.stream.Stream; import org.apache.commons.io.FileUtils; import org.apache.james.core.Username; @@ -51,6 +53,10 @@ import org.apache.james.mailbox.store.transaction.NonTransactionalMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import com.github.fge.lambdas.Throwing; +import com.github.steveash.guavate.Guavate; +import com.google.common.collect.ImmutableList; + import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -119,9 +125,10 @@ public class MaildirMailboxMapper extends NonTransactionalMapper implements Mail if (id == null) { throw new MailboxNotFoundException("null"); } - return list().stream() + return list() .filter(mailbox -> mailbox.getMailboxId().equals(id)) - .findAny() + .next() + .blockOptional() .orElseThrow(() -> new MailboxNotFoundException(id)); } @@ -256,22 +263,14 @@ public class MaildirMailboxMapper extends NonTransactionalMapper implements Mail } @Override - public List<Mailbox> list() throws MailboxException { - File maildirRoot = maildirStore.getMaildirRoot(); - List<Mailbox> mailboxList = new ArrayList<>(); - - if (maildirStore.getMaildirLocation().endsWith("/" + MaildirStore.PATH_DOMAIN + "/" + MaildirStore.PATH_USER)) { - File[] domains = maildirRoot.listFiles(); - for (File domain : domains) { - File[] users = domain.listFiles(); - visitUsersForMailboxList(domain, users, mailboxList); - } - return mailboxList; - } - - File[] users = maildirRoot.listFiles(); - visitUsersForMailboxList(null, users, mailboxList); - return mailboxList; + public Flux<Mailbox> list() { + File maildirRoot = maildirStore.getMaildirRoot(); + return Mono.fromCallable(maildirStore::getMaildirLocation) + .filter(dir -> dir.endsWith("/" + MaildirStore.PATH_DOMAIN + "/" + MaildirStore.PATH_USER)) + .map(ignored -> Arrays.stream(maildirRoot.listFiles()) + .flatMap(Throwing.<File, Stream<Mailbox>>function(domain -> visitUsersForMailboxList(domain, domain.listFiles()).stream()).sneakyThrow())) + .switchIfEmpty(Mono.fromCallable(() -> visitUsersForMailboxList(null, maildirRoot.listFiles()).stream())) + .flatMapIterable(mailboxes -> mailboxes.collect(Guavate.toImmutableList())); } @Override @@ -279,7 +278,8 @@ public class MaildirMailboxMapper extends NonTransactionalMapper implements Mail } - private void visitUsersForMailboxList(File domain, File[] users, List<Mailbox> mailboxList) throws MailboxException { + private List<Mailbox> visitUsersForMailboxList(File domain, File[] users) throws MailboxException { + ImmutableList.Builder<Mailbox> mailboxList = ImmutableList.builder(); String userName = null; for (File user: users) { @@ -309,6 +309,7 @@ public class MaildirMailboxMapper extends NonTransactionalMapper implements Mail mailboxList.add(maildirStore.loadMailbox(session, mailboxPath)); } } + return mailboxList.build(); } @Override diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java index 77db71d..1606798 100644 --- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java +++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java @@ -18,8 +18,6 @@ ****************************************************************/ package org.apache.james.mailbox.inmemory.mail; -import java.util.ArrayList; -import java.util.List; import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicLong; @@ -139,8 +137,8 @@ public class InMemoryMailboxMapper implements MailboxMapper { } @Override - public List<Mailbox> list() throws MailboxException { - return new ArrayList<>(mailboxesByPath.values()); + public Flux<Mailbox> list() { + return Flux.fromIterable(mailboxesByPath.values()); } @Override diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageIdMapper.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageIdMapper.java index bc34599..5e18dad 100644 --- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageIdMapper.java +++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageIdMapper.java @@ -40,6 +40,7 @@ import org.apache.james.mailbox.store.mail.MailboxMapper; import org.apache.james.mailbox.store.mail.MessageIdMapper; import org.apache.james.mailbox.store.mail.MessageMapper; import org.apache.james.mailbox.store.mail.model.MailboxMessage; +import org.apache.james.util.streams.Iterators; import com.github.fge.lambdas.Throwing; import com.github.steveash.guavate.Guavate; @@ -57,19 +58,13 @@ public class InMemoryMessageIdMapper implements MessageIdMapper { @Override public List<MailboxMessage> find(Collection<MessageId> messageIds, MessageMapper.FetchType fetchType) { - try { - return mailboxMapper.list() - .stream() - .flatMap(Throwing.function(mailbox -> - ImmutableList.copyOf( - messageMapper.findInMailbox(mailbox, MessageRange.all(), fetchType, UNLIMITED)) - .stream())) - .filter(message -> messageIds.contains(message.getMessageId())) - .collect(Guavate.toImmutableList()); - } catch (MailboxException e) { - throw new RuntimeException(e); - } - + return mailboxMapper.list() + .flatMap(Throwing.function(mailbox -> + Iterators.toFlux( + messageMapper.findInMailbox(mailbox, MessageRange.all(), fetchType, UNLIMITED)))) + .filter(message -> messageIds.contains(message.getMessageId())) + .collect(Guavate.toImmutableList()) + .block(); } @Override diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java index bb68c0d..901bda5 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/StoreMailboxManager.java @@ -751,10 +751,10 @@ public class StoreMailboxManager implements MailboxManager { public List<MailboxPath> list(MailboxSession session) throws MailboxException { return mailboxSessionMapperFactory.getMailboxMapper(session) .list() - .stream() .map(Mailbox::generateAssociatedPath) .distinct() - .collect(Guavate.toImmutableList()); + .collect(Guavate.toImmutableList()) + .block(); } @Override diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java index cbf5d03..c5aaf7e 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/MailboxMapper.java @@ -138,5 +138,5 @@ public interface MailboxMapper extends Mapper { /** * Return a unmodifable {@link List} of all {@link Mailbox} */ - List<Mailbox> list() throws MailboxException; + Flux<Mailbox> list() throws MailboxException; } \ No newline at end of file diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java index 998a862..749dbf3 100644 --- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/mail/model/MailboxMapperTest.java @@ -25,7 +25,6 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; import java.util.List; -import java.util.stream.Stream; import org.apache.james.core.Username; import org.apache.james.mailbox.exception.MailboxException; @@ -42,8 +41,6 @@ import org.apache.james.mailbox.store.mail.MailboxMapper; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import com.google.common.collect.ImmutableList; - /** * Generic purpose tests for your implementation MailboxMapper. * @@ -159,7 +156,7 @@ public abstract class MailboxMapperTest { @Test void listShouldRetrieveAllMailbox() throws MailboxException { createAll(); - List<Mailbox> mailboxes = mailboxMapper.list(); + List<Mailbox> mailboxes = mailboxMapper.list().collectList().block(); assertMailboxes(mailboxes) .containOnly(benwaInboxMailbox, benwaWorkMailbox, benwaWorkTodoMailbox, benwaPersoMailbox, benwaWorkDoneMailbox, diff --git a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java index 8e06511..e5640b5 100644 --- a/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java +++ b/mailbox/tools/indexer/src/main/java/org/apache/mailbox/tools/indexer/ReIndexerPerformer.java @@ -52,7 +52,6 @@ import com.google.common.collect.ImmutableList; public class ReIndexerPerformer { private static final Logger LOGGER = LoggerFactory.getLogger(ReIndexerPerformer.class); - private static final int NO_LIMIT = 0; private static final int SINGLE_MESSAGE = 1; private static final String RE_INDEXING = "re-indexing"; private static final Username RE_INDEXER_PERFORMER_USER = Username.of(RE_INDEXING); @@ -111,8 +110,8 @@ public class ReIndexerPerformer { MailboxSession mailboxSession = mailboxManager.createSystemSession(RE_INDEXER_PERFORMER_USER); LOGGER.info("Starting a full reindex"); Stream<MailboxId> mailboxIds = mailboxSessionMapperFactory.getMailboxMapper(mailboxSession).list() - .stream() - .map(Mailbox::getMailboxId); + .map(Mailbox::getMailboxId) + .toStream(); try { return reIndex(mailboxIds, reprocessingContext); diff --git a/server/container/mailbox-jmx/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java b/server/container/mailbox-jmx/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java index 9cf51e8..d38bbc7 100644 --- a/server/container/mailbox-jmx/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java +++ b/server/container/mailbox-jmx/src/test/java/org/apache/james/adapter/mailbox/MailboxManagementTest.java @@ -69,42 +69,42 @@ public class MailboxManagementTest { void deleteMailboxesShouldDeleteMailboxes() throws Exception { mapperFactory.createMailboxMapper(session).create(MailboxPath.forUser(USER, "name"), UID_VALIDITY); mailboxManagerManagement.deleteMailboxes(USER.asString()); - assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty(); + assertThat(mapperFactory.createMailboxMapper(session).list().collectList().block()).isEmpty(); } @Test void deleteMailboxesShouldDeleteInbox() throws Exception { mapperFactory.createMailboxMapper(session).create(MailboxPath.inbox(USER), UID_VALIDITY); mailboxManagerManagement.deleteMailboxes(USER.asString()); - assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty(); + assertThat(mapperFactory.createMailboxMapper(session).list().collectList().block()).isEmpty(); } @Test void deleteMailboxesShouldDeleteMailboxesChildren() throws Exception { mapperFactory.createMailboxMapper(session).create(MailboxPath.forUser(USER, "INBOX.test"), UID_VALIDITY); mailboxManagerManagement.deleteMailboxes(USER.asString()); - assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty(); + assertThat(mapperFactory.createMailboxMapper(session).list().collectList().block()).isEmpty(); } @Test void deleteMailboxesShouldNotDeleteMailboxesBelongingToNotPrivateNamespace() throws Exception { Mailbox mailbox = mapperFactory.createMailboxMapper(session).create(new MailboxPath("#top", USER, "name"), UID_VALIDITY); mailboxManagerManagement.deleteMailboxes(USER.asString()); - assertThat(mapperFactory.createMailboxMapper(session).list()).containsExactly(mailbox); + assertThat(mapperFactory.createMailboxMapper(session).list().collectList().block()).containsExactly(mailbox); } @Test void deleteMailboxesShouldNotDeleteMailboxesBelongingToOtherUsers() throws Exception { Mailbox mailbox = mapperFactory.createMailboxMapper(session).create(MailboxPath.forUser(Username.of("userbis"), "name"), UID_VALIDITY); mailboxManagerManagement.deleteMailboxes(USER.asString()); - assertThat(mapperFactory.createMailboxMapper(session).list()).containsExactly(mailbox); + assertThat(mapperFactory.createMailboxMapper(session).list().collectList().block()).containsExactly(mailbox); } @Test void deleteMailboxesShouldDeleteMailboxesWithEmptyNames() throws Exception { mapperFactory.createMailboxMapper(session).create(MailboxPath.forUser(USER, ""), UID_VALIDITY); mailboxManagerManagement.deleteMailboxes(USER.asString()); - assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty(); + assertThat(mapperFactory.createMailboxMapper(session).list().collectList().block()).isEmpty(); } @Test @@ -125,13 +125,13 @@ public class MailboxManagementTest { mapperFactory.createMailboxMapper(session).create(MailboxPath.forUser(USER, "INBOX"), UID_VALIDITY); mapperFactory.createMailboxMapper(session).create(MailboxPath.forUser(USER, "INBOX.test"), UID_VALIDITY); mailboxManagerManagement.deleteMailboxes(USER.asString()); - assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty(); + assertThat(mapperFactory.createMailboxMapper(session).list().collectList().block()).isEmpty(); } @Test void createMailboxShouldCreateAMailbox() throws Exception { mailboxManagerManagement.createMailbox(MailboxConstants.USER_NAMESPACE, USER.asString(), "name"); - assertThat(mapperFactory.createMailboxMapper(session).list()).hasSize(1); + assertThat(mapperFactory.createMailboxMapper(session).list().collectList().block()).hasSize(1); assertThat(mapperFactory.createMailboxMapper(session) .findMailboxByPath(MailboxPath.forUser(USER, "name")) .blockOptional()) @@ -153,7 +153,7 @@ public class MailboxManagementTest { MailboxPath path = MailboxPath.forUser(USER, "name"); Mailbox mailbox = mapperFactory.createMailboxMapper(session).create(path, UID_VALIDITY); - assertThat(mapperFactory.createMailboxMapper(session).list()).containsExactly(mailbox); + assertThat(mapperFactory.createMailboxMapper(session).list().collectList().block()).containsExactly(mailbox); } @Test @@ -220,28 +220,28 @@ public class MailboxManagementTest { void deleteMailboxShouldDeleteGivenMailbox() throws Exception { mapperFactory.createMailboxMapper(session).create(MailboxPath.forUser(USER, "name"), UID_VALIDITY); mailboxManagerManagement.deleteMailbox(MailboxConstants.USER_NAMESPACE, USER.asString(), "name"); - assertThat(mapperFactory.createMailboxMapper(session).list()).isEmpty(); + assertThat(mapperFactory.createMailboxMapper(session).list().collectList().block()).isEmpty(); } @Test void deleteMailboxShouldNotDeleteGivenMailboxIfWrongNamespace() throws Exception { Mailbox mailbox = mapperFactory.createMailboxMapper(session).create(new MailboxPath("#top", USER, "name"), UID_VALIDITY); mailboxManagerManagement.deleteMailbox(MailboxConstants.USER_NAMESPACE, USER.asString(), "name"); - assertThat(mapperFactory.createMailboxMapper(session).list()).containsOnly(mailbox); + assertThat(mapperFactory.createMailboxMapper(session).list().collectList().block()).containsOnly(mailbox); } @Test void deleteMailboxShouldNotDeleteGivenMailboxIfWrongUser() throws Exception { Mailbox mailbox = mapperFactory.createMailboxMapper(session).create(MailboxPath.forUser(Username.of("userbis"), "name"), UID_VALIDITY); mailboxManagerManagement.deleteMailbox(MailboxConstants.USER_NAMESPACE, USER.asString(), "name"); - assertThat(mapperFactory.createMailboxMapper(session).list()).containsOnly(mailbox); + assertThat(mapperFactory.createMailboxMapper(session).list().collectList().block()).containsOnly(mailbox); } @Test void deleteMailboxShouldNotDeleteGivenMailboxIfWrongName() throws Exception { Mailbox mailbox = mapperFactory.createMailboxMapper(session).create(MailboxPath.forUser(USER, "wrong_name"), UID_VALIDITY); mailboxManagerManagement.deleteMailbox(MailboxConstants.USER_NAMESPACE, USER.asString(), "name"); - assertThat(mapperFactory.createMailboxMapper(session).list()).containsOnly(mailbox); + assertThat(mapperFactory.createMailboxMapper(session).list().collectList().block()).containsOnly(mailbox); } @Test --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
