You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2012/11/14 10:43:36 UTC
svn commit: r1409125 - in /camel/trunk/components/camel-mail/src:
main/java/org/apache/camel/component/mail/
test/java/org/apache/camel/component/mail/
Author: davsclaus
Date: Wed Nov 14 09:43:34 2012
New Revision: 1409125
URL: http://svn.apache.org/viewvc?rev=1409125&view=rev
Log:
CAMEL-1069: Added support for searchTerm on camel-mail. Ticket was only 4 years old ;)
Added:
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/NowSearchTerm.java (with props)
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailSearchTermUriConfigLast24HoursTest.java
- copied, changed from r1409100, camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailSearchTermUriConfigTest.java
Modified:
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/SearchTermBuilder.java
camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/SimpleSearchTerm.java
camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/SearchTermBuilderTest.java
Modified: camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java?rev=1409125&r1=1409124&r2=1409125&view=diff
==============================================================================
--- camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java (original)
+++ camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java Wed Nov 14 09:43:34 2012
@@ -76,7 +76,7 @@ public class MailComponent extends Defau
// use SimpleSearchTerm as POJO to store the configuration and then convert that to the actual SearchTerm
SimpleSearchTerm sst = new SimpleSearchTerm();
setProperties(sst, sstParams);
- SearchTerm st = getCamelContext().getTypeConverter().mandatoryConvertTo(SearchTerm.class, sst);
+ SearchTerm st = MailConverters.toSearchTerm(sst, getCamelContext().getTypeConverter());
endpoint.setSearchTerm(st);
}
Modified: camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java?rev=1409125&r1=1409124&r2=1409125&view=diff
==============================================================================
--- camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java (original)
+++ camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConverters.java Wed Nov 14 09:43:34 2012
@@ -21,6 +21,8 @@ import java.io.InputStream;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
@@ -29,7 +31,11 @@ import javax.mail.internet.MimeMultipart
import javax.mail.search.SearchTerm;
import org.apache.camel.Converter;
+import org.apache.camel.Exchange;
+import org.apache.camel.NoTypeConversionAvailableException;
+import org.apache.camel.TypeConverter;
import org.apache.camel.converter.IOConverter;
+import org.apache.camel.spi.TypeConverterRegistry;
/**
* JavaMail specific converters.
@@ -38,7 +44,11 @@ import org.apache.camel.converter.IOConv
*/
@Converter
public final class MailConverters {
-
+
+ private static final String NOW_DATE_FORMAT = "yyyy-MM-dd HH:mm:SS";
+ // the now syntax: "now-24h" or "now - 24h" = the last 24 hours etc.
+ private static final Pattern NOW_PATTERN = Pattern.compile("now\\s?(\\+|\\-)\\s?(.*)");
+
private MailConverters() {
//Utility Class
}
@@ -64,7 +74,7 @@ public final class MailConverters {
}
/**
- * Converts the given JavaMail multipart to a String body, where the contenttype of the multipart
+ * Converts the given JavaMail multipart to a String body, where the content-type of the multipart
* must be text based (ie start with text). Can return null.
*/
@Converter
@@ -101,7 +111,11 @@ public final class MailConverters {
}
@Converter
- public static SearchTerm toSearchTerm(SimpleSearchTerm simple) throws ParseException {
+ public static SearchTerm toSearchTerm(SimpleSearchTerm simple, Exchange exchange) throws ParseException, NoTypeConversionAvailableException {
+ return toSearchTerm(simple, exchange != null ? exchange.getContext().getTypeConverter() : null);
+ }
+
+ public static SearchTerm toSearchTerm(SimpleSearchTerm simple, TypeConverter typeConverter) throws ParseException, NoTypeConversionAvailableException {
SearchTermBuilder builder = new SearchTermBuilder();
if (simple.isUnseen()) {
builder = builder.unseen();
@@ -124,27 +138,71 @@ public final class MailConverters {
builder = builder.recipient(Message.RecipientType.TO, simple.getTo());
}
if (simple.getFromSentDate() != null) {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");
- Date date;
- if ("now".equals(simple.getFromSentDate())) {
- date = new Date();
+ String s = simple.getFromSentDate();
+ if (s.startsWith("now")) {
+ long offset = extractOffset(s, typeConverter);
+ builder = builder.and(new NowSearchTerm(SearchTermBuilder.Comparison.GE.asNum(), true, offset));
} else {
- date = sdf.parse(simple.getFromSentDate());
+ SimpleDateFormat sdf = new SimpleDateFormat(NOW_DATE_FORMAT);
+ Date date = sdf.parse(s);
+ builder = builder.sent(SearchTermBuilder.Comparison.GE, date);
}
- builder = builder.sent(SearchTermBuilder.Comparison.GE, date);
}
if (simple.getToSentDate() != null) {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS");
- Date date;
- if ("now".equals(simple.getToSentDate())) {
- date = new Date();
+ String s = simple.getFromSentDate();
+ if (s.startsWith("now")) {
+ long offset = extractOffset(s, typeConverter);
+ builder = builder.and(new NowSearchTerm(SearchTermBuilder.Comparison.LE.asNum(), true, offset));
} else {
- date = sdf.parse(simple.getToSentDate());
+ SimpleDateFormat sdf = new SimpleDateFormat(NOW_DATE_FORMAT);
+ Date date = sdf.parse(s);
+ builder = builder.sent(SearchTermBuilder.Comparison.LE, date);
+ }
+ }
+ if (simple.getFromReceivedDate() != null) {
+ String s = simple.getFromSentDate();
+ if (s.startsWith("now")) {
+ long offset = extractOffset(s, typeConverter);
+ builder = builder.and(new NowSearchTerm(SearchTermBuilder.Comparison.GE.asNum(), false, offset));
+ } else {
+ SimpleDateFormat sdf = new SimpleDateFormat(NOW_DATE_FORMAT);
+ Date date = sdf.parse(s);
+ builder = builder.received(SearchTermBuilder.Comparison.GE, date);
+ }
+ }
+ if (simple.getToReceivedDate() != null) {
+ String s = simple.getFromSentDate();
+ if (s.startsWith("now")) {
+ long offset = extractOffset(s, typeConverter);
+ builder = builder.and(new NowSearchTerm(SearchTermBuilder.Comparison.LE.asNum(), false, offset));
+ } else {
+ SimpleDateFormat sdf = new SimpleDateFormat(NOW_DATE_FORMAT);
+ Date date = sdf.parse(s);
+ builder = builder.received(SearchTermBuilder.Comparison.LE, date);
}
- builder = builder.sent(SearchTermBuilder.Comparison.LE, date);
}
return builder.build();
}
+ private static long extractOffset(String now, TypeConverter typeConverter) throws NoTypeConversionAvailableException {
+ Matcher matcher = NOW_PATTERN.matcher(now);
+ if (matcher.matches()) {
+ String op = matcher.group(1);
+ String remainder = matcher.group(2);
+
+ // convert remainder to a time millis (eg we have a String -> long converter that supports
+ // syntax with hours, days, minutes: eg 5h30m for 5 hours and 30 minutes).
+ long offset = typeConverter.mandatoryConvertTo(long.class, remainder);
+
+ if ("+".equals(op)) {
+ return offset;
+ } else {
+ return -1 * offset;
+ }
+ }
+
+ return 0;
+ }
+
}
Added: camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/NowSearchTerm.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/NowSearchTerm.java?rev=1409125&view=auto
==============================================================================
--- camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/NowSearchTerm.java (added)
+++ camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/NowSearchTerm.java Wed Nov 14 09:43:34 2012
@@ -0,0 +1,117 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.mail;
+
+import java.util.Date;
+import javax.mail.Message;
+import javax.mail.search.ComparisonTerm;
+import javax.mail.search.DateTerm;
+
+/**
+ * A {@link javax.mail.search.SearchTerm} that is based on
+ * {@link DateTerm} that compares with current date (eg now).
+ * <p/>
+ * This allows to compare with a dynamic derived value.
+ */
+public class NowSearchTerm extends ComparisonTerm {
+
+ private final int comparison;
+ private final boolean sentDate;
+ private final long offset;
+
+ /**
+ * Constructor
+ *
+ * @param comparison the comparison operator
+ * @param sentDate <tt>true</tt> for using sent date, <tt>false</tt> for using received date.
+ * @param offset an optional offset as delta from now, can be a positive or negative value, for example
+ * to say within last 24 hours.
+ * @see ComparisonTerm
+ */
+ public NowSearchTerm(int comparison, boolean sentDate, long offset) {
+ this.comparison = comparison;
+ this.sentDate = sentDate;
+ this.offset = offset;
+ }
+
+ private Date getDate() {
+ long now = new Date().getTime();
+ return new Date(now + offset);
+ }
+
+ @Override
+ public boolean match(Message msg) {
+ Date d;
+
+ try {
+ if (sentDate) {
+ d = msg.getSentDate();
+ } else {
+ d = msg.getReceivedDate();
+ }
+ } catch (Exception e) {
+ return false;
+ }
+
+ if (d == null) {
+ return false;
+ }
+
+ return match(d, getDate(), comparison);
+ }
+
+ private static boolean match(Date d1, Date d2, int comparison) {
+ switch (comparison) {
+ case LE:
+ return d1.before(d2) || d1.equals(d2);
+ case LT:
+ return d1.before(d2);
+ case EQ:
+ return d1.equals(d2);
+ case NE:
+ return !d1.equals(d2);
+ case GT:
+ return d1.after(d2);
+ case GE:
+ return d1.after(d2) || d1.equals(d2);
+ default:
+ return false;
+ }
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ if (!super.equals(o)) {
+ return false;
+ }
+
+ NowSearchTerm that = (NowSearchTerm) o;
+
+ if (sentDate != that.sentDate) {
+ return false;
+ }
+
+ return true;
+ }
+
+}
Propchange: camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/NowSearchTerm.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/NowSearchTerm.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/SearchTermBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/SearchTermBuilder.java?rev=1409125&r1=1409124&r2=1409125&view=diff
==============================================================================
--- camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/SearchTermBuilder.java (original)
+++ camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/SearchTermBuilder.java Wed Nov 14 09:43:34 2012
@@ -151,6 +151,16 @@ public class SearchTermBuilder {
return this;
}
+ public SearchTermBuilder sentNow(Comparison comparison, long offset) {
+ return sentNow(Op.and, comparison, offset);
+ }
+
+ public SearchTermBuilder sentNow(Op op, Comparison comparison, long offset) {
+ NowSearchTerm st = new NowSearchTerm(comparison.asNum(), true, offset);
+ addTerm(op, st);
+ return this;
+ }
+
public SearchTermBuilder received(Comparison comparison, Date date) {
return received(Op.and, comparison, date);
}
@@ -161,6 +171,16 @@ public class SearchTermBuilder {
return this;
}
+ public SearchTermBuilder receivedNow(Comparison comparison, long offset) {
+ return sentNow(Op.and, comparison, offset);
+ }
+
+ public SearchTermBuilder receivedNow(Op op, Comparison comparison, long offset) {
+ NowSearchTerm st = new NowSearchTerm(comparison.asNum(), false, offset);
+ addTerm(op, st);
+ return this;
+ }
+
public SearchTermBuilder and(SearchTerm term) {
addTerm(Op.and, term);
return this;
Modified: camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/SimpleSearchTerm.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/SimpleSearchTerm.java?rev=1409125&r1=1409124&r2=1409125&view=diff
==============================================================================
--- camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/SimpleSearchTerm.java (original)
+++ camel/trunk/components/camel-mail/src/main/java/org/apache/camel/component/mail/SimpleSearchTerm.java Wed Nov 14 09:43:34 2012
@@ -22,8 +22,8 @@ package org.apache.camel.component.mail;
* <p/>
* This POJO has default <tt>true</tt> for the {@link #isUnseen()} option.
* <p/>
- * The {@link #setFromSentDate(String)} and {@link #setToSentDate(String)} is using the following date pattern
- * <tt>yyyy-MM-dd HH:mm:SS</tt>.
+ * The date options (such as {@link #setFromReceivedDate(String)}) is using
+ * the following date pattern <tt>yyyy-MM-dd HH:mm:SS</tt>.
*/
public class SimpleSearchTerm {
@@ -35,6 +35,8 @@ public class SimpleSearchTerm {
private String to;
private String fromSentDate;
private String toSentDate;
+ private String fromReceivedDate;
+ private String toReceivedDate;
public boolean isUnseen() {
return unseen;
@@ -99,4 +101,20 @@ public class SimpleSearchTerm {
public void setToSentDate(String toSentDate) {
this.toSentDate = toSentDate;
}
+
+ public String getFromReceivedDate() {
+ return fromReceivedDate;
+ }
+
+ public void setFromReceivedDate(String fromReceivedDate) {
+ this.fromReceivedDate = fromReceivedDate;
+ }
+
+ public String getToReceivedDate() {
+ return toReceivedDate;
+ }
+
+ public void setToReceivedDate(String toReceivedDate) {
+ this.toReceivedDate = toReceivedDate;
+ }
}
Copied: camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailSearchTermUriConfigLast24HoursTest.java (from r1409100, camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailSearchTermUriConfigTest.java)
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailSearchTermUriConfigLast24HoursTest.java?p2=camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailSearchTermUriConfigLast24HoursTest.java&p1=camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailSearchTermUriConfigTest.java&r1=1409100&r2=1409125&rev=1409125&view=diff
==============================================================================
--- camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailSearchTermUriConfigTest.java (original)
+++ camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailSearchTermUriConfigLast24HoursTest.java Wed Nov 14 09:43:34 2012
@@ -16,6 +16,7 @@
*/
package org.apache.camel.component.mail;
+import java.util.Date;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Store;
@@ -28,7 +29,7 @@ import org.apache.camel.test.junit4.Came
import org.junit.Test;
import org.jvnet.mock_javamail.Mailbox;
-public class MailSearchTermUriConfigTest extends CamelTestSupport {
+public class MailSearchTermUriConfigLast24HoursTest extends CamelTestSupport {
@Override
public void setUp() throws Exception {
@@ -41,8 +42,10 @@ public class MailSearchTermUriConfigTest
Mailbox mailbox = Mailbox.get("bill@localhost");
assertEquals(6, mailbox.size());
+ // should only get the 4 latest emails that was sent within the last 24 hours
MockEndpoint mock = getMockEndpoint("mock:result");
- mock.expectedBodiesReceivedInAnyOrder("I like riding the Camel", "Ordering Camel in Action");
+ mock.expectedBodiesReceivedInAnyOrder("Ordering ActiveMQ in Action", "This is spam",
+ "We meet at 7pm the usual place", "I am attaching you");
assertMockEndpointsSatisfied();
}
@@ -57,37 +60,48 @@ public class MailSearchTermUriConfigTest
folder.open(Folder.READ_WRITE);
folder.expunge();
+ long twoDaysAgo = new Date().getTime() - 2 * 24 * 60 * 60 * 1000L;
+ long twentyHoursAgo = new Date().getTime() - 1 * 20 * 60 * 60 * 1000L;
+ long oneHourAgo = new Date().getTime() - 1 * 1 * 60 * 60 * 1000L;
+
// inserts 5 new messages
Message[] messages = new Message[6];
messages[0] = new MimeMessage(sender.getSession());
messages[0].setSubject("Apache Camel rocks");
messages[0].setText("I like riding the Camel");
messages[0].setFrom(new InternetAddress("someone@somewhere.com"));
+ messages[0].setSentDate(new Date(twoDaysAgo));
messages[1] = new MimeMessage(sender.getSession());
messages[1].setSubject("Order");
messages[1].setText("Ordering Camel in Action");
messages[1].setFrom(new InternetAddress("dude@somewhere.com"));
+ messages[1].setSentDate(new Date(twoDaysAgo));
messages[2] = new MimeMessage(sender.getSession());
messages[2].setSubject("Order");
messages[2].setText("Ordering ActiveMQ in Action");
messages[2].setFrom(new InternetAddress("dude@somewhere.com"));
+ messages[2].setSentDate(new Date(twentyHoursAgo));
messages[3] = new MimeMessage(sender.getSession());
messages[3].setSubject("Buy pharmacy");
messages[3].setText("This is spam");
messages[3].setFrom(new InternetAddress("spam@me.com"));
+ messages[3].setSentDate(new Date(twentyHoursAgo));
messages[4] = new MimeMessage(sender.getSession());
messages[4].setSubject("Beers tonight?");
messages[4].setText("We meet at 7pm the usual place");
messages[4].setFrom(new InternetAddress("barney@simpsons.com"));
+ messages[4].setSentDate(new Date(oneHourAgo));
messages[5] = new MimeMessage(sender.getSession());
messages[5].setSubject("Spambot attack");
messages[5].setText("I am attaching you");
messages[5].setFrom(new InternetAddress("spambot@me.com"));
+ messages[5].setSentDate(new Date());
+ messages[5].setSentDate(new Date(oneHourAgo));
folder.appendMessages(messages);
folder.close(true);
@@ -96,7 +110,7 @@ public class MailSearchTermUriConfigTest
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
public void configure() throws Exception {
- from("pop3://bill@localhost?password=secret&searchTerm.subjectOrBody=Camel").to("mock:result");
+ from("pop3://bill@localhost?password=secret&searchTerm.fromSentDate=now-24h").to("mock:result");
}
};
}
Modified: camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/SearchTermBuilderTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/SearchTermBuilderTest.java?rev=1409125&r1=1409124&r2=1409125&view=diff
==============================================================================
--- camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/SearchTermBuilderTest.java (original)
+++ camel/trunk/components/camel-mail/src/test/java/org/apache/camel/component/mail/SearchTermBuilderTest.java Wed Nov 14 09:43:34 2012
@@ -16,6 +16,7 @@
*/
package org.apache.camel.component.mail;
+import java.util.Date;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.search.SearchTerm;
@@ -23,6 +24,7 @@ import javax.mail.search.SearchTerm;
import junit.framework.TestCase;
import org.jvnet.mock_javamail.Mailbox;
+import static org.apache.camel.component.mail.SearchTermBuilder.Comparison;
import static org.apache.camel.component.mail.SearchTermBuilder.Op.or;
/**
@@ -76,13 +78,43 @@ public class SearchTermBuilderTest exten
assertTrue("Should match message, as its from admin", st.match(msg2));
}
+ public void testSearchTermSentLast24Hours() throws Exception {
+ SearchTermBuilder build = new SearchTermBuilder();
+ long offset = -1 * (24 * 60 * 60 * 1000L);
+ SearchTerm st = build.subject("Camel").sentNow(Comparison.GE, offset).build();
+
+ assertNotNull(st);
+
+ // create dummy message
+ Mailbox.clearAll();
+ JavaMailSender sender = new DefaultJavaMailSender();
+
+ MimeMessage msg = new MimeMessage(sender.getSession());
+ msg.setSubject("Yeah Camel rocks");
+ msg.setText("Apache Camel is a cool project. Have a fun ride.");
+ msg.setFrom(new InternetAddress("someone@somewhere.com"));
+ msg.setSentDate(new Date());
+ assertTrue("Should match message", st.match(msg));
+
+ MimeMessage msg2 = new MimeMessage(sender.getSession());
+ msg2.setSubject("Camel in Action");
+ msg2.setText("Hey great book");
+ msg2.setFrom(new InternetAddress("dude@apache.org"));
+ // mark it as sent 2 days ago
+ long twoDays = 2 * 24 * 60 * 60 * 1000L;
+ long time = new Date().getTime() - twoDays;
+ msg2.setSentDate(new Date(time));
+
+ assertFalse("Should not match message as its too old", st.match(msg2));
+ }
+
public void testComparison() throws Exception {
- assertEquals(1, SearchTermBuilder.Comparison.LE.asNum());
- assertEquals(2, SearchTermBuilder.Comparison.LT.asNum());
- assertEquals(3, SearchTermBuilder.Comparison.EQ.asNum());
- assertEquals(4, SearchTermBuilder.Comparison.NE.asNum());
- assertEquals(5, SearchTermBuilder.Comparison.GT.asNum());
- assertEquals(6, SearchTermBuilder.Comparison.GE.asNum());
+ assertEquals(1, Comparison.LE.asNum());
+ assertEquals(2, Comparison.LT.asNum());
+ assertEquals(3, Comparison.EQ.asNum());
+ assertEquals(4, Comparison.NE.asNum());
+ assertEquals(5, Comparison.GT.asNum());
+ assertEquals(6, Comparison.GE.asNum());
}
}