package net.sourceforge.cruisecontrol.publishers.email; import junit.framework.TestCase; import org.masukomi.aspirin.core.MailQue; import org.masukomi.aspirin.core.MailWatcher; public class EmailTransmissionResultTest extends TestCase { private class MockMailQue extends MailQue { private boolean terminated; @Override public void terminate() { super.terminate(); terminated = true; } public boolean isTerminated() { return terminated; } } public void testShouldImplementMailWatcherInterface() throws Exception { final EmailTransmissionResult result = new EmailTransmissionResult(); assertEquals(true, result instanceof MailWatcher); } public void testShouldBeSuccessfulWhenThereAreNoDeliveryFailures() throws Exception { final EmailTransmissionResult result = new EmailTransmissionResult(); assertEquals(true, result.isSuccess()); } public void testShouldNotBeSuccessfulWhenThereIsAtLeastOneDeliveryFailure() throws Exception { final EmailTransmissionResult result = new EmailTransmissionResult(); result.deliveryFailure(null, null, null, null); assertEquals(false, result.isSuccess()); } public void testShouldTerminateMailQueWhenFinished() throws Exception { final MockMailQue queue = new MockMailQue(); final EmailTransmissionResult result = new EmailTransmissionResult(); result.deliveryFinished(queue, null); assertEquals(true, queue.isTerminated()); } }