diff --git a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/builder/BuilderTest.java b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/builder/BuilderTest.java index d9c72be1d..739935f9c 100644 --- a/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/builder/BuilderTest.java +++ b/liteflow-testcase-nospring/src/test/java/com/yomahub/liteflow/test/builder/BuilderTest.java @@ -10,6 +10,13 @@ import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.enums.NodeTypeEnum; import com.yomahub.liteflow.property.LiteflowConfig; import com.yomahub.liteflow.test.BaseTest; +import com.yomahub.liteflow.test.builder.cmp.ACmp; +import com.yomahub.liteflow.test.builder.cmp.BCmp; +import com.yomahub.liteflow.test.builder.cmp.CCmp; +import com.yomahub.liteflow.test.builder.cmp.DCmp; +import com.yomahub.liteflow.test.builder.cmp.ECmp; +import com.yomahub.liteflow.test.builder.cmp.FCmp; +import com.yomahub.liteflow.test.builder.cmp.GCmp; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; @@ -81,4 +88,61 @@ public class BuilderTest extends BaseTest { Assert.assertTrue(response.isSuccess()); Assert.assertEquals("a[组件A]==>b[组件B]==>e[组件E]==>c[组件C]==>d[组件D]", response.getSlot().getExecuteStepStr()); } + + //基于普通组件的builder模式测试 + @Test + public void testBuilderForClassAndCode() throws Exception { + LiteFlowNodeBuilder.createNode().setId("a") + .setName("组件A") + .setTypeCode(NodeTypeEnum.COMMON.getCode()) + .setNodeComponentClazz(ACmp.class) + .build(); + LiteFlowNodeBuilder.createNode().setId("b") + .setName("组件B") + .setTypeCode(NodeTypeEnum.COMMON.getCode()) + .setNodeComponentClazz(BCmp.class) + .build(); + LiteFlowNodeBuilder.createNode().setId("c") + .setName("组件C") + .setTypeCode(NodeTypeEnum.COMMON.getCode()) + .setNodeComponentClazz(CCmp.class) + .build(); + LiteFlowNodeBuilder.createNode().setId("d") + .setName("组件D") + .setTypeCode(NodeTypeEnum.COMMON.getCode()) + .setNodeComponentClazz(DCmp.class) + .build(); + LiteFlowNodeBuilder.createNode().setId("e") + .setName("组件E") + .setTypeCode(NodeTypeEnum.COMMON.getCode()) + .setNodeComponentClazz(ECmp.class) + .build(); + LiteFlowNodeBuilder.createNode().setId("f") + .setName("组件F") + .setTypeCode(NodeTypeEnum.COMMON.getCode()) + .setNodeComponentClazz(FCmp.class) + .build(); + LiteFlowNodeBuilder.createNode().setId("g") + .setName("组件G") + .setTypeCode(NodeTypeEnum.COMMON.getCode()) + .setNodeComponentClazz(GCmp.class) + .build(); + + LiteFlowChainBuilder.createChain().setChainName("chain2").setCondition( + LiteFlowConditionBuilder.createWhenCondition().setValue("c,d").build() + ).build(); + + LiteFlowChainBuilder.createChain().setChainName("chain1").setCondition( + LiteFlowConditionBuilder + .createThenCondition() + .setValue("a,b").build() + ).setCondition( + LiteFlowConditionBuilder.createWhenCondition() + .setValue("e(f|g|chain2)").build() + ).build(); + + LiteflowResponse response = flowExecutor.execute2Resp("chain1"); + Assert.assertTrue(response.isSuccess()); + Assert.assertEquals("a[组件A]==>b[组件B]==>e[组件E]==>c[组件C]==>d[组件D]", response.getSlot().getExecuteStepStr()); + } } diff --git a/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/builder/BuilderSpringTest1.java b/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/builder/BuilderSpringTest1.java index ca5beefa8..2ea2cf458 100644 --- a/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/builder/BuilderSpringTest1.java +++ b/liteflow-testcase-springnative/src/test/java/com/yomahub/liteflow/test/builder/BuilderSpringTest1.java @@ -8,6 +8,7 @@ import com.yomahub.liteflow.entity.data.DefaultSlot; import com.yomahub.liteflow.entity.data.LiteflowResponse; import com.yomahub.liteflow.enums.NodeTypeEnum; import com.yomahub.liteflow.test.BaseTest; +import com.yomahub.liteflow.test.builder.cmp1.*; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @@ -65,6 +66,64 @@ public class BuilderSpringTest1 extends BaseTest { .build(); + LiteFlowChainBuilder.createChain().setChainName("chain2").setCondition( + LiteFlowConditionBuilder.createThenCondition().setValue("c,d").build() + ).build(); + + LiteFlowChainBuilder.createChain().setChainName("chain1").setCondition( + LiteFlowConditionBuilder + .createWhenCondition() + .setValue("a,b").build() + ).setCondition( + LiteFlowConditionBuilder.createWhenCondition() + .setValue("e(f|g|chain2)").build() + ).build(); + + LiteflowResponse response = flowExecutor.execute2Resp("chain1"); + Assert.assertTrue(response.isSuccess()); + } + + + //基于普通组件的builder模式测试 + @Test + public void testBuilderForClassAndCode() throws Exception { + LiteFlowNodeBuilder.createNode().setId("a") + .setName("组件A") + .setTypeCode(NodeTypeEnum.COMMON.getCode()) + .setNodeComponentClazz(ACmp.class) + .build(); + LiteFlowNodeBuilder.createNode().setId("b") + .setName("组件B") + .setTypeCode(NodeTypeEnum.COMMON.getCode()) + .setNodeComponentClazz(BCmp.class) + .build(); + LiteFlowNodeBuilder.createNode().setId("c") + .setName("组件C") + .setTypeCode(NodeTypeEnum.COMMON.getCode()) + .setNodeComponentClazz(CCmp.class) + .build(); + LiteFlowNodeBuilder.createNode().setId("d") + .setName("组件D") + .setTypeCode(NodeTypeEnum.COMMON.getCode()) + .setNodeComponentClazz(DCmp.class) + .build(); + LiteFlowNodeBuilder.createNode().setId("e") + .setName("组件E") + .setTypeCode(NodeTypeEnum.COMMON.getCode()) + .setNodeComponentClazz(ECmp.class) + .build(); + LiteFlowNodeBuilder.createNode().setId("f") + .setName("组件F") + .setTypeCode(NodeTypeEnum.COMMON.getCode()) + .setNodeComponentClazz(FCmp.class) + .build(); + LiteFlowNodeBuilder.createNode().setId("g") + .setName("组件G") + .setTypeCode(NodeTypeEnum.COMMON.getCode()) + .setNodeComponentClazz(GCmp.class) + .build(); + + LiteFlowChainBuilder.createChain().setChainName("chain2").setCondition( LiteFlowConditionBuilder.createThenCondition().setValue("c,d").build() ).build();