From 269e1ec1455bf9b947973d5fec8b8c1d8f54381c Mon Sep 17 00:00:00 2001 From: "everywhere.z" Date: Tue, 11 Jul 2023 23:35:49 +0800 Subject: [PATCH] =?UTF-8?q?bug=20#I7HTR4=20=E5=90=8C=E4=B8=80=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E4=B8=8D=E5=90=8Ctag=EF=BC=8C=E5=8F=96step=E6=97=B6?= =?UTF-8?q?=E5=80=99=E5=AD=98=E5=9C=A8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../liteflow/flow/LiteflowResponse.java | 18 ++++++++++------ .../cmpStep/CmpStepELDeclSpringbootTest.java | 21 ++++++++----------- .../cmpStep/CmpStepELDeclSpringbootTest.java | 21 ++++++++----------- .../liteflow/test/cmpStep/CmpStepTest.java | 21 ++++++++----------- .../test/cmpStep/CmpStepELSpringbootTest.java | 21 ++++++++----------- .../test/cmpStep/CmpStepELSpringbootTest.java | 21 ++++++++----------- .../test/cmpStep/CmpStepELSpringTest.java | 21 ++++++++----------- 7 files changed, 66 insertions(+), 78 deletions(-) diff --git a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/LiteflowResponse.java b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/LiteflowResponse.java index cbef4b7ec..37a87e565 100644 --- a/liteflow-core/src/main/java/com/yomahub/liteflow/flow/LiteflowResponse.java +++ b/liteflow-core/src/main/java/com/yomahub/liteflow/flow/LiteflowResponse.java @@ -1,13 +1,13 @@ package com.yomahub.liteflow.flow; +import cn.hutool.core.collection.ListUtil; import com.yomahub.liteflow.exception.LiteFlowException; import com.yomahub.liteflow.flow.entity.CmpStep; import com.yomahub.liteflow.slot.Slot; import java.io.Serializable; -import java.util.HashMap; -import java.util.Map; -import java.util.Queue; +import java.util.*; +import java.util.function.Consumer; /** * 执行结果封装类 @@ -101,9 +101,15 @@ public class LiteflowResponse { return this.getSlot().getContextBean(contextBeanClazz); } - public Map getExecuteSteps() { - Map map = new HashMap<>(); - this.getSlot().getExecuteSteps().forEach(cmpStep -> map.put(cmpStep.getNodeId(), cmpStep)); + public Map> getExecuteSteps() { + Map> map = new LinkedHashMap<>(); + this.getSlot().getExecuteSteps().forEach(cmpStep -> { + if (map.containsKey(cmpStep.getNodeId())){ + map.get(cmpStep.getNodeId()).add(cmpStep); + }else{ + map.put(cmpStep.getNodeId(), ListUtil.toList(cmpStep)); + } + }); return map; } diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELDeclSpringbootTest.java b/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELDeclSpringbootTest.java index 753261b22..6ffd2e57c 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELDeclSpringbootTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-multi-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELDeclSpringbootTest.java @@ -14,10 +14,7 @@ import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; -import java.util.HashSet; -import java.util.Map; -import java.util.Queue; -import java.util.Set; +import java.util.*; /** * springboot环境最普通的例子测试 @@ -39,13 +36,13 @@ public class CmpStepELDeclSpringbootTest extends BaseTest { public void testStep() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg"); Assert.assertFalse(response.isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("a").isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("b").isSuccess()); - Assert.assertFalse(response.getExecuteSteps().get("c").isSuccess()); - Assert.assertFalse(response.getExecuteSteps().get("d").isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("c").getTimeSpent() >= 2000); - Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("c").getException().getClass()); - Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("d").getException().getClass()); + Assert.assertTrue(response.getExecuteSteps().get("a").get(0).isSuccess()); + Assert.assertTrue(response.getExecuteSteps().get("b").get(0).isSuccess()); + Assert.assertFalse(response.getExecuteSteps().get("c").get(0).isSuccess()); + Assert.assertFalse(response.getExecuteSteps().get("d").get(0).isSuccess()); + Assert.assertTrue(response.getExecuteSteps().get("c").get(0).getTimeSpent() >= 2000); + Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("c").get(0).getException().getClass()); + Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("d").get(0).getException().getClass()); } @Test @@ -59,7 +56,7 @@ public class CmpStepELDeclSpringbootTest extends BaseTest { public void testStep3() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); Assert.assertTrue(response.isSuccess()); - Map stepMap = response.getExecuteSteps(); + Map> stepMap = response.getExecuteSteps(); Assert.assertEquals(2, stepMap.size()); Queue queue = response.getExecuteStepQueue(); Assert.assertEquals(5, queue.size()); diff --git a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELDeclSpringbootTest.java b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELDeclSpringbootTest.java index 753261b22..6ffd2e57c 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELDeclSpringbootTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-declare-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELDeclSpringbootTest.java @@ -14,10 +14,7 @@ import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; -import java.util.HashSet; -import java.util.Map; -import java.util.Queue; -import java.util.Set; +import java.util.*; /** * springboot环境最普通的例子测试 @@ -39,13 +36,13 @@ public class CmpStepELDeclSpringbootTest extends BaseTest { public void testStep() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg"); Assert.assertFalse(response.isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("a").isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("b").isSuccess()); - Assert.assertFalse(response.getExecuteSteps().get("c").isSuccess()); - Assert.assertFalse(response.getExecuteSteps().get("d").isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("c").getTimeSpent() >= 2000); - Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("c").getException().getClass()); - Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("d").getException().getClass()); + Assert.assertTrue(response.getExecuteSteps().get("a").get(0).isSuccess()); + Assert.assertTrue(response.getExecuteSteps().get("b").get(0).isSuccess()); + Assert.assertFalse(response.getExecuteSteps().get("c").get(0).isSuccess()); + Assert.assertFalse(response.getExecuteSteps().get("d").get(0).isSuccess()); + Assert.assertTrue(response.getExecuteSteps().get("c").get(0).getTimeSpent() >= 2000); + Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("c").get(0).getException().getClass()); + Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("d").get(0).getException().getClass()); } @Test @@ -59,7 +56,7 @@ public class CmpStepELDeclSpringbootTest extends BaseTest { public void testStep3() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); Assert.assertTrue(response.isSuccess()); - Map stepMap = response.getExecuteSteps(); + Map> stepMap = response.getExecuteSteps(); Assert.assertEquals(2, stepMap.size()); Queue queue = response.getExecuteStepQueue(); Assert.assertEquals(5, queue.size()); diff --git a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepTest.java b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepTest.java index 07e65f864..de3306efc 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-nospring/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepTest.java @@ -10,10 +10,7 @@ import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; -import java.util.HashSet; -import java.util.Map; -import java.util.Queue; -import java.util.Set; +import java.util.*; public class CmpStepTest extends BaseTest { @@ -30,13 +27,13 @@ public class CmpStepTest extends BaseTest { public void testStep1() { LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg"); Assert.assertFalse(response.isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("a").isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("b").isSuccess()); - Assert.assertFalse(response.getExecuteSteps().get("c").isSuccess()); - Assert.assertFalse(response.getExecuteSteps().get("d").isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("c").getTimeSpent() >= 2000); - Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("c").getException().getClass()); - Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("d").getException().getClass()); + Assert.assertTrue(response.getExecuteSteps().get("a").get(0).isSuccess()); + Assert.assertTrue(response.getExecuteSteps().get("b").get(0).isSuccess()); + Assert.assertFalse(response.getExecuteSteps().get("c").get(0).isSuccess()); + Assert.assertFalse(response.getExecuteSteps().get("d").get(0).isSuccess()); + Assert.assertTrue(response.getExecuteSteps().get("c").get(0).getTimeSpent() >= 2000); + Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("c").get(0).getException().getClass()); + Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("d").get(0).getException().getClass()); } @Test @@ -50,7 +47,7 @@ public class CmpStepTest extends BaseTest { public void testStep3() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); Assert.assertTrue(response.isSuccess()); - Map stepMap = response.getExecuteSteps(); + Map> stepMap = response.getExecuteSteps(); Assert.assertEquals(2, stepMap.size()); Queue queue = response.getExecuteStepQueue(); Assert.assertEquals(5, queue.size()); diff --git a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringbootTest.java b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringbootTest.java index c1b0d6d84..531a19dae 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringbootTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-solon/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringbootTest.java @@ -11,10 +11,7 @@ import org.noear.solon.annotation.Inject; import org.noear.solon.test.SolonJUnit4ClassRunner; import org.noear.solon.test.annotation.TestPropertySource; -import java.util.HashSet; -import java.util.Map; -import java.util.Queue; -import java.util.Set; +import java.util.*; /** * springboot环境step的测试例子 @@ -35,13 +32,13 @@ public class CmpStepELSpringbootTest extends BaseTest { public void testStep1() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg"); Assert.assertFalse(response.isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("a").isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("b").isSuccess()); - Assert.assertFalse(response.getExecuteSteps().get("c").isSuccess()); - Assert.assertFalse(response.getExecuteSteps().get("d").isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("c").getTimeSpent() >= 2000); - Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("c").getException().getClass()); - Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("d").getException().getClass()); + Assert.assertTrue(response.getExecuteSteps().get("a").get(0).isSuccess()); + Assert.assertTrue(response.getExecuteSteps().get("b").get(0).isSuccess()); + Assert.assertFalse(response.getExecuteSteps().get("c").get(0).isSuccess()); + Assert.assertFalse(response.getExecuteSteps().get("d").get(0).isSuccess()); + Assert.assertTrue(response.getExecuteSteps().get("c").get(0).getTimeSpent() >= 2000); + Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("c").get(0).getException().getClass()); + Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("d").get(0).getException().getClass()); } @Test @@ -55,7 +52,7 @@ public class CmpStepELSpringbootTest extends BaseTest { public void testStep3() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); Assert.assertTrue(response.isSuccess()); - Map stepMap = response.getExecuteSteps(); + Map> stepMap = response.getExecuteSteps(); Assert.assertEquals(2, stepMap.size()); Queue queue = response.getExecuteStepQueue(); Assert.assertEquals(5, queue.size()); diff --git a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringbootTest.java b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringbootTest.java index ed9084d40..0157e3b9c 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringbootTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springboot/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringbootTest.java @@ -14,10 +14,7 @@ import org.springframework.test.context.TestPropertySource; import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; -import java.util.HashSet; -import java.util.Map; -import java.util.Queue; -import java.util.Set; +import java.util.*; import java.util.function.Consumer; import java.util.function.Predicate; @@ -43,13 +40,13 @@ public class CmpStepELSpringbootTest extends BaseTest { public void testStep1() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg"); Assert.assertFalse(response.isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("a").isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("b").isSuccess()); - Assert.assertFalse(response.getExecuteSteps().get("c").isSuccess()); - Assert.assertFalse(response.getExecuteSteps().get("d").isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("c").getTimeSpent() >= 2000); - Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("c").getException().getClass()); - Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("d").getException().getClass()); + Assert.assertTrue(response.getExecuteSteps().get("a").get(0).isSuccess()); + Assert.assertTrue(response.getExecuteSteps().get("b").get(0).isSuccess()); + Assert.assertFalse(response.getExecuteSteps().get("c").get(0).isSuccess()); + Assert.assertFalse(response.getExecuteSteps().get("d").get(0).isSuccess()); + Assert.assertTrue(response.getExecuteSteps().get("c").get(0).getTimeSpent() >= 2000); + Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("c").get(0).getException().getClass()); + Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("d").get(0).getException().getClass()); } @Test @@ -63,7 +60,7 @@ public class CmpStepELSpringbootTest extends BaseTest { public void testStep3() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); Assert.assertTrue(response.isSuccess()); - Map stepMap = response.getExecuteSteps(); + Map> stepMap = response.getExecuteSteps(); Assert.assertEquals(2, stepMap.size()); Queue queue = response.getExecuteStepQueue(); Assert.assertEquals(5, queue.size()); diff --git a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringTest.java b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringTest.java index 5a5536e0b..789f8b2b3 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-springnative/src/test/java/com/yomahub/liteflow/test/cmpStep/CmpStepELSpringTest.java @@ -11,10 +11,7 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringRunner; import javax.annotation.Resource; -import java.util.HashSet; -import java.util.Map; -import java.util.Queue; -import java.util.Set; +import java.util.*; @RunWith(SpringRunner.class) @ContextConfiguration("classpath:/cmpStep/application.xml") @@ -27,13 +24,13 @@ public class CmpStepELSpringTest extends BaseTest { public void testStep1() { LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg"); Assert.assertFalse(response.isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("a").isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("b").isSuccess()); - Assert.assertFalse(response.getExecuteSteps().get("c").isSuccess()); - Assert.assertFalse(response.getExecuteSteps().get("d").isSuccess()); - Assert.assertTrue(response.getExecuteSteps().get("c").getTimeSpent() >= 2000); - Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("c").getException().getClass()); - Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("d").getException().getClass()); + Assert.assertTrue(response.getExecuteSteps().get("a").get(0).isSuccess()); + Assert.assertTrue(response.getExecuteSteps().get("b").get(0).isSuccess()); + Assert.assertFalse(response.getExecuteSteps().get("c").get(0).isSuccess()); + Assert.assertFalse(response.getExecuteSteps().get("d").get(0).isSuccess()); + Assert.assertTrue(response.getExecuteSteps().get("c").get(0).getTimeSpent() >= 2000); + Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("c").get(0).getException().getClass()); + Assert.assertEquals(RuntimeException.class, response.getExecuteSteps().get("d").get(0).getException().getClass()); } @Test @@ -47,7 +44,7 @@ public class CmpStepELSpringTest extends BaseTest { public void testStep3() throws Exception { LiteflowResponse response = flowExecutor.execute2Resp("chain3", "arg"); Assert.assertTrue(response.isSuccess()); - Map stepMap = response.getExecuteSteps(); + Map> stepMap = response.getExecuteSteps(); Assert.assertEquals(2, stepMap.size()); Queue queue = response.getExecuteStepQueue(); Assert.assertEquals(5, queue.size());