package org.cloudfoundry.identity.uaa.login; import org.cloudfoundry.identity.uaa.login.test.FakeJavaMailSender; import org.junit.Before; import org.junit.Test; import javax.mail.Address; import javax.mail.Message; import javax.mail.internet.InternetAddress; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.hasSize; import static org.junit.Assert.assertThat; public class EmailServiceTests { private FakeJavaMailSender mailSender; @Before public void setUp() throws Exception { mailSender = new FakeJavaMailSender(); } @Test public void testSendOssMimeMessage() throws Exception { EmailService emailService = new EmailService(mailSender, "http://login.example.com/login", "oss"); emailService.sendMessage(null, "user@example.com", MessageType.CHANGE_EMAIL, "Test Message", "<html><body>hi</body></html>"); assertThat(mailSender.getSentMessages(), hasSize(1)); FakeJavaMailSender.MimeMessageWrapper mimeMessageWrapper = mailSender.getSentMessages().get(0); assertThat(mimeMessageWrapper.getFrom(), hasSize(1)); InternetAddress fromAddress = (InternetAddress) mimeMessageWrapper.getFrom().get(0); assertThat(fromAddress.getAddress(), equalTo("admin@login.example.com")); assertThat(fromAddress.getPersonal(), equalTo("Cloud Foundry")); assertThat(mimeMessageWrapper.getRecipients(Message.RecipientType.TO), hasSize(1)); assertThat(mimeMessageWrapper.getRecipients(Message.RecipientType.TO).get(0), equalTo((Address) new InternetAddress("user@example.com"))); assertThat(mimeMessageWrapper.getContentString(), equalTo("<html><body>hi</body></html>")); } @Test public void testSendPivotalMimeMessage() throws Exception { EmailService emailService = new EmailService(mailSender, "http://login.example.com/login", "pivotal"); emailService.sendMessage(null, "user@example.com", MessageType.CHANGE_EMAIL, "Test Message", "<html><body>hi</body></html>"); FakeJavaMailSender.MimeMessageWrapper mimeMessageWrapper = mailSender.getSentMessages().get(0); assertThat(mimeMessageWrapper.getFrom(), hasSize(1)); InternetAddress fromAddress = (InternetAddress) mimeMessageWrapper.getFrom().get(0); assertThat(fromAddress.getAddress(), equalTo("admin@login.example.com")); assertThat(fromAddress.getPersonal(), equalTo("Pivotal")); } }