package sushi.email.test;
import static org.junit.Assert.*;
import javax.mail.Flags;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import org.junit.Test;
import sushi.email.EmailUtils;
public class EmailUtilTest {
@Test
public void testSendingAndReceiving() throws MessagingException {
Session session = EmailUtils.getGMailSession(EmailUtils.user, EmailUtils.pass);
String key = (new Long(System.currentTimeMillis())).toString();
EmailUtils.postMail(session, EmailUtils.user, "test"+key, "testmsg"+key);
Folder inbox = EmailUtils.openPop3InboxReadWrite(session);
Folder trash = EmailUtils.openPop3TrashReadWrite(session);
boolean emailReceived = false;
for ( Message m : inbox.getMessages() ){
if (m.getSubject().startsWith("test"+key)){
emailReceived = true;
Message[] m_array = inbox.getMessages(m.getMessageNumber(), m.getMessageNumber());
// delete test mail
inbox.copyMessages(m_array, trash);
m.setFlag(Flags.Flag.DELETED, true);
}
}
EmailUtils.closeFolder(inbox);
EmailUtils.closeFolder(trash);
assertTrue(emailReceived);
}
}