@Test
	public void testReadyStateTransition() throws ProcessExecutionException, ProcessRollbackException {

		IProcessComponent<?> comp = TestUtil.executionSuccessComponent(true);

		assertTrue(comp.getState() == ProcessState.READY);

		// test valid operation
		TestUtil.setState(comp, ProcessState.READY);
		try {
			comp.execute();
		} catch (InvalidProcessStateException ex) {
			fail("This operation should have been allowed.");
		}

		// test invalid operations
		TestUtil.setState(comp, ProcessState.READY);
		try {
			comp.rollback();
			fail("InvalidProcessStateException should have been thrown.");
		} catch (InvalidProcessStateException ex) {
			// should happen
		}
		TestUtil.setState(comp, ProcessState.READY);
		try {
			comp.pause();
			fail("InvalidProcessStateException should have been thrown.");
		} catch (InvalidProcessStateException ex) {
			// should happen
		}
		TestUtil.setState(comp, ProcessState.READY);
		try {
			comp.resume();
			fail("InvalidProcessStateException should have been thrown.");
		} catch (InvalidProcessStateException ex) {
			// should happen
		}
	}