package org.drugis.common.threading.event; import static org.drugis.common.JUnitUtil.assertNotEquals; import static org.junit.Assert.assertEquals; import org.drugis.common.threading.Task; import org.junit.Before; import org.junit.Test; public class EventTest { private Task d_task1; private Task d_task2; private Task d_task3; @Before public void setUp() { d_task1 = Util.buildNullTask(); d_task2 = Util.buildNullTask(); d_task3 = Util.buildNullTask(); } @Test public void startEventEqOnSource() { assertEquals(new TaskStartedEvent(d_task1), new TaskStartedEvent(d_task1)); assertEquals(new TaskStartedEvent(d_task1).hashCode(), new TaskStartedEvent(d_task1).hashCode()); assertNotEquals(new TaskStartedEvent(d_task1), new TaskStartedEvent(d_task2)); } @Test public void finishedEventEqOnSource() { assertEquals(new TaskFinishedEvent(d_task1), new TaskFinishedEvent(d_task1)); assertEquals(new TaskFinishedEvent(d_task1).hashCode(), new TaskFinishedEvent(d_task1).hashCode()); assertNotEquals(new TaskFinishedEvent(d_task1), new TaskFinishedEvent(d_task2)); } @Test public void abortedEventEqOnSource() { assertEquals(new TaskAbortedEvent(d_task1), new TaskAbortedEvent(d_task1)); assertEquals(new TaskAbortedEvent(d_task1).hashCode(), new TaskAbortedEvent(d_task1).hashCode()); assertNotEquals(new TaskAbortedEvent(d_task1), new TaskAbortedEvent(d_task2)); } @Test public void progressEventEqOnMembers() { assertEquals(new TaskProgressEvent(d_task1, 100, 10000), new TaskProgressEvent(d_task1, 100, 10000)); assertEquals(new TaskProgressEvent(d_task1, 100, 10000).hashCode(), new TaskProgressEvent(d_task1, 100, 10000).hashCode()); assertNotEquals(new TaskProgressEvent(d_task1, 100, 10000), new TaskProgressEvent(d_task2, 100, 10000)); assertNotEquals(new TaskProgressEvent(d_task1, 100, 10000), new TaskProgressEvent(d_task1, 200, 10000)); assertNotEquals(new TaskProgressEvent(d_task1, 100, 10000), new TaskProgressEvent(d_task1, 100, 20000)); } @Test public void failedEventEqOnSourceAndCause() { Exception cause = new Exception("FAIL"); assertEquals(new TaskFailedEvent(d_task1, cause), new TaskFailedEvent(d_task1, cause)); assertEquals(new TaskFailedEvent(d_task1, cause).hashCode(), new TaskFailedEvent(d_task1, cause).hashCode()); assertNotEquals(new TaskFailedEvent(d_task1, cause), new TaskFailedEvent(d_task2, cause)); assertNotEquals(new TaskFailedEvent(d_task1, cause), new TaskFailedEvent(d_task1, new Exception("FAIL"))); } @Test public void phaseStartedEventEqOnSourceAndPhase() { assertEquals(new PhaseStartedEvent(d_task1, d_task2), new PhaseStartedEvent(d_task1, d_task2)); assertEquals(new PhaseStartedEvent(d_task1, d_task2).hashCode(), new PhaseStartedEvent(d_task1, d_task2).hashCode()); assertNotEquals(new PhaseStartedEvent(d_task1, d_task2), new PhaseStartedEvent(d_task1, d_task3)); assertNotEquals(new PhaseStartedEvent(d_task1, d_task2), new PhaseStartedEvent(d_task3, d_task2)); } @Test public void phaseFinishedEventEqOnSourceAndPhase() { assertEquals(new PhaseFinishedEvent(d_task1, d_task2), new PhaseFinishedEvent(d_task1, d_task2)); assertEquals(new PhaseFinishedEvent(d_task1, d_task2).hashCode(), new PhaseFinishedEvent(d_task1, d_task2).hashCode()); assertNotEquals(new PhaseFinishedEvent(d_task1, d_task2), new PhaseFinishedEvent(d_task1, d_task3)); assertNotEquals(new PhaseFinishedEvent(d_task1, d_task2), new PhaseFinishedEvent(d_task3, d_task2)); } @Test public void startEventNeqOnType() { assertNotEquals(new TaskStartedEvent(d_task1), new TaskFinishedEvent(d_task1)); assertNotEquals(new TaskFinishedEvent(d_task1), new TaskStartedEvent(d_task1)); assertNotEquals(new TaskStartedEvent(d_task1), new TaskAbortedEvent(d_task1)); assertNotEquals(new TaskAbortedEvent(d_task1), new TaskStartedEvent(d_task1)); assertNotEquals(new TaskStartedEvent(d_task1), new TaskProgressEvent(d_task1, 100, 10000)); assertNotEquals(new TaskProgressEvent(d_task1, 100, 10000), new TaskStartedEvent(d_task1)); Exception cause = new Exception("FAIL"); assertNotEquals(new TaskStartedEvent(d_task1), new TaskFailedEvent(d_task1, cause)); assertNotEquals(new TaskFailedEvent(d_task1, cause), new TaskStartedEvent(d_task1)); assertNotEquals(new PhaseStartedEvent(d_task1, d_task2), new TaskStartedEvent(d_task1)); assertNotEquals(new TaskStartedEvent(d_task1), new PhaseStartedEvent(d_task1, d_task2)); assertNotEquals(new PhaseFinishedEvent(d_task1, d_task2), new TaskStartedEvent(d_task1)); assertNotEquals(new TaskStartedEvent(d_task1), new PhaseFinishedEvent(d_task1, d_task2)); } }