/** Tests for consistent internal status before and after the update method is called. */ public void testUpdate() { long testStartTime = System.currentTimeMillis(); Mockery context = new Mockery() { { setImposteriser(ClassImposteriser.INSTANCE); } }; final RoutedConnection connection = context.mock(RoutedConnection.class); context.checking( new Expectations() { { one(connection).isOutgoing(); will(returnValue(false)); one(connection).isOutgoing(); will(returnValue(true)); allowing(connection).getConnectionTime(); will(returnValue(101010L)); allowing(connection); } }); CoreConnectionItem item = new CoreConnectionItem(connection); assertSame(connection, item.getRoutedConnection()); assertTrue(item.isConnecting()); assertFalse(item.isConnected()); assertEquals(Status.CONNECTING, item.getStatus()); // Ensure the initialisation time value is somewhat sane, aka something bigger // than the start time of the test. assertGreaterThanOrEquals(testStartTime, item.getTime()); item.update(); assertFalse(item.isConnecting()); assertTrue(item.isConnected()); assertEquals(Status.INCOMING, item.getStatus()); item.update(); assertFalse(item.isConnecting()); assertTrue(item.isConnected()); assertEquals(Status.OUTGOING, item.getStatus()); assertEquals(101010, item.getTime()); context.assertIsSatisfied(); }