import static org.junit.Assert.*;
import java.security.NoSuchAlgorithmException;
import java.util.Date;
import notifications.api.NotificationTO;
import notifications.api.SubscriberTO;
import notifications.api.util.StringUtils;
import notifications.connector.NotificationConnectorConfig;
import notifications.connector.SendEmailException;
import notifications.connector.adaptor.EmailConnector;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = NotificationConnectorConfig.class)
public class EmailRATest {
@Autowired
private EmailConnector connector;
private SubscriberTO subscriber;
private NotificationTO notification;
@Before
public void before() throws NoSuchAlgorithmException {
subscriber = new SubscriberTO();
subscriber.setEmail("luis.reis@singularideas.com.br");
subscriber.setFrequency("DAILY");
subscriber.setPin("1406");
subscriber.setHash(StringUtils.md5(subscriber.getPin()));
subscriber.setId(1L);
subscriber.setInstanceId(1);
subscriber.setName("Luis Machado Reis");
subscriber.setNotifyByPhone("NO");
subscriber.setPhone("553499783472");
connector.setSubscriber(subscriber);
notification = new NotificationTO();
notification.setCategoryId(1);
notification.setData("This is a example Data of dummy nottification!");
notification.setDateCreated(new Date());
notification.setId(1L);
notification.setInstanceId(1);
notification.setSync("YES");
notification.setTitle("Dummy");
notification.setTokenId("1234567890");
connector.setNotification(notification);
}
@Test
public void testSend() {
connector.send();
assertNotNull(connector);
}
@Test(expected = SendEmailException.class)
public void testValidateInvalid() {
subscriber.setEmail("invalid@invalid");
connector.setSubscriber(subscriber);
connector.send();
assertNotNull(connector);
}
}