* @param output
* The output for the action
*/
- void execute(Output output);
+ default void execute(Output output) {
+ execute(output, new String[0]);
+ }
+
+ void execute(Output output, String... arguments);
}
* {@inheritDoc}
*/
@Override
- public void execute(Output output) {
+ public void execute(Output output, String... additionalRecipients) {
MimeMessage message = new MimeMessage(session);
try {
/* create message. */
message.setFrom(new InternetAddress(sender));
message.setRecipient(RecipientType.TO, new InternetAddress(recipient));
+ for (String additionalEmail : additionalRecipients) {
+ message.addRecipient(RecipientType.TO, new InternetAddress(additionalEmail));
+ }
message.setSubject(output.summary(), "UTF-8");
/* create text and html parts. */
package net.pterodactylus.rhynodge.actions;
+import static org.hamcrest.Matchers.hasItemInArray;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import static org.mockito.hamcrest.MockitoHamcrest.argThat;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Transport;
+import javax.mail.internet.InternetAddress;
import net.pterodactylus.rhynodge.output.DefaultOutput;
import net.pterodactylus.rhynodge.output.Output;
}
@Test
+ public void emailContainsAllRecipients() throws MessagingException {
+ emailAction.execute(output, "test1@test.com");
+ verify(transport).sendMessage(any(Message.class), argThat(hasItemInArray(new InternetAddress("test1@test.com"))));
+ }
+
+ @Test
public void exceptionWhenSendingIsSwallowed() throws MessagingException {
doThrow(MessagingException.class).doNothing().when(transport).sendMessage(any(Message.class), any(Address[].class));
emailAction.execute(output);
class TestMerger3(val one: String, val two: String, val three: String) : TestMerger0()
open class TestAction0 : Action {
- override fun execute(output: Output) = Unit
+ override fun execute(output: Output, vararg arguments: String) = Unit
}
class TestAction2(val foo: String, val bar: String) : TestAction0()