List of usage examples for org.springframework.statemachine.recipes.tasks TasksHandler fixCurrentProblems
public void fixCurrentProblems()
From source file:org.springframework.statemachine.recipes.TasksHandlerTests.java
@Test public void testRunFailAndFixAndContinue() throws InterruptedException { TasksHandler handler = TasksHandler.builder().task("1", sleepRunnable()).task("2", sleepRunnable()) .task("3", failRunnable()).build(); TestListener listener = new TestListener(); listener.reset(11, 0, 0);/*ww w . ja v a 2 s . c o m*/ StateMachine<String, String> machine = handler.getStateMachine(); machine.addStateListener(listener); machine.start(); assertThat(listener.stateMachineStartedLatch.await(1, TimeUnit.SECONDS), is(true)); handler.runTasks(); assertThat(listener.stateChangedLatch.await(8, TimeUnit.SECONDS), is(true)); assertThat(listener.stateChangedCount, is(11)); assertThat(machine.getState().getIds(), contains(TasksHandler.STATE_ERROR, TasksHandler.STATE_MANUAL)); listener.reset(0, 0, 0, 0, 1); handler.fixCurrentProblems(); assertThat(listener.extendedStateChangedLatch.await(1, TimeUnit.SECONDS), is(true)); listener.reset(1, 0, 0); handler.continueFromError(); assertThat(listener.stateChangedLatch.await(1, TimeUnit.SECONDS), is(true)); assertThat(listener.stateChangedCount, is(1)); assertThat(machine.getState().getIds(), contains(TasksHandler.STATE_READY)); }
From source file:org.springframework.statemachine.recipes.TasksHandlerTests.java
@Test public void testEvents3() throws InterruptedException { TestTasksListener tasksListener = new TestTasksListener(); TasksHandler handler = TasksHandler.builder().task("1", sleepRunnable()).task("2", sleepRunnable()) .task("3", failRunnable()).listener(tasksListener).build(); TestListener listener = new TestListener(); listener.reset(11, 0, 0);// w w w .j a va 2 s . c om StateMachine<String, String> machine = handler.getStateMachine(); machine.addStateListener(listener); machine.start(); assertThat(listener.stateMachineStartedLatch.await(1, TimeUnit.SECONDS), is(true)); tasksListener.reset(0, 1, 0, 0, 0, 0, 0, 0); handler.runTasks(); assertThat(listener.stateChangedLatch.await(8, TimeUnit.SECONDS), is(true)); assertThat(listener.stateChangedCount, is(11)); assertThat(machine.getState().getIds(), contains(TasksHandler.STATE_ERROR, TasksHandler.STATE_MANUAL)); listener.reset(1, 0, 0); handler.fixCurrentProblems(); handler.continueFromError(); assertThat(listener.stateChangedLatch.await(1, TimeUnit.SECONDS), is(true)); assertThat(listener.stateChangedCount, is(1)); assertThat(machine.getState().getIds(), contains(TasksHandler.STATE_READY)); assertThat(tasksListener.onTasksContinueLatch.await(1, TimeUnit.SECONDS), is(true)); assertThat(tasksListener.onTasksContinue, is(1)); }