List of usage examples for org.springframework.statemachine.recipes TestStateMachinePersist TestStateMachinePersist
public TestStateMachinePersist(StateMachineContext<String, String> context)
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)); }