List of usage examples for org.springframework.integration.mail ImapMailReceiver receive
@Override public Object[] receive() throws javax.mail.MessagingException
From source file:org.springframework.integration.mail.ImapMailReceiverTests.java
@Test // see INT-1801 public void testImapLifecycleForRaceCondition() throws Exception { for (int i = 0; i < 1000; i++) { final ImapMailReceiver receiver = new ImapMailReceiver("imap://foo"); Store store = mock(Store.class); Folder folder = mock(Folder.class); given(folder.exists()).willReturn(true); given(folder.isOpen()).willReturn(true); given(folder.search((SearchTerm) Mockito.any())).willReturn(new Message[] {}); given(store.getFolder(Mockito.any(URLName.class))).willReturn(folder); given(folder.getPermanentFlags()).willReturn(new Flags(Flags.Flag.USER)); DirectFieldAccessor df = new DirectFieldAccessor(receiver); df.setPropertyValue("store", store); receiver.setBeanFactory(mock(BeanFactory.class)); receiver.afterPropertiesSet();/*from ww w. ja v a2 s .co m*/ new Thread(() -> { try { receiver.receive(); } catch (javax.mail.MessagingException e) { if (e.getCause() instanceof NullPointerException) { failed.getAndIncrement(); } } }).start(); new Thread(() -> { try { receiver.destroy(); } catch (Exception ignore) { // ignore } }).start(); } assertEquals(0, failed.get()); }
From source file:org.springframework.integration.mail.ImapMailReceiverTests.java
@Test public void testAttachments() throws Exception { final ImapMailReceiver receiver = new ImapMailReceiver("imap://foo"); Folder folder = testAttachmentsGuts(receiver); Message[] messages = (Message[]) receiver.receive(); Object content = messages[0].getContent(); assertEquals("bar", ((Multipart) content).getBodyPart(0).getContent().toString().trim()); assertEquals("foo", ((Multipart) content).getBodyPart(1).getContent().toString().trim()); assertSame(folder, messages[0].getFolder()); }
From source file:org.springframework.integration.mail.ImapMailReceiverTests.java
@Test public void testAttachmentsWithMappingMultiAsBytes() throws Exception { final ImapMailReceiver receiver = new ImapMailReceiver("imap://foo"); receiver.setHeaderMapper(new DefaultMailHeaderMapper()); testAttachmentsGuts(receiver);//from w w w .jav a 2 s .c om org.springframework.messaging.Message<?>[] messages = (org.springframework.messaging.Message<?>[]) receiver .receive(); org.springframework.messaging.Message<?> received = messages[0]; Object content = received.getPayload(); assertThat(content, instanceOf(byte[].class)); assertThat((String) received.getHeaders().get(MailHeaders.CONTENT_TYPE), equalTo("multipart/mixed;\r\n boundary=\"------------040903000701040401040200\"")); assertThat((String) received.getHeaders().get(MessageHeaders.CONTENT_TYPE), equalTo("application/octet-stream")); }
From source file:org.springframework.integration.mail.ImapMailReceiverTests.java
@Test public void testAttachmentsWithMapping() throws Exception { final ImapMailReceiver receiver = new ImapMailReceiver("imap://foo"); receiver.setHeaderMapper(new DefaultMailHeaderMapper()); receiver.setEmbeddedPartsAsBytes(false); testAttachmentsGuts(receiver);// www .j av a 2 s . c o m org.springframework.messaging.Message<?>[] messages = (org.springframework.messaging.Message<?>[]) receiver .receive(); Object content = messages[0].getPayload(); assertThat(content, instanceOf(Multipart.class)); assertEquals("bar", ((Multipart) content).getBodyPart(0).getContent().toString().trim()); assertEquals("foo", ((Multipart) content).getBodyPart(1).getContent().toString().trim()); }
From source file:org.springframework.integration.mail.ImapMailReceiverTests.java
@Test public void testNullMessages() throws Exception { Message message1 = mock(Message.class); Message message2 = mock(Message.class); final Message[] messages1 = new Message[] { null, null, message1 }; final Message[] messages2 = new Message[] { message2 }; final SearchTermStrategy searchTermStrategy = mock(SearchTermStrategy.class); class TestReceiver extends ImapMailReceiver { private boolean firstDone; TestReceiver() {/*ww w. j a va 2 s . co m*/ setSearchTermStrategy(searchTermStrategy); } @Override protected Folder getFolder() { Folder folder = mock(Folder.class); given(folder.isOpen()).willReturn(true); try { given(folder.getMessages()).willReturn(!this.firstDone ? messages1 : messages2); } catch (MessagingException e) { } return folder; } @Override public Message[] receive() throws MessagingException { Message[] messages = searchForNewMessages(); this.firstDone = true; return messages; } } ImapMailReceiver receiver = new TestReceiver(); Message[] received = (Message[]) receiver.receive(); assertEquals(1, received.length); assertSame(message1, received[0]); received = (Message[]) receiver.receive(); assertEquals(1, received.length); assertSame(messages2, received); assertSame(message2, received[0]); }