From 6a87bc42b543e2f36e95423811f8c1ebcf2aa9a1 Mon Sep 17 00:00:00 2001 From: zy <953725892@qq.com> Date: Tue, 19 Sep 2023 20:20:42 +0800 Subject: [PATCH] =?UTF-8?q?test=20#I7SVZF=20=E8=A1=A5=E5=85=A8solon?= =?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 --- .../AbstractChainJsonELSpringBootTest.java | 44 +++++++++++++++++ .../AbstractChainXMLELSpringBootTest.java | 49 +++++++++++++++++++ .../AbstractChainYmlELSpringBootTest.java | 48 ++++++++++++++++++ .../liteflow/test/abstractChain/cmp/ACmp.java | 14 ++++++ .../liteflow/test/abstractChain/cmp/BCmp.java | 16 ++++++ .../liteflow/test/abstractChain/cmp/CCmp.java | 15 ++++++ .../liteflow/test/abstractChain/cmp/DCmp.java | 14 ++++++ .../liteflow/test/abstractChain/cmp/ECmp.java | 14 ++++++ .../test/abstractChain/cmp/FSwitchCmp.java | 14 ++++++ .../liteflow/test/abstractChain/cmp/JCmp.java | 14 ++++++ .../liteflow/test/abstractChain/cmp/KCmp.java | 14 ++++++ .../abstractChain/application-json.properties | 1 + .../abstractChain/application-yml.properties | 1 + .../abstractChain/application.properties | 1 + .../test/resources/abstractChain/flow.el.json | 32 ++++++++++++ .../test/resources/abstractChain/flow.el.xml | 28 +++++++++++ .../test/resources/abstractChain/flow.el.yml | 18 +++++++ 17 files changed, 337 insertions(+) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainJsonELSpringBootTest.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainXMLELSpringBootTest.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainYmlELSpringBootTest.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ACmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/BCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/CCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/DCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ECmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/FSwitchCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/JCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/KCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/application-json.properties create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/application-yml.properties create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/application.properties create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/flow.el.json create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/flow.el.xml create mode 100644 liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/flow.el.yml diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainJsonELSpringBootTest.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainJsonELSpringBootTest.java new file mode 100644 index 000000000..26f9cacaa --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainJsonELSpringBootTest.java @@ -0,0 +1,44 @@ +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.noear.solon.annotation.Inject; +import org.noear.solon.test.SolonJUnit5Extension; +import org.noear.solon.test.annotation.TestPropertySource; + +@ExtendWith(SolonJUnit5Extension.class) +@TestPropertySource("classpath:/abstractChain/application-json.properties") +public class AbstractChainJsonELSpringBootTest extends BaseTest { + + @Inject + 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-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainXMLELSpringBootTest.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainXMLELSpringBootTest.java new file mode 100644 index 000000000..0b771dc8e --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainXMLELSpringBootTest.java @@ -0,0 +1,49 @@ +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.noear.solon.annotation.Inject; +import org.noear.solon.test.SolonJUnit5Extension; +import org.noear.solon.test.annotation.TestPropertySource; + +/** + * 测试显示调用子流程(xml) 单元测试 + * + * @author justin.xu + */ +@ExtendWith(SolonJUnit5Extension.class) +@TestPropertySource("classpath:/abstractChain/application.properties") +public class AbstractChainXMLELSpringBootTest extends BaseTest { + + @Inject + 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-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainYmlELSpringBootTest.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainYmlELSpringBootTest.java new file mode 100644 index 000000000..85bc87eca --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/AbstractChainYmlELSpringBootTest.java @@ -0,0 +1,48 @@ +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.noear.solon.annotation.Inject; +import org.noear.solon.test.SolonJUnit5Extension; +import org.noear.solon.test.annotation.TestPropertySource; + +/** + * 测试显示调用子流程(yml) 单元测试 + * + * @author justin.xu + */ +@ExtendWith(SolonJUnit5Extension.class) +@TestPropertySource("classpath:/abstractChain/application-yml.properties") +public class AbstractChainYmlELSpringBootTest extends BaseTest { + + @Inject + 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-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ACmp.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ACmp.java new file mode 100644 index 000000000..becdc116c --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/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.noear.solon.annotation.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-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/BCmp.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/BCmp.java new file mode 100644 index 000000000..1b61c89f8 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/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.noear.solon.annotation.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-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/CCmp.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/CCmp.java new file mode 100644 index 000000000..eccbc7d17 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/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.noear.solon.annotation.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-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/DCmp.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/DCmp.java new file mode 100644 index 000000000..bd80c943e --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/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.noear.solon.annotation.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-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ECmp.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/ECmp.java new file mode 100644 index 000000000..cf1083eba --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/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.noear.solon.annotation.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-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/FSwitchCmp.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/FSwitchCmp.java new file mode 100644 index 000000000..a51cbcb17 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/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.noear.solon.annotation.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-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/JCmp.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/JCmp.java new file mode 100644 index 000000000..108721048 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/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.noear.solon.annotation.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-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/KCmp.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/abstractChain/cmp/KCmp.java new file mode 100644 index 000000000..1a3dca04d --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/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.noear.solon.annotation.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-solon/src/test/resources/abstractChain/application-json.properties b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/application-json.properties new file mode 100644 index 000000000..bd27c1b99 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/application-json.properties @@ -0,0 +1 @@ +liteflow.rule-source=abstractChain/flow.el.json \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/application-yml.properties b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/application-yml.properties new file mode 100644 index 000000000..e3b9c04c9 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/application-yml.properties @@ -0,0 +1 @@ +liteflow.rule-source=abstractChain/flow.el.yml \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/application.properties b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/application.properties new file mode 100644 index 000000000..f1132eca0 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/application.properties @@ -0,0 +1 @@ +liteflow.rule-source=abstractChain/flow.el.xml \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/flow.el.json b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/flow.el.json new file mode 100644 index 000000000..453bda2d9 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/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-solon/src/test/resources/abstractChain/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/flow.el.xml new file mode 100644 index 000000000..1994b64c5 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/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-solon/src/test/resources/abstractChain/flow.el.yml b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/resources/abstractChain/flow.el.yml new file mode 100644 index 000000000..b79e458fe --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/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);"