1 package net.pterodactylus.rhynodge.actions;
3 import static org.mockito.Matchers.any;
4 import static org.mockito.Mockito.doThrow;
5 import static org.mockito.Mockito.mock;
6 import static org.mockito.Mockito.times;
7 import static org.mockito.Mockito.verify;
9 import javax.mail.Address;
10 import javax.mail.Message;
11 import javax.mail.MessagingException;
12 import javax.mail.Transport;
14 import net.pterodactylus.rhynodge.output.DefaultOutput;
15 import net.pterodactylus.rhynodge.output.Output;
17 import org.junit.Test;
20 * Unit test for {@link EmailAction}.
22 * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
24 public class EmailActionTest {
26 private final Transport transport = mock(Transport.class);
27 private final String sender = "sender@sender.de";
28 private final String recipient = "recipient@recipient.de";
29 private final EmailAction emailAction = new EmailAction(transport, sender, recipient);
30 private final Output output = new DefaultOutput("Action triggered!").addText("text/plain", "Plain Text.").addText("text/html", "<p>HTML Text.</p>");
33 public void canCreateActionWithNormalConstructor() {
34 new EmailAction("hostname", "sender", "recipient");
38 public void emailIsGeneratedCorrectly() throws MessagingException {
39 emailAction.execute(output);
40 verify(transport).sendMessage(any(Message.class), any(Address[].class));
44 public void exceptionWhenSendingIsSwallowed() throws MessagingException {
45 doThrow(MessagingException.class).doNothing().when(transport).sendMessage(any(Message.class), any(Address[].class));
46 emailAction.execute(output);
47 emailAction.execute(output);
48 verify(transport, times(2)).sendMessage(any(Message.class), any(Address[].class));