/* * Copyright 2001-2008 Geert Bevin <gbevin[remove] at uwyn dot com> * Licensed under the Apache License, Version 2.0 (the "License") * $Id: TestDatabaseMailQueue.java 3918 2008-04-14 17:35:35Z gbevin $ */ package com.uwyn.rife.mail.dam; import com.uwyn.rife.database.Datasource; import com.uwyn.rife.mail.Email; import com.uwyn.rife.mail.exceptions.InstallMailQueueErrorException; import com.uwyn.rife.mail.exceptions.RemoveMailQueueErrorException; import java.util.Properties; import javax.mail.Message; import javax.mail.Session; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import junit.framework.TestCase; public class TestDatabaseMailQueue extends TestCase { private Datasource mDatasource = null; public TestDatabaseMailQueue(Datasource datasource, String datasourceName, String name) { super(name); mDatasource = datasource; } public void setUp() throws Exception { DatabaseMailQueueFactory.getInstance(mDatasource).install(); } public void tearDown() throws Exception { try { DatabaseMailQueueFactory.getInstance(mDatasource).remove(); } catch (Throwable e) { // discart errors } } public void testInstallError() { DatabaseMailQueue manager = DatabaseMailQueueFactory.getInstance(mDatasource); try { manager.install(); fail(); } catch (InstallMailQueueErrorException e) { assertNotNull(e.getCause()); } } public void testRemoveError() throws Exception { DatabaseMailQueueFactory.getInstance(mDatasource).remove(); DatabaseMailQueue manager = DatabaseMailQueueFactory.getInstance(mDatasource); try { manager.remove(); fail(); } catch (RemoveMailQueueErrorException e) { assertNotNull(e.getCause()); } } public void testQueue() throws Exception { DatabaseMailQueue manager = DatabaseMailQueueFactory.getInstance(mDatasource); assertTrue(manager.queue(new Email() .from("info@uwyn.com") .toAddresses("test@uwyn.com") .ccAddresses("test2@uwyn.com,test3@uwyn.com") .bccAddresses("test4@uwyn.com") .subject("subject") .body("body"))); assertFalse(manager.queue(new Email() .from("info@uwyn.com") .toAddresses("test@uwyn.com") .ccAddresses("test2@uwyn.com,test3@uwyn.com") .bccAddresses("test4@uwyn.com") .subject("subject") .body("body"))); assertTrue(manager.queue(new Email() .from("infob@uwyn.com") .toAddresses("test@uwyn.com") .ccAddresses("test2@uwyn.com,test3@uwyn.com") .bccAddresses("test4@uwyn.com") .subject("subject") .body("body"))); } public void testQueueJavamail() throws Exception { DatabaseMailQueue manager = DatabaseMailQueueFactory.getInstance(mDatasource); Session mail_session = Session.getDefaultInstance(new Properties()); MimeMessage message1 = new MimeMessage(mail_session); message1.setFrom(new InternetAddress("info@uwyn.com")); message1.addRecipient(Message.RecipientType.TO, new InternetAddress("test@uwyn.com")); message1.addRecipient(Message.RecipientType.CC, new InternetAddress("test2@uwyn.com")); message1.addRecipient(Message.RecipientType.CC, new InternetAddress("test3@uwyn.com")); message1.addRecipient(Message.RecipientType.BCC, new InternetAddress("test4@uwyn.com")); message1.setSubject("subject"); message1.setText("body"); MimeMessage message2 = new MimeMessage(mail_session); message2.setFrom(new InternetAddress("info@uwyn.com")); message2.addRecipient(Message.RecipientType.TO, new InternetAddress("test@uwyn.com")); message2.addRecipient(Message.RecipientType.CC, new InternetAddress("test2@uwyn.com")); message2.addRecipient(Message.RecipientType.CC, new InternetAddress("test3@uwyn.com")); message2.addRecipient(Message.RecipientType.BCC, new InternetAddress("test4@uwyn.com")); message2.setSubject("subject"); message2.setText("body"); MimeMessage message3 = new MimeMessage(mail_session); message3.setFrom(new InternetAddress("infob@uwyn.com")); message3.addRecipient(Message.RecipientType.TO, new InternetAddress("test@uwyn.com")); message3.addRecipient(Message.RecipientType.CC, new InternetAddress("test2@uwyn.com")); message3.addRecipient(Message.RecipientType.CC, new InternetAddress("test3@uwyn.com")); message3.addRecipient(Message.RecipientType.BCC, new InternetAddress("test4@uwyn.com")); message3.setSubject("subject"); message3.setText("body"); assertTrue(manager.queue(message1)); assertTrue(manager.queue(message2)); assertTrue(manager.queue(message3)); } }