*/
public class MailReceiverTest {
@Test(enabled=false)
public void shouldReceiveImapEmail() throws Exception {
GreenMail greenMail = new GreenMail(ServerSetupTest.ALL);
greenMail.start();
try {
//use random content to avoid potential residual lingering problems
String subject = GreenMailUtil.random();
String body = GreenMailUtil.random();
GreenMailUtil.sendTextEmailTest("test@localhost.com", "from@localhost.com", subject, body);
Assert.assertTrue( greenMail.waitForIncomingEmail(5000, 1) );
MockMessageProducer messageProducer = new MockMessageProducer();
MailReceiverConfig configuration = new MailReceiverConfig();
configuration.setPort(ServerSetupTest.IMAP.getPort());
configuration.setUsername("test@localhost.com");
configuration.setPassword("test@localhost.com");
MailReceiver receiver = new MailReceiver(configuration);
injectResource(new MockConnectorContext(), receiver);
injectResource(messageProducer, receiver);
receiver.doStart();
// wait max 5 secs for message to be received
waitUntilMessageIsReceived(messageProducer, 180000);
Assert.assertEquals(messageProducer.messageCount(), 1);
receiver.doStop();
Message message = messageProducer.getMessage(0);
Assert.assertNotNull(message);
Assert.assertEquals(message.getProperty("recipients", String.class), "test@localhost.com");
Assert.assertEquals(message.getProperty("to", String.class), "test@localhost.com");
Assert.assertEquals(message.getProperty("cc", String.class), "");
Assert.assertEquals(message.getProperty("bcc", String.class), "");
Assert.assertEquals(message.getProperty("from", String.class), "from@localhost.com");
Assert.assertEquals(message.getProperty("subject", String.class), subject);
Assert.assertEquals(message.getProperty("text", String.class), body);
// check that email is still there
Assert.assertEquals(greenMail.getReceivedMessages().length, 1);
} finally {
greenMail.stop();
}
}