Search in sources :

Example 26 with Folder

use of jakarta.mail.Folder in project spring-integration by spring-projects.

the class Pop3MailReceiverTests method receiveAndDontDelete.

@Test
public void receiveAndDontDelete() throws Exception {
    AbstractMailReceiver receiver = new Pop3MailReceiver();
    receiver.setShouldDeleteMessages(false);
    receiver = spy(receiver);
    receiver.setBeanFactory(mock(BeanFactory.class));
    receiver.afterPropertiesSet();
    Field folderField = AbstractMailReceiver.class.getDeclaredField("folder");
    folderField.setAccessible(true);
    Folder folder = mock(Folder.class);
    when(folder.getPermanentFlags()).thenReturn(new Flags(Flags.Flag.USER));
    folderField.set(receiver, folder);
    Message msg1 = mock(MimeMessage.class);
    Message msg2 = mock(MimeMessage.class);
    final Message[] messages = new Message[] { msg1, msg2 };
    doAnswer(invocation -> null).when(receiver).openFolder();
    doAnswer(invocation -> messages).when(receiver).searchForNewMessages();
    doAnswer(invocation -> null).when(receiver).fetchMessages(messages);
    receiver.afterPropertiesSet();
    receiver.receive();
    verify(msg1, times(0)).setFlag(Flag.DELETED, true);
    verify(msg2, times(0)).setFlag(Flag.DELETED, true);
}
Also used : Field(java.lang.reflect.Field) Message(jakarta.mail.Message) MimeMessage(jakarta.mail.internet.MimeMessage) BeanFactory(org.springframework.beans.factory.BeanFactory) Flags(jakarta.mail.Flags) Folder(jakarta.mail.Folder) Test(org.junit.jupiter.api.Test)

Example 27 with Folder

use of jakarta.mail.Folder in project spring-integration by spring-projects.

the class ImapMailSearchTermsTests method validateSearchTermsWhenShouldNotMarkAsReadNoExistingFlags.

@Test
public void validateSearchTermsWhenShouldNotMarkAsReadNoExistingFlags() throws Exception {
    ImapMailReceiver receiver = new ImapMailReceiver();
    receiver.setShouldMarkMessagesAsRead(false);
    receiver.setBeanFactory(mock(BeanFactory.class));
    receiver.afterPropertiesSet();
    Field folderField = AbstractMailReceiver.class.getDeclaredField("folder");
    folderField.setAccessible(true);
    Folder folder = mock(Folder.class);
    when(folder.getPermanentFlags()).thenReturn(new Flags(Flags.Flag.USER));
    folderField.set(receiver, folder);
    Method compileSearchTerms = ReflectionUtils.findMethod(receiver.getClass(), "compileSearchTerms", Flags.class);
    compileSearchTerms.setAccessible(true);
    Flags flags = new Flags();
    SearchTerm searchTerms = (SearchTerm) compileSearchTerms.invoke(receiver, flags);
    assertThat(searchTerms instanceof NotTerm).isTrue();
}
Also used : Field(java.lang.reflect.Field) NotTerm(jakarta.mail.search.NotTerm) BeanFactory(org.springframework.beans.factory.BeanFactory) Flags(jakarta.mail.Flags) Method(java.lang.reflect.Method) Folder(jakarta.mail.Folder) SearchTerm(jakarta.mail.search.SearchTerm) Test(org.junit.jupiter.api.Test)

Aggregations

Folder (jakarta.mail.Folder)27 Message (jakarta.mail.Message)18 Flags (jakarta.mail.Flags)16 Test (org.junit.jupiter.api.Test)16 BeanFactory (org.springframework.beans.factory.BeanFactory)15 MimeMessage (jakarta.mail.internet.MimeMessage)14 Field (java.lang.reflect.Field)14 IMAPFolder (com.sun.mail.imap.IMAPFolder)12 DirectFieldAccessor (org.springframework.beans.DirectFieldAccessor)9 ServerSetupTest (com.icegreen.greenmail.util.ServerSetupTest)8 MessagingException (jakarta.mail.MessagingException)7 Store (jakarta.mail.Store)4 SearchTerm (jakarta.mail.search.SearchTerm)4 XPathException (org.exist.xquery.XPathException)4 IntegerValue (org.exist.xquery.value.IntegerValue)4 NotTerm (jakarta.mail.search.NotTerm)3 Method (java.lang.reflect.Method)3 URLName (jakarta.mail.URLName)2 FolderClosedException (jakarta.mail.FolderClosedException)1 Session (jakarta.mail.Session)1