Search in sources :

Example 1 with OrTerm

use of javax.mail.search.OrTerm in project jodd by oblac.

the class EmailFilterTest method testAndOrNotAlt.

@Test
public void testAndOrNotAlt() {
    EmailFilter emailFilter = filter().or(filter().and(filter().from("from"), filter().to("to")), filter().not(filter().subject("subject")), filter().from("from2"));
    SearchTerm expected = new OrTerm(new SearchTerm[] { new AndTerm(new FromStringTerm("from"), new RecipientStringTerm(Message.RecipientType.TO, "to")), new NotTerm(new SubjectTerm("subject")), new FromStringTerm("from2") });
    assertEquals(expected, emailFilter.searchTerm);
}
Also used : AndTerm(javax.mail.search.AndTerm) OrTerm(javax.mail.search.OrTerm) FromStringTerm(javax.mail.search.FromStringTerm) RecipientStringTerm(javax.mail.search.RecipientStringTerm) NotTerm(javax.mail.search.NotTerm) SearchTerm(javax.mail.search.SearchTerm) SubjectTerm(javax.mail.search.SubjectTerm) Test(org.junit.Test)

Example 2 with OrTerm

use of javax.mail.search.OrTerm in project jodd by oblac.

the class EmailFilterTest method testOr2Alt.

@Test
public void testOr2Alt() {
    EmailFilter emailFilter = filter().or().from("from").to("to");
    SearchTerm expected = new OrTerm(new FromStringTerm("from"), new RecipientStringTerm(Message.RecipientType.TO, "to"));
    assertEquals(expected, emailFilter.searchTerm);
}
Also used : OrTerm(javax.mail.search.OrTerm) FromStringTerm(javax.mail.search.FromStringTerm) RecipientStringTerm(javax.mail.search.RecipientStringTerm) SearchTerm(javax.mail.search.SearchTerm) Test(org.junit.Test)

Example 3 with OrTerm

use of javax.mail.search.OrTerm in project jodd by oblac.

the class EmailFilter method or.

/**
	 * Defines OR group of filters.
	 */
public EmailFilter or(EmailFilter... emailFilters) {
    SearchTerm[] searchTerms = new SearchTerm[emailFilters.length];
    for (int i = 0; i < emailFilters.length; i++) {
        searchTerms[i] = emailFilters[i].searchTerm;
    }
    concat(new OrTerm(searchTerms));
    return this;
}
Also used : OrTerm(javax.mail.search.OrTerm) SearchTerm(javax.mail.search.SearchTerm)

Example 4 with OrTerm

use of javax.mail.search.OrTerm in project opennms by OpenNMS.

the class JavaReadMailerTest method testReadMessagesWithSearchTerm.

/**
     * Un-ignore this test with a proper gmail account
     * @throws JavaMailerException
     * @throws MessagingException
     * @throws InterruptedException
     */
@Test
@Ignore
public void testReadMessagesWithSearchTerm() throws JavaMailerException, MessagingException, InterruptedException {
    String gmailAccount = getUser();
    String gmailPassword = getPassword();
    JavaSendMailer sendMailer = createSendMailer(gmailAccount, gmailPassword);
    String term1 = String.valueOf(Calendar.getInstance().getTimeInMillis());
    Thread.sleep(2);
    String term2 = String.valueOf(Calendar.getInstance().getTimeInMillis());
    Thread.sleep(2);
    String term3 = String.valueOf(Calendar.getInstance().getTimeInMillis());
    Thread.sleep(2);
    SendmailMessage sendMsg = createAckMessage(gmailAccount, "1", term1, "ack");
    sendMailer.setMessage(sendMailer.buildMimeMessage(sendMsg));
    sendMailer.send();
    sendMsg = createAckMessage(gmailAccount, "2", term2, "ack");
    sendMailer.setMessage(sendMailer.buildMimeMessage(sendMsg));
    sendMailer.send();
    sendMsg = createAckMessage(gmailAccount, "3", term3, "ack");
    sendMailer.setMessage(sendMailer.buildMimeMessage(sendMsg));
    sendMailer.send();
    JavaReadMailer readMailer = createGoogleReadMailer(gmailAccount, gmailPassword);
    //See if search finds all 3 messages
    SearchTerm st = new OrTerm(new SubjectTerm(".*" + term1 + " #.*"), new SubjectTerm(".*" + term2 + " #.*"));
    st = new OrTerm(st, new SubjectTerm("*." + term3 + " #.*"));
    List<Message> msgs = null;
    try {
        msgs = readMailer.retrieveMessages(st);
    } catch (JavaMailerException e) {
        e.printStackTrace();
    }
    Assert.assertEquals(3, msgs.size());
    st = new OrTerm(new SubjectTerm(".*" + term1 + " #.*"), new SubjectTerm(".*" + term2 + " #.*"));
    try {
        msgs = readMailer.retrieveMessages(st);
    } catch (JavaMailerException e) {
        e.printStackTrace();
    }
    //Should find only term1 and term2 messages
    Assert.assertNotNull(msgs);
    Assert.assertEquals(2, msgs.size());
    //Delete the term1 and term2 messages
    for (Message msg : msgs) {
        msg.setFlag(Flag.DELETED, true);
    }
    //Find and delete the term3 messages
    st = new SubjectTerm("*." + term3 + " #.*");
    try {
        msgs = readMailer.retrieveMessages(st);
    } catch (JavaMailerException e) {
        e.printStackTrace();
    }
    Assert.assertNotNull(msgs);
    Assert.assertTrue(msgs.size() >= 1);
    for (Message eventMsg : msgs) {
        eventMsg.setFlag(Flag.DELETED, true);
    }
    //Make sure they're all gone
    st = new OrTerm(new SubjectTerm(".*" + term1 + " #.*"), new SubjectTerm(".*" + term2 + " #.*"));
    st = new OrTerm(st, new SubjectTerm("*." + term3 + " #.*"));
    try {
        msgs = readMailer.retrieveMessages(st);
    } catch (JavaMailerException e) {
        e.printStackTrace();
    }
    Assert.assertTrue(msgs.isEmpty());
}
Also used : OrTerm(javax.mail.search.OrTerm) Message(javax.mail.Message) SendmailMessage(org.opennms.netmgt.config.javamail.SendmailMessage) SendmailMessage(org.opennms.netmgt.config.javamail.SendmailMessage) SearchTerm(javax.mail.search.SearchTerm) SubjectTerm(javax.mail.search.SubjectTerm) Ignore(org.junit.Ignore) Test(org.junit.Test)

Example 5 with OrTerm

use of javax.mail.search.OrTerm in project jodd by oblac.

the class EmailFilterTest method testAndOrNot.

@Test
public void testAndOrNot() {
    EmailFilter emailFilter = filter().from("from").to("to").or().not().subject("subject").from("from2");
    SearchTerm expected = new OrTerm(new OrTerm(new AndTerm(new FromStringTerm("from"), new RecipientStringTerm(Message.RecipientType.TO, "to")), new NotTerm(new SubjectTerm("subject"))), new FromStringTerm("from2"));
    assertEquals(expected, emailFilter.searchTerm);
}
Also used : AndTerm(javax.mail.search.AndTerm) OrTerm(javax.mail.search.OrTerm) FromStringTerm(javax.mail.search.FromStringTerm) RecipientStringTerm(javax.mail.search.RecipientStringTerm) NotTerm(javax.mail.search.NotTerm) SearchTerm(javax.mail.search.SearchTerm) SubjectTerm(javax.mail.search.SubjectTerm) Test(org.junit.Test)

Aggregations

OrTerm (javax.mail.search.OrTerm)6 SearchTerm (javax.mail.search.SearchTerm)6 Test (org.junit.Test)5 FromStringTerm (javax.mail.search.FromStringTerm)4 RecipientStringTerm (javax.mail.search.RecipientStringTerm)4 SubjectTerm (javax.mail.search.SubjectTerm)3 AndTerm (javax.mail.search.AndTerm)2 NotTerm (javax.mail.search.NotTerm)2 Message (javax.mail.Message)1 Ignore (org.junit.Ignore)1 SendmailMessage (org.opennms.netmgt.config.javamail.SendmailMessage)1