diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainJsonELSpringTest.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainJsonELSpringTest.java new file mode 100644 index 000000000..0fbfb81fc --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainJsonELSpringTest.java @@ -0,0 +1,45 @@ +package com.yomahub.liteflow.test.abstractChain; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.flow.LiteflowResponse; +import com.yomahub.liteflow.test.BaseTest; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +import javax.annotation.Resource; + +@ExtendWith(SpringExtension.class) +@ContextConfiguration("classpath:/abstractChain/application-json.xml") +public class AbstractChainJsonELSpringTest extends BaseTest { + + @Resource + private FlowExecutor flowExecutor; + + // 是否按照流程定义配置执行 + @Test + public void test1() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("implA", "arg"); + Assertions.assertTrue(response.isSuccess()); + Assertions.assertEquals("a==>b==>c==>d==>f==>j", response.getExecuteStepStrWithoutTime()); + } + + //测试嵌套继承的baseChain是否重复解析 + @Test + public void test2() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("implB", "arg"); + Assertions.assertTrue(response.isSuccess()); + Assertions.assertEquals("a==>b==>a==>b==>a==>b==>f==>j", response.getExecuteStepStrWithoutTime()); + } + + //测试嵌套继承的baseChain是否重复解析 + @Test + public void test3() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("implC", "arg"); + Assertions.assertTrue(response.isSuccess()); + Assertions.assertEquals("a==>b==>a==>b==>a==>b==>f==>a==>b", response.getExecuteStepStrWithoutTime()); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainXMLELSpringTest.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainXMLELSpringTest.java new file mode 100644 index 000000000..b07b2c0ec --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainXMLELSpringTest.java @@ -0,0 +1,46 @@ +package com.yomahub.liteflow.test.abstractChain; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.flow.LiteflowResponse; +import com.yomahub.liteflow.test.BaseTest; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +import javax.annotation.Resource; + + +@ExtendWith(SpringExtension.class) +@ContextConfiguration("classpath:/abstractChain/application-xml.xml") +public class AbstractChainXMLELSpringTest extends BaseTest { + + @Resource + private FlowExecutor flowExecutor; + + // 是否按照流程定义配置执行 + @Test + public void test1() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("implA", "arg"); + Assertions.assertTrue(response.isSuccess()); + Assertions.assertEquals("a==>b==>c==>d==>f==>j", response.getExecuteStepStrWithoutTime()); + } + + //测试嵌套继承的baseChain是否重复解析 + @Test + public void test2() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("implB", "arg"); + Assertions.assertTrue(response.isSuccess()); + Assertions.assertEquals("a==>b==>a==>b==>a==>b==>f==>j", response.getExecuteStepStrWithoutTime()); + } + + //测试嵌套继承的baseChain是否重复解析 + @Test + public void test3() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("implC", "arg"); + Assertions.assertTrue(response.isSuccess()); + Assertions.assertEquals("a==>b==>a==>b==>a==>b==>f==>a==>b", response.getExecuteStepStrWithoutTime()); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainYMLELSpringTest.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainYMLELSpringTest.java new file mode 100644 index 000000000..adff8b938 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainYMLELSpringTest.java @@ -0,0 +1,46 @@ +package com.yomahub.liteflow.test.abstractChain; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.flow.LiteflowResponse; +import com.yomahub.liteflow.test.BaseTest; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +import javax.annotation.Resource; + + +@ExtendWith(SpringExtension.class) +@ContextConfiguration("classpath:/abstractChain/application-yml.xml") +public class AbstractChainYMLELSpringTest extends BaseTest { + + @Resource + private FlowExecutor flowExecutor; + + // 是否按照流程定义配置执行 + @Test + public void test1() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("implA", "arg"); + Assertions.assertTrue(response.isSuccess()); + Assertions.assertEquals("a==>b==>c==>d==>f==>j", response.getExecuteStepStrWithoutTime()); + } + + //测试嵌套继承的baseChain是否重复解析 + @Test + public void test2() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("implB", "arg"); + Assertions.assertTrue(response.isSuccess()); + Assertions.assertEquals("a==>b==>a==>b==>a==>b==>f==>j", response.getExecuteStepStrWithoutTime()); + } + + //测试嵌套继承的baseChain是否重复解析 + @Test + public void test3() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("implC", "arg"); + Assertions.assertTrue(response.isSuccess()); + Assertions.assertEquals("a==>b==>a==>b==>a==>b==>f==>a==>b", response.getExecuteStepStrWithoutTime()); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ACmp.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ACmp.java new file mode 100644 index 000000000..8aaf2caae --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ACmp.java @@ -0,0 +1,14 @@ +package com.yomahub.liteflow.test.abstractChain.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import org.springframework.stereotype.Component; + +@Component("a") +public class ACmp extends NodeComponent { + + @Override + public void process() { + System.out.println("ACmp executed!"); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/BCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/BCmp.java new file mode 100644 index 000000000..2f336f6ab --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/BCmp.java @@ -0,0 +1,16 @@ +package com.yomahub.liteflow.test.abstractChain.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import org.springframework.stereotype.Component; + + +@Component("b") +public class BCmp extends NodeComponent { + + + @Override + public void process() { + System.out.println("BCmp executed!"); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/CCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/CCmp.java new file mode 100644 index 000000000..e2c16b4ae --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/CCmp.java @@ -0,0 +1,15 @@ +package com.yomahub.liteflow.test.abstractChain.cmp; + +import com.yomahub.liteflow.core.NodeIfComponent; +import org.springframework.stereotype.Component; + + +@Component("c") +public class CCmp extends NodeIfComponent { + @Override + public boolean processIf() throws Exception { + //do your biz + return true; + } +} + diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/DCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/DCmp.java new file mode 100644 index 000000000..4f5f5b7ec --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/DCmp.java @@ -0,0 +1,14 @@ +package com.yomahub.liteflow.test.abstractChain.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import org.springframework.stereotype.Component; + +@Component("d") +public class DCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("DCmp executed!"); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ECmp.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ECmp.java new file mode 100644 index 000000000..0a597dde2 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ECmp.java @@ -0,0 +1,14 @@ +package com.yomahub.liteflow.test.abstractChain.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import org.springframework.stereotype.Component; + +@Component("e") +public class ECmp extends NodeComponent { + + @Override + public void process() { + System.out.println("ECmp executed!"); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/FSwitchCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/FSwitchCmp.java new file mode 100644 index 000000000..34b09c70a --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/FSwitchCmp.java @@ -0,0 +1,14 @@ +package com.yomahub.liteflow.test.abstractChain.cmp; + +import com.yomahub.liteflow.core.NodeSwitchComponent; +import org.springframework.stereotype.Component; + +@Component("f") +public class FSwitchCmp extends NodeSwitchComponent { + + @Override + public String processSwitch() throws Exception { + return "j"; + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/JCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/JCmp.java new file mode 100644 index 000000000..a10829874 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/JCmp.java @@ -0,0 +1,14 @@ +package com.yomahub.liteflow.test.abstractChain.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import org.springframework.stereotype.Component; + +@Component("j") +public class JCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("JCmp executed!"); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/KCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/KCmp.java new file mode 100644 index 000000000..f15e2963a --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/KCmp.java @@ -0,0 +1,14 @@ +package com.yomahub.liteflow.test.abstractChain.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import org.springframework.stereotype.Component; + +@Component("k") +public class KCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("KCmp executed!"); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/application-json.xml b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/application-json.xml new file mode 100644 index 000000000..0ee724ca6 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/application-json.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/application-xml.xml b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/application-xml.xml new file mode 100644 index 000000000..4aa6af206 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/application-xml.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/application-yml.xml b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/application-yml.xml new file mode 100644 index 000000000..80f2f6ebb --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/application-yml.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/flow.el.json b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/flow.el.json new file mode 100644 index 000000000..453bda2d9 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/flow.el.json @@ -0,0 +1,32 @@ +{ + "flow": { + "chain": [ + { + "id": "implB", + "extends": "base2", + "value": "{3}=THEN(a,b);\n {4}=j;" + }, + { + "id": "implC", + "extends": "base2", + "value": "{3}=THEN(a,b);\n {4}=THEN(a,b).id(\"j\");" + }, + { + "id": "base", + "abstract": true, + "value": "THEN(a, b, {0}, {1});" + }, + { + "id": "implA", + "extends": "base", + "value": "{0}=IF(c, d, e);\n {1}=SWITCH(f).to(j,k);" + }, + { + "id": "base2", + "extends": "base", + "abstract": true, + "value": "{0}=THEN(a,b,{3});\n {1}=SWITCH(f).to({4},k);" + } + ] + } +} \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/flow.el.xml new file mode 100644 index 000000000..1994b64c5 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/flow.el.xml @@ -0,0 +1,28 @@ + + + + {3}=THEN(a,b); + {4}=j; + + + + {3}=THEN(a,b); + {4}=THEN(a,b).id("j"); + + + + THEN(a, b, {0}, {1}) + + + + {0}=IF(c, d, e); + {1}=SWITCH(f).to(j,k); + + + + {0}=THEN(a,b,{3}); + {1}=SWITCH(f).to({4},k); + + + + \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/flow.el.yml b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/flow.el.yml new file mode 100644 index 000000000..b79e458fe --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/resources/abstractChain/flow.el.yml @@ -0,0 +1,18 @@ +flow: + chain: + - id: implB + extends: base2 + value: "{3}=THEN(a,b);\n {4}=j;" + - id: implC + extends: base2 + value: "{3}=THEN(a,b);\n {4}=THEN(a,b).id(\"j\");" + - id: base + abstract: true + value: "THEN(a, b, {0}, {1});" + - id: implA + extends: base + value: "{0}=IF(c, d, e);\n {1}=SWITCH(f).to(j,k);" + - id: base2 + extends: base + abstract: true + value: "{0}=THEN(a,b,{3});\n {1}=SWITCH(f).to({4},k);"