Search in sources :

Example 11 with StateMachineInstance

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

the class StateMachineAsyncTests method testStatusMatchingStateMachine.

@Test
public void testStatusMatchingStateMachine() {
    long start = System.currentTimeMillis();
    Map<String, Object> paramMap = new HashMap<>(1);
    paramMap.put("a", 1);
    paramMap.put("barThrowException", "true");
    String stateMachineName = "simpleStatusMatchingStateMachine";
    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.UN.equals(inst.getStatus()));
}
Also used : HashMap(java.util.HashMap) StateMachineInstance(io.seata.saga.statelang.domain.StateMachineInstance) Test(org.junit.jupiter.api.Test)

Example 12 with StateMachineInstance

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

the class StateMachineAsyncTests method testCompensationAndSubStateMachine.

@Test
public void testCompensationAndSubStateMachine() {
    long start = System.currentTimeMillis();
    Map<String, Object> paramMap = new HashMap<>(1);
    paramMap.put("a", 2);
    paramMap.put("barThrowException", "true");
    String stateMachineName = "simpleStateMachineWithCompensationAndSubMachine";
    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)

Example 13 with StateMachineInstance

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

the class StateMachineAsyncTests method testSimpleCatchesStateMachine.

@Test
public void testSimpleCatchesStateMachine() {
    long start = System.currentTimeMillis();
    Map<String, Object> paramMap = new HashMap<>(1);
    paramMap.put("a", 1);
    paramMap.put("barThrowException", "true");
    String stateMachineName = "simpleCachesStateMachine";
    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 14 with StateMachineInstance

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

the class StateMachineAsyncTests method testSimpleScriptTaskStateMachine.

@Test
public void testSimpleScriptTaskStateMachine() {
    long start = System.currentTimeMillis();
    Map<String, Object> paramMap = new HashMap<>(1);
    paramMap.put("a", 1);
    String stateMachineName = "simpleScriptTaskStateMachine";
    StateMachineInstance inst = stateMachineEngine.start(stateMachineName, null, paramMap);
    waittingForFinish(inst);
    long cost = System.currentTimeMillis() - start;
    System.out.println("====== cost :" + cost);
    Assertions.assertTrue(ExecutionStatus.SU.equals(inst.getStatus()));
    Assertions.assertNotNull(inst.getEndParams().get("scriptStateResult"));
    start = System.currentTimeMillis();
    inst = stateMachineEngine.start(stateMachineName, null, paramMap);
    waittingForFinish(inst);
    cost = System.currentTimeMillis() - start;
    System.out.println("====== cost :" + cost);
    Assertions.assertTrue(ExecutionStatus.SU.equals(inst.getStatus()));
    start = System.currentTimeMillis();
    paramMap.put("scriptThrowException", true);
    inst = stateMachineEngine.start(stateMachineName, null, paramMap);
    waittingForFinish(inst);
    cost = System.currentTimeMillis() - start;
    System.out.println("====== cost :" + cost);
    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 15 with StateMachineInstance

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

the class StateMachineTests method testStatusMatchingStateMachine.

@Test
public void testStatusMatchingStateMachine() {
    long start = System.currentTimeMillis();
    Map<String, Object> paramMap = new HashMap<>(1);
    paramMap.put("a", 1);
    paramMap.put("barThrowException", "true");
    String stateMachineName = "simpleStatusMatchingStateMachine";
    StateMachineInstance inst = stateMachineEngine.start(stateMachineName, null, paramMap);
    long cost = System.currentTimeMillis() - start;
    System.out.println("====== cost :" + cost);
    Assertions.assertNotNull(inst.getException());
    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