From 98f5ddfb1efd42508957e86b1696b12dab321af2 Mon Sep 17 00:00:00 2001 From: "everywhere.z" Date: Wed, 22 Mar 2023 15:34:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B5=8C=E5=A5=97=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E7=9A=84=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 --- .../test/loop/LoopELSpringbootTest.java | 15 +++++++++ .../yomahub/liteflow/test/loop/cmp/FCmp.java | 33 +++++++++++++++++++ .../src/test/resources/loop/flow.xml | 9 +++++ 3 files changed, 57 insertions(+) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/FCmp.java diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/LoopELSpringbootTest.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/LoopELSpringbootTest.java index 25e37914f..025161b60 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/LoopELSpringbootTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/LoopELSpringbootTest.java @@ -1,5 +1,7 @@ package com.yomahub.liteflow.test.loop; +import cn.hutool.core.collection.ListUtil; +import cn.hutool.core.util.StrUtil; import com.yomahub.liteflow.core.FlowExecutor; import com.yomahub.liteflow.flow.LiteflowResponse; import com.yomahub.liteflow.slot.DefaultContext; @@ -14,6 +16,9 @@ import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; /** * springboot环境EL循环的例子测试 @@ -93,4 +98,14 @@ public class LoopELSpringbootTest extends BaseTest { Assert.assertEquals("01234", context.getData("loop_e3")); } + // 测试嵌套循环 + @Test + public void testLoop8() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("chain8", "arg"); + DefaultContext context = response.getFirstContextBean(); + List list = context.getData("test"); + String str = StrUtil.join(StrUtil.EMPTY, list); + Assert.assertTrue(response.isSuccess()); + Assert.assertEquals("001101201", str); + } } diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/FCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/FCmp.java new file mode 100644 index 000000000..7b25b1fad --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/loop/cmp/FCmp.java @@ -0,0 +1,33 @@ +/** + *

Title: liteflow

+ *

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

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.loop.cmp; + +import cn.hutool.core.collection.ListUtil; +import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.slot.DefaultContext; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component("f") +public class FCmp extends NodeComponent { + + @Override + public void process() { + int loopIndex = this.getLoopIndex(); + DefaultContext context = this.getFirstContextBean(); + if (context.hasData("test")){ + List list = context.getData("test"); + list.add(loopIndex); + }else{ + List list = ListUtil.toList(loopIndex); + context.setData("test", list); + } + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/loop/flow.xml b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/loop/flow.xml index 7bb3b9280..7ee5c0d8c 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/loop/flow.xml +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/loop/flow.xml @@ -39,4 +39,13 @@ ) ); + + + FOR(3).DO( + THEN( + f, + FOR(2).DO(f) + ) + ); + \ No newline at end of file