Search in sources :

Example 96 with StateMachineInstance

use of io.seata.saga.statelang.domain.StateMachineInstance in project seata by seata.

the class StateMachineAsyncTests method testCompensationStateMachine.

@Test
public void testCompensationStateMachine() {
    long start = System.currentTimeMillis();
    Map<String, Object> paramMap = new HashMap<>(1);
    paramMap.put("a", 1);
    paramMap.put("barThrowException", "true");
    String stateMachineName = "simpleCompensationStateMachine";
    StateMachineInstance inst = stateMachineEngine.startAsync(stateMachineName, null, paramMap, callback);
    waittingForFinish(inst);
    long cost = System.currentTimeMillis() - start;
    System.out.println("====== cost :" + cost);
    Assertions.assertTrue(ExecutionStatus.UN.equals(inst.getStatus()));
    Assertions.assertTrue(ExecutionStatus.SU.equals(inst.getCompensationStatus()));
}
Also used : HashMap(java.util.HashMap) StateMachineInstance(io.seata.saga.statelang.domain.StateMachineInstance) Test(org.junit.jupiter.api.Test)

Example 97 with StateMachineInstance

use of io.seata.saga.statelang.domain.StateMachineInstance in project seata by seata.

the class StateMachineAsyncTests method testSimpleStateMachineWithAsyncState.

@Test
public void testSimpleStateMachineWithAsyncState() {
    long start = System.currentTimeMillis();
    Map<String, Object> paramMap = new HashMap<>(1);
    paramMap.put("a", 1);
    String stateMachineName = "simpleStateMachineWithAsyncState";
    StateMachineInstance inst = stateMachineEngine.startAsync(stateMachineName, null, paramMap, callback);
    waittingForFinish(inst);
    long cost = System.currentTimeMillis() - start;
    System.out.println("====== cost :" + cost);
    Assertions.assertTrue(ExecutionStatus.SU.equals(inst.getStatus()));
    try {
        Thread.sleep(500);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}
Also used : HashMap(java.util.HashMap) StateMachineInstance(io.seata.saga.statelang.domain.StateMachineInstance) Test(org.junit.jupiter.api.Test)

Example 98 with StateMachineInstance

use of io.seata.saga.statelang.domain.StateMachineInstance in project seata by seata.

the class StateMachineAsyncTests method testStateMachineWithComplexParams.

@Test
public void testStateMachineWithComplexParams() {
    long start = System.currentTimeMillis();
    Map<String, Object> paramMap = new HashMap<>(1);
    People people = new People();
    people.setName("lilei");
    people.setAge(18);
    paramMap.put("people", people);
    String stateMachineName = "simpleStateMachineWithComplexParams";
    StateMachineInstance inst = stateMachineEngine.startAsync(stateMachineName, null, paramMap, callback);
    waittingForFinish(inst);
    long cost = System.currentTimeMillis() - start;
    People peopleResult = (People) inst.getEndParams().get("complexParameterMethodResult");
    Assertions.assertNotNull(peopleResult);
    Assertions.assertTrue(people.getName().equals(people.getName()));
    System.out.println("====== cost :" + cost);
    Assertions.assertTrue(ExecutionStatus.SU.equals(inst.getStatus()));
}
Also used : HashMap(java.util.HashMap) People(io.seata.saga.engine.mock.DemoService.People) StateMachineInstance(io.seata.saga.statelang.domain.StateMachineInstance) Test(org.junit.jupiter.api.Test)

Example 99 with StateMachineInstance

use of io.seata.saga.statelang.domain.StateMachineInstance in project seata by seata.

the class StateMachineAsyncTests method testSimpleRetryStateMachine.

@Test
public void testSimpleRetryStateMachine() {
    long start = System.currentTimeMillis();
    Map<String, Object> paramMap = new HashMap<>(1);
    paramMap.put("a", 1);
    paramMap.put("barThrowException", "true");
    String stateMachineName = "simpleRetryStateMachine";
    StateMachineInstance inst = stateMachineEngine.startAsync(stateMachineName, null, paramMap, callback);
    waittingForFinish(inst);
    long cost = System.currentTimeMillis() - start;
    System.out.println("====== cost :" + cost);
    Assertions.assertNotNull(inst.getException());
    Assertions.assertTrue(ExecutionStatus.FA.equals(inst.getStatus()));
}
Also used : HashMap(java.util.HashMap) StateMachineInstance(io.seata.saga.statelang.domain.StateMachineInstance) Test(org.junit.jupiter.api.Test)

Example 100 with StateMachineInstance

use of io.seata.saga.statelang.domain.StateMachineInstance in project seata by seata.

the class StateMachineAsyncTests method testCompensationAndSubStateMachineWithLayout.

@Test
public void testCompensationAndSubStateMachineWithLayout() {
    long start = System.currentTimeMillis();
    Map<String, Object> paramMap = new HashMap<>(1);
    paramMap.put("a", 2);
    paramMap.put("barThrowException", "true");
    String stateMachineName = "simpleStateMachineWithCompensationAndSubMachine_layout";
    StateMachineInstance inst = stateMachineEngine.startAsync(stateMachineName, null, paramMap, callback);
    waittingForFinish(inst);
    long cost = System.currentTimeMillis() - start;
    System.out.println("====== cost :" + cost);
    Assertions.assertTrue(ExecutionStatus.UN.equals(inst.getStatus()));
}
Also used : HashMap(java.util.HashMap) StateMachineInstance(io.seata.saga.statelang.domain.StateMachineInstance) Test(org.junit.jupiter.api.Test)

Aggregations

StateMachineInstance (io.seata.saga.statelang.domain.StateMachineInstance)113 HashMap (java.util.HashMap)80 Test (org.junit.jupiter.api.Test)76 EngineExecutionException (io.seata.saga.engine.exception.EngineExecutionException)21 GlobalTransaction (io.seata.tm.api.GlobalTransaction)17 StateMachineConfig (io.seata.saga.engine.StateMachineConfig)16 StateInstance (io.seata.saga.statelang.domain.StateInstance)16 StateInstruction (io.seata.saga.engine.pcext.StateInstruction)15 ArrayList (java.util.ArrayList)12 Map (java.util.Map)12 ForwardInvalidException (io.seata.saga.engine.exception.ForwardInvalidException)7 ProcessContext (io.seata.saga.proctrl.ProcessContext)6 People (io.seata.saga.engine.mock.DemoService.People)5 ExecutionStatus (io.seata.saga.statelang.domain.ExecutionStatus)5 Loop (io.seata.saga.statelang.domain.TaskState.Loop)5 Date (java.util.Date)5 LinkedHashMap (java.util.LinkedHashMap)5 TransactionException (io.seata.core.exception.TransactionException)4 AbstractTaskState (io.seata.saga.statelang.domain.impl.AbstractTaskState)4 List (java.util.List)4