81 lines
2.6 KiB
Java
81 lines
2.6 KiB
Java
package com.baeldung;
|
|
|
|
import com.baeldung.boot.Application;
|
|
import org.junit.After;
|
|
import org.junit.Before;
|
|
import org.junit.Test;
|
|
import org.junit.runner.RunWith;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.boot.test.context.SpringBootTest;
|
|
import org.springframework.mail.SimpleMailMessage;
|
|
import org.springframework.mail.javamail.JavaMailSender;
|
|
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
|
import org.subethamail.wiser.Wiser;
|
|
import org.subethamail.wiser.WiserMessage;
|
|
|
|
import javax.mail.MessagingException;
|
|
import java.io.IOException;
|
|
import java.util.List;
|
|
|
|
import static org.hamcrest.Matchers.hasSize;
|
|
import static org.junit.Assert.assertEquals;
|
|
import static org.junit.Assert.assertThat;
|
|
|
|
@RunWith(SpringJUnit4ClassRunner.class)
|
|
@SpringBootTest(classes = Application.class)
|
|
public class SpringBootMailIntegrationTest {
|
|
@Autowired
|
|
private JavaMailSender javaMailSender;
|
|
|
|
private Wiser wiser;
|
|
|
|
private String userTo = "user2@localhost";
|
|
private String userFrom = "user1@localhost";
|
|
private String subject = "Test subject";
|
|
private String textMail = "Text subject mail";
|
|
|
|
@Before
|
|
public void setUp() throws Exception {
|
|
final int TEST_PORT = 8025;
|
|
wiser = new Wiser(TEST_PORT);
|
|
wiser.start();
|
|
}
|
|
|
|
@After
|
|
public void tearDown() throws Exception {
|
|
wiser.stop();
|
|
}
|
|
|
|
@Test
|
|
public void givenMail_whenSendAndReceived_thenCorrect() throws Exception {
|
|
SimpleMailMessage message = composeEmailMessage();
|
|
javaMailSender.send(message);
|
|
List<WiserMessage> messages = wiser.getMessages();
|
|
|
|
assertThat(messages, hasSize(1));
|
|
WiserMessage wiserMessage = messages.get(0);
|
|
assertEquals(userFrom, wiserMessage.getEnvelopeSender());
|
|
assertEquals(userTo, wiserMessage.getEnvelopeReceiver());
|
|
assertEquals(subject, getSubject(wiserMessage));
|
|
assertEquals(textMail, getMessage(wiserMessage));
|
|
}
|
|
|
|
private String getMessage(WiserMessage wiserMessage) throws MessagingException, IOException {
|
|
return wiserMessage.getMimeMessage().getContent().toString().trim();
|
|
}
|
|
|
|
private String getSubject(WiserMessage wiserMessage) throws MessagingException {
|
|
return wiserMessage.getMimeMessage().getSubject();
|
|
}
|
|
|
|
private SimpleMailMessage composeEmailMessage() {
|
|
SimpleMailMessage mailMessage = new SimpleMailMessage();
|
|
mailMessage.setTo(userTo);
|
|
mailMessage.setReplyTo(userFrom);
|
|
mailMessage.setFrom(userFrom);
|
|
mailMessage.setSubject(subject);
|
|
mailMessage.setText(textMail);
|
|
return mailMessage;
|
|
}
|
|
}
|