From a6f0835e54891bd5d82e1b9f922e610485e8a48c Mon Sep 17 00:00:00 2001 From: "everywhere.z" Date: Mon, 1 Jul 2024 16:33:17 +0800 Subject: [PATCH] =?UTF-8?q?bug=20#IA5PAK=20ELBus=E4=B8=B2=E8=A1=8C?= =?UTF-8?q?=E7=BC=96=E6=8E=92=E4=B8=8D=E6=94=AF=E6=8C=81=E5=AF=B9=E6=AF=8F?= =?UTF-8?q?=E4=B8=AA=E8=8A=82=E7=82=B9=E8=BF=9B=E8=A1=8C=E8=B6=85=E6=97=B6?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yomahub/liteflow/builder/el/ELBus.java | 10 ++++ .../liteflow/builder/el/NodeELWrapper.java | 7 ++- .../builder/MaxWaitSecondBuilderTest.java | 60 +++++++++++++++++-- 3 files changed, 70 insertions(+), 7 deletions(-) diff --git a/liteflow-el-builder/src/main/java/com/yomahub/liteflow/builder/el/ELBus.java b/liteflow-el-builder/src/main/java/com/yomahub/liteflow/builder/el/ELBus.java index 31c7f1d19..de7213cd3 100644 --- a/liteflow-el-builder/src/main/java/com/yomahub/liteflow/builder/el/ELBus.java +++ b/liteflow-el-builder/src/main/java/com/yomahub/liteflow/builder/el/ELBus.java @@ -13,6 +13,8 @@ public class ELBus { public static final String TAB = "\t"; + private static boolean nodeWrapper = true; + /** * 创建 then 串行组件 * @@ -369,4 +371,12 @@ public class ELBus { } } } + + public static boolean isNodeWrapper() { + return nodeWrapper; + } + + public static void setNodeWrapper(boolean nodeWrapper) { + ELBus.nodeWrapper = nodeWrapper; + } } diff --git a/liteflow-el-builder/src/main/java/com/yomahub/liteflow/builder/el/NodeELWrapper.java b/liteflow-el-builder/src/main/java/com/yomahub/liteflow/builder/el/NodeELWrapper.java index ce28a34c3..357dae130 100644 --- a/liteflow-el-builder/src/main/java/com/yomahub/liteflow/builder/el/NodeELWrapper.java +++ b/liteflow-el-builder/src/main/java/com/yomahub/liteflow/builder/el/NodeELWrapper.java @@ -90,8 +90,11 @@ public class NodeELWrapper extends ELWrapper { NodeELWrapper nodeElWrapper = this.getNodeWrapper(); StringBuilder sb = new StringBuilder(); processWrapperTabs(sb, depth); - sb.append(StrUtil.format("node(\"{}\")", nodeElWrapper.getNodeId())); - + if (ELBus.isNodeWrapper()){ + sb.append(StrUtil.format("node(\"{}\")", nodeElWrapper.getNodeId())); + }else{ + sb.append(StrUtil.format("{}", nodeElWrapper.getNodeId())); + } processWrapperProperty(sb, paramContext); return sb.toString(); } diff --git a/liteflow-testcase-el/liteflow-testcase-el-builder/src/test/java/com/yomahub/liteflow/test/builder/MaxWaitSecondBuilderTest.java b/liteflow-testcase-el/liteflow-testcase-el-builder/src/test/java/com/yomahub/liteflow/test/builder/MaxWaitSecondBuilderTest.java index 9484719e0..30f1c5cc9 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-builder/src/test/java/com/yomahub/liteflow/test/builder/MaxWaitSecondBuilderTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-builder/src/test/java/com/yomahub/liteflow/test/builder/MaxWaitSecondBuilderTest.java @@ -1,22 +1,72 @@ package com.yomahub.liteflow.test.builder; -import com.yomahub.liteflow.builder.el.ELBus; -import com.yomahub.liteflow.builder.el.LiteFlowChainELBuilder; -import com.yomahub.liteflow.builder.el.NodeELWrapper; +import com.yomahub.liteflow.builder.el.*; +import com.yomahub.liteflow.test.BaseTest; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest(classes = MaxWaitSecondBuilderTest.class) @EnableAutoConfiguration -public class MaxWaitSecondBuilderTest { +public class MaxWaitSecondBuilderTest extends BaseTest { + @BeforeAll + public static void init(){ + ELBus.setNodeWrapper(false); + } + + + // node层面 @Test public void testMaxWaitSecond1(){ NodeELWrapper nodeA = ELBus.node("a").maxWaitSeconds(4); NodeELWrapper nodeB = ELBus.node("b").maxWaitSeconds(4); - System.out.println(ELBus.when(nodeA, nodeB).toEL(true)); + WhenELWrapper whenELWrapper = ELBus.when(nodeA, nodeB); + Assertions.assertEquals("WHEN(a.maxWaitSeconds(4),b.maxWaitSeconds(4));", whenELWrapper.toEL()); + } + // when层面 + @Test + public void testMaxWaitSecond2(){ + WhenELWrapper whenELWrapper = ELBus.when("a", "b").maxWaitSeconds(4); + Assertions.assertEquals("WHEN(a,b).maxWaitSeconds(4);", whenELWrapper.toEL()); + ParELWrapper parELWrapper = ELBus.par("a", "b").maxWaitSeconds(4); + Assertions.assertEquals("PAR(a,b).maxWaitSeconds(4);", parELWrapper.toEL()); + } + + // then层面 + @Test + public void testMaxWaitSecond3(){ + ThenELWrapper thenELWrapper = ELBus.then("a", "b").maxWaitSeconds(4); + Assertions.assertEquals("THEN(a,b).maxWaitSeconds(4);", thenELWrapper.toEL()); + SerELWrapper serELWrapper = ELBus.ser("a", "b").maxWaitSeconds(4); + Assertions.assertEquals("SER(a,b).maxWaitSeconds(4);", serELWrapper.toEL()); + } + + // if层面 + @Test + public void testMaxWaitSecond4(){ + IfELWrapper ifELWrapper = ELBus.ifOpt(ELBus.and("x1",ELBus.or("x2", "x3")), ELBus.then("a", "b"), ELBus.when("c", "d")).maxWaitSeconds(5); + Assertions.assertEquals("IF(AND(x1,OR(x2,x3)),THEN(a,b),WHEN(c,d)).maxWaitSeconds(5);", ifELWrapper.toEL()); + } + + // switch层面 + @Test + public void testMaxWaitSecond5(){ + SwitchELWrapper switchELWrapper = ELBus.switchOpt("a").to("b","c").maxWaitSeconds(5); + Assertions.assertEquals("SWITCH(a).TO(b,c).maxWaitSeconds(5);", switchELWrapper.toEL()); + } + + // 循环层面 + @Test + public void testMaxWaitSecond6(){ + ForELWrapper forELWrapper = ELBus.forOpt(3).doOpt("a").maxWaitSeconds(5); + Assertions.assertEquals("FOR(3).DO(a).maxWaitSeconds(5);", forELWrapper.toEL()); + WhileELWrapper whileELWrapper = ELBus.whileOpt("w").doOpt("a").maxWaitSeconds(5); + Assertions.assertEquals("WHILE(w).DO(a).maxWaitSeconds(5);", whileELWrapper.toEL()); + IteratorELWrapper iteratorELWrapper = ELBus.iteratorOpt("i").doOpt("a").maxWaitSeconds(5); + Assertions.assertEquals("ITERATOR(i).DO(a).maxWaitSeconds(5);", iteratorELWrapper.toEL()); } }