From 3242f03b18ca316ef9876079f1c59e9e6968a653 Mon Sep 17 00:00:00 2001 From: zy <953725892@qq.com> Date: Tue, 19 Sep 2023 15:15:31 +0800 Subject: [PATCH] =?UTF-8?q?test=20#I7SVZF=20=E8=A1=A5=E5=85=A8nospring?= =?UTF-8?q?=E4=B8=8B=E6=8A=BD=E8=B1=A1chain=E8=A7=A3=E6=9E=90=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AbstractChainJsonELTest.java | 51 ++++++++++++++ .../abstractChain/AbstractChainXmlELTest.java | 50 ++++++++++++++ .../abstractChain/AbstractChainYmlELTest.java | 49 +++++++++++++ .../liteflow/test/abstractChain/cmp/ACmp.java | 12 ++++ .../liteflow/test/abstractChain/cmp/BCmp.java | 14 ++++ .../liteflow/test/abstractChain/cmp/CCmp.java | 13 ++++ .../liteflow/test/abstractChain/cmp/DCmp.java | 12 ++++ .../liteflow/test/abstractChain/cmp/ECmp.java | 12 ++++ .../test/abstractChain/cmp/FSwitchCmp.java | 12 ++++ .../liteflow/test/abstractChain/cmp/JCmp.java | 12 ++++ .../liteflow/test/abstractChain/cmp/KCmp.java | 12 ++++ .../test/resources/abstractChain/flow.el.json | 68 +++++++++++++++++++ .../test/resources/abstractChain/flow.el.xml | 39 +++++++++++ .../test/resources/abstractChain/flow.el.yml | 36 ++++++++++ 14 files changed, 392 insertions(+) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainJsonELTest.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainXmlELTest.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainYmlELTest.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ACmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/BCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/CCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/DCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ECmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/FSwitchCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/JCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/KCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/abstractChain/flow.el.json create mode 100644 liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/abstractChain/flow.el.xml create mode 100644 liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/abstractChain/flow.el.yml diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainJsonELTest.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainJsonELTest.java new file mode 100644 index 000000000..5fa16af04 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainJsonELTest.java @@ -0,0 +1,51 @@ +package com.yomahub.liteflow.test.abstractChain; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; +import com.yomahub.liteflow.flow.LiteflowResponse; +import com.yomahub.liteflow.property.LiteflowConfig; +import com.yomahub.liteflow.test.BaseTest; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + + + + +public class AbstractChainJsonELTest extends BaseTest { + + private static FlowExecutor flowExecutor; + + @BeforeAll + public static void init() { + LiteflowConfig config = new LiteflowConfig(); + config.setRuleSource("abstractChain/flow.el.json"); + flowExecutor = FlowExecutorHolder.loadInstance(config); + } + + + // 是否按照流程定义配置执行 + @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-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainXmlELTest.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainXmlELTest.java new file mode 100644 index 000000000..ac3b2f1f6 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainXmlELTest.java @@ -0,0 +1,50 @@ +package com.yomahub.liteflow.test.abstractChain; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; +import com.yomahub.liteflow.flow.LiteflowResponse; +import com.yomahub.liteflow.property.LiteflowConfig; +import com.yomahub.liteflow.test.BaseTest; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + + +public class AbstractChainXmlELTest extends BaseTest { + + private static FlowExecutor flowExecutor; + + @BeforeAll + public static void init() { + LiteflowConfig config = new LiteflowConfig(); + config.setRuleSource("abstractChain/flow.el.xml"); + flowExecutor = FlowExecutorHolder.loadInstance(config); + } + + + + // XML文件基本继承测试 + @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-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainYmlELTest.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainYmlELTest.java new file mode 100644 index 000000000..0c4686341 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainYmlELTest.java @@ -0,0 +1,49 @@ +package com.yomahub.liteflow.test.abstractChain; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.core.FlowExecutorHolder; +import com.yomahub.liteflow.flow.LiteflowResponse; +import com.yomahub.liteflow.property.LiteflowConfig; +import com.yomahub.liteflow.test.BaseTest; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + + +public class AbstractChainYmlELTest extends BaseTest { + + private static FlowExecutor flowExecutor; + + @BeforeAll + public static void init() { + LiteflowConfig config = new LiteflowConfig(); + config.setRuleSource("abstractChain/flow.el.yml"); + flowExecutor = FlowExecutorHolder.loadInstance(config); + } + + // 是否按照流程定义配置执行 + // XML文件基本继承测试 + @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-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ACmp.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ACmp.java new file mode 100644 index 000000000..090b4decd --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ACmp.java @@ -0,0 +1,12 @@ +package com.yomahub.liteflow.test.abstractChain.cmp; +import com.yomahub.liteflow.core.NodeComponent; + + +public class ACmp extends NodeComponent { + + @Override + public void process() { + System.out.println("ACmp executed!"); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/BCmp.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/BCmp.java new file mode 100644 index 000000000..52498f1cd --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/BCmp.java @@ -0,0 +1,14 @@ +package com.yomahub.liteflow.test.abstractChain.cmp; + +import com.yomahub.liteflow.core.NodeComponent; + + +public class BCmp extends NodeComponent { + + + @Override + public void process() { + System.out.println("BCmp executed!"); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/CCmp.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/CCmp.java new file mode 100644 index 000000000..d24811911 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/CCmp.java @@ -0,0 +1,13 @@ +package com.yomahub.liteflow.test.abstractChain.cmp; + +import com.yomahub.liteflow.core.NodeIfComponent; + + +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-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/DCmp.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/DCmp.java new file mode 100644 index 000000000..8c827004e --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/DCmp.java @@ -0,0 +1,12 @@ +package com.yomahub.liteflow.test.abstractChain.cmp; + +import com.yomahub.liteflow.core.NodeComponent; + +public class DCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("DCmp executed!"); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ECmp.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ECmp.java new file mode 100644 index 000000000..4bb0cdb18 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ECmp.java @@ -0,0 +1,12 @@ +package com.yomahub.liteflow.test.abstractChain.cmp; + +import com.yomahub.liteflow.core.NodeComponent; + +public class ECmp extends NodeComponent { + + @Override + public void process() { + System.out.println("ECmp executed!"); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/FSwitchCmp.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/FSwitchCmp.java new file mode 100644 index 000000000..6ead48213 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/FSwitchCmp.java @@ -0,0 +1,12 @@ +package com.yomahub.liteflow.test.abstractChain.cmp; + +import com.yomahub.liteflow.core.NodeSwitchComponent; + +public class FSwitchCmp extends NodeSwitchComponent { + + @Override + public String processSwitch() throws Exception { + return "j"; + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/JCmp.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/JCmp.java new file mode 100644 index 000000000..9882dbf72 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/JCmp.java @@ -0,0 +1,12 @@ +package com.yomahub.liteflow.test.abstractChain.cmp; + +import com.yomahub.liteflow.core.NodeComponent; + +public class JCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("JCmp executed!"); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/KCmp.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/KCmp.java new file mode 100644 index 000000000..1104b6551 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/KCmp.java @@ -0,0 +1,12 @@ +package com.yomahub.liteflow.test.abstractChain.cmp; + +import com.yomahub.liteflow.core.NodeComponent; + +public class KCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("KCmp executed!"); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/abstractChain/flow.el.json b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/abstractChain/flow.el.json new file mode 100644 index 000000000..c21c13d09 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/abstractChain/flow.el.json @@ -0,0 +1,68 @@ +{ + "flow": { + "nodes": { + "node": [ + { + "id": "a", + "class": "com.yomahub.liteflow.test.abstractChain.cmp.ACmp" + }, + { + "id": "b", + "class": "com.yomahub.liteflow.test.abstractChain.cmp.BCmp" + }, + { + "id": "c", + "class": "com.yomahub.liteflow.test.abstractChain.cmp.CCmp" + }, + { + "id": "d", + "class": "com.yomahub.liteflow.test.abstractChain.cmp.DCmp" + }, + { + "id": "e", + "class": "com.yomahub.liteflow.test.abstractChain.cmp.ECmp" + }, + { + "id": "f", + "class": "com.yomahub.liteflow.test.abstractChain.cmp.FSwitchCmp" + }, + { + "id": "j", + "class": "com.yomahub.liteflow.test.abstractChain.cmp.JCmp" + }, + { + "id": "k", + "class": "com.yomahub.liteflow.test.abstractChain.cmp.KCmp" + } + ] + }, + "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-nospring/src/test/resources/abstractChain/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/abstractChain/flow.el.xml new file mode 100644 index 000000000..0490583be --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/abstractChain/flow.el.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + {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-nospring/src/test/resources/abstractChain/flow.el.yml b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/abstractChain/flow.el.yml new file mode 100644 index 000000000..d32f584cb --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/resources/abstractChain/flow.el.yml @@ -0,0 +1,36 @@ +flow: + nodes: + node: + - id: a + class: com.yomahub.liteflow.test.abstractChain.cmp.ACmp + - id: b + class: com.yomahub.liteflow.test.abstractChain.cmp.BCmp + - id: c + class: com.yomahub.liteflow.test.abstractChain.cmp.CCmp + - id: d + class: com.yomahub.liteflow.test.abstractChain.cmp.DCmp + - id: e + class: com.yomahub.liteflow.test.abstractChain.cmp.ECmp + - id: f + class: com.yomahub.liteflow.test.abstractChain.cmp.FSwitchCmp + - id: j + class: com.yomahub.liteflow.test.abstractChain.cmp.JCmp + - id: k + class: com.yomahub.liteflow.test.abstractChain.cmp.KCmp + 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);"