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 627e3301dfa36f78a0438261c7eab00b0c4e99b2 Author: Rene Cordier <[email protected]> AuthorDate: Fri Sep 27 16:56:49 2019 +0700 JAMES-2078 Add integration tests for dynamic mappings behavior with ES --- .../ElasticSearchIntegrationTest.java | 50 ++++++++++++++++++++++ .../test/resources/eml/mailCustomDateHeader.eml | 9 ++++ .../test/resources/eml/mailCustomStringHeader.eml | 9 ++++ 3 files changed, 68 insertions(+) diff --git a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java index 0b4f2be..2c30a29 100644 --- a/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java +++ b/mailbox/elasticsearch/src/test/java/org/apache/james/mailbox/elasticsearch/ElasticSearchIntegrationTest.java @@ -51,6 +51,7 @@ import org.apache.james.mime4j.dom.Message; import org.elasticsearch.client.RestHighLevelClient; import org.junit.After; import org.junit.ClassRule; +import org.junit.Ignore; import org.junit.Rule; import org.junit.Test; @@ -218,4 +219,53 @@ public class ElasticSearchIntegrationTest extends AbstractMessageSearchIndexTest assertThat(messageManager.search(new SearchQuery(SearchQuery.bodyContains(reasonableLongTerm)), session)) .containsExactly(composedMessageId.getUid()); } + + @Test + @Ignore("JAMES-2078 issue with dynamic mapping") + public void headerSearchShouldIncludeMessageWhenDifferentTypesOnAnIndexedField() throws Exception { + MailboxPath mailboxPath = MailboxPath.forUser(USERNAME, INBOX); + MailboxSession session = MailboxSessionUtil.create(USERNAME); + MessageManager messageManager = storeMailboxManager.getMailbox(mailboxPath, session); + + ComposedMessageId customDateHeaderMessageId = messageManager.appendMessage( + MessageManager.AppendCommand.builder() + .build(ClassLoader.getSystemResourceAsStream("eml/mailCustomDateHeader.eml")), + session); + + elasticSearch.awaitForElasticSearch(); + + ComposedMessageId customStringHeaderMessageId = messageManager.appendMessage( + MessageManager.AppendCommand.builder() + .build(ClassLoader.getSystemResourceAsStream("eml/mailCustomStringHeader.eml")), + session); + + elasticSearch.awaitForElasticSearch(); + + assertThat(messageManager.search(new SearchQuery(SearchQuery.headerExists("Custom-header")), session)) + .containsExactly(customDateHeaderMessageId.getUid(), customStringHeaderMessageId.getUid()); + } + + @Test + public void messageShouldStillBeIndexedEvenAfterOneFieldFailsIndexation() throws Exception { + MailboxPath mailboxPath = MailboxPath.forUser(USERNAME, INBOX); + MailboxSession session = MailboxSessionUtil.create(USERNAME); + MessageManager messageManager = storeMailboxManager.getMailbox(mailboxPath, session); + + messageManager.appendMessage( + MessageManager.AppendCommand.builder() + .build(ClassLoader.getSystemResourceAsStream("eml/mailCustomDateHeader.eml")), + session); + + elasticSearch.awaitForElasticSearch(); + + ComposedMessageId customStringHeaderMessageId = messageManager.appendMessage( + MessageManager.AppendCommand.builder() + .build(ClassLoader.getSystemResourceAsStream("eml/mailCustomStringHeader.eml")), + session); + + elasticSearch.awaitForElasticSearch(); + + assertThat(messageManager.search(new SearchQuery(SearchQuery.all()), session)) + .contains(customStringHeaderMessageId.getUid()); + } } \ No newline at end of file diff --git a/mailbox/elasticsearch/src/test/resources/eml/mailCustomDateHeader.eml b/mailbox/elasticsearch/src/test/resources/eml/mailCustomDateHeader.eml new file mode 100644 index 0000000..2f42d75 --- /dev/null +++ b/mailbox/elasticsearch/src/test/resources/eml/mailCustomDateHeader.eml @@ -0,0 +1,9 @@ +Content-Type: text/plain; Charset=UTF-8 +Subject: my subject test +MIME-Version: 1.0 +Message-Id: <20100916151246.2A9384BA1@lenny> +From: B <b@test> +To: c@test +Custom-header: 2015/09/02 + +Mail content diff --git a/mailbox/elasticsearch/src/test/resources/eml/mailCustomStringHeader.eml b/mailbox/elasticsearch/src/test/resources/eml/mailCustomStringHeader.eml new file mode 100644 index 0000000..0abb9f8 --- /dev/null +++ b/mailbox/elasticsearch/src/test/resources/eml/mailCustomStringHeader.eml @@ -0,0 +1,9 @@ +Content-Type: text/plain; Charset=UTF-8 +Subject: subject +MIME-Version: 1.0 +Message-Id: <20100916151246.2A9384BA1@lenny> +From: a@test +To: b@test +Custom-header: custom header + +Mail content \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
