/*
* Copyright LGPL3
* YES Technology Association
* http://yestech.org
*
* http://www.opensource.org/licenses/lgpl-3.0.html
*/
/*
*
* Original Author: Artie Copeland
* Last Modified Date: $DateTime: $
*/
package org.yestech.notify.client;
import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
import org.yestech.notify.constant.MessageTypeEnum;
import org.yestech.notify.objectmodel.IMessage;
import org.yestech.notify.objectmodel.INotification;
import org.yestech.notify.objectmodel.INotificationJob;
import org.yestech.notify.objectmodel.ISender;
import static org.yestech.notify.factory.ObjectFactory.createRecipient;
import static org.yestech.notify.factory.ObjectFactory.createSender;
/**
* @author $Author: $
* @version $Revision: $
*/
public class NotificationBuilderIntegrationTest {
@Test
public void testChainBuilder() {
INotificationBuilder builder = NotificationBuilder.getBuilder();
assertNotNull(builder);
String subject = "test subject";
String text = "this is the text";
String attachment = "attch1";
ISender sender = createSender();
builder.setSubject(subject).setMessageType(MessageTypeEnum.HTML_EMAIL);
builder.setText(text).setSender(sender).addRecipient(createRecipient("1")).addRecipient(createRecipient("2"));
builder.addRecipient(createRecipient("3")).addCopyRecipient(createRecipient("4")).addCopyRecipient(createRecipient("5"));
builder.addBlindRecipient(createRecipient("6")).addBlindRecipient(createRecipient("7")).addBlindRecipient(createRecipient("8"));
builder.addBlindRecipient(createRecipient("9")).addAttachment(attachment);
INotification notification = builder.createNotification();
assertNotNull(notification);
assertEquals(4, notification.blindRecipientSize());
assertEquals(3, notification.recipientSize());
assertEquals(2, notification.copyRecipientSize());
IMessage message = notification.getMessage();
assertEquals(1, message.getAttachments().size());
assertEquals(attachment, message.getAttachments().iterator().next());
assertEquals(text, message.getText());
assertEquals(subject, message.getSubject());
assertEquals(MessageTypeEnum.HTML_EMAIL, message.getMessageType());
}
@Test
public void testBuilder() {
INotificationBuilder builder = NotificationBuilder.getBuilder();
assertNotNull(builder);
String subject = "test subject";
builder.setSubject(subject);
builder.setMessageType(MessageTypeEnum.HTML_EMAIL);
String text = "this is the text";
builder.setText(text);
ISender sender = createSender();
builder.setSender(sender);
builder.addRecipient(createRecipient("1"));
builder.addRecipient(createRecipient("2"));
builder.addRecipient(createRecipient("3"));
builder.addCopyRecipient(createRecipient("4"));
builder.addCopyRecipient(createRecipient("5"));
builder.addBlindRecipient(createRecipient("6"));
builder.addBlindRecipient(createRecipient("7"));
builder.addBlindRecipient(createRecipient("8"));
builder.addBlindRecipient(createRecipient("9"));
String attachment = "attch1";
builder.addAttachment(attachment);
INotification notification = builder.createNotification();
assertNotNull(notification);
assertEquals(4, notification.blindRecipientSize());
assertEquals(3, notification.recipientSize());
assertEquals(2, notification.copyRecipientSize());
IMessage message = notification.getMessage();
assertEquals(1, message.getAttachments().size());
assertEquals(attachment, message.getAttachments().iterator().next());
assertEquals(text, message.getText());
assertEquals(subject, message.getSubject());
assertEquals(MessageTypeEnum.HTML_EMAIL, message.getMessageType());
}
@Test
public void testReuseBuilder() {
INotificationBuilder builder = NotificationBuilder.getBuilder();
assertNotNull(builder);
String subject = "test subject";
builder.setSubject(subject);
builder.setMessageType(MessageTypeEnum.TEXT_EMAIL);
String text = "this is the text";
builder.setText(text);
ISender sender = createSender();
builder.setSender(sender);
builder.addRecipient(createRecipient("1"));
builder.addRecipient(createRecipient("2"));
builder.addRecipient(createRecipient("3"));
builder.addRecipient(createRecipient("4"));
builder.addCopyRecipient(createRecipient("1"));
builder.addCopyRecipient(createRecipient("2"));
builder.addBlindRecipient(createRecipient("1"));
builder.addBlindRecipient(createRecipient("2"));
builder.addBlindRecipient(createRecipient("3"));
builder.addBlindRecipient(createRecipient("4"));
String attachment = "attch1";
builder.addAttachment(attachment);
INotification notification = builder.createNotification();
assertNotNull(notification);
assertEquals(2, notification.copyRecipientSize());
assertEquals(4, notification.blindRecipientSize());
assertEquals(4, notification.recipientSize());
IMessage message = notification.getMessage();
assertEquals(1, message.getAttachments().size());
assertEquals(attachment, message.getAttachments().iterator().next());
assertEquals(text, message.getText());
assertEquals(subject, message.getSubject());
assertEquals(MessageTypeEnum.TEXT_EMAIL, message.getMessageType());
builder.clearBlindRecipients();
builder.clearCopyRecipients();
builder.clearAttachments();
builder.addRecipient(createRecipient("5"));
builder.addRecipient(createRecipient("6"));
builder.setMessageType(MessageTypeEnum.MULTIPART_EMAIL);
INotification notification2 = builder.createNotification();
assertNotNull(notification2);
assertEquals(0, notification2.copyRecipientSize());
assertEquals(0, notification2.blindRecipientSize());
assertEquals(6, notification2.recipientSize());
assertNotSame(notification, notification2);
IMessage message2 = notification2.getMessage();
assertEquals(0, message2.getAttachments().size());
assertEquals(text, message2.getText());
assertEquals(subject, message2.getSubject());
assertEquals(MessageTypeEnum.MULTIPART_EMAIL, message2.getMessageType());
}
@Test
public void testDefaultBuilder() {
INotificationBuilder builder = NotificationBuilder.getBuilder();
assertNotNull(builder);
INotification notification = builder.createNotification();
assertNotNull(notification);
ISender sender = notification.getSender();
assertNull(sender);
assertNotNull(notification.getTemplate());
assertTrue(notification.getRecipients().isEmpty());
assertTrue(notification.getCopyRecipients().isEmpty());
assertTrue(notification.getBlindCopyRecipients().isEmpty());
INotificationJob job = notification.getJob();
System.out.println(job);
assertNull(job);
IMessage message = notification.getMessage();
assertNotNull(message);
assertNull(message.getText());
assertNull(message.getSubject());
assertEquals(MessageTypeEnum.TEXT_EMAIL, message.getMessageType());
assertTrue(message.isAttachmentEmpty());
}
}