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 9173eea87f6f3cd10d89cdeba0871094e136247a Author: Rene Cordier <[email protected]> AuthorDate: Fri Jun 12 15:04:32 2020 +0700 JAMES-3202 test name fixes in ReIndexerImplTest --- .../ElasticSearchListeningMessageSearchIndex.java | 2 +- ...asticSearchListeningMessageSearchIndexTest.java | 117 +++------------- .../LuceneMailboxMessageSearchIndexTest.java | 95 +++---------- .../store/search/LazyMessageSearchIndex.java | 3 +- .../ListeningMessageSearchIndexContract.java | 149 +++++++++++++++++++++ .../mailbox/tools/indexer/ReIndexerImplTest.java | 4 +- 6 files changed, 192 insertions(+), 178 deletions(-) diff --git a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java index e23882c..ddb016e 100644 --- a/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java +++ b/mailbox/elasticsearch/src/main/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndex.java @@ -233,7 +233,7 @@ public class ElasticSearchListeningMessageSearchIndex extends ListeningMessageSe .filter(GetResponse::isExists) .map(GetResponse::getSourceAsMap) .map(this::extractFlags) - .switchIfEmpty(Mono.error(new IndexNotFoundException( + .switchIfEmpty(Mono.error(() -> new IndexNotFoundException( String.format("Index for message %s in mailbox %s not found", uid.toString(), mailbox.getMailboxId().serialize())))); } diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java index 4f80bb0..b934ec3 100644 --- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java +++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/events/ElasticSearchListeningMessageSearchIndexTest.java @@ -37,7 +37,6 @@ import org.apache.james.backends.es.ReactorElasticSearchClient; import org.apache.james.core.Username; import org.apache.james.mailbox.Authorizator; import org.apache.james.mailbox.DefaultMailboxes; -import org.apache.james.mailbox.FlagsBuilder; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.MessageUid; import org.apache.james.mailbox.ModSeq; @@ -76,9 +75,12 @@ import org.apache.james.mailbox.store.SessionProviderImpl; import org.apache.james.mailbox.store.extractor.DefaultTextExtractor; 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.search.ListeningMessageSearchIndex; +import org.apache.james.mailbox.store.search.ListeningMessageSearchIndexContract; import org.awaitility.Duration; import org.elasticsearch.index.IndexNotFoundException; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; import org.testcontainers.shaded.com.google.common.collect.ImmutableList; @@ -446,102 +448,27 @@ class ElasticSearchListeningMessageSearchIndexTest { .doesNotThrowAnyException(); } - @Test - void retrieveIndexedFlagsShouldRetrieveSystemFlags() { - Flags flags = FlagsBuilder.builder() - .add(Flags.Flag.RECENT) - .add(Flags.Flag.DRAFT) - .build(); - - SimpleMailboxMessage message = MESSAGE_BUILDER.messageId(MESSAGE_ID_4) - .uid(MESSAGE_UID_4) - .flags(flags) - .build(); - - testee.add(session, mailbox, message).block(); - - assertThat(testee.retrieveIndexedFlags(mailbox, MESSAGE_UID_4).block()) - .isEqualTo(flags); - } - - @Test - void retrieveIndexedFlagsShouldReturnEmptyFlagsWhenNoFlags() { - Flags flags = new Flags(); - - SimpleMailboxMessage message = MESSAGE_BUILDER.messageId(MESSAGE_ID_4) - .uid(MESSAGE_UID_4) - .flags(flags) - .build(); - - testee.add(session, mailbox, message).block(); - - assertThat(testee.retrieveIndexedFlags(mailbox, MESSAGE_UID_4).block()) - .isEqualTo(flags); - } - - @Test - void retrieveIndexedFlagsShouldReturnAllSystemFlagsWhenAllFlagsSet() { - Flags flags = FlagsBuilder.builder() - .add(Flags.Flag.ANSWERED) - .add(Flags.Flag.DELETED) - .add(Flags.Flag.RECENT) - .add(Flags.Flag.DRAFT) - .add(Flags.Flag.FLAGGED) - .add(Flags.Flag.SEEN) - .build(); - - SimpleMailboxMessage message = MESSAGE_BUILDER.messageId(MESSAGE_ID_4) - .uid(MESSAGE_UID_4) - .flags(flags) - .build(); - - testee.add(session, mailbox, message).block(); - - assertThat(testee.retrieveIndexedFlags(mailbox, MESSAGE_UID_4).block()) - .isEqualTo(flags); - } - - @Test - void retrieveIndexedFlagsShouldReturnUserFlags() { - Flags flags = FlagsBuilder.builder() - .add("flag1") - .add("flag2") - .build(); - - SimpleMailboxMessage message = MESSAGE_BUILDER.messageId(MESSAGE_ID_4) - .uid(MESSAGE_UID_4) - .flags(flags) - .build(); - - testee.add(session, mailbox, message).block(); - - assertThat(testee.retrieveIndexedFlags(mailbox, MESSAGE_UID_4).block()) - .isEqualTo(flags); - } - - @Test - void retrieveIndexedFlagsShouldReturnUserAndSystemFlags() { - Flags flags = FlagsBuilder.builder() - .add(Flags.Flag.ANSWERED) - .add(Flags.Flag.DELETED) - .add("flag1") - .add("flag2") - .build(); - - SimpleMailboxMessage message = MESSAGE_BUILDER.messageId(MESSAGE_ID_4) - .uid(MESSAGE_UID_4) - .flags(flags) - .build(); + @Nested + class RetrieveIndexedFlags implements ListeningMessageSearchIndexContract { + @Override + public ListeningMessageSearchIndex testee() { + return testee; + } - testee.add(session, mailbox, message).block(); + @Override + public MailboxSession session() { + return session; + } - assertThat(testee.retrieveIndexedFlags(mailbox, MESSAGE_UID_4).block()) - .isEqualTo(flags); - } + @Override + public Mailbox mailbox() { + return mailbox; + } - @Test - void retrieveIndexedFlagsShouldPropagateExceptionWhenNotFound() { - assertThatThrownBy(() -> testee.retrieveIndexedFlags(mailbox, MESSAGE_UID_4).block()) - .isInstanceOf(IndexNotFoundException.class); + @Test + void retrieveIndexedFlagsShouldPropagateExceptionWhenNotFound() { + assertThatThrownBy(() -> testee.retrieveIndexedFlags(mailbox, MESSAGE_UID_4).block()) + .isInstanceOf(IndexNotFoundException.class); + } } } \ No newline at end of file diff --git a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java index 15ac2a3..a0ec57c 100644 --- a/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java +++ b/mailbox/lucene/src/test/java/org/apache/james/mailbox/lucene/search/LuceneMailboxMessageSearchIndexTest.java @@ -35,7 +35,6 @@ import javax.mail.Flags; import javax.mail.Flags.Flag; import org.apache.james.core.Username; -import org.apache.james.mailbox.FlagsBuilder; import org.apache.james.mailbox.MailboxSession; import org.apache.james.mailbox.MailboxSessionUtil; import org.apache.james.mailbox.MessageUid; @@ -53,8 +52,11 @@ import org.apache.james.mailbox.model.TestMessageId; import org.apache.james.mailbox.model.UidValidity; import org.apache.james.mailbox.model.UpdatedFlags; import org.apache.james.mailbox.store.MessageBuilder; +import org.apache.james.mailbox.store.search.ListeningMessageSearchIndex; +import org.apache.james.mailbox.store.search.ListeningMessageSearchIndexContract; import org.apache.lucene.store.RAMDirectory; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import com.google.common.collect.ImmutableList; @@ -671,84 +673,21 @@ class LuceneMailboxMessageSearchIndexTest { .containsExactly(uid2); } - @Test - void retrieveIndexedFlagsShouldRetrieveSystemFlags() { - Flags expectedFlags = new Flags(Flag.ANSWERED); - - assertThat(index.retrieveIndexedFlags(mailbox, uid1).block()) - .isEqualTo(expectedFlags); - } - - @Test - void retrieveIndexedFlagsShouldReturnEmptyFlagsWhenNoFlags() { - Flags expectedFlags = new Flags(); - - assertThat(index.retrieveIndexedFlags(mailbox, uid5).block()) - .isEqualTo(expectedFlags); - } - - @Test - void retrieveIndexedFlagsShouldReturnAllSystemFlagsWhenAllFlagsSet() { - Flags newFlags = FlagsBuilder.builder() - .add(Flags.Flag.ANSWERED) - .add(Flags.Flag.DELETED) - .add(Flags.Flag.RECENT) - .add(Flags.Flag.DRAFT) - .add(Flags.Flag.FLAGGED) - .add(Flags.Flag.SEEN) - .build(); - - UpdatedFlags updatedFlags = UpdatedFlags.builder() - .uid(uid2) - .modSeq(MOD_SEQ) - .oldFlags(new Flags(Flag.ANSWERED)) - .newFlags(newFlags) - .build(); - - index.update(session, mailbox, Lists.newArrayList(updatedFlags)).block(); - - assertThat(index.retrieveIndexedFlags(mailbox, uid2).block()) - .isEqualTo(newFlags); - } - - @Test - void retrieveIndexedFlagsShouldReturnUserFlags() { - Flags newFlags = FlagsBuilder.builder() - .add("flag1") - .add("flag2") - .build(); - - UpdatedFlags updatedFlags = UpdatedFlags.builder() - .uid(uid2) - .modSeq(MOD_SEQ) - .oldFlags(new Flags(Flag.ANSWERED)) - .newFlags(newFlags) - .build(); - - index.update(session, mailbox, Lists.newArrayList(updatedFlags)).block(); - - assertThat(index.retrieveIndexedFlags(mailbox, uid2).block()) - .isEqualTo(newFlags); - } + @Nested + class RetrieveIndexedFlags implements ListeningMessageSearchIndexContract { + @Override + public ListeningMessageSearchIndex testee() { + return index; + } - @Test - void retrieveIndexedFlagsShouldReturnUserAndSystemFlags() { - Flags newFlags = FlagsBuilder.builder() - .add("flag1") - .add("flag2") - .add(Flag.DRAFT) - .build(); - - UpdatedFlags updatedFlags = UpdatedFlags.builder() - .uid(uid2) - .modSeq(MOD_SEQ) - .oldFlags(new Flags(Flag.ANSWERED)) - .newFlags(newFlags) - .build(); - - index.update(session, mailbox, Lists.newArrayList(updatedFlags)).block(); + @Override + public MailboxSession session() { + return session; + } - assertThat(index.retrieveIndexedFlags(mailbox, uid2).block()) - .isEqualTo(newFlags); + @Override + public Mailbox mailbox() { + return mailbox; + } } } diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java index 459cc22..e889b2b 100644 --- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java +++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/search/LazyMessageSearchIndex.java @@ -72,8 +72,7 @@ public class LazyMessageSearchIndex extends ListeningMessageSearchIndex { private final ListeningMessageSearchIndex index; private final ConcurrentHashMap<MailboxId, Object> indexed = new ConcurrentHashMap<>(); private final MailboxSessionMapperFactory factory; - - + public LazyMessageSearchIndex(ListeningMessageSearchIndex index, MailboxSessionMapperFactory factory, SessionProvider sessionProvider) { super(factory, sessionProvider); this.index = index; diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndexContract.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndexContract.java new file mode 100644 index 0000000..98b0b19 --- /dev/null +++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/ListeningMessageSearchIndexContract.java @@ -0,0 +1,149 @@ +/**************************************************************** + * 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.store.search; + +import static org.assertj.core.api.Assertions.assertThat; + +import java.nio.charset.StandardCharsets; +import java.util.Date; + +import javax.mail.Flags; +import javax.mail.util.SharedByteArrayInputStream; + +import org.apache.james.mailbox.FlagsBuilder; +import org.apache.james.mailbox.MailboxSession; +import org.apache.james.mailbox.MessageUid; +import org.apache.james.mailbox.ModSeq; +import org.apache.james.mailbox.model.Mailbox; +import org.apache.james.mailbox.model.MessageId; +import org.apache.james.mailbox.model.TestMessageId; +import org.apache.james.mailbox.store.mail.model.impl.PropertyBuilder; +import org.apache.james.mailbox.store.mail.model.impl.SimpleMailboxMessage; +import org.junit.jupiter.api.Test; + +public interface ListeningMessageSearchIndexContract { + ModSeq MOD_SEQ = ModSeq.of(42L); + int SIZE = 25; + int BODY_START_OCTET = 100; + MessageId MESSAGE_ID = TestMessageId.of(21L); + MessageUid MESSAGE_UID = MessageUid.of(28); + + SimpleMailboxMessage.Builder MESSAGE_BUILDER = SimpleMailboxMessage.builder() + .messageId(MESSAGE_ID) + .uid(MESSAGE_UID) + .bodyStartOctet(BODY_START_OCTET) + .internalDate(new Date(1433628000000L)) + .size(SIZE) + .content(new SharedByteArrayInputStream("message".getBytes(StandardCharsets.UTF_8))) + .propertyBuilder(new PropertyBuilder()) + .modseq(MOD_SEQ); + + ListeningMessageSearchIndex testee(); + MailboxSession session(); + Mailbox mailbox(); + + @Test + default void retrieveIndexedFlagsShouldRetrieveSystemFlags() { + Flags flags = FlagsBuilder.builder() + .add(Flags.Flag.RECENT) + .add(Flags.Flag.DRAFT) + .build(); + + SimpleMailboxMessage message = MESSAGE_BUILDER.mailboxId(mailbox().getMailboxId()) + .flags(flags) + .build(); + + testee().add(session(), mailbox(), message).block(); + + assertThat(testee().retrieveIndexedFlags(mailbox(), MESSAGE_UID).block()) + .isEqualTo(flags); + } + + @Test + default void retrieveIndexedFlagsShouldReturnEmptyFlagsWhenNoFlags() { + Flags flags = new Flags(); + + SimpleMailboxMessage message = MESSAGE_BUILDER.mailboxId(mailbox().getMailboxId()) + .flags(flags) + .build(); + + testee().add(session(), mailbox(), message).block(); + + assertThat(testee().retrieveIndexedFlags(mailbox(), MESSAGE_UID).block()) + .isEqualTo(flags); + } + + @Test + default void retrieveIndexedFlagsShouldReturnAllSystemFlagsWhenAllFlagsSet() { + Flags flags = FlagsBuilder.builder() + .add(Flags.Flag.ANSWERED) + .add(Flags.Flag.DELETED) + .add(Flags.Flag.RECENT) + .add(Flags.Flag.DRAFT) + .add(Flags.Flag.FLAGGED) + .add(Flags.Flag.SEEN) + .build(); + + SimpleMailboxMessage message = MESSAGE_BUILDER.mailboxId(mailbox().getMailboxId()) + .flags(flags) + .build(); + + testee().add(session(), mailbox(), message).block(); + + assertThat(testee().retrieveIndexedFlags(mailbox(), MESSAGE_UID).block()) + .isEqualTo(flags); + } + + @Test + default void retrieveIndexedFlagsShouldReturnUserFlags() { + Flags flags = FlagsBuilder.builder() + .add("flag1") + .add("flag2") + .build(); + + SimpleMailboxMessage message = MESSAGE_BUILDER.mailboxId(mailbox().getMailboxId()) + .flags(flags) + .build(); + + testee().add(session(), mailbox(), message).block(); + + assertThat(testee().retrieveIndexedFlags(mailbox(), MESSAGE_UID).block()) + .isEqualTo(flags); + } + + @Test + default void retrieveIndexedFlagsShouldReturnUserAndSystemFlags() { + Flags flags = FlagsBuilder.builder() + .add(Flags.Flag.ANSWERED) + .add(Flags.Flag.DELETED) + .add("flag1") + .add("flag2") + .build(); + + SimpleMailboxMessage message = MESSAGE_BUILDER.mailboxId(mailbox().getMailboxId()) + .flags(flags) + .build(); + + testee().add(session(), mailbox(), message).block(); + + assertThat(testee().retrieveIndexedFlags(mailbox(), MESSAGE_UID).block()) + .isEqualTo(flags); + } +} diff --git a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java index 237dbb5..32135ad 100644 --- a/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java +++ b/mailbox/tools/indexer/src/test/java/org/apache/mailbox/tools/indexer/ReIndexerImplTest.java @@ -71,7 +71,7 @@ public class ReIndexerImplTest { } @Test - void reIndexAllShouldCallMessageSearchIndex() throws Exception { + void reIndexMailboxPathShouldCallMessageSearchIndex() throws Exception { MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME); MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get(); ComposedMessageId createdMessage = mailboxManager.getMailbox(INBOX, systemSession) @@ -98,7 +98,7 @@ public class ReIndexerImplTest { } @Test - void reIndexMailboxPathShouldCallMessageSearchIndex() throws Exception { + void reIndexAllShouldCallMessageSearchIndex() throws Exception { MailboxSession systemSession = mailboxManager.createSystemSession(USERNAME); MailboxId mailboxId = mailboxManager.createMailbox(INBOX, systemSession).get(); ComposedMessageId createdMessage = mailboxManager.getMailbox(INBOX, systemSession) --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
