From b99f2a837e9755b2ec0a2cf18167ed87bb0e4763 Mon Sep 17 00:00:00 2001 From: bryan31 Date: Sun, 6 Mar 2022 23:57:15 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=B5=8B=E8=AF=95=E7=94=A8?= =?UTF-8?q?=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../liteflow/test/parser/JsonParserTest.java | 34 +++++++++++ .../liteflow/test/parser/XmlParserTest.java | 34 +++++++++++ .../liteflow/test/parser/YmlParserTest.java | 34 +++++++++++ .../liteflow/test/parser/cmp/ACmp.java | 18 ++++++ .../liteflow/test/parser/cmp/BCmp.java | 19 ++++++ .../liteflow/test/parser/cmp/CCmp.java | 19 ++++++ .../liteflow/test/parser/cmp/DCmp.java | 19 ++++++ .../liteflow/test/parser/cmp/ECmp.java | 18 ++++++ .../liteflow/test/parser/cmp/FCmp.java | 19 ++++++ .../liteflow/test/parser/cmp/GCmp.java | 19 ++++++ .../test/preAndFinally/PreAndFinallyTest.java | 59 +++++++++++++++++++ .../liteflow/test/preAndFinally/cmp/ACmp.java | 18 ++++++ .../liteflow/test/preAndFinally/cmp/BCmp.java | 19 ++++++ .../liteflow/test/preAndFinally/cmp/CCmp.java | 19 ++++++ .../liteflow/test/preAndFinally/cmp/DCmp.java | 20 +++++++ .../test/preAndFinally/cmp/Finally1Cmp.java | 18 ++++++ .../test/preAndFinally/cmp/Finally2Cmp.java | 18 ++++++ .../test/preAndFinally/cmp/Finally3Cmp.java | 26 ++++++++ .../test/preAndFinally/cmp/Pre1Cmp.java | 18 ++++++ .../test/preAndFinally/cmp/Pre2Cmp.java | 18 ++++++ .../src/test/resources/parser/flow.json | 52 ++++++++++++++++ .../src/test/resources/parser/flow.xml | 22 +++++++ .../src/test/resources/parser/flow.yml | 30 ++++++++++ .../src/test/resources/preAndFinally/flow.xml | 38 ++++++++++++ 24 files changed, 608 insertions(+) create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/JsonParserTest.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/XmlParserTest.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/YmlParserTest.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/ACmp.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/BCmp.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/CCmp.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/DCmp.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/ECmp.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/FCmp.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/GCmp.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/PreAndFinallyTest.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/ACmp.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/BCmp.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/CCmp.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/DCmp.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Finally1Cmp.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Finally2Cmp.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Finally3Cmp.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Pre1Cmp.java create mode 100644 liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Pre2Cmp.java create mode 100644 liteflow-testcase-nospring/src/test/resources/parser/flow.json create mode 100644 liteflow-testcase-nospring/src/test/resources/parser/flow.xml create mode 100644 liteflow-testcase-nospring/src/test/resources/parser/flow.yml create mode 100644 liteflow-testcase-nospring/src/test/resources/preAndFinally/flow.xml diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/JsonParserTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/JsonParserTest.java new file mode 100644 index 000000000..c0f3071fb --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/JsonParserTest.java @@ -0,0 +1,34 @@ +package com.yomahub.liteflow.test.parser; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.entity.data.DefaultSlot; +import com.yomahub.liteflow.entity.data.LiteflowResponse; +import com.yomahub.liteflow.property.LiteflowConfig; +import com.yomahub.liteflow.test.BaseTest; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * 非spring环境的json parser单元测试 + * @author Bryan.Zhang + * @since 2.5.0 + */ +public class JsonParserTest extends BaseTest { + + private static FlowExecutor flowExecutor; + + @BeforeClass + public static void init(){ + LiteflowConfig config = new LiteflowConfig(); + config.setRuleSource("parser/flow.json"); + flowExecutor = FlowExecutor.loadInstance(config); + } + + //测试spring场景的json parser + @Test + public void testJsonParser() { + LiteflowResponse response = flowExecutor.execute2Resp("chain2", "arg"); + Assert.assertTrue(response.isSuccess()); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/XmlParserTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/XmlParserTest.java new file mode 100644 index 000000000..c29d3db4d --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/XmlParserTest.java @@ -0,0 +1,34 @@ +package com.yomahub.liteflow.test.parser; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.entity.data.DefaultSlot; +import com.yomahub.liteflow.entity.data.LiteflowResponse; +import com.yomahub.liteflow.property.LiteflowConfig; +import com.yomahub.liteflow.test.BaseTest; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * 非spring环境的xml parser单元测试 + * @author Bryan.Zhang + * @since 2.5.0 + */ +public class XmlParserTest extends BaseTest { + + private static FlowExecutor flowExecutor; + + @BeforeClass + public static void init(){ + LiteflowConfig config = new LiteflowConfig(); + config.setRuleSource("parser/flow.xml"); + flowExecutor = FlowExecutor.loadInstance(config); + } + + //测试无springboot场景的xml parser + @Test + public void testXmlParser() { + LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg"); + Assert.assertTrue(response.isSuccess()); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/YmlParserTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/YmlParserTest.java new file mode 100644 index 000000000..fadc554d9 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/YmlParserTest.java @@ -0,0 +1,34 @@ +package com.yomahub.liteflow.test.parser; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.entity.data.DefaultSlot; +import com.yomahub.liteflow.entity.data.LiteflowResponse; +import com.yomahub.liteflow.property.LiteflowConfig; +import com.yomahub.liteflow.test.BaseTest; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * springboot下的yml parser测试用例 + * @author Bryan.Zhang + * @since 2.5.0 + */ +public class YmlParserTest extends BaseTest { + + private static FlowExecutor flowExecutor; + + @BeforeClass + public static void init(){ + LiteflowConfig config = new LiteflowConfig(); + config.setRuleSource("parser/flow.yml"); + flowExecutor = FlowExecutor.loadInstance(config); + } + + //测试无springboot场景的yml parser + @Test + public void testYmlParser() { + LiteflowResponse response = flowExecutor.execute2Resp("chain2", "arg"); + Assert.assertTrue(response.isSuccess()); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/ACmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/ACmp.java new file mode 100644 index 000000000..11b12cddf --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/ACmp.java @@ -0,0 +1,18 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.parser.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-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/BCmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/BCmp.java new file mode 100644 index 000000000..7c1582a8e --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/BCmp.java @@ -0,0 +1,19 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.parser.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-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/CCmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/CCmp.java new file mode 100644 index 000000000..382d9d040 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/CCmp.java @@ -0,0 +1,19 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.parser.cmp; + +import com.yomahub.liteflow.core.NodeComponent; + +public class CCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("CCmp executed!"); + } + +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/DCmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/DCmp.java new file mode 100644 index 000000000..8842e67b5 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/DCmp.java @@ -0,0 +1,19 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.parser.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-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/ECmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/ECmp.java new file mode 100644 index 000000000..c0b73ca59 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/ECmp.java @@ -0,0 +1,18 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.parser.cmp; + +import com.yomahub.liteflow.core.NodeCondComponent; + +public class ECmp extends NodeCondComponent { + + @Override + public String processCond() throws Exception { + return "g"; + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/FCmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/FCmp.java new file mode 100644 index 000000000..1eb8f59a8 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/FCmp.java @@ -0,0 +1,19 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.parser.cmp; + +import com.yomahub.liteflow.core.NodeComponent; + +public class FCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("FCmp executed!"); + } + +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/GCmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/GCmp.java new file mode 100644 index 000000000..c607c5ada --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/parser/cmp/GCmp.java @@ -0,0 +1,19 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.parser.cmp; + +import com.yomahub.liteflow.core.NodeComponent; + +public class GCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("GCmp executed!"); + } + +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/PreAndFinallyTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/PreAndFinallyTest.java new file mode 100644 index 000000000..82aadc790 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/PreAndFinallyTest.java @@ -0,0 +1,59 @@ +package com.yomahub.liteflow.test.preAndFinally; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.entity.data.DefaultSlot; +import com.yomahub.liteflow.entity.data.LiteflowResponse; +import com.yomahub.liteflow.property.LiteflowConfig; +import com.yomahub.liteflow.test.BaseTest; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Test; + +/** + * 非spring环境下pre节点和finally节点的测试 + * @author Bryan.Zhang + * @since 2.6.4 + */ +public class PreAndFinallyTest extends BaseTest { + + private static FlowExecutor flowExecutor; + + @BeforeClass + public static void init(){ + LiteflowConfig config = new LiteflowConfig(); + config.setRuleSource("preAndFinally/flow.xml"); + flowExecutor = FlowExecutor.loadInstance(config); + } + + //测试普通的pre和finally节点 + @Test + public void testPreAndFinally1() throws Exception{ + LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg"); + Assert.assertTrue(response.isSuccess()); + Assert.assertEquals("p1==>p2==>a==>b==>c==>f1==>f2",response.getSlot().getExecuteStepStr()); + } + + //测试pre和finally节点不放在开头和结尾的情况 + @Test + public void testPreAndFinally2() throws Exception{ + LiteflowResponse response = flowExecutor.execute2Resp("chain2", "arg"); + Assert.assertTrue(response.isSuccess()); + Assert.assertEquals("p1==>p2==>a==>b==>c==>f1==>f2",response.getSlot().getExecuteStepStr()); + } + + //测试有节点报错是否还执行finally节点的情况,其中d节点会报错,但依旧执行f1,f2节点 + @Test + public void testPreAndFinally3() throws Exception{ + LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); + Assert.assertFalse(response.isSuccess()); + Assert.assertEquals("p1==>p2==>a==>d==>f1==>f2", response.getSlot().getExecuteStepStr()); + } + + //测试在finally节点里是否能获取exception + @Test + public void testPreAndFinally4() throws Exception{ + LiteflowResponse response = flowExecutor.execute2Resp("chain4", "arg"); + Assert.assertFalse(response.isSuccess()); + Assert.assertTrue(response.getSlot().getData("hasEx")); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/ACmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/ACmp.java new file mode 100644 index 000000000..704212d7e --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/ACmp.java @@ -0,0 +1,18 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.preAndFinally.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-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/BCmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/BCmp.java new file mode 100644 index 000000000..ad01d97ed --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/BCmp.java @@ -0,0 +1,19 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.preAndFinally.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-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/CCmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/CCmp.java new file mode 100644 index 000000000..abe10951e --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/CCmp.java @@ -0,0 +1,19 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.preAndFinally.cmp; + +import com.yomahub.liteflow.core.NodeComponent; + +public class CCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("CCmp executed!"); + } + +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/DCmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/DCmp.java new file mode 100644 index 000000000..fb494a98b --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/DCmp.java @@ -0,0 +1,20 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.preAndFinally.cmp; + +import com.yomahub.liteflow.core.NodeComponent; + +public class DCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("CCmp executed!"); + int i = 1/0; + } + +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Finally1Cmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Finally1Cmp.java new file mode 100644 index 000000000..22b2322d4 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Finally1Cmp.java @@ -0,0 +1,18 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.preAndFinally.cmp; + +import com.yomahub.liteflow.core.NodeComponent; + +public class Finally1Cmp extends NodeComponent { + + @Override + public void process() { + System.out.println("Finally1Cmp executed!"); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Finally2Cmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Finally2Cmp.java new file mode 100644 index 000000000..e156a0752 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Finally2Cmp.java @@ -0,0 +1,18 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.preAndFinally.cmp; + +import com.yomahub.liteflow.core.NodeComponent; + +public class Finally2Cmp extends NodeComponent { + + @Override + public void process() { + System.out.println("Finally2Cmp executed!"); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Finally3Cmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Finally3Cmp.java new file mode 100644 index 000000000..42f765501 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Finally3Cmp.java @@ -0,0 +1,26 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.preAndFinally.cmp; + +import cn.hutool.core.util.ObjectUtil; +import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.entity.data.Slot; + +public class Finally3Cmp extends NodeComponent { + + @Override + public void process() throws Exception{ + Slot slot = this.getSlot(); + if (ObjectUtil.isNull(slot.getException())){ + slot.setData("hasEx", false); + }else{ + slot.setData("hasEx", true); + } + System.out.println("Finally3Cmp executed!"); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Pre1Cmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Pre1Cmp.java new file mode 100644 index 000000000..8b6b430d8 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Pre1Cmp.java @@ -0,0 +1,18 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.preAndFinally.cmp; + +import com.yomahub.liteflow.core.NodeComponent; + +public class Pre1Cmp extends NodeComponent { + + @Override + public void process() { + System.out.println("Pre1Cmp executed!"); + } +} diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Pre2Cmp.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Pre2Cmp.java new file mode 100644 index 000000000..263c15271 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/preAndFinally/cmp/Pre2Cmp.java @@ -0,0 +1,18 @@ +/** + *

Title: liteflow

+ *

Description: 轻量级的组件式流程框架

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.preAndFinally.cmp; + +import com.yomahub.liteflow.core.NodeComponent; + +public class Pre2Cmp extends NodeComponent { + + @Override + public void process() { + System.out.println("Pre2Cmp executed!"); + } +} diff --git a/liteflow-testcase-nospring/src/test/resources/parser/flow.json b/liteflow-testcase-nospring/src/test/resources/parser/flow.json new file mode 100644 index 000000000..52d0d05c0 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/resources/parser/flow.json @@ -0,0 +1,52 @@ +{ + "flow": { + "nodes": { + "node": [ + { + "id": "a", + "class": "com.yomahub.liteflow.test.parser.cmp.ACmp" + }, + { + "id": "b", + "class": "com.yomahub.liteflow.test.parser.cmp.BCmp" + }, + { + "id": "c", + "class": "com.yomahub.liteflow.test.parser.cmp.CCmp" + }, + { + "id": "d", + "class": "com.yomahub.liteflow.test.parser.cmp.DCmp" + }, + { + "id": "e", + "class": "com.yomahub.liteflow.test.parser.cmp.ECmp" + }, + { + "id": "f", + "class": "com.yomahub.liteflow.test.parser.cmp.FCmp" + }, + { + "id": "g", + "class": "com.yomahub.liteflow.test.parser.cmp.GCmp" + } + ] + }, + "chain": [ + { + "name": "chain2", + "condition": [ + {"type": "then", "value": "c,g,f"} + ] + }, + { + "name": "chain1", + "condition": [ + {"type": "then", "value": "a,c"}, + {"type": "when", "value": "b,d,e(f|g)"}, + {"type": "then", "value": "chain2"} + ] + } + ] + } +} \ No newline at end of file diff --git a/liteflow-testcase-nospring/src/test/resources/parser/flow.xml b/liteflow-testcase-nospring/src/test/resources/parser/flow.xml new file mode 100644 index 000000000..0775c5ec1 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/resources/parser/flow.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/liteflow-testcase-nospring/src/test/resources/parser/flow.yml b/liteflow-testcase-nospring/src/test/resources/parser/flow.yml new file mode 100644 index 000000000..814f59d54 --- /dev/null +++ b/liteflow-testcase-nospring/src/test/resources/parser/flow.yml @@ -0,0 +1,30 @@ +flow: + nodes: + node: + - id: a + class: com.yomahub.liteflow.test.parser.cmp.ACmp + - id: b + class: com.yomahub.liteflow.test.parser.cmp.BCmp + - id: c + class: com.yomahub.liteflow.test.parser.cmp.CCmp + - id: d + class: com.yomahub.liteflow.test.parser.cmp.DCmp + - id: e + class: com.yomahub.liteflow.test.parser.cmp.ECmp + - id: f + class: com.yomahub.liteflow.test.parser.cmp.FCmp + - id: g + class: com.yomahub.liteflow.test.parser.cmp.GCmp + chain: + - name: chain1 + condition: + - type: then + value: 'a,c' + - type: when + value: 'b,d,e(f|g)' + - type: then + value: 'chain2' + - name: chain2 + condition: + - type: then + value: 'c,g,f' diff --git a/liteflow-testcase-nospring/src/test/resources/preAndFinally/flow.xml b/liteflow-testcase-nospring/src/test/resources/preAndFinally/flow.xml new file mode 100644 index 000000000..f3ba3ba4a --- /dev/null +++ b/liteflow-testcase-nospring/src/test/resources/preAndFinally/flow.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + +
+        
+        
+    
+
+    
+        
+        
+        
+        
+    
+
+    
+        
+        
+        
+    
+
+    
+        
+        
+    
+
\ No newline at end of file