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 rd...@apache.org on 2008/03/24 21:33:14 UTC
svn commit: r640562 - in /james/server/trunk:
core-library/src/main/java/org/apache/james/mailboxmanager/
experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/
imap-mailbox-processor-function/src/main/java/or...
Author: rdonkin
Date: Mon Mar 24 13:33:09 2008
New Revision: 640562
URL: http://svn.apache.org/viewvc?rev=640562&view=rev
Log:
RECENT SEARCH implementation
Modified:
james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/SearchQuery.java
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SearchAtoms.test
james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/UidSearchAtoms.test
james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/SearchProcessor.java
james/server/trunk/imap-mailbox-processor-function/src/test/java/org/apache/james/imapserver/processor/imap4rev1/SearchProcessorTest.java
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/MessageSearches.java
james/server/trunk/torque-mailboxmanager-function/src/test/java/org/apache/james/mailboxmanager/torque/SearchUtilsMultipartMixedTest.java
james/server/trunk/torque-mailboxmanager-function/src/test/java/org/apache/james/mailboxmanager/torque/SearchUtilsRFC822Test.java
james/server/trunk/torque-mailboxmanager-function/src/test/java/org/apache/james/mailboxmanager/torque/SearchUtilsTest.java
Modified: james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/SearchQuery.java
URL: http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/SearchQuery.java?rev=640562&r1=640561&r2=640562&view=diff
==============================================================================
--- james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/SearchQuery.java (original)
+++ james/server/trunk/core-library/src/main/java/org/apache/james/mailboxmanager/SearchQuery.java Mon Mar 24 13:33:09 2008
@@ -21,7 +21,9 @@
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import javax.mail.Flags.Flag;
@@ -328,8 +330,8 @@
return AllCriterion.all();
}
-
- List criterias = new ArrayList();
+ private final Set recentMessageUids = new HashSet();
+ private final List criterias = new ArrayList();
public void andCriteria(Criterion crit) {
criterias.add(crit);
@@ -338,6 +340,17 @@
public List getCriterias() {
return criterias;
}
+
+ /**
+ * Gets the UIDS of messages which are recent for this
+ * client session.
+ * The list of recent mail is maintained in the protocol
+ * layer since the mechanics are protocol specific.
+ * @return mutable <code>Set</code> of <code>Long</code> UIDS
+ */
+ public Set getRecentMessageUids() {
+ return recentMessageUids;
+ }
// @Override
public String toString() {
Modified: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SearchAtoms.test
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SearchAtoms.test?rev=640562&r1=640561&r2=640562&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SearchAtoms.test (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/SearchAtoms.test Mon Mar 24 13:33:09 2008
@@ -1704,10 +1704,9 @@
C: A78 SEARCH LARGER 20000
S: \* SEARCH
S: A78 OK SEARCH completed\.
-# TODO: FIX RECENT
-#C: A79 SEARCH NEW
-#S: \* SEARCH 3 4 8 9 13 14 18 19
-#S: A79 OK SEARCH completed\.
+C: A79 SEARCH NEW
+S: \* SEARCH 3 4 8 9 13 14 18 19
+S: A79 OK SEARCH completed\.
C: A80 SEARCH NOT FLAGGED
S: \* SEARCH 10 11 12 13 14 15 16 17 18 19
S: A80 OK SEARCH completed\.
@@ -1720,17 +1719,15 @@
C: A83 SEARCH 17:*
S: \* SEARCH 17 18 19
S: A83 OK SEARCH completed\.
-# TODO FIX RECENT
-#C: A84 SEARCH OLD
-#S: \* SEARCH
-#S: A84 OK SEARCH completed\.
+C: A84 SEARCH OLD
+S: \* SEARCH
+S: A84 OK SEARCH completed\.
C: A85 SEARCH OR ANSWERED FLAGGED
S: \* SEARCH 1 2 3 4 5 6 7 8 9 10 11 12 13 14
S: A85 OK SEARCH completed\.
-# TODO: FIX RECENT
-#C: A86 SEARCH RECENT
-#S: \* SEARCH 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
-#S: A86 OK SEARCH completed\.
+C: A86 SEARCH RECENT
+S: \* SEARCH 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
+S: A86 OK SEARCH completed\.
C: A87 SEARCH SEEN
S: \* SEARCH 1 2 5 6 7 10 11 12 15 16 17
S: A87 OK SEARCH completed\.
Modified: james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/UidSearchAtoms.test
URL: http://svn.apache.org/viewvc/james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/UidSearchAtoms.test?rev=640562&r1=640561&r2=640562&view=diff
==============================================================================
--- james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/UidSearchAtoms.test (original)
+++ james/server/trunk/experimental-seda-imap-function/src/test/resources/org/apache/james/test/functional/imap/scripts/UidSearchAtoms.test Mon Mar 24 13:33:09 2008
@@ -2065,10 +2065,9 @@
C: A138 UID SEARCH LARGER 20000
S: \* SEARCH
S: A138 OK SEARCH completed\.
-# TODO: RECENT
-#C: A139 UID SEARCH NEW
-#S: \* SEARCH 23 24 28 29 33 34 38 39
-#S: A139 OK SEARCH completed\.
+C: A139 UID SEARCH NEW
+S: \* SEARCH 23 24 28 29 33 34 38 39
+S: A139 OK SEARCH completed\.
C: A140 UID SEARCH NOT FLAGGED
S: \* SEARCH 30 31 32 33 34 35 36 37 38 39
S: A140 OK SEARCH completed\.
@@ -2081,17 +2080,15 @@
C: A143 UID SEARCH 17:*
S: \* SEARCH 37 38 39
S: A143 OK SEARCH completed\.
-# TODO: RECENT
-#C: A144 UID SEARCH OLD
-#S: \* SEARCH
-#S: A144 OK SEARCH completed\.
+C: A144 UID SEARCH OLD
+S: \* SEARCH
+S: A144 OK SEARCH completed\.
C: A145 UID SEARCH OR ANSWERED FLAGGED
S: \* SEARCH 21 22 23 24 25 26 27 28 29 30 31 32 33 34
S: A145 OK SEARCH completed\.
-# TODO: RECENT
-#C: A146 UID SEARCH RECENT
-#S: \* SEARCH 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
-#S: A146 OK SEARCH completed\.
+C: A146 UID SEARCH RECENT
+S: \* SEARCH 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
+S: A146 OK SEARCH completed\.
C: A147 UID SEARCH SEEN
S: \* SEARCH 21 22 25 26 27 30 31 32 35 36 37
S: A147 OK SEARCH completed\.
Modified: james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/SearchProcessor.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/SearchProcessor.java?rev=640562&r1=640561&r2=640562&view=diff
==============================================================================
--- james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/SearchProcessor.java (original)
+++ james/server/trunk/imap-mailbox-processor-function/src/main/java/org/apache/james/imapserver/processor/imap4rev1/SearchProcessor.java Mon Mar 24 13:33:09 2008
@@ -127,6 +127,14 @@
private SearchQuery toQuery(final SearchKey key, final ImapSession session) {
final SearchQuery result = new SearchQuery();
+ final SelectedImapMailbox selected = session.getSelected();
+ if (selected != null) {
+ final long[] recent = selected.getRecent();
+ for (int i = 0; i < recent.length; i++) {
+ long uid = recent[i];
+ result.getRecentMessageUids().add(new Long(uid));
+ }
+ }
final SearchQuery.Criterion criterion = toCriterion(key, session);
result.andCriteria(criterion);
return result;
Modified: james/server/trunk/imap-mailbox-processor-function/src/test/java/org/apache/james/imapserver/processor/imap4rev1/SearchProcessorTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imap-mailbox-processor-function/src/test/java/org/apache/james/imapserver/processor/imap4rev1/SearchProcessorTest.java?rev=640562&r1=640561&r2=640562&view=diff
==============================================================================
--- james/server/trunk/imap-mailbox-processor-function/src/test/java/org/apache/james/imapserver/processor/imap4rev1/SearchProcessorTest.java (original)
+++ james/server/trunk/imap-mailbox-processor-function/src/test/java/org/apache/james/imapserver/processor/imap4rev1/SearchProcessorTest.java Mon Mar 24 13:33:09 2008
@@ -37,6 +37,7 @@
import org.apache.james.api.imap.process.ImapProcessor.Responder;
import org.apache.james.imap.message.request.imap4rev1.SearchRequest;
import org.apache.james.imap.message.response.imap4rev1.server.SearchResponse;
+import org.apache.james.imapserver.codec.encode.imap4rev1.legacy.MockImapResponseWriter;
import org.apache.james.imapserver.processor.base.ImapSessionUtils;
import org.apache.james.mailboxmanager.MailboxSession;
import org.apache.james.mailboxmanager.SearchQuery;
@@ -97,7 +98,8 @@
final SearchQuery.NumericRange[] ranges = {new SearchQuery.NumericRange(Long.MAX_VALUE, 1729L)};
Mock selectedMailbox = mock(SelectedImapMailbox.class);
selectedMailbox.expects(once()).method("uid").with(eq(1729)).will(returnValue(1729L));
- session.expects(once()).method("getSelected").will(returnValue(selectedMailbox.proxy()));
+ session.expects(atLeastOnce()).method("getSelected").will(returnValue(selectedMailbox.proxy()));
+ selectedMailbox.expects(once()).method("getRecent").will(returnValue(EMPTY));
check(SearchKey.buildSequenceSet(ids), SearchQuery.uid(ranges));
}
@@ -106,7 +108,8 @@
final SearchQuery.NumericRange[] ranges = {new SearchQuery.NumericRange(42, Long.MAX_VALUE)};
Mock selectedMailbox = mock(SelectedImapMailbox.class);
selectedMailbox.expects(once()).method("uid").with(eq(1)).will(returnValue(42L));
- session.expects(once()).method("getSelected").will(returnValue(selectedMailbox.proxy()));
+ session.expects(atLeastOnce()).method("getSelected").will(returnValue(selectedMailbox.proxy()));
+ selectedMailbox.expects(once()).method("getRecent").will(returnValue(EMPTY));
check(SearchKey.buildSequenceSet(ids), SearchQuery.uid(ranges));
}
@@ -116,7 +119,8 @@
Mock selectedMailbox = mock(SelectedImapMailbox.class);
selectedMailbox.expects(once()).method("uid").with(eq(1)).will(returnValue(42L));
selectedMailbox.expects(once()).method("uid").with(eq(5)).will(returnValue(1729L));
- session.expects(once()).method("getSelected").will(returnValue(selectedMailbox.proxy()));
+ selectedMailbox.expects(once()).method("getRecent").will(returnValue(EMPTY));
+ session.expects(atLeastOnce()).method("getSelected").will(returnValue(selectedMailbox.proxy()));
check(SearchKey.buildSequenceSet(ids), SearchQuery.uid(ranges));
}
@@ -125,82 +129,101 @@
final SearchQuery.NumericRange[] ranges = {new SearchQuery.NumericRange(42)};
Mock selectedMailbox = mock(SelectedImapMailbox.class);
selectedMailbox.expects(exactly(2)).method("uid").with(eq(1)).will(returnValue(42L));
- session.expects(once()).method("getSelected").will(returnValue(selectedMailbox.proxy()));
+ selectedMailbox.expects(once()).method("getRecent").will(returnValue(EMPTY));
+ session.expects(atLeastOnce()).method("getSelected").will(returnValue(selectedMailbox.proxy()));
check(SearchKey.buildSequenceSet(ids), SearchQuery.uid(ranges));
}
public void testALL() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildAll(), SearchQuery.all());
}
public void testANSWERED() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildAnswered(), SearchQuery.flagIsSet(Flag.ANSWERED));
}
public void testBCC() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildBcc(ADDRESS), SearchQuery.headerContains(RFC2822Headers.BCC, ADDRESS));
}
public void testBEFORE() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildBefore(DAY_MONTH_YEAR), SearchQuery.internalDateBefore(DAY, MONTH, YEAR));
}
public void testBODY() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildBody(SUBJECT), SearchQuery.bodyContains(SUBJECT));
}
public void testCC() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildCc(ADDRESS), SearchQuery.headerContains(RFC2822Headers.CC, ADDRESS));
}
public void testDELETED() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildDeleted(), SearchQuery.flagIsSet(Flag.DELETED));
}
public void testDRAFT() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildDraft(), SearchQuery.flagIsSet(Flag.DRAFT));
}
public void testFLAGGED() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildFlagged(), SearchQuery.flagIsSet(Flag.FLAGGED));
}
public void testFROM() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildFrom(ADDRESS), SearchQuery.headerContains(RFC2822Headers.FROM, ADDRESS));
}
public void testHEADER () throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildHeader(RFC2822Headers.IN_REPLY_TO, ADDRESS), SearchQuery.headerContains(RFC2822Headers.IN_REPLY_TO, ADDRESS));
}
public void testKEYWORD() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildKeyword(KEYWORD), SearchQuery.flagIsSet(KEYWORD));
}
public void testLARGER() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildLarger(SIZE), SearchQuery.sizeGreaterThan(SIZE));
}
public void testNEW() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildNew(),
SearchQuery.and(SearchQuery.flagIsSet(Flag.RECENT), SearchQuery.flagIsUnSet(Flag.SEEN)));
}
public void testNOT() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildNot(SearchKey.buildOn(DAY_MONTH_YEAR)),
SearchQuery.not(SearchQuery.internalDateOn(DAY, MONTH, YEAR)));
}
public void testOLD() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildOld(), SearchQuery.flagIsUnSet(Flag.RECENT));
}
public void testON() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildOn(DAY_MONTH_YEAR), SearchQuery.internalDateOn(DAY, MONTH, YEAR));
}
public void testAND() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
List keys = new ArrayList();
keys.add(SearchKey.buildOn(DAY_MONTH_YEAR));
keys.add(SearchKey.buildOld());
@@ -213,75 +236,93 @@
}
public void testOR() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildOr(SearchKey.buildOn(DAY_MONTH_YEAR), SearchKey.buildOld()),
SearchQuery.or(SearchQuery.internalDateOn(DAY, MONTH, YEAR), SearchQuery.flagIsUnSet(Flag.RECENT)));
}
public void testRECENT() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildRecent(), SearchQuery.flagIsSet(Flag.RECENT));
}
public void testSEEN() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildSeen(), SearchQuery.flagIsSet(Flag.SEEN));
}
public void testSENTBEFORE() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildSentBefore(DAY_MONTH_YEAR), SearchQuery.headerDateBefore(RFC2822Headers.DATE, DAY, MONTH, YEAR));
}
public void testSENTON() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildSentOn(DAY_MONTH_YEAR), SearchQuery.headerDateOn(RFC2822Headers.DATE, DAY, MONTH, YEAR));
}
public void testSENTSINCE() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildSentSince(DAY_MONTH_YEAR), SearchQuery.headerDateAfter(RFC2822Headers.DATE, DAY, MONTH, YEAR));
}
public void testSINCE() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildSince(DAY_MONTH_YEAR), SearchQuery.internalDateAfter(DAY, MONTH, YEAR));
}
public void testSMALLER() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildSmaller(SIZE), SearchQuery.sizeLessThan(SIZE));
}
public void testSUBJECT() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildSubject(SUBJECT), SearchQuery.headerContains(RFC2822Headers.SUBJECT, SUBJECT));
}
public void testTEXT() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildText(SUBJECT), SearchQuery.mailContains(SUBJECT));
}
public void testTO () throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildTo(ADDRESS), SearchQuery.headerContains(RFC2822Headers.TO, ADDRESS));
}
public void testUID() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildUidSet(IDS), SearchQuery.uid(RANGES));
}
public void testUNANSWERED() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildUnanswered(), SearchQuery.flagIsUnSet(Flag.ANSWERED));
}
public void testUNDELETED() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildUndeleted(), SearchQuery.flagIsUnSet(Flag.DELETED));
}
public void testUNDRAFT() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildUndraft(), SearchQuery.flagIsUnSet(Flag.DRAFT));
}
public void testUNFLAGGED() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildUnflagged(), SearchQuery.flagIsUnSet(Flag.FLAGGED));
}
public void testUNKEYWORD() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildUnkeyword(KEYWORD), SearchQuery.flagIsUnSet(KEYWORD));
}
public void testUNSEEN() throws Exception {
+ session.expects(once()).method("getSelected").will(returnValue(null));
check(SearchKey.buildUnseen(), SearchQuery.flagIsUnSet(Flag.SEEN));
}
Modified: james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/MessageSearches.java
URL: http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/MessageSearches.java?rev=640562&r1=640561&r2=640562&view=diff
==============================================================================
--- james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/MessageSearches.java (original)
+++ james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/MessageSearches.java Mon Mar 24 13:33:09 2008
@@ -23,6 +23,7 @@
import java.io.InputStream;
import java.io.StringReader;
import java.util.Calendar;
+import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
@@ -74,11 +75,12 @@
*/
public boolean isMatch(final SearchQuery query, final MessageRow row) throws TorqueException {
final List criteria = query.getCriterias();
+ final Collection recentMessageUids = query.getRecentMessageUids();
boolean result = true;
if (criteria != null) {
for (Iterator it = criteria.iterator(); it.hasNext();) {
final SearchQuery.Criterion criterion = (SearchQuery.Criterion) it.next();
- if (!isMatch(criterion, row)) {
+ if (!isMatch(criterion, row, recentMessageUids)) {
result = false;
break;
}
@@ -95,7 +97,7 @@
* false otherwise
* @throws TorqueException
*/
- public boolean isMatch(SearchQuery.Criterion criterion, MessageRow row) throws TorqueException {
+ public boolean isMatch(SearchQuery.Criterion criterion, MessageRow row, final Collection recentMessageUids) throws TorqueException {
final boolean result;
if (criterion instanceof SearchQuery.InternalDateCriterion) {
result = matches((SearchQuery.InternalDateCriterion) criterion, row);
@@ -106,13 +108,13 @@
} else if (criterion instanceof SearchQuery.UidCriterion) {
result = matches((SearchQuery.UidCriterion) criterion, row);
} else if (criterion instanceof SearchQuery.FlagCriterion) {
- result = matches((SearchQuery.FlagCriterion) criterion, row);
+ result = matches((SearchQuery.FlagCriterion) criterion, row, recentMessageUids);
} else if (criterion instanceof SearchQuery.TextCriterion) {
result = matches((SearchQuery.TextCriterion) criterion, row);
} else if (criterion instanceof SearchQuery.AllCriterion) {
result = true;
} else if (criterion instanceof SearchQuery.ConjunctionCriterion) {
- result = matches((SearchQuery.ConjunctionCriterion) criterion, row);
+ result = matches((SearchQuery.ConjunctionCriterion) criterion, row, recentMessageUids);
} else {
throw new UnsupportedSearchException();
}
@@ -158,22 +160,22 @@
return result;
}
- private boolean matches(SearchQuery.ConjunctionCriterion criterion, MessageRow row) throws TorqueException {
+ private boolean matches(SearchQuery.ConjunctionCriterion criterion, MessageRow row, final Collection recentMessageUids) throws TorqueException {
final int type = criterion.getType();
final List criteria = criterion.getCriteria();
switch (type) {
- case SearchQuery.ConjunctionCriterion.NOR: return nor(criteria, row);
- case SearchQuery.ConjunctionCriterion.OR: return or(criteria, row);
- case SearchQuery.ConjunctionCriterion.AND: return and(criteria, row);
+ case SearchQuery.ConjunctionCriterion.NOR: return nor(criteria, row, recentMessageUids);
+ case SearchQuery.ConjunctionCriterion.OR: return or(criteria, row, recentMessageUids);
+ case SearchQuery.ConjunctionCriterion.AND: return and(criteria, row, recentMessageUids);
default: return false;
}
}
- private boolean and(final List criteria, final MessageRow row) throws TorqueException {
+ private boolean and(final List criteria, final MessageRow row, final Collection recentMessageUids) throws TorqueException {
boolean result = true;
for (Iterator it = criteria.iterator(); it.hasNext();) {
final SearchQuery.Criterion criterion = (SearchQuery.Criterion) it.next();
- final boolean matches = isMatch(criterion, row);
+ final boolean matches = isMatch(criterion, row, recentMessageUids);
if (!matches) {
result = false;
break;
@@ -182,11 +184,11 @@
return result;
}
- private boolean or(final List criteria, final MessageRow row) throws TorqueException {
+ private boolean or(final List criteria, final MessageRow row, final Collection recentMessageUids) throws TorqueException {
boolean result = false;
for (Iterator it = criteria.iterator(); it.hasNext();) {
final SearchQuery.Criterion criterion = (SearchQuery.Criterion) it.next();
- final boolean matches = isMatch(criterion, row);
+ final boolean matches = isMatch(criterion, row, recentMessageUids);
if (matches) {
result = true;
break;
@@ -195,11 +197,11 @@
return result;
}
- private boolean nor(final List criteria, final MessageRow row) throws TorqueException {
+ private boolean nor(final List criteria, final MessageRow row, final Collection recentMessageUids) throws TorqueException {
boolean result = true;
for (Iterator it = criteria.iterator(); it.hasNext();) {
final SearchQuery.Criterion criterion = (SearchQuery.Criterion) it.next();
- final boolean matches = isMatch(criterion, row);
+ final boolean matches = isMatch(criterion, row, recentMessageUids);
if (matches) {
result = false;
break;
@@ -208,7 +210,7 @@
return result;
}
- private boolean matches(SearchQuery.FlagCriterion criterion, MessageRow row) throws TorqueException {
+ private boolean matches(SearchQuery.FlagCriterion criterion, MessageRow row, final Collection recentMessageUids) throws TorqueException {
final SearchQuery.BooleanOperator operator = criterion.getOperator();
final boolean isSet = operator.isSet();
final Flags.Flag flag = criterion.getFlag();
@@ -223,7 +225,8 @@
} else if (flag == Flags.Flag.FLAGGED) {
result = isSet == messageFlags.getFlagged();
} else if (flag == Flags.Flag.RECENT) {
- result = isSet == messageFlags.getRecent();
+ final long uid = row.getUid();
+ result = isSet == recentMessageUids.contains(new Long(uid));
} else if (flag == Flags.Flag.DELETED) {
result = isSet == messageFlags.getDeleted();
} else {
Modified: james/server/trunk/torque-mailboxmanager-function/src/test/java/org/apache/james/mailboxmanager/torque/SearchUtilsMultipartMixedTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/test/java/org/apache/james/mailboxmanager/torque/SearchUtilsMultipartMixedTest.java?rev=640562&r1=640561&r2=640562&view=diff
==============================================================================
--- james/server/trunk/torque-mailboxmanager-function/src/test/java/org/apache/james/mailboxmanager/torque/SearchUtilsMultipartMixedTest.java (original)
+++ james/server/trunk/torque-mailboxmanager-function/src/test/java/org/apache/james/mailboxmanager/torque/SearchUtilsMultipartMixedTest.java Mon Mar 24 13:33:09 2008
@@ -20,6 +20,8 @@
package org.apache.james.mailboxmanager.torque;
import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Collection;
import junit.framework.TestCase;
@@ -107,6 +109,7 @@
MessageRow row;
MessageSearches searches;
+ Collection recent;
protected void setUp() throws Exception {
super.setUp();
@@ -118,6 +121,7 @@
row.addMessageHeader(new MessageHeader("Content-Type", "multipart/mixed;boundary=1729"));
row.addMessageBody(new MessageBody(Charset.forName("us-ascii").encode(BODY).array()));
searches = new MessageSearches();
+ recent = new ArrayList();
}
protected void tearDown() throws Exception {
@@ -125,54 +129,54 @@
}
public void testShouldNotFindWhatIsNotThere() throws Exception {
- assertFalse(searches.isMatch(SearchQuery.bodyContains("BOGUS"), row));
- assertFalse(searches.isMatch(SearchQuery.mailContains("BOGUS"), row));
+ assertFalse(searches.isMatch(SearchQuery.bodyContains("BOGUS"), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.mailContains("BOGUS"), row, recent));
}
public void testBodyShouldFindTextInBody() throws Exception {
- assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_INNER_MAIL_BODY_ONE), row));
- assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_ONE), row));
- assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_TWO), row));
+ assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_INNER_MAIL_BODY_ONE), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_ONE), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_TWO), row, recent));
}
public void testBodyShouldFindTextInBodyCaseInsensitive() throws Exception {
- assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_INNER_MAIL_BODY_ONE), row));
- assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_ONE), row));
- assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_TWO), row));
- assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_INNER_MAIL_BODY_ONE.toLowerCase()), row));
- assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_ONE.toLowerCase()), row));
- assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_TWO.toLowerCase()), row));
- assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_INNER_MAIL_BODY_ONE.toUpperCase()), row));
- assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_ONE.toUpperCase()), row));
- assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_TWO.toUpperCase()), row));
+ assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_INNER_MAIL_BODY_ONE), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_ONE), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_TWO), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_INNER_MAIL_BODY_ONE.toLowerCase()), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_ONE.toLowerCase()), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_TWO.toLowerCase()), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_INNER_MAIL_BODY_ONE.toUpperCase()), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_ONE.toUpperCase()), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_TWO.toUpperCase()), row, recent));
}
public void testBodyShouldNotFindTextInHeaders() throws Exception {
- assertFalse(searches.isMatch(SearchQuery.bodyContains(SAMPLE_INNER_MAIL_FIELD), row));
- assertFalse(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_TWO_FIELD), row));
+ assertFalse(searches.isMatch(SearchQuery.bodyContains(SAMPLE_INNER_MAIL_FIELD), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.bodyContains(SAMPLE_PART_TWO_FIELD), row, recent));
}
public void testTextShouldFindTextInBody() throws Exception {
- assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_INNER_MAIL_BODY_ONE), row));
- assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_ONE), row));
- assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_TWO), row));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_INNER_MAIL_BODY_ONE), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_ONE), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_TWO), row, recent));
}
public void testTextShouldFindTextInBodyCaseInsensitive() throws Exception {
- assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_INNER_MAIL_BODY_ONE), row));
- assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_ONE), row));
- assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_TWO), row));
- assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_INNER_MAIL_BODY_ONE.toLowerCase()), row));
- assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_ONE.toLowerCase()), row));
- assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_TWO.toLowerCase()), row));
- assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_INNER_MAIL_BODY_ONE.toUpperCase()), row));
- assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_ONE.toUpperCase()), row));
- assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_TWO.toUpperCase()), row));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_INNER_MAIL_BODY_ONE), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_ONE), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_TWO), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_INNER_MAIL_BODY_ONE.toLowerCase()), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_ONE.toLowerCase()), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_TWO.toLowerCase()), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_INNER_MAIL_BODY_ONE.toUpperCase()), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_ONE.toUpperCase()), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_TWO.toUpperCase()), row, recent));
}
public void testTextShouldFindTextInHeaders() throws Exception {
- assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_INNER_MAIL_FIELD), row));
- assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_INNER_MAIL_BODY_ONE), row));
- assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_TWO_FIELD), row));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_INNER_MAIL_FIELD), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_INNER_MAIL_BODY_ONE), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(SAMPLE_PART_TWO_FIELD), row, recent));
}
}
Modified: james/server/trunk/torque-mailboxmanager-function/src/test/java/org/apache/james/mailboxmanager/torque/SearchUtilsRFC822Test.java
URL: http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/test/java/org/apache/james/mailboxmanager/torque/SearchUtilsRFC822Test.java?rev=640562&r1=640561&r2=640562&view=diff
==============================================================================
--- james/server/trunk/torque-mailboxmanager-function/src/test/java/org/apache/james/mailboxmanager/torque/SearchUtilsRFC822Test.java (original)
+++ james/server/trunk/torque-mailboxmanager-function/src/test/java/org/apache/james/mailboxmanager/torque/SearchUtilsRFC822Test.java Mon Mar 24 13:33:09 2008
@@ -20,6 +20,8 @@
package org.apache.james.mailboxmanager.torque;
import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Collection;
import junit.framework.TestCase;
@@ -42,9 +44,11 @@
MessageRow row;
MessageSearches searches;
+ Collection recent;
protected void setUp() throws Exception {
super.setUp();
+ recent = new ArrayList();
row = new MessageRow();
row.addMessageHeader(new MessageHeader(RFC2822Headers.FROM, "Alex <alex@example.org"));
row.addMessageHeader(new MessageHeader(RFC2822Headers.TO, FROM_ADDRESS));
@@ -59,34 +63,34 @@
}
public void testBodyShouldMatchPhraseInBody() throws Exception {
- assertTrue(searches.isMatch(SearchQuery.bodyContains(CUSTARD), row));
- assertFalse(searches.isMatch(SearchQuery.bodyContains(CUSTARD + CUSTARD), row));
+ assertTrue(searches.isMatch(SearchQuery.bodyContains(CUSTARD), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.bodyContains(CUSTARD + CUSTARD), row, recent));
}
public void testBodyMatchShouldBeCaseInsensitive() throws Exception {
- assertTrue(searches.isMatch(SearchQuery.bodyContains(RHUBARD), row));
- assertTrue(searches.isMatch(SearchQuery.bodyContains(RHUBARD.toLowerCase()), row));
- assertTrue(searches.isMatch(SearchQuery.bodyContains(RHUBARD.toLowerCase()), row));
+ assertTrue(searches.isMatch(SearchQuery.bodyContains(RHUBARD), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.bodyContains(RHUBARD.toLowerCase()), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.bodyContains(RHUBARD.toLowerCase()), row, recent));
}
public void testBodyShouldNotMatchPhraseOnlyInHeader() throws Exception {
- assertFalse(searches.isMatch(SearchQuery.bodyContains(FROM_ADDRESS), row));
- assertFalse(searches.isMatch(SearchQuery.bodyContains(SUBJECT_PART), row));
+ assertFalse(searches.isMatch(SearchQuery.bodyContains(FROM_ADDRESS), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.bodyContains(SUBJECT_PART), row, recent));
}
public void testTextShouldMatchPhraseInBody() throws Exception {
- assertTrue(searches.isMatch(SearchQuery.mailContains(CUSTARD), row));
- assertFalse(searches.isMatch(SearchQuery.mailContains(CUSTARD + CUSTARD), row));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(CUSTARD), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.mailContains(CUSTARD + CUSTARD), row, recent));
}
public void testTextMatchShouldBeCaseInsensitive() throws Exception {
- assertTrue(searches.isMatch(SearchQuery.mailContains(RHUBARD), row));
- assertTrue(searches.isMatch(SearchQuery.mailContains(RHUBARD.toLowerCase()), row));
- assertTrue(searches.isMatch(SearchQuery.mailContains(RHUBARD.toLowerCase()), row));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(RHUBARD), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(RHUBARD.toLowerCase()), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(RHUBARD.toLowerCase()), row, recent));
}
public void testBodyShouldMatchPhraseOnlyInHeader() throws Exception {
- assertTrue(searches.isMatch(SearchQuery.mailContains(FROM_ADDRESS), row));
- assertTrue(searches.isMatch(SearchQuery.mailContains(SUBJECT_PART), row));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(FROM_ADDRESS), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.mailContains(SUBJECT_PART), row, recent));
}
}
Modified: james/server/trunk/torque-mailboxmanager-function/src/test/java/org/apache/james/mailboxmanager/torque/SearchUtilsTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/test/java/org/apache/james/mailboxmanager/torque/SearchUtilsTest.java?rev=640562&r1=640561&r2=640562&view=diff
==============================================================================
--- james/server/trunk/torque-mailboxmanager-function/src/test/java/org/apache/james/mailboxmanager/torque/SearchUtilsTest.java (original)
+++ james/server/trunk/torque-mailboxmanager-function/src/test/java/org/apache/james/mailboxmanager/torque/SearchUtilsTest.java Mon Mar 24 13:33:09 2008
@@ -19,6 +19,8 @@
package org.apache.james.mailboxmanager.torque;
+import java.util.ArrayList;
+import java.util.Collection;
import java.util.Date;
import javax.mail.Flags;
@@ -45,10 +47,13 @@
MessageRow row;
MessageSearches searches;
+ Collection recent;
protected void setUp() throws Exception {
super.setUp();
+ recent = new ArrayList();
row = new MessageRow();
+ row.setUid(1009);
searches = new MessageSearches();
}
@@ -58,367 +63,374 @@
public void testMatchSizeLessThan() throws Exception {
row.setSize(SIZE);
- assertFalse(searches.isMatch(SearchQuery.sizeLessThan(SIZE - 1), row));
- assertFalse(searches.isMatch(SearchQuery.sizeLessThan(SIZE), row));
- assertTrue(searches.isMatch(SearchQuery.sizeLessThan(SIZE + 1), row));
- assertTrue(searches.isMatch(SearchQuery.sizeLessThan(Integer.MAX_VALUE), row));
+ assertFalse(searches.isMatch(SearchQuery.sizeLessThan(SIZE - 1), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.sizeLessThan(SIZE), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.sizeLessThan(SIZE + 1), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.sizeLessThan(Integer.MAX_VALUE), row, recent));
}
public void testMatchSizeMoreThan() throws Exception {
row.setSize(SIZE);
- assertTrue(searches.isMatch(SearchQuery.sizeGreaterThan(SIZE - 1), row));
- assertFalse(searches.isMatch(SearchQuery.sizeGreaterThan(SIZE), row));
- assertFalse(searches.isMatch(SearchQuery.sizeGreaterThan(SIZE + 1), row));
- assertFalse(searches.isMatch(SearchQuery.sizeGreaterThan(Integer.MAX_VALUE), row));
+ assertTrue(searches.isMatch(SearchQuery.sizeGreaterThan(SIZE - 1), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.sizeGreaterThan(SIZE), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.sizeGreaterThan(SIZE + 1), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.sizeGreaterThan(Integer.MAX_VALUE), row, recent));
}
public void testMatchSizeEquals() throws Exception {
row.setSize(SIZE);
- assertFalse(searches.isMatch(SearchQuery.sizeEquals(SIZE - 1), row));
- assertTrue(searches.isMatch(SearchQuery.sizeEquals(SIZE), row));
- assertFalse(searches.isMatch(SearchQuery.sizeEquals(SIZE + 1), row));
- assertFalse(searches.isMatch(SearchQuery.sizeEquals(Integer.MAX_VALUE), row));
+ assertFalse(searches.isMatch(SearchQuery.sizeEquals(SIZE - 1), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.sizeEquals(SIZE), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.sizeEquals(SIZE + 1), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.sizeEquals(Integer.MAX_VALUE), row, recent));
}
public void testMatchInternalDateEquals() throws Exception {
row.setInternalDate(SUN_SEP_9TH_2001);
- assertFalse(searches.isMatch(SearchQuery.internalDateOn(9, 9, 2000), row));
- assertFalse(searches.isMatch(SearchQuery.internalDateOn(8, 9, 2001), row));
- assertTrue(searches.isMatch(SearchQuery.internalDateOn(9, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.internalDateOn(10, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.internalDateOn(9, 9, 2002), row));
+ assertFalse(searches.isMatch(SearchQuery.internalDateOn(9, 9, 2000), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.internalDateOn(8, 9, 2001), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.internalDateOn(9, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.internalDateOn(10, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.internalDateOn(9, 9, 2002), row, recent));
}
public void testMatchInternalDateBefore() throws Exception {
row.setInternalDate(SUN_SEP_9TH_2001);
- assertFalse(searches.isMatch(SearchQuery.internalDateBefore(9, 9, 2000), row));
- assertFalse(searches.isMatch(SearchQuery.internalDateBefore(8, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.internalDateBefore(9, 9, 2001), row));
- assertTrue(searches.isMatch(SearchQuery.internalDateBefore(10, 9, 2001), row));
- assertTrue(searches.isMatch(SearchQuery.internalDateBefore(9, 9, 2002), row));
+ assertFalse(searches.isMatch(SearchQuery.internalDateBefore(9, 9, 2000), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.internalDateBefore(8, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.internalDateBefore(9, 9, 2001), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.internalDateBefore(10, 9, 2001), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.internalDateBefore(9, 9, 2002), row, recent));
}
public void testMatchInternalDateAfter() throws Exception {
row.setInternalDate(SUN_SEP_9TH_2001);
- assertTrue(searches.isMatch(SearchQuery.internalDateAfter(9, 9, 2000), row));
- assertTrue(searches.isMatch(SearchQuery.internalDateAfter(8, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.internalDateAfter(9, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.internalDateAfter(10, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.internalDateAfter(9, 9, 2002), row));
+ assertTrue(searches.isMatch(SearchQuery.internalDateAfter(9, 9, 2000), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.internalDateAfter(8, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.internalDateAfter(9, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.internalDateAfter(10, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.internalDateAfter(9, 9, 2002), row, recent));
}
public void testMatchHeaderDateAfter() throws Exception {
addHeader(DATE_FIELD, RFC822_SUN_SEP_9TH_2001);
- assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, 9, 9, 2000), row));
- assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,8, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,9, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,10, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,9, 9, 2002), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateAfter("BOGUS",9, 9, 2001), row));
+ assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, 9, 9, 2000), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,8, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,9, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,10, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,9, 9, 2002), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateAfter("BOGUS",9, 9, 2001), row, recent));
}
public void testShouldMatchCapsHeaderDateAfter() throws Exception {
addHeader(DATE_FIELD.toUpperCase(), RFC822_SUN_SEP_9TH_2001);
- assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, 9, 9, 2000), row));
- assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,8, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,9, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,10, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,9, 9, 2002), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateAfter("BOGUS",9, 9, 2001), row));
+ assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, 9, 9, 2000), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,8, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,9, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,10, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,9, 9, 2002), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateAfter("BOGUS",9, 9, 2001), row, recent));
}
public void testShouldMatchLowersHeaderDateAfter() throws Exception {
addHeader(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
- assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, 9, 9, 2000), row));
- assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,8, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,9, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,10, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,9, 9, 2002), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateAfter("BOGUS",9, 9, 2001), row));
+ assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, 9, 9, 2000), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,8, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,9, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,10, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD,9, 9, 2002), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateAfter("BOGUS",9, 9, 2001), row, recent));
}
public void testMatchHeaderDateOn() throws Exception {
addHeader(DATE_FIELD, RFC822_SUN_SEP_9TH_2001);
- assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, 9, 9, 2000), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,8, 9, 2001), row));
- assertTrue(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,9, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,10, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,9, 9, 2002), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateOn("BOGUS",9, 9, 2001), row));
+ assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, 9, 9, 2000), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,8, 9, 2001), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,9, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,10, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,9, 9, 2002), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateOn("BOGUS",9, 9, 2001), row, recent));
}
public void testShouldMatchCapsHeaderDateOn() throws Exception {
addHeader(DATE_FIELD.toUpperCase(), RFC822_SUN_SEP_9TH_2001);
- assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, 9, 9, 2000), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,8, 9, 2001), row));
- assertTrue(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,9, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,10, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,9, 9, 2002), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateOn("BOGUS",9, 9, 2001), row));
+ assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, 9, 9, 2000), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,8, 9, 2001), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,9, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,10, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,9, 9, 2002), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateOn("BOGUS",9, 9, 2001), row, recent));
}
public void testShouldMatchLowersHeaderDateOn() throws Exception {
addHeader(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
- assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, 9, 9, 2000), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,8, 9, 2001), row));
- assertTrue(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,9, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,10, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,9, 9, 2002), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateOn("BOGUS",9, 9, 2001), row));
+ assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, 9, 9, 2000), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,8, 9, 2001), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,9, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,10, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD,9, 9, 2002), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateOn("BOGUS",9, 9, 2001), row, recent));
}
public void testMatchHeaderDateBefore() throws Exception {
addHeader(DATE_FIELD, RFC822_SUN_SEP_9TH_2001);
- assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD, 9, 9, 2000), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,8, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,9, 9, 2001), row));
- assertTrue(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,10, 9, 2001), row));
- assertTrue(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,9, 9, 2002), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateBefore("BOGUS",9, 9, 2001), row));
+ assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD, 9, 9, 2000), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,8, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,9, 9, 2001), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,10, 9, 2001), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,9, 9, 2002), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateBefore("BOGUS",9, 9, 2001), row, recent));
}
public void testShouldMatchCapsHeaderDateBefore() throws Exception {
addHeader(DATE_FIELD.toUpperCase(), RFC822_SUN_SEP_9TH_2001);
- assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD, 9, 9, 2000), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,8, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,9, 9, 2001), row));
- assertTrue(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,10, 9, 2001), row));
- assertTrue(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,9, 9, 2002), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateBefore("BOGUS",9, 9, 2001), row));
+ assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD, 9, 9, 2000), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,8, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,9, 9, 2001), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,10, 9, 2001), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,9, 9, 2002), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateBefore("BOGUS",9, 9, 2001), row, recent));
}
public void testShouldMatchLowersHeaderDateBefore() throws Exception {
addHeader(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
- assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD, 9, 9, 2000), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,8, 9, 2001), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,9, 9, 2001), row));
- assertTrue(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,10, 9, 2001), row));
- assertTrue(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,9, 9, 2002), row));
- assertFalse(searches.isMatch(SearchQuery.headerDateBefore("BOGUS",9, 9, 2001), row));
+ assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD, 9, 9, 2000), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,8, 9, 2001), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,9, 9, 2001), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,10, 9, 2001), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,9, 9, 2002), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerDateBefore("BOGUS",9, 9, 2001), row, recent));
}
public void testMatchHeaderContainsCaps() throws Exception {
addHeader(SUBJECT_FIELD, TEXT.toUpperCase());
- assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, CUSTARD), row));
- assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, TEXT), row));
- assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, TEXT), row));
- assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, RHUBARD), row));
- assertFalse(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, CUSTARD), row));
+ assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, CUSTARD), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, TEXT), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, TEXT), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, RHUBARD), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, CUSTARD), row, recent));
}
public void testMatchHeaderContainsLowers() throws Exception {
addHeader(SUBJECT_FIELD, TEXT.toLowerCase());
- assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, CUSTARD), row));
- assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, TEXT), row));
- assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, TEXT), row));
- assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, RHUBARD), row));
- assertFalse(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, CUSTARD), row));
+ assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, CUSTARD), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, TEXT), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, TEXT), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, RHUBARD), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, CUSTARD), row, recent));
}
public void testMatchHeaderContains() throws Exception {
addHeader(SUBJECT_FIELD, TEXT);
- assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, CUSTARD), row));
- assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, TEXT), row));
- assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, TEXT), row));
- assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, RHUBARD), row));
- assertFalse(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, CUSTARD), row));
+ assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, CUSTARD), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, TEXT), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, TEXT), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, RHUBARD), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, CUSTARD), row, recent));
}
public void testShouldMatchLowerHeaderContains() throws Exception {
addHeader(SUBJECT_FIELD.toLowerCase(), TEXT);
- assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, CUSTARD), row));
- assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, TEXT), row));
- assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, TEXT), row));
- assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, RHUBARD), row));
- assertFalse(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, CUSTARD), row));
+ assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, CUSTARD), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, TEXT), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, TEXT), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, RHUBARD), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, CUSTARD), row, recent));
}
public void testShouldMatchCapsHeaderContains() throws Exception {
addHeader(SUBJECT_FIELD.toUpperCase(), TEXT);
- assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, CUSTARD), row));
- assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, TEXT), row));
- assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, TEXT), row));
- assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, RHUBARD), row));
- assertFalse(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, CUSTARD), row));
+ assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, CUSTARD), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD, TEXT), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, TEXT), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, RHUBARD), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.headerContains(SUBJECT_FIELD, CUSTARD), row, recent));
}
public void testMatchHeaderExists() throws Exception {
addHeader(SUBJECT_FIELD, TEXT);
- assertFalse(searches.isMatch(SearchQuery.headerExists(DATE_FIELD), row));
- assertTrue(searches.isMatch(SearchQuery.headerExists(SUBJECT_FIELD), row));
+ assertFalse(searches.isMatch(SearchQuery.headerExists(DATE_FIELD), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerExists(SUBJECT_FIELD), row, recent));
}
public void testShouldMatchLowersHeaderExists() throws Exception {
addHeader(SUBJECT_FIELD.toLowerCase(), TEXT);
- assertFalse(searches.isMatch(SearchQuery.headerExists(DATE_FIELD), row));
- assertTrue(searches.isMatch(SearchQuery.headerExists(SUBJECT_FIELD), row));
+ assertFalse(searches.isMatch(SearchQuery.headerExists(DATE_FIELD), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerExists(SUBJECT_FIELD), row, recent));
}
public void testShouldMatchUppersHeaderExists() throws Exception {
addHeader(SUBJECT_FIELD.toUpperCase(), TEXT);
- assertFalse(searches.isMatch(SearchQuery.headerExists(DATE_FIELD), row));
- assertTrue(searches.isMatch(SearchQuery.headerExists(SUBJECT_FIELD), row));
+ assertFalse(searches.isMatch(SearchQuery.headerExists(DATE_FIELD), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.headerExists(SUBJECT_FIELD), row, recent));
}
public void testShouldMatchUidRange() throws Exception {
row.setPrimaryKey(1, 1729);
- assertFalse(searches.isMatch(SearchQuery.uid(range(1, 1)), row));
- assertFalse(searches.isMatch(SearchQuery.uid(range(1728, 1728)), row));
- assertTrue(searches.isMatch(SearchQuery.uid(range(1729, 1729)), row));
- assertFalse(searches.isMatch(SearchQuery.uid(range(1730, 1730)), row));
- assertFalse(searches.isMatch(SearchQuery.uid(range(1, 1728)), row));
- assertTrue(searches.isMatch(SearchQuery.uid(range(1, 1729)), row));
- assertTrue(searches.isMatch(SearchQuery.uid(range(1729, 1800)), row));
- assertFalse(searches.isMatch(SearchQuery.uid(range(1730, Long.MAX_VALUE)), row));
- assertFalse(searches.isMatch(SearchQuery.uid(range(1730, Long.MAX_VALUE, 1, 1728)), row));
- assertTrue(searches.isMatch(SearchQuery.uid(range(1730, Long.MAX_VALUE, 1, 1729)), row));
- assertFalse(searches.isMatch(SearchQuery.uid(range(1, 1728, 1800, 1810)), row));
- assertTrue(searches.isMatch(SearchQuery.uid(range(1, 1, 1729, 1729)), row));
- assertFalse(searches.isMatch(SearchQuery.uid(range(1, 1, 1800, 1800)), row));
+ assertFalse(searches.isMatch(SearchQuery.uid(range(1, 1)), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.uid(range(1728, 1728)), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.uid(range(1729, 1729)), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.uid(range(1730, 1730)), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.uid(range(1, 1728)), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.uid(range(1, 1729)), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.uid(range(1729, 1800)), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.uid(range(1730, Long.MAX_VALUE)), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.uid(range(1730, Long.MAX_VALUE, 1, 1728)), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.uid(range(1730, Long.MAX_VALUE, 1, 1729)), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.uid(range(1, 1728, 1800, 1810)), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.uid(range(1, 1, 1729, 1729)), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.uid(range(1, 1, 1800, 1800)), row, recent));
}
public void testShouldMatchSeenFlagSet() throws Exception {
setFlags(true, false, false, false, false, false);
- assertTrue(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.ANSWERED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DRAFT), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DELETED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.RECENT), row));
+ assertTrue(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.ANSWERED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DRAFT), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DELETED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.RECENT), row, recent));
}
public void testShouldMatchAnsweredFlagSet() throws Exception {
setFlags(false, false, true, false, false, false);
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED), row));
- assertTrue(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.ANSWERED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DRAFT), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DELETED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.RECENT), row));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.ANSWERED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DRAFT), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DELETED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.RECENT), row, recent));
}
public void testShouldMatchFlaggedFlagSet() throws Exception {
setFlags(false, true, false, false, false, false);
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN), row));
- assertTrue(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.ANSWERED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DRAFT), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DELETED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.RECENT), row));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.ANSWERED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DRAFT), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DELETED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.RECENT), row, recent));
}
public void testShouldMatchDraftFlagSet() throws Exception {
setFlags(false, false, false, true, false, false);
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.ANSWERED), row));
- assertTrue(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DRAFT), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DELETED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.RECENT), row));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.ANSWERED), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DRAFT), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DELETED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.RECENT), row, recent));
}
public void testShouldMatchDeletedFlagSet() throws Exception {
setFlags(false, false, false, false, true, false);
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.ANSWERED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DRAFT), row));
- assertTrue(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DELETED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.RECENT), row));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.ANSWERED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DRAFT), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DELETED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.RECENT), row, recent));
}
public void testShouldMatchSeenRecentSet() throws Exception {
- setFlags(false, false, false, false, false, true);
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.ANSWERED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DRAFT), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DELETED), row));
- assertTrue(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.RECENT), row));
+ setFlags(false, false, false, false, false, false);
+ recent.add(new Long(row.getUid()));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.ANSWERED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DRAFT), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.DELETED), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.RECENT), row, recent));
}
public void testShouldMatchSeenFlagUnSet() throws Exception {
setFlags(false, true, true, true, true, true);
- assertTrue(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.FLAGGED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.ANSWERED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DRAFT), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DELETED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.RECENT), row));
+ recent.add(new Long(row.getUid()));
+ assertTrue(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.FLAGGED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.ANSWERED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DRAFT), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DELETED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.RECENT), row, recent));
}
public void testShouldMatchAnsweredFlagUnSet() throws Exception {
setFlags(true, true, false, true, true, true);
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.FLAGGED), row));
- assertTrue(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.ANSWERED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DRAFT), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DELETED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.RECENT), row));
+ recent.add(new Long(row.getUid()));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.FLAGGED), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.ANSWERED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DRAFT), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DELETED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.RECENT), row, recent));
}
public void testShouldMatchFlaggedFlagUnSet() throws Exception {
setFlags(true, false, true, true, true, true);
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN), row));
- assertTrue(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.FLAGGED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.ANSWERED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DRAFT), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DELETED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.RECENT), row));
+ recent.add(new Long(row.getUid()));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.FLAGGED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.ANSWERED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DRAFT), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DELETED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.RECENT), row, recent));
}
public void testShouldMatchDraftFlagUnSet() throws Exception {
setFlags(true, true, true, false, true, true);
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.FLAGGED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.ANSWERED), row));
- assertTrue(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DRAFT), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DELETED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.RECENT), row));
+ recent.add(new Long(row.getUid()));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.FLAGGED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.ANSWERED), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DRAFT), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DELETED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.RECENT), row, recent));
}
public void testShouldMatchDeletedFlagUnSet() throws Exception {
setFlags(true, true, true, true, false, true);
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.FLAGGED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.ANSWERED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DRAFT), row));
- assertTrue(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DELETED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.RECENT), row));
+ recent.add(new Long(row.getUid()));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.FLAGGED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.ANSWERED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DRAFT), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DELETED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.RECENT), row, recent));
}
public void testShouldMatchSeenRecentUnSet() throws Exception {
- setFlags(true, true, true, true, true, false);
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.FLAGGED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.ANSWERED), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DRAFT), row));
- assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DELETED), row));
- assertTrue(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.RECENT), row));
+ setFlags(true, true, true, true, true, true);
+ recent.add(new Long(row.getUid() + 1));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.FLAGGED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.ANSWERED), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DRAFT), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.DELETED), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.RECENT), row, recent));
}
public void testShouldMatchAll() throws Exception {
- assertTrue(searches.isMatch(SearchQuery.all(), row));
+ assertTrue(searches.isMatch(SearchQuery.all(), row, recent));
}
public void testShouldMatchNot() throws Exception {
- assertFalse(searches.isMatch(SearchQuery.not(SearchQuery.all()), row));
- assertTrue(searches.isMatch(SearchQuery.not(SearchQuery.headerExists(DATE_FIELD)), row));
+ assertFalse(searches.isMatch(SearchQuery.not(SearchQuery.all()), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.not(SearchQuery.headerExists(DATE_FIELD)), row, recent));
}
public void testShouldMatchOr() throws Exception {
- assertTrue(searches.isMatch(SearchQuery.or(SearchQuery.all(), SearchQuery.headerExists(DATE_FIELD)), row));
- assertTrue(searches.isMatch(SearchQuery.or(SearchQuery.headerExists(DATE_FIELD), SearchQuery.all()), row));
- assertFalse(searches.isMatch(SearchQuery.or(SearchQuery.headerExists(DATE_FIELD), SearchQuery.headerExists(DATE_FIELD)), row));
- assertTrue(searches.isMatch(SearchQuery.or(SearchQuery.all(), SearchQuery.all()), row));
+ assertTrue(searches.isMatch(SearchQuery.or(SearchQuery.all(), SearchQuery.headerExists(DATE_FIELD)), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.or(SearchQuery.headerExists(DATE_FIELD), SearchQuery.all()), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.or(SearchQuery.headerExists(DATE_FIELD), SearchQuery.headerExists(DATE_FIELD)), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.or(SearchQuery.all(), SearchQuery.all()), row, recent));
}
public void testShouldMatchAnd() throws Exception {
- assertFalse(searches.isMatch(SearchQuery.and(SearchQuery.all(), SearchQuery.headerExists(DATE_FIELD)), row));
- assertFalse(searches.isMatch(SearchQuery.and(SearchQuery.headerExists(DATE_FIELD), SearchQuery.all()), row));
- assertFalse(searches.isMatch(SearchQuery.and(SearchQuery.headerExists(DATE_FIELD), SearchQuery.headerExists(DATE_FIELD)), row));
- assertTrue(searches.isMatch(SearchQuery.and(SearchQuery.all(), SearchQuery.all()), row));
+ assertFalse(searches.isMatch(SearchQuery.and(SearchQuery.all(), SearchQuery.headerExists(DATE_FIELD)), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.and(SearchQuery.headerExists(DATE_FIELD), SearchQuery.all()), row, recent));
+ assertFalse(searches.isMatch(SearchQuery.and(SearchQuery.headerExists(DATE_FIELD), SearchQuery.headerExists(DATE_FIELD)), row, recent));
+ assertTrue(searches.isMatch(SearchQuery.and(SearchQuery.all(), SearchQuery.all()), row, recent));
}
private void setFlags(boolean seen, boolean flagged, boolean answered, boolean draft,
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org