diff --git a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/tag/NodeTagSpringbootTest.java b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/tag/NodeTagSpringbootTest.java index 295186963..368fa8ee7 100644 --- a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/tag/NodeTagSpringbootTest.java +++ b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/tag/NodeTagSpringbootTest.java @@ -1,5 +1,6 @@ package com.yomahub.liteflow.test.tag; +import cn.hutool.core.collection.ConcurrentHashSet; import com.yomahub.liteflow.core.FlowExecutor; import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; @@ -15,6 +16,7 @@ import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; import java.util.Set; +import java.util.function.Function; /** * springboot环境下隐私投递的测试 @@ -45,9 +47,15 @@ public class NodeTagSpringbootTest extends BaseTest { Assert.assertEquals("a==>a==>a==>c==>e", response.getSlot().printStep()); } + //测试多线程when情况下的tag取值是否正确 + //这里循环多次的原因是,因为when多线程,有时候因为凑巧,可能正确。所以多次情况下在2.6.4版本肯定出错 @Test public void testTag3() throws Exception{ - LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); - Assert.assertTrue(response.isSuccess()); + for (int i = 0; i < 50; i++) { + LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); + Assert.assertTrue(response.isSuccess()); + ConcurrentHashSet testSet = response.getSlot().getData("test"); + Assert.assertEquals(3, testSet.size()); + } } } diff --git a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/tag/cmp/B1Cmp.java b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/tag/cmp/B1Cmp.java new file mode 100644 index 000000000..7acef141f --- /dev/null +++ b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/tag/cmp/B1Cmp.java @@ -0,0 +1,27 @@ +/** + *

Title: liteflow

+ *

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

+ * @author Bryan.Zhang + * @email weenyc31@163.com + * @Date 2020/4/1 + */ +package com.yomahub.liteflow.test.tag.cmp; + +import cn.hutool.core.collection.ConcurrentHashSet; +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.entity.data.Slot; + +import java.util.HashSet; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +@LiteflowComponent("b1") +public class B1Cmp extends NodeComponent { + + @Override + public void process() { + Slot slot = this.getSlot(); + slot.setData("test",new ConcurrentHashSet()); + } +} diff --git a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/tag/cmp/BCmp.java b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/tag/cmp/BCmp.java index cb6deaba6..1b9a0013f 100644 --- a/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/tag/cmp/BCmp.java +++ b/liteflow-testcase-springboot/src/test/java/com/yomahub/liteflow/test/tag/cmp/BCmp.java @@ -7,9 +7,12 @@ */ package com.yomahub.liteflow.test.tag.cmp; +import cn.hutool.core.collection.ConcurrentHashSet; import com.yomahub.liteflow.annotation.LiteflowComponent; import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.entity.data.Slot; +import java.util.HashSet; import java.util.Set; @LiteflowComponent("b") @@ -17,6 +20,8 @@ public class BCmp extends NodeComponent { @Override public void process() { - System.out.println(this.getTag()); + Slot slot = this.getSlot(); + ConcurrentHashSet testSet = slot.getData("test"); + testSet.add(this.getTag()); } } diff --git a/liteflow-testcase-springboot/src/test/resources/tag/flow.xml b/liteflow-testcase-springboot/src/test/resources/tag/flow.xml index 496a462c0..ceea87217 100644 --- a/liteflow-testcase-springboot/src/test/resources/tag/flow.xml +++ b/liteflow-testcase-springboot/src/test/resources/tag/flow.xml @@ -9,6 +9,7 @@ - + + \ No newline at end of file