/*
* Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com)
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: TestEmail.java 3918 2008-04-14 17:35:35Z gbevin $
*/
package com.uwyn.rife.mail;
import com.uwyn.rife.mail.Email;
import com.uwyn.rife.site.ValidationError;
import java.util.Iterator;
import junit.framework.TestCase;
public class TestEmail extends TestCase
{
public TestEmail(String name)
{
super(name);
}
public void testInstantiation()
{
Email email = new Email();
assertEquals(-1, email.getId());
assertNull(email.getFromAddress());
assertNull(email.getToAddresses());
assertNull(email.getSubject());
assertNull(email.getBody());
assertNull(email.getCcAddresses());
assertNull(email.getBccAddresses());
assertFalse(email.getQueueFlag());
assertEquals(0, email.hashCode());
assertEquals(email, new Email());
}
public void testPopulation()
{
Email email1 = new Email();
email1.setId(2);
email1.setFromAddress("info@uwyn.com");
email1.setToAddresses("test@uwyn.com,test2@uwyn.com");
email1.setCcAddresses("test3@uwyn.com,test4@uwyn.com,test5@uwyn.com");
email1.setBccAddresses("test6@uwyn.com,test7@uwyn.com");
email1.setSubject("subject");
email1.setBody("body");
assertEquals(2, email1.getId());
assertEquals("info@uwyn.com", email1.getFromAddress());
assertEquals("test@uwyn.com,test2@uwyn.com", email1.getToAddresses());
assertEquals("test3@uwyn.com,test4@uwyn.com,test5@uwyn.com", email1.getCcAddresses());
assertEquals("test6@uwyn.com,test7@uwyn.com", email1.getBccAddresses());
assertEquals("subject", email1.getSubject());
assertEquals("body", email1.getBody());
Email email2 = new Email();
email2
.id(27)
.from("infob@uwyn.com")
.toAddresses("testb@uwyn.com")
.ccAddresses("test2b@uwyn.com,test3b@uwyn.com")
.bccAddresses("test4b@uwyn.com")
.subject("subjectb")
.body("bodyb");
assertEquals(27, email2.getId());
assertEquals("infob@uwyn.com", email2.getFromAddress());
assertEquals("testb@uwyn.com", email2.getToAddresses());
assertEquals("test2b@uwyn.com,test3b@uwyn.com", email2.getCcAddresses());
assertEquals("test4b@uwyn.com", email2.getBccAddresses());
assertEquals("subjectb", email2.getSubject());
assertEquals("bodyb", email2.getBody());
email2
.to("info2b@uwyn.com")
.cc("test5b@uwyn.com")
.bcc("test6b@uwyn.com");
email2.addTo("info3b@uwyn.net");
email2.addCc("info5b@uwyn.net");
email2.addBcc("info6b@uwyn.net");
assertEquals(27, email2.getId());
assertEquals("infob@uwyn.com", email2.getFromAddress());
assertEquals("testb@uwyn.com,info2b@uwyn.com,info3b@uwyn.net", email2.getToAddresses());
assertEquals("test2b@uwyn.com,test3b@uwyn.com,test5b@uwyn.com,info5b@uwyn.net", email2.getCcAddresses());
assertEquals("test4b@uwyn.com,test6b@uwyn.com,info6b@uwyn.net", email2.getBccAddresses());
assertEquals("subjectb", email2.getSubject());
assertEquals("bodyb", email2.getBody());
}
public void testValidation()
{
Email email = new Email();
Iterator<ValidationError> validationerrors_it = null;
ValidationError validationerror = null;
assertTrue(false == email.validate());
validationerrors_it = email.getValidationErrors().iterator();
assertTrue(validationerrors_it.hasNext());
validationerror = validationerrors_it.next();
assertEquals("MANDATORY", validationerror.getIdentifier());
assertEquals("fromAddress", validationerror.getSubject());
assertTrue(validationerrors_it.hasNext());
validationerror = validationerrors_it.next();
assertEquals("MANDATORY", validationerror.getIdentifier());
assertEquals("toAddresses", validationerror.getSubject());
assertTrue(validationerrors_it.hasNext());
validationerror = validationerrors_it.next();
assertEquals("MANDATORY", validationerror.getIdentifier());
assertEquals("subject", validationerror.getSubject());
assertTrue(validationerrors_it.hasNext());
validationerror = validationerrors_it.next();
assertEquals("MANDATORY", validationerror.getIdentifier());
assertEquals("body", validationerror.getSubject());
assertTrue(false == validationerrors_it.hasNext());
email.resetValidation();
email
.from("")
.toAddresses("")
.subject("")
.body("");
assertTrue(false == email.validate());
validationerrors_it = email.getValidationErrors().iterator();
assertTrue(validationerrors_it.hasNext());
validationerror = validationerrors_it.next();
assertEquals("MANDATORY", validationerror.getIdentifier());
assertEquals("fromAddress", validationerror.getSubject());
assertTrue(validationerrors_it.hasNext());
validationerror = validationerrors_it.next();
assertEquals("MANDATORY", validationerror.getIdentifier());
assertEquals("toAddresses", validationerror.getSubject());
assertTrue(validationerrors_it.hasNext());
validationerror = validationerrors_it.next();
assertEquals("MANDATORY", validationerror.getIdentifier());
assertEquals("subject", validationerror.getSubject());
assertTrue(validationerrors_it.hasNext());
validationerror = validationerrors_it.next();
assertEquals("MANDATORY", validationerror.getIdentifier());
assertEquals("body", validationerror.getSubject());
assertTrue(false == validationerrors_it.hasNext());
email.resetValidation();
email
.from("0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345")
.toAddresses("0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345")
.ccAddresses("0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345")
.bccAddresses("0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345")
.subject("0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345")
.body("0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345");
assertTrue(false == email.validate());
validationerrors_it = email.getValidationErrors().iterator();
assertTrue(validationerrors_it.hasNext());
validationerror = validationerrors_it.next();
assertEquals("WRONGLENGTH", validationerror.getIdentifier());
assertEquals("fromAddress", validationerror.getSubject());
assertTrue(validationerrors_it.hasNext());
validationerror = validationerrors_it.next();
assertEquals("WRONGLENGTH", validationerror.getIdentifier());
assertEquals("toAddresses", validationerror.getSubject());
assertTrue(validationerrors_it.hasNext());
validationerror = validationerrors_it.next();
assertEquals("WRONGLENGTH", validationerror.getIdentifier());
assertEquals("subject", validationerror.getSubject());
assertTrue(validationerrors_it.hasNext());
validationerror = validationerrors_it.next();
assertEquals("WRONGLENGTH", validationerror.getIdentifier());
assertEquals("ccAddresses", validationerror.getSubject());
assertTrue(validationerrors_it.hasNext());
validationerror = validationerrors_it.next();
assertEquals("WRONGLENGTH", validationerror.getIdentifier());
assertEquals("bccAddresses", validationerror.getSubject());
assertTrue(false == validationerrors_it.hasNext());
}
public void testEquals()
{
Email email1 = new Email();
email1.setId(2);
email1.setFromAddress("info@uwyn.com");
email1.setToAddresses("test@uwyn.com");
email1.setCcAddresses("test2@uwyn.com");
email1.setBccAddresses("test3@uwyn.com");
email1.setSubject("subject");
email1.setBody("body");
Email email2 = new Email();
email2.setId(2);
email2.setFromAddress("info@uwyn.com");
email2.setToAddresses("test@uwyn.com");
email2.setCcAddresses("test2@uwyn.com");
email2.setBccAddresses("test3@uwyn.com");
email2.setSubject("subject");
email2.setBody("body");
assertEquals(email1, email2);
email1.setId(3);
assertTrue(email1.equals(email2));
email1.setQueueFlag(true);
assertTrue(email1.equals(email2));
email1.setFromAddress("infob@uwyn.com");
assertFalse(email1.equals(email2));
email2.setFromAddress("infob@uwyn.com");
assertTrue(email1.equals(email2));
email1.setToAddresses("testb@uwyn.com");
assertFalse(email1.equals(email2));
email2.setToAddresses("testb@uwyn.com");
assertTrue(email1.equals(email2));
email1.setCcAddresses("test2b@uwyn.com");
assertFalse(email1.equals(email2));
email2.setCcAddresses("test2b@uwyn.com");
assertTrue(email1.equals(email2));
email1.setBccAddresses("test3b@uwyn.com");
assertFalse(email1.equals(email2));
email2.setBccAddresses("test3b@uwyn.com");
assertTrue(email1.equals(email2));
email1.setSubject("subject1");
assertFalse(email1.equals(email2));
email2.setSubject("subject1");
assertTrue(email1.equals(email2));
email1.setBody("body1");
assertFalse(email1.equals(email2));
email2.setBody("body1");
assertTrue(email1.equals(email2));
}
public void testHashcode()
{
Email email1 = new Email();
email1.setId(2);
email1.setFromAddress("info@uwyn.com");
email1.setToAddresses("test@uwyn.com");
email1.setCcAddresses("test2@uwyn.com");
email1.setBccAddresses("test3@uwyn.com");
email1.setSubject("subject");
email1.setBody("body");
Email email2 = new Email();
email2.setId(2);
email2.setFromAddress("info@uwyn.com");
email2.setToAddresses("test@uwyn.com");
email2.setCcAddresses("test2@uwyn.com");
email2.setBccAddresses("test3@uwyn.com");
email2.setSubject("subject");
email2.setBody("body");
assertTrue(email1.hashCode() == email2.hashCode());
email1.setId(3);
assertTrue(email1.hashCode() == email2.hashCode());
email1.setQueueFlag(true);
assertTrue(email1.hashCode() == email2.hashCode());
email1.setFromAddress("infob@uwyn.com");
assertFalse(email1.hashCode() == email2.hashCode());
email2.setFromAddress("infob@uwyn.com");
assertTrue(email1.hashCode() == email2.hashCode());
email1.setToAddresses("testb@uwyn.com");
assertFalse(email1.hashCode() == email2.hashCode());
email2.setToAddresses("testb@uwyn.com");
assertTrue(email1.hashCode() == email2.hashCode());
email1.setCcAddresses("test2b@uwyn.com");
assertFalse(email1.hashCode() == email2.hashCode());
email2.setCcAddresses("test2b@uwyn.com");
assertTrue(email1.hashCode() == email2.hashCode());
email1.setBccAddresses("test3b@uwyn.com");
assertFalse(email1.hashCode() == email2.hashCode());
email2.setBccAddresses("test3b@uwyn.com");
assertTrue(email1.hashCode() == email2.hashCode());
email1.setSubject("subject1");
assertFalse(email1.hashCode() == email2.hashCode());
email2.setSubject("subject1");
assertTrue(email1.hashCode() == email2.hashCode());
email1.setBody("body1");
assertFalse(email1.hashCode() == email2.hashCode());
email2.setBody("body1");
assertTrue(email1.hashCode() == email2.hashCode());
}
}