From 1a2410afaab689ec13687eb1ad7b62ed2af27048 Mon Sep 17 00:00:00 2001 From: "everywhere.z" Date: Thu, 29 May 2025 14:51:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4subflow=E7=9A=84=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E5=B5=8C=E5=A5=97=E4=BE=8B=E5=AD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/subflow/SubflowSpringbootTest.java | 11 +++++++ .../liteflow/test/subflow/cmp/JCmp.java | 31 +++++++++++++++++++ .../liteflow/test/subflow/cmp/KCmp.java | 23 ++++++++++++++ .../test/subflow/context/TestContext.java | 16 ++++++++++ .../src/test/resources/subflow/flow.xml | 18 +++++++++++ 5 files changed, 99 insertions(+) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/subflow/cmp/JCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/subflow/cmp/KCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/subflow/context/TestContext.java diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/subflow/SubflowSpringbootTest.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/subflow/SubflowSpringbootTest.java index ec6ad16a5..dcb777def 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/subflow/SubflowSpringbootTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/subflow/SubflowSpringbootTest.java @@ -5,6 +5,7 @@ import com.yomahub.liteflow.core.FlowExecutor; import com.yomahub.liteflow.flow.LiteflowResponse; import com.yomahub.liteflow.slot.DefaultContext; import com.yomahub.liteflow.test.BaseTest; +import com.yomahub.liteflow.test.subflow.context.TestContext; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; @@ -68,4 +69,14 @@ public class SubflowSpringbootTest extends BaseTest { Assertions.assertEquals(100, testMap.get("inner")); } + @Test + public void testSubflow7() throws Exception { + for (int i = 0; i < 500; i++) { + LiteflowResponse response = flowExecutor.execute2Resp("chain7", null, TestContext.class); + Assertions.assertTrue(response.isSuccess()); + TestContext context = response.getFirstContextBean(); + Assertions.assertEquals(5, context.getSet().size()); + } + } + } diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/subflow/cmp/JCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/subflow/cmp/JCmp.java new file mode 100644 index 000000000..487a5a40e --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/subflow/cmp/JCmp.java @@ -0,0 +1,31 @@ +/** + *

Title: liteflow

+ *

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

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.subflow.cmp; + +import com.yomahub.liteflow.core.FlowExecutorHolder; +import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.flow.LiteflowResponse; +import com.yomahub.liteflow.slot.DefaultContext; +import com.yomahub.liteflow.test.subflow.context.TestContext; +import org.springframework.stereotype.Component; + +@Component("j") +public class JCmp extends NodeComponent { + + @Override + public void process() { + TestContext currentContext = this.getFirstContextBean(); + + String value = this.getTag(); + LiteflowResponse response = FlowExecutorHolder.loadInstance().execute2Resp("chain7_invoke", value, DefaultContext.class); + DefaultContext subContext = response.getFirstContextBean(); + String tagValue = subContext.getData("test"); + + currentContext.add2Set(tagValue); + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/subflow/cmp/KCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/subflow/cmp/KCmp.java new file mode 100644 index 000000000..174a22b34 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/subflow/cmp/KCmp.java @@ -0,0 +1,23 @@ +/** + *

Title: liteflow

+ *

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

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.subflow.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.slot.DefaultContext; +import org.springframework.stereotype.Component; + +@Component("k") +public class KCmp extends NodeComponent { + + @Override + public void process() { + DefaultContext context = this.getFirstContextBean(); + String value = this.getRequestData(); + context.setData("test", value); + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/subflow/context/TestContext.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/subflow/context/TestContext.java new file mode 100644 index 000000000..fdeb346ef --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/subflow/context/TestContext.java @@ -0,0 +1,16 @@ +package com.yomahub.liteflow.test.subflow.context; + +import cn.hutool.core.collection.ConcurrentHashSet; + +public class TestContext { + + private ConcurrentHashSet set = new ConcurrentHashSet<>(); + + public void add2Set(String value){ + set.add(value); + } + + public ConcurrentHashSet getSet(){ + return set; + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/subflow/flow.xml b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/subflow/flow.xml index b632e3d19..70a502cbd 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/subflow/flow.xml +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/subflow/flow.xml @@ -29,4 +29,22 @@ THEN(a, h.data("inner")); + + + THEN( + a, + WHEN( + j.tag("1"), + j.tag("2"), + j.tag("3"), + j.tag("4"), + j.tag("5") + ) + ); + + + + THEN(k); + + \ No newline at end of file