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 2017/08/25 08:32:50 UTC
[12/13] james-project git commit: JAMES-2046 Add a test for SentDent
ordering for MessageSearchIndexes
JAMES-2046 Add a test for SentDent ordering for MessageSearchIndexes
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/5af0d27a
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/5af0d27a
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/5af0d27a
Branch: refs/heads/master
Commit: 5af0d27aad7f210a8b6245e84915f683937b51b8
Parents: df4d1d8
Author: benwa <bt...@linagora.com>
Authored: Thu Aug 24 14:07:03 2017 +0700
Committer: benwa <bt...@linagora.com>
Committed: Fri Aug 25 15:31:47 2017 +0700
----------------------------------------------------------------------
.../search/AbstractMessageSearchIndexTest.java | 55 ++++++++++++++++++++
1 file changed, 55 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/5af0d27a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
----------------------------------------------------------------------
diff --git a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
index 5dbfe9a..fd9d173 100644
--- a/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
+++ b/mailbox/store/src/test/java/org/apache/james/mailbox/store/search/AbstractMessageSearchIndexTest.java
@@ -21,6 +21,8 @@ package org.apache.james.mailbox.store.search;
import static org.assertj.core.api.Assertions.assertThat;
+import java.io.ByteArrayInputStream;
+import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@@ -29,6 +31,7 @@ import javax.mail.Flags;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.mailbox.MailboxSession;
import org.apache.james.mailbox.MessageIdManager;
+import org.apache.james.mailbox.MessageManager;
import org.apache.james.mailbox.exception.MailboxException;
import org.apache.james.mailbox.model.ComposedMessageId;
import org.apache.james.mailbox.model.MailboxConstants;
@@ -1143,4 +1146,56 @@ public abstract class AbstractMessageSearchIndexTest {
assertThat(messageSearchIndex.search(otherSession, mailbox, searchQuery)).isEmpty();
}
+
+ @Test
+ public void searchShouldOrderByInternalDateWhenSortOnSentDateAndNoCorrespondingHeader() throws Exception {
+ MailboxPath mailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, USERNAME, "sentDate");
+ storeMailboxManager.createMailbox(mailboxPath, session);
+
+ MessageManager messageManager = storeMailboxManager.getMailbox(mailboxPath, session);
+ boolean isRecent = false;
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ Date date1 = simpleDateFormat.parse("2017-08-24");
+ Date date2 = simpleDateFormat.parse("2017-08-23");
+ Date date3 = simpleDateFormat.parse("2017-08-25");
+ ComposedMessageId message1 = messageManager.appendMessage(new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), date1, session, isRecent, new Flags());
+ ComposedMessageId message2 = messageManager.appendMessage(new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), date2, session, isRecent, new Flags());
+ ComposedMessageId message3 = messageManager.appendMessage(new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), date3, session, isRecent, new Flags());
+
+ await();
+
+ SearchQuery searchQuery = new SearchQuery();
+ searchQuery.setSorts(ImmutableList.of(new Sort(SortClause.SentDate)));
+
+ assertThat(messageManager.search(searchQuery, session))
+ .containsExactly(message2.getUid(),
+ message1.getUid(),
+ message3.getUid());
+ }
+
+ @Test
+ public void searchShouldOrderBySentDateThenInternalDateWhenSortOnSentDateAndNonHomogeneousCorrespondingHeader() throws Exception {
+ MailboxPath mailboxPath = new MailboxPath(MailboxConstants.USER_NAMESPACE, USERNAME, "sentDate");
+ storeMailboxManager.createMailbox(mailboxPath, session);
+
+ MessageManager messageManager = storeMailboxManager.getMailbox(mailboxPath, session);
+ boolean isRecent = false;
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ Date date1 = simpleDateFormat.parse("2017-08-24");
+ Date date2 = simpleDateFormat.parse("2017-08-26");
+ Date date3 = simpleDateFormat.parse("2017-08-25");
+ ComposedMessageId message1 = messageManager.appendMessage(new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), date1, session, isRecent, new Flags());
+ ComposedMessageId message2 = messageManager.appendMessage(new ByteArrayInputStream("Date: Wed, 23 Aug 2017 00:00:00 +0200\r\nSubject: test\r\n\r\ntestmail".getBytes()), date2, session, isRecent, new Flags());
+ ComposedMessageId message3 = messageManager.appendMessage(new ByteArrayInputStream("Subject: test\r\n\r\ntestmail".getBytes()), date3, session, isRecent, new Flags());
+
+ await();
+
+ SearchQuery searchQuery = new SearchQuery();
+ searchQuery.setSorts(ImmutableList.of(new Sort(SortClause.SentDate)));
+
+ assertThat(messageManager.search(searchQuery, session))
+ .containsExactly(message2.getUid(),
+ message1.getUid(),
+ message3.getUid());
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org