/* vim: set ts=2 et sw=2 cindent fo=qroca: */
package com.globant.katari.tools;
import java.util.Properties;
import static org.junit.Assert.assertThat;
import static org.hamcrest.CoreMatchers.*;
import org.junit.After;
import org.junit.Test;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.Message.RecipientType;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.dumbster.smtp.SmtpMessage;
/* Tests the cas service builder.
*/
public class DummySmtpServerTest {
private DummySmtpServer server = null;
@After
public void tearDown() {
if (server != null) {
server.stop();
server = null;
}
}
@Test
public void testStart() throws Exception {
server = DummySmtpServer.start(0);
// send a mail and verify that it is received.
Properties props = new Properties();
props.put("mail.smtp.host", "localhost");
props.put("mail.smtp.port", String.valueOf(server.getPortNumber()));
Session mailSession = Session.getInstance(props);
Message sentMessage = new MimeMessage(mailSession);
sentMessage.setFrom(new InternetAddress("from@blah"));
sentMessage.setRecipient(RecipientType.TO, new InternetAddress("to@blah"));
sentMessage.setSubject("the subject");
sentMessage.setText("the body");
Transport.send(sentMessage);
assertThat(server.getReceivedEmailSize(), is(1));
SmtpMessage message = server.iterator().next();
assertThat(message.getBody(), is("the body"));
}
}