Example usage for org.springframework.statemachine.recipes.tasks TasksHandler continueFromError

List of usage examples for org.springframework.statemachine.recipes.tasks TasksHandler continueFromError

Introduction

In this page you can find the example usage for org.springframework.statemachine.recipes.tasks TasksHandler continueFromError.

Prototype

public void continueFromError() 

Source Link

Document

Request to continue from an error.

Usage

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);/*from  www. j  a  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);//from  www  .j av  a 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));
}