From d555a2ab43ed4ab3ffcf80c733397c9af59344ae Mon Sep 17 00:00:00 2001 From: DaleLee <1658850308@qq.com> Date: Fri, 2 Feb 2024 14:50:31 +0800 Subject: [PATCH] =?UTF-8?q?For=20#I8YNCB,=20=E5=AE=8C=E5=96=84=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yomahub/liteflow/flow/FlowBus.java | 2 +- .../yomahub/liteflow/util/NodeScanner.java | 2 - .../LiteFlowScriptGetNodesGraaljsELTest.java | 139 ++++++++++++++++++ .../LiteFlowScriptGetNodesGraaljsTest.java | 44 ------ .../script/graaljs/getnodes/cmp/FCmp.java | 12 ++ .../script/graaljs/getnodes/cmp/SCmp.java | 12 ++ .../src/test/resources/getnodes/flow.xml | 28 +++- .../LiteFlowScriptGetNodesJsELTest.java | 139 ++++++++++++++++++ .../script/javascript/getnodes/cmp/ACmp.java | 21 +++ .../script/javascript/getnodes/cmp/BCmp.java | 21 +++ .../script/javascript/getnodes/cmp/CCmp.java | 21 +++ .../script/javascript/getnodes/cmp/FCmp.java | 12 ++ .../script/javascript/getnodes/cmp/SCmp.java | 12 ++ .../resources/getnodes/application.properties | 1 + .../src/test/resources/getnodes/flow.xml | 56 +++++++ 15 files changed, 474 insertions(+), 48 deletions(-) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/java/com/yomahub/liteflow/test/script/graaljs/getnodes/LiteFlowScriptGetNodesGraaljsELTest.java delete mode 100644 liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/java/com/yomahub/liteflow/test/script/graaljs/getnodes/LiteFlowScriptGetNodesGraaljsTest.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/java/com/yomahub/liteflow/test/script/graaljs/getnodes/cmp/FCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/java/com/yomahub/liteflow/test/script/graaljs/getnodes/cmp/SCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/LiteFlowScriptGetNodesJsELTest.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/ACmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/BCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/CCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/FCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/SCmp.java create mode 100644 liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/resources/getnodes/application.properties create mode 100644 liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/resources/getnodes/flow.xml diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/FlowBus.java b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/FlowBus.java index 04841ef87..17e8a5ca8 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/FlowBus.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/FlowBus.java @@ -243,7 +243,7 @@ public class FlowBus { } // 获取某一个 chainId 下的所有 nodeId - public static List getNodeByChainId(String chainId) { + public static List getNodesByChainId(String chainId) { Chain chain = getChain(chainId); return NodeScanner.getNodesInChain(chain); } diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/util/NodeScanner.java b/liteflow-core/src/main/java/com/yomahub/liteflow/util/NodeScanner.java index c984ab722..95ce4d4e1 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/util/NodeScanner.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/util/NodeScanner.java @@ -6,12 +6,10 @@ import com.yomahub.liteflow.flow.element.Executable; import com.yomahub.liteflow.flow.element.Node; import java.util.ArrayList; -import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Queue; -import java.util.Set; /** * 节点扫描器 diff --git a/liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/java/com/yomahub/liteflow/test/script/graaljs/getnodes/LiteFlowScriptGetNodesGraaljsELTest.java b/liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/java/com/yomahub/liteflow/test/script/graaljs/getnodes/LiteFlowScriptGetNodesGraaljsELTest.java new file mode 100644 index 000000000..e834f4f40 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/java/com/yomahub/liteflow/test/script/graaljs/getnodes/LiteFlowScriptGetNodesGraaljsELTest.java @@ -0,0 +1,139 @@ +package com.yomahub.liteflow.test.script.graaljs.getnodes; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.flow.FlowBus; +import com.yomahub.liteflow.flow.LiteflowResponse; +import com.yomahub.liteflow.flow.element.Node; +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.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 根据 chainId 获取节点测试 + */ +@ExtendWith(SpringExtension.class) +@TestPropertySource(value = "classpath:/getnodes/application.properties") +@SpringBootTest(classes = LiteFlowScriptGetNodesGraaljsELTest.class) +@EnableAutoConfiguration +@ComponentScan("com.yomahub.liteflow.test.script.graaljs.getnodes.cmp") +public class LiteFlowScriptGetNodesGraaljsELTest extends BaseTest { + + @Resource + private FlowExecutor flowExecutor; + + @Test + public void getNodesTest1() { + LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg"); + Assertions.assertTrue(response.isSuccess()); + List nodes = FlowBus.getNodesByChainId("chain1"); + // 判断数量 + Assertions.assertEquals(5, nodes.size()); + // 判断 id + List nodeIds = nodes.stream().map(Node::getId) + .collect(Collectors.toList()); + List targetIds = Arrays.asList("a", "b", "c", "s1", "s2"); + for (String id : targetIds) { + Assertions.assertTrue(nodeIds.contains(id)); + } + } + + @Test + public void getNodesTest2() { + LiteflowResponse response = flowExecutor.execute2Resp("chain2", "arg"); + Assertions.assertTrue(response.isSuccess()); + List nodes = FlowBus.getNodesByChainId("chain2"); + // 判断总数量 + Assertions.assertEquals(6, nodes.size()); + // 判断 id 与数量 + List nodeIds = nodes.stream().map(Node::getId) + .collect(Collectors.toList()); + Map map = listToMap(nodeIds); + Map targetMap = new HashMap<>(); + targetMap.put("a", 3); + targetMap.put("b", 1); + targetMap.put("s1", 2); + Assertions.assertTrue(targetMap.equals(map)); + // 判断 tag + List nodeTags = nodes.stream().map(Node::getTag) + .collect(Collectors.toList()); + List targetTags = Arrays.asList("a1", "a2", "a3", "b1", "s11", "s12"); + for (String id : targetTags) { + Assertions.assertTrue(nodeTags.contains(id)); + } + } + + @Test + public void getNodesTest3() { + LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); + Assertions.assertTrue(response.isSuccess()); + List nodes = FlowBus.getNodesByChainId("chain3"); + // 判断总数量 + Assertions.assertEquals(8, nodes.size()); + // 判断 id 与数量 + List nodeIds = nodes.stream().map(Node::getId) + .collect(Collectors.toList()); + Map map = listToMap(nodeIds); + Map targetMap = new HashMap<>(); + targetMap.put("a", 2); + targetMap.put("b", 2); + targetMap.put("c", 1); + targetMap.put("f", 1); + targetMap.put("s1", 1); + targetMap.put("s2", 1); + Assertions.assertTrue(targetMap.equals(map)); + } + + @Test + public void getNodesTest4() { + LiteflowResponse response = flowExecutor.execute2Resp("chain4", "arg"); + Assertions.assertTrue(response.isSuccess()); + List nodes = FlowBus.getNodesByChainId("chain4"); + // 判断数量 + Assertions.assertEquals(5, nodes.size()); + // 判断 id + List nodeIds = nodes.stream().map(Node::getId) + .collect(Collectors.toList()); + List targetIds = Arrays.asList("a", "b", "c", "s"); + for (String id : targetIds) { + Assertions.assertTrue(nodeIds.contains(id)); + } + } + + @Test + public void getNodesTest5() { + LiteflowResponse response = flowExecutor.execute2Resp("chain5", "arg"); + Assertions.assertTrue(response.isSuccess()); + List nodes = FlowBus.getNodesByChainId("chain5"); + // 判断数量 + Assertions.assertEquals(3, nodes.size()); + // 判断 id + List nodeIds = nodes.stream().map(Node::getId) + .collect(Collectors.toList()); + List targetIds = Arrays.asList("x", "y", "s1"); + for (String id : targetIds) { + Assertions.assertTrue(nodeIds.contains(id)); + } + } + + // 统计节点 id 出现的数量 + private Map listToMap(List list) { + Map map = new HashMap<>(); + for (String s : list) { + map.put(s, map.getOrDefault(s, 0) + 1); + } + return map; + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/java/com/yomahub/liteflow/test/script/graaljs/getnodes/LiteFlowScriptGetNodesGraaljsTest.java b/liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/java/com/yomahub/liteflow/test/script/graaljs/getnodes/LiteFlowScriptGetNodesGraaljsTest.java deleted file mode 100644 index fb3d6243f..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/java/com/yomahub/liteflow/test/script/graaljs/getnodes/LiteFlowScriptGetNodesGraaljsTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.yomahub.liteflow.test.script.graaljs.getnodes; - -import com.yomahub.liteflow.core.FlowExecutor; -import com.yomahub.liteflow.flow.FlowBus; -import com.yomahub.liteflow.flow.LiteflowResponse; -import com.yomahub.liteflow.flow.element.Node; -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.springframework.boot.autoconfigure.EnableAutoConfiguration; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.context.annotation.ComponentScan; -import org.springframework.test.context.TestPropertySource; -import org.springframework.test.context.junit.jupiter.SpringExtension; - -import javax.annotation.Resource; -import java.util.List; - -@ExtendWith(SpringExtension.class) -@TestPropertySource(value = "classpath:/getnodes/application.properties") -@SpringBootTest(classes = LiteFlowScriptGetNodesGraaljsTest.class) -@EnableAutoConfiguration -@ComponentScan("com.yomahub.liteflow.test.script.graaljs.getnodes.cmp") -public class LiteFlowScriptGetNodesGraaljsTest extends BaseTest { - - @Resource - private FlowExecutor flowExecutor; - - @Test - public void getNodesTest1() { - LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg"); - Assertions.assertTrue(response.isSuccess()); - List nodes = FlowBus.getNodeByChainId("chain1"); - Assertions.assertEquals(5, nodes.size()); - } - - @Test - public void getNodesTest2() { - List nodes = FlowBus.getNodeByChainId("chain2"); - Assertions.assertEquals(5, nodes.size()); - } - -} diff --git a/liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/java/com/yomahub/liteflow/test/script/graaljs/getnodes/cmp/FCmp.java b/liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/java/com/yomahub/liteflow/test/script/graaljs/getnodes/cmp/FCmp.java new file mode 100644 index 000000000..c975811c5 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/java/com/yomahub/liteflow/test/script/graaljs/getnodes/cmp/FCmp.java @@ -0,0 +1,12 @@ +package com.yomahub.liteflow.test.script.graaljs.getnodes.cmp; + +import com.yomahub.liteflow.core.NodeIfComponent; +import org.springframework.stereotype.Component; + +@Component("f") +public class FCmp extends NodeIfComponent { + @Override + public boolean processIf() throws Exception { + return true; + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/java/com/yomahub/liteflow/test/script/graaljs/getnodes/cmp/SCmp.java b/liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/java/com/yomahub/liteflow/test/script/graaljs/getnodes/cmp/SCmp.java new file mode 100644 index 000000000..a064993d4 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/java/com/yomahub/liteflow/test/script/graaljs/getnodes/cmp/SCmp.java @@ -0,0 +1,12 @@ +package com.yomahub.liteflow.test.script.graaljs.getnodes.cmp; + +import com.yomahub.liteflow.core.NodeSwitchComponent; +import org.springframework.stereotype.Component; + +@Component("s") +public class SCmp extends NodeSwitchComponent { + @Override + public String processSwitch() throws Exception { + return "f1"; + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/resources/getnodes/flow.xml b/liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/resources/getnodes/flow.xml index 717d756be..78a84de68 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/resources/getnodes/flow.xml +++ b/liteflow-testcase-el/liteflow-testcase-el-script-graaljs-springboot/src/test/resources/getnodes/flow.xml @@ -18,13 +18,39 @@ defaultContext.setData("s2",a*b+c); ]]> + + + + + + + + THEN(a, b, c, s1, s2); + - THEN(a, WHEN(b, c), WHEN(s1, s2)); + THEN(a.tag("a1"), a.tag("a2"), a.tag("a3"), b.tag("b1"), s1.tag("s11"), s1.tag("s12")); + + + + + THEN(WHEN(a, b), IF(f, WHEN(THEN(c, s2, WHEN(s1, b)), a))); + + + + SWITCH(s).to(FOR(3).DO(a).id("f1"), b, c); + + + + WHILE(x).DO(s1).BREAK(y); \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/LiteFlowScriptGetNodesJsELTest.java b/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/LiteFlowScriptGetNodesJsELTest.java new file mode 100644 index 000000000..1bbd41bae --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/LiteFlowScriptGetNodesJsELTest.java @@ -0,0 +1,139 @@ +package com.yomahub.liteflow.test.script.javascript.getnodes; + +import com.yomahub.liteflow.core.FlowExecutor; +import com.yomahub.liteflow.flow.FlowBus; +import com.yomahub.liteflow.flow.LiteflowResponse; +import com.yomahub.liteflow.flow.element.Node; +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.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.test.context.TestPropertySource; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +import javax.annotation.Resource; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * 根据 chainId 获取节点测试 + */ +@ExtendWith(SpringExtension.class) +@TestPropertySource(value = "classpath:/getnodes/application.properties") +@SpringBootTest(classes = LiteFlowScriptGetNodesJsELTest.class) +@EnableAutoConfiguration +@ComponentScan("com.yomahub.liteflow.test.script.javascript.getnodes.cmp") +public class LiteFlowScriptGetNodesJsELTest extends BaseTest { + + @Resource + private FlowExecutor flowExecutor; + + @Test + public void getNodesTest1() { + LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg"); + Assertions.assertTrue(response.isSuccess()); + List nodes = FlowBus.getNodesByChainId("chain1"); + // 判断数量 + Assertions.assertEquals(5, nodes.size()); + // 判断 id + List nodeIds = nodes.stream().map(Node::getId) + .collect(Collectors.toList()); + List targetIds = Arrays.asList("a", "b", "c", "s1", "s2"); + for (String id : targetIds) { + Assertions.assertTrue(nodeIds.contains(id)); + } + } + + @Test + public void getNodesTest2() { + LiteflowResponse response = flowExecutor.execute2Resp("chain2", "arg"); + Assertions.assertTrue(response.isSuccess()); + List nodes = FlowBus.getNodesByChainId("chain2"); + // 判断总数量 + Assertions.assertEquals(6, nodes.size()); + // 判断 id 与数量 + List nodeIds = nodes.stream().map(Node::getId) + .collect(Collectors.toList()); + Map map = listToMap(nodeIds); + Map targetMap = new HashMap<>(); + targetMap.put("a", 3); + targetMap.put("b", 1); + targetMap.put("s1", 2); + Assertions.assertTrue(targetMap.equals(map)); + // 判断 tag + List nodeTags = nodes.stream().map(Node::getTag) + .collect(Collectors.toList()); + List targetTags = Arrays.asList("a1", "a2", "a3", "b1", "s11", "s12"); + for (String id : targetTags) { + Assertions.assertTrue(nodeTags.contains(id)); + } + } + + @Test + public void getNodesTest3() { + LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); + Assertions.assertTrue(response.isSuccess()); + List nodes = FlowBus.getNodesByChainId("chain3"); + // 判断总数量 + Assertions.assertEquals(8, nodes.size()); + // 判断 id 与数量 + List nodeIds = nodes.stream().map(Node::getId) + .collect(Collectors.toList()); + Map map = listToMap(nodeIds); + Map targetMap = new HashMap<>(); + targetMap.put("a", 2); + targetMap.put("b", 2); + targetMap.put("c", 1); + targetMap.put("f", 1); + targetMap.put("s1", 1); + targetMap.put("s2", 1); + Assertions.assertTrue(targetMap.equals(map)); + } + + @Test + public void getNodesTest4() { + LiteflowResponse response = flowExecutor.execute2Resp("chain4", "arg"); + Assertions.assertTrue(response.isSuccess()); + List nodes = FlowBus.getNodesByChainId("chain4"); + // 判断数量 + Assertions.assertEquals(5, nodes.size()); + // 判断 id + List nodeIds = nodes.stream().map(Node::getId) + .collect(Collectors.toList()); + List targetIds = Arrays.asList("a", "b", "c", "s"); + for (String id : targetIds) { + Assertions.assertTrue(nodeIds.contains(id)); + } + } + + @Test + public void getNodesTest5() { + LiteflowResponse response = flowExecutor.execute2Resp("chain5", "arg"); + Assertions.assertTrue(response.isSuccess()); + List nodes = FlowBus.getNodesByChainId("chain5"); + // 判断数量 + Assertions.assertEquals(3, nodes.size()); + // 判断 id + List nodeIds = nodes.stream().map(Node::getId) + .collect(Collectors.toList()); + List targetIds = Arrays.asList("x", "y", "s1"); + for (String id : targetIds) { + Assertions.assertTrue(nodeIds.contains(id)); + } + } + + // 统计节点 id 出现的数量 + private Map listToMap(List list) { + Map map = new HashMap<>(); + for (String s : list) { + map.put(s, map.getOrDefault(s, 0) + 1); + } + return map; + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/ACmp.java b/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/ACmp.java new file mode 100644 index 000000000..8deacaeb0 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/ACmp.java @@ -0,0 +1,21 @@ +/** + *

Title: liteflow

+ *

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

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.script.javascript.getnodes.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import org.springframework.stereotype.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-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/BCmp.java b/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/BCmp.java new file mode 100644 index 000000000..0e634e36d --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/BCmp.java @@ -0,0 +1,21 @@ +/** + *

Title: liteflow

+ *

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

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.script.javascript.getnodes.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import org.springframework.stereotype.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-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/CCmp.java b/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/CCmp.java new file mode 100644 index 000000000..ad7bffdee --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/CCmp.java @@ -0,0 +1,21 @@ +/** + *

Title: liteflow

+ *

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

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.script.javascript.getnodes.cmp; + +import com.yomahub.liteflow.core.NodeComponent; +import org.springframework.stereotype.Component; + +@Component("c") +public class CCmp extends NodeComponent { + + @Override + public void process() { + System.out.println("CCmp executed!"); + } + +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/FCmp.java b/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/FCmp.java new file mode 100644 index 000000000..2a3b7b09d --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/FCmp.java @@ -0,0 +1,12 @@ +package com.yomahub.liteflow.test.script.javascript.getnodes.cmp; + +import com.yomahub.liteflow.core.NodeIfComponent; +import org.springframework.stereotype.Component; + +@Component("f") +public class FCmp extends NodeIfComponent { + @Override + public boolean processIf() throws Exception { + return true; + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/SCmp.java b/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/SCmp.java new file mode 100644 index 000000000..937a973d9 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/java/com/yomahub/liteflow/test/script/javascript/getnodes/cmp/SCmp.java @@ -0,0 +1,12 @@ +package com.yomahub.liteflow.test.script.javascript.getnodes.cmp; + +import com.yomahub.liteflow.core.NodeSwitchComponent; +import org.springframework.stereotype.Component; + +@Component("s") +public class SCmp extends NodeSwitchComponent { + @Override + public String processSwitch() throws Exception { + return "f1"; + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/resources/getnodes/application.properties b/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/resources/getnodes/application.properties new file mode 100644 index 000000000..4acf0f012 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/resources/getnodes/application.properties @@ -0,0 +1 @@ +liteflow.rule-source=getnodes/flow.xml \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/resources/getnodes/flow.xml b/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/resources/getnodes/flow.xml new file mode 100644 index 000000000..78a84de68 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-script-javascript-springboot/src/test/resources/getnodes/flow.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + THEN(a, b, c, s1, s2); + + + + + THEN(a.tag("a1"), a.tag("a2"), a.tag("a3"), b.tag("b1"), s1.tag("s11"), s1.tag("s12")); + + + + + THEN(WHEN(a, b), IF(f, WHEN(THEN(c, s2, WHEN(s1, b)), a))); + + + + SWITCH(s).to(FOR(3).DO(a).id("f1"), b, c); + + + + WHILE(x).DO(s1).BREAK(y); + + \ No newline at end of file