INT-1039, Fixed missing assertion on MailMessage.to value
This commit is contained in:
@@ -47,6 +47,7 @@ import org.springframework.util.StringUtils;
|
||||
*
|
||||
* @author Marius Bogoevici
|
||||
* @author Mark Fisher
|
||||
* @author Oleg Zhurakousky
|
||||
*/
|
||||
public class MailSendingMessageHandler implements MessageHandler {
|
||||
|
||||
@@ -127,7 +128,9 @@ public class MailSendingMessageHandler implements MessageHandler {
|
||||
mailMessage.setSubject(subject);
|
||||
}
|
||||
String[] to = this.retrieveHeaderValueAsStringArray(headers, MailHeaders.TO);
|
||||
mailMessage.setTo(to);
|
||||
if (to != null){
|
||||
mailMessage.setTo(to);
|
||||
}
|
||||
if (mailMessage instanceof SimpleMailMessage) {
|
||||
Assert.state(!ObjectUtils.isEmpty(((SimpleMailMessage) mailMessage).getTo()),
|
||||
"No recipient has been provided on the MailMessage or the 'MailHeaders.TO' header.");
|
||||
@@ -152,15 +155,18 @@ public class MailSendingMessageHandler implements MessageHandler {
|
||||
|
||||
private String[] retrieveHeaderValueAsStringArray(MessageHeaders headers, String key) {
|
||||
Object value = headers.get(key);
|
||||
String[] returnedHeaders = null;
|
||||
if (value != null) {
|
||||
if (value instanceof String[]) {
|
||||
return (String[]) value;
|
||||
}
|
||||
if (value instanceof String) {
|
||||
return StringUtils.commaDelimitedListToStringArray((String) value);
|
||||
}
|
||||
returnedHeaders = (String[]) value;
|
||||
} else if (value instanceof String) {
|
||||
returnedHeaders = StringUtils.commaDelimitedListToStringArray((String) value);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
if (returnedHeaders == null || ObjectUtils.isEmpty(returnedHeaders)){
|
||||
returnedHeaders = null;
|
||||
}
|
||||
return returnedHeaders;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -30,14 +30,14 @@ import javax.mail.internet.MimeMessage;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.integration.message.MessageBuilder;
|
||||
import org.springframework.mail.SimpleMailMessage;
|
||||
|
||||
/**
|
||||
* @author Marius Bogoevici
|
||||
* @author Oleg Zhurakousky
|
||||
*/
|
||||
public class MailSendingMessageHandlerTests {
|
||||
public class MailSendingMessageHandlerTests {
|
||||
|
||||
private MailSendingMessageHandler handler;
|
||||
|
||||
@@ -49,7 +49,7 @@ public class MailSendingMessageHandlerTests {
|
||||
this.mailSender = new StubJavaMailSender(new MimeMessage((Session) null));
|
||||
this.handler = new MailSendingMessageHandler(this.mailSender);
|
||||
}
|
||||
|
||||
|
||||
@After
|
||||
public void reset() {
|
||||
this.mailSender.reset();
|
||||
@@ -99,5 +99,25 @@ public class MailSendingMessageHandlerTests {
|
||||
assertEquals("message content different from expected",
|
||||
mailMessage, mailSender.getSentSimpleMailMessages().get(0));
|
||||
}
|
||||
@Test
|
||||
public void simpleMailMessage() {
|
||||
SimpleMailMessage mailMessage = MailTestsHelper.createSimpleMailMessage();
|
||||
String[] toHeaders = mailMessage.getTo();
|
||||
this.handler.handleMessage(MessageBuilder.withPayload(mailMessage).build());
|
||||
assertEquals("only one simple message must be sent",
|
||||
1, mailSender.getSentSimpleMailMessages().size());
|
||||
SimpleMailMessage sentMessage = mailSender.getSentSimpleMailMessages().get(0);
|
||||
assertTrue(sentMessage.getTo().equals(toHeaders));
|
||||
}
|
||||
@Test
|
||||
public void simpleMailMessageOverrideWithHeaders() {
|
||||
SimpleMailMessage mailMessage = MailTestsHelper.createSimpleMailMessage();
|
||||
String[] toHeaders = mailMessage.getTo();
|
||||
this.handler.handleMessage(MessageBuilder.withPayload(mailMessage).setHeader(MailHeaders.TO, new String[]{"foo@bar.bam"}).build());
|
||||
assertEquals("only one simple message must be sent",
|
||||
1, mailSender.getSentSimpleMailMessages().size());
|
||||
SimpleMailMessage sentMessage = mailSender.getSentSimpleMailMessages().get(0);
|
||||
assertTrue(sentMessage.getTo()[0].equals("foo@bar.bam"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user