Example usage for org.springframework.statemachine.recipes TestStateMachinePersist TestStateMachinePersist

List of usage examples for org.springframework.statemachine.recipes TestStateMachinePersist TestStateMachinePersist

Introduction

In this page you can find the example usage for org.springframework.statemachine.recipes TestStateMachinePersist TestStateMachinePersist.

Prototype

public TestStateMachinePersist(StateMachineContext<String, String> context) 

Source Link

Usage

From source file:org.springframework.statemachine.recipes.TasksHandlerTests.java

@Test
public void testReset2() throws InterruptedException {
    DefaultStateMachineContext<String, String> child = new DefaultStateMachineContext<String, String>("MANUAL",
            null, null, null);// w w w. j a v a2  s.  c  o  m
    List<StateMachineContext<String, String>> childs = new ArrayList<StateMachineContext<String, String>>();
    childs.add(child);
    DefaultStateMachineContext<String, String> context = new DefaultStateMachineContext<String, String>(childs,
            "ERROR", null, null, null);
    TestStateMachinePersist persist = new TestStateMachinePersist(context);
    TasksHandler handler = TasksHandler.builder().task("1", sleepRunnable()).task("2", sleepRunnable())
            .task("3", sleepRunnable()).persist(persist).build();

    TestListener listener = new TestListener();
    StateMachine<String, String> machine = handler.getStateMachine();
    machine.addStateListener(listener);

    handler.resetFromPersistStore();

    assertThat(listener.stateMachineStartedLatch.await(1, TimeUnit.SECONDS), is(true));
    assertThat(machine.getState().getIds(), contains(TasksHandler.STATE_ERROR, TasksHandler.STATE_MANUAL));
}

From source file:org.springframework.statemachine.recipes.TasksHandlerTests.java

@Test
public void testReset3() throws InterruptedException {
    log.info("testReset3 start");
    List<StateMachineContext<String, String>> childs = new ArrayList<StateMachineContext<String, String>>();
    DefaultStateMachineContext<String, String> context = new DefaultStateMachineContext<String, String>(childs,
            "ERROR", null, null, null);
    TestStateMachinePersist persist = new TestStateMachinePersist(context);
    TasksHandler handler = TasksHandler.builder().task("1", sleepRunnable()).task("2", sleepRunnable())
            .task("3", sleepRunnable()).persist(persist).build();

    TestListener listener = new TestListener();
    listener.reset(2, 0, 0);//from  w w  w .  j av  a2 s .  c  o  m
    StateMachine<String, String> machine = handler.getStateMachine();
    machine.addStateListener(listener);

    handler.resetFromPersistStore();

    log.info("testReset3 wait stateMachineStartedLatch");
    assertThat(listener.stateMachineStartedLatch.await(1, TimeUnit.SECONDS), is(true));

    log.info("testReset3 wait stateChangedLatch");
    assertThat(listener.stateChangedLatch.await(4, TimeUnit.SECONDS), is(true));
    assertThat(listener.stateChangedCount, is(2));
    assertThat(machine.getState().getIds(), contains(TasksHandler.STATE_READY));
}

From source file:org.springframework.statemachine.recipes.TasksHandlerTests.java

public void testReset4() throws InterruptedException {
    // TODO: automaticAction() is not executed when state is reset
    DefaultStateMachineContext<String, String> child = new DefaultStateMachineContext<String, String>(
            "AUTOMATIC", null, null, null);
    List<StateMachineContext<String, String>> childs = new ArrayList<StateMachineContext<String, String>>();
    childs.add(child);/*from w  ww.  ja v  a 2 s  .co m*/
    DefaultStateMachineContext<String, String> context = new DefaultStateMachineContext<String, String>(childs,
            "ERROR", null, null, null);
    TestStateMachinePersist persist = new TestStateMachinePersist(context);
    TasksHandler handler = TasksHandler.builder().task("1", sleepRunnable()).task("2", sleepRunnable())
            .task("3", sleepRunnable()).persist(persist).build();

    TestListener listener = new TestListener();
    listener.reset(2, 0, 0);
    StateMachine<String, String> machine = handler.getStateMachine();
    machine.addStateListener(listener);

    handler.resetFromPersistStore();

    assertThat(listener.stateMachineStartedLatch.await(1, TimeUnit.SECONDS), is(true));

    assertThat(listener.stateChangedLatch.await(4, TimeUnit.SECONDS), is(true));
    assertThat(listener.stateChangedCount, is(2));
    assertThat(machine.getState().getIds(), contains(TasksHandler.STATE_READY));
}