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 2020/06/21 09:16:30 UTC
[james-project] 07/12: JAMES-3202 test name fixes in
ReIndexerImplTest
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 <rc...@linagora.com>
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: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org