private static void assertFinalState(StageStateMachine stateMachine, StageState expectedState) { assertTrue(expectedState.isDone()); assertState(stateMachine, expectedState); assertFalse(stateMachine.transitionToScheduling()); assertState(stateMachine, expectedState); assertFalse(stateMachine.transitionToScheduled()); assertState(stateMachine, expectedState); assertFalse(stateMachine.transitionToRunning()); assertState(stateMachine, expectedState); assertFalse(stateMachine.transitionToFinished()); assertState(stateMachine, expectedState); assertFalse(stateMachine.transitionToFailed(FAILED_CAUSE)); assertState(stateMachine, expectedState); assertFalse(stateMachine.transitionToAborted()); assertState(stateMachine, expectedState); // attempt to fail with another exception, which will fail assertFalse(stateMachine.transitionToFailed(new IOException("failure after finish"))); assertState(stateMachine, expectedState); }
@Test public void testPlanned() { StageStateMachine stateMachine = createStageStateMachine(); assertState(stateMachine, StageState.PLANNED); stateMachine = createStageStateMachine(); assertTrue(stateMachine.transitionToScheduling()); assertState(stateMachine, StageState.SCHEDULING); stateMachine = createStageStateMachine(); assertTrue(stateMachine.transitionToRunning()); assertState(stateMachine, StageState.RUNNING); stateMachine = createStageStateMachine(); assertTrue(stateMachine.transitionToFinished()); assertState(stateMachine, StageState.FINISHED); stateMachine = createStageStateMachine(); assertTrue(stateMachine.transitionToFailed(FAILED_CAUSE)); assertState(stateMachine, StageState.FAILED); stateMachine = createStageStateMachine(); assertTrue(stateMachine.transitionToAborted()); assertState(stateMachine, StageState.ABORTED); stateMachine = createStageStateMachine(); assertTrue(stateMachine.transitionToCanceled()); assertState(stateMachine, StageState.CANCELED); }
@Test public void testAborted() { StageStateMachine stateMachine = createStageStateMachine(); assertTrue(stateMachine.transitionToAborted()); assertFinalState(stateMachine, StageState.ABORTED); }