package org.marketcetera.event.util; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.Test; import org.marketcetera.event.Messages; import org.marketcetera.event.beans.EventBean; import org.marketcetera.event.beans.HasEventBean; import org.marketcetera.module.ExpectedFailure; /* $License$ */ /** * Tests {@link EventServices}. * * @author <a href="mailto:colin@marketcetera.com">Colin DuPlantis</a> * @version $Id: EventServicesTest.java 16154 2012-07-14 16:34:05Z colin $ * @since 2.0.0 */ public class EventServicesTest implements Messages { /** * Tests {@link EventServices#error(org.marketcetera.util.log.I18NBoundMessage)}. * * @throws Exception if an unexpected error occurs */ @Test public void error() throws Exception { new ExpectedFailure<NullPointerException>() { @Override protected void run() throws Exception { EventServices.error(null); } }; new ExpectedFailure<IllegalArgumentException>(VALIDATION_NULL_QUOTE_ACTION.getText()) { @Override protected void run() throws Exception { EventServices.error(VALIDATION_NULL_QUOTE_ACTION); } }; } /** * Tests {@link EventServices#eventEquals(Object, Object)} and {@link EventServices#eventHashCode(org.marketcetera.event.beans.HasEventBean)}. * * @throws Exception if an unexpected error occurs */ @Test public void eventEquals() throws Exception { // this bean has an eventbean with a messageid of 1 HasEventBean e1 = new HasEventBean() { private final EventBean bean = new EventBean(); @Override public EventBean getEventBean() { bean.setMessageId(1); return bean; } }; // this bean has an eventbean also with a messageid of 1 HasEventBean e2 = new HasEventBean() { private final EventBean bean = new EventBean(); @Override public EventBean getEventBean() { bean.setMessageId(1); return bean; } }; // this bean has an eventbean also with a messageid of 2 HasEventBean e3 = new HasEventBean() { private final EventBean bean = new EventBean(); @Override public EventBean getEventBean() { bean.setMessageId(2); return bean; } }; // this bean does not have an event bean (it lies) HasEventBean e4 = new HasEventBean() { @Override public EventBean getEventBean() { return null; } }; // this bean also oes not have an event bean (it lies like e4, but is not e4) HasEventBean e5 = new HasEventBean() { @Override public EventBean getEventBean() { return null; } }; assertTrue(EventServices.eventEquals(null, null)); assertTrue(EventServices.eventEquals(e1, e1)); assertTrue(EventServices.eventEquals(e1, e2)); assertTrue(EventServices.eventEquals(e2, e1)); assertTrue(EventServices.eventEquals(e4, e5)); assertFalse(EventServices.eventEquals(e1, null)); assertFalse(EventServices.eventEquals(null, e1)); assertFalse(EventServices.eventEquals(e4, null)); assertFalse(EventServices.eventEquals(null, e4)); assertFalse(EventServices.eventEquals(e1, e3)); assertFalse(EventServices.eventEquals(e3, e1)); assertFalse(EventServices.eventEquals(e1, e4)); assertFalse(EventServices.eventEquals(e4, e1)); assertFalse(EventServices.eventEquals(e3, e4)); assertFalse(EventServices.eventEquals(e4, e3)); assertFalse(EventServices.eventEquals(e1, this)); assertFalse(EventServices.eventEquals(this, e1)); // test eventHashCode assertTrue(EventServices.eventHashCode(null) == EventServices.eventHashCode(null)); assertTrue(EventServices.eventHashCode(e1) == EventServices.eventHashCode(e2)); assertTrue(EventServices.eventHashCode(e4) == EventServices.eventHashCode(e5)); assertTrue(EventServices.eventHashCode(e4) == EventServices.eventHashCode(null)); assertFalse(EventServices.eventHashCode(e1) == EventServices.eventHashCode(null)); assertFalse(EventServices.eventHashCode(e1) == EventServices.eventHashCode(e3)); assertFalse(EventServices.eventHashCode(e1) == EventServices.eventHashCode(e4)); assertFalse(EventServices.eventHashCode(e3) == EventServices.eventHashCode(e4)); } }