From be42287302a05ee7178e97a1a475cc5528a59824 Mon Sep 17 00:00:00 2001 From: "everywhere.z" Date: Wed, 12 Feb 2025 22:14:30 +0800 Subject: [PATCH] =?UTF-8?q?bug=20#IBLWJG=20=E5=B8=83=E5=B0=94=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E8=AE=BE=E7=BD=AEisAccess=E4=B8=BAfalse=EF=BC=8C?= =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/yomahub/liteflow/slot/Slot.java | 14 +++++++------- .../booleanOpt/BooleanOptELSpringbootTest.java | 8 ++++++++ .../liteflow/test/booleanOpt/cmp/X5.java | 17 +++++++++++++++++ .../src/test/resources/booleanOpt/flow.xml | 4 ++++ 4 files changed, 36 insertions(+), 7 deletions(-) create mode 100644 liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/booleanOpt/cmp/X5.java diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/slot/Slot.java b/liteflow-core/src/main/java/com/yomahub/liteflow/slot/Slot.java index 0b976c9cd..00663e061 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/slot/Slot.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/slot/Slot.java @@ -116,7 +116,7 @@ public class Slot { private T getThreadMetaData(String key) { String threadKey = StrUtil.format("{}_{}", key, Thread.currentThread().getName()); - return (T) metaDataMap.get(threadKey); + return (T) metaDataMap.getOrDefault(threadKey, Boolean.FALSE); } private void putMetaDataMap(String key, T t) { @@ -245,7 +245,7 @@ public class Slot { putThreadMetaDataMap(IF_NODE_PREFIX + key, result); } - public boolean getIfResult(String key) { + public Boolean getIfResult(String key) { return getThreadMetaData(IF_NODE_PREFIX + key); } @@ -253,7 +253,7 @@ public class Slot { putThreadMetaDataMap(AND_OR_PREFIX + key, result); } - public boolean getAndOrResult(String key) { + public Boolean getAndOrResult(String key) { return getThreadMetaData(AND_OR_PREFIX + key); } @@ -261,7 +261,7 @@ public class Slot { putThreadMetaDataMap(NOT_PREFIX + key, result); } - public boolean getNotResult(String key) { + public Boolean getNotResult(String key) { return getThreadMetaData(NOT_PREFIX + key); } @@ -269,7 +269,7 @@ public class Slot { putThreadMetaDataMap(FOR_PREFIX + key, forCount); } - public int getForResult(String key) { + public Integer getForResult(String key) { return getThreadMetaData(FOR_PREFIX + key); } @@ -277,7 +277,7 @@ public class Slot { putThreadMetaDataMap(WHILE_PREFIX + key, whileFlag); } - public boolean getWhileResult(String key) { + public Boolean getWhileResult(String key) { return getThreadMetaData(WHILE_PREFIX + key); } @@ -285,7 +285,7 @@ public class Slot { putThreadMetaDataMap(BREAK_PREFIX + key, breakFlag); } - public boolean getBreakResult(String key) { + public Boolean getBreakResult(String key) { return getThreadMetaData(BREAK_PREFIX + key); } diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/booleanOpt/BooleanOptELSpringbootTest.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/booleanOpt/BooleanOptELSpringbootTest.java index 8d3547961..86ab9ff7e 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/booleanOpt/BooleanOptELSpringbootTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/booleanOpt/BooleanOptELSpringbootTest.java @@ -73,4 +73,12 @@ public class BooleanOptELSpringbootTest extends BaseTest { Assertions.assertEquals("x1==>b", response.getExecuteStepStr()); } + // 有个布尔组件isAccess为false的情况 + @Test + public void testBooleanOpt7() throws Exception { + LiteflowResponse response = flowExecutor.execute2Resp("chain7", "arg"); + Assertions.assertTrue(response.isSuccess()); + Assertions.assertEquals("x3==>x4==>b", response.getExecuteStepStr()); + } + } diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/booleanOpt/cmp/X5.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/booleanOpt/cmp/X5.java new file mode 100644 index 000000000..4cf637add --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/booleanOpt/cmp/X5.java @@ -0,0 +1,17 @@ +package com.yomahub.liteflow.test.booleanOpt.cmp; + +import com.yomahub.liteflow.core.NodeBooleanComponent; +import org.springframework.stereotype.Component; + +@Component("x5") +public class X5 extends NodeBooleanComponent { + @Override + public boolean processBoolean() throws Exception { + return false; + } + + @Override + public boolean isAccess() { + return false; + } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/booleanOpt/flow.xml b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/booleanOpt/flow.xml index b215310ef..b98002ea2 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/booleanOpt/flow.xml +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/resources/booleanOpt/flow.xml @@ -30,4 +30,8 @@ IF(AND(NOT(x1), x2, x3), a, b); + + IF(OR(x3,x4,x5), a, b); + + \ No newline at end of file