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