diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java b/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java index 0fff946a7..c5909b0a4 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/core/NodeComponent.java @@ -415,7 +415,7 @@ public abstract class NodeComponent{ return JsonUtil.parseObject(cmpData, clazz); } - public List getCmpList(Class clazz) { + public List getCmpDataList(Class clazz) { String cmpData = getRefNode().getCmpData(); if (StrUtil.isBlank(cmpData)) { return null; diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpData/CmpDataELSpringbootTest.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpData/CmpDataELSpringbootTest.java index 50bc3d6ed..105dd7687 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpData/CmpDataELSpringbootTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpData/CmpDataELSpringbootTest.java @@ -13,6 +13,7 @@ import org.springframework.boot.test.context.SpringBootTest; import org.springframework.context.annotation.ComponentScan; import org.springframework.test.context.TestPropertySource; import javax.annotation.Resource; +import java.util.List; import java.util.stream.Collectors; /** @@ -51,4 +52,30 @@ public class CmpDataELSpringbootTest extends BaseTest { Assertions.assertEquals("12345678", result); } + @Test + public void testCmpDataList() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); + Assertions.assertTrue(response.isSuccess()); + DefaultContext context = response.getFirstContextBean(); + List users = context.getData("users"); + Assertions.assertEquals(3, users.size()); + Assertions.assertNotNull(users.get(0)); + Assertions.assertEquals("jack", users.get(0).getName()); + Assertions.assertEquals(27, users.get(0).getAge()); + Assertions.assertEquals(0, users.get(0).getBirth().compareTo(DateUtil.parseDate("1995-10-01").toJdkDate())); + + Assertions.assertNotNull(users.get(1)); + Assertions.assertEquals("mike", users.get(1).getName()); + Assertions.assertEquals(32, users.get(1).getAge()); + Assertions.assertEquals(0, users.get(1).getBirth().compareTo(DateUtil.parseDate("1992-08-16").toJdkDate())); + + Assertions.assertNotNull(users.get(2)); + Assertions.assertEquals("david", users.get(2).getName()); + Assertions.assertEquals(11, users.get(2).getAge()); + Assertions.assertEquals(0, users.get(2).getBirth().compareTo(DateUtil.parseDate("2013-09-27").toJdkDate())); + + List empty = context.getData("empty"); + Assertions.assertEquals(0, empty.size()); + } + } diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpData/cmp/DCmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpData/cmp/DCmp.java new file mode 100644 index 000000000..1fcd8fe0a --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpData/cmp/DCmp.java @@ -0,0 +1,26 @@ +/* + *

Title: liteflow

+ *

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

+ * @author Xu Qiaolun + * @email jamesxql@gmail.com + * @Date 2024/9/5 + */ +package com.yomahub.liteflow.test.cmpData.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.slot.DefaultContext; +import com.yomahub.liteflow.test.cmpData.vo.User; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component("d") +public class DCmp extends NodeComponent { + @Override + public void process() throws Exception { + List users = getCmpDataList(User.class); + DefaultContext context = getFirstContextBean(); + context.setData("users", users); + System.out.println("DCmp executed!"); + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpData/cmp/ECmp.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpData/cmp/ECmp.java new file mode 100644 index 000000000..6f2d89c8a --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpData/cmp/ECmp.java @@ -0,0 +1,19 @@ +package com.yomahub.liteflow.test.cmpData.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.slot.DefaultContext; +import com.yomahub.liteflow.test.cmpData.vo.User; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component("e") +public class ECmp extends NodeComponent { + @Override + public void process() throws Exception { + List empty = getCmpDataList(User.class); + DefaultContext context = getFirstContextBean(); + context.setData("empty", empty); + System.out.println("ECmp executed!"); + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/cmpData/flow.xml b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/cmpData/flow.xml index 55f72881d..ea2616343 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/cmpData/flow.xml +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/cmpData/flow.xml @@ -23,4 +23,11 @@ c.data("8") ); + + + cmpDataList = '[{"name":"jack","age":27,"birth":"1995-10-01"}, {"name":"mike","age":32,"birth":"1992-08-16"}, {"name":"david","age":11,"birth":"2013-09-27"}]'; + cmpDataEmptyList = '[]'; + + THEN(d.data(cmpDataList), e.data(cmpDataEmptyList)); + \ No newline at end of file