Переглянути джерело

!164 groovy 脚本文件组件支持绝对路径单元测试
Merge pull request !164 from 与或非/issues/I6BDN3

铂赛东 2 роки тому
батько
коміт
2bd8b6752c

+ 39 - 0
liteflow-testcase-el/liteflow-testcase-el-script-groovy-springboot/src/test/java/com/yomahub/liteflow/test/script/groovy/common/LiteFlowXmlScriptBuilderGroovyELTest.java

@@ -1,5 +1,6 @@
 package com.yomahub.liteflow.test.script.groovy.common;
 
+import cn.hutool.core.io.resource.ClassPathResource;
 import com.yomahub.liteflow.builder.LiteFlowNodeBuilder;
 import com.yomahub.liteflow.builder.el.LiteFlowChainELBuilder;
 import com.yomahub.liteflow.core.FlowExecutor;
@@ -25,6 +26,44 @@ public class LiteFlowXmlScriptBuilderGroovyELTest extends BaseTest {
     @Resource
     private FlowExecutor flowExecutor;
 
+    /**
+     * 测试通过builder方式运行普通script节点,以file绝对路径的方式运行
+     */
+    @Test
+    public void testAbsoluteScriptFilePath(){
+        String absolutePath = new ClassPathResource("classpath:builder/s2.groovy").getAbsolutePath();
+        LiteFlowNodeBuilder.createNode().setId("d")
+                .setName("组件D")
+                .setType(NodeTypeEnum.COMMON)
+                .setClazz("com.yomahub.liteflow.test.script.groovy.common.cmp.DCmp")
+                .build();
+        LiteFlowNodeBuilder.createNode().setId("s2")
+                .setName("条件脚本S2")
+                .setType(NodeTypeEnum.SWITCH_SCRIPT)
+                .setFile(absolutePath)
+                .build();
+        LiteFlowNodeBuilder.createNode().setId("a")
+                .setName("组件A")
+                .setType(NodeTypeEnum.COMMON)
+                .setClazz("com.yomahub.liteflow.test.script.groovy.common.cmp.ACmp")
+                .build();
+        LiteFlowNodeBuilder.createNode().setId("b")
+                .setName("组件B")
+                .setType(NodeTypeEnum.COMMON)
+                .setClazz("com.yomahub.liteflow.test.script.groovy.common.cmp.BCmp")
+                .build();
+
+        LiteFlowChainELBuilder.createChain().setChainName("chain2")
+                .setEL("THEN(d,SWITCH(s2).to(a,b))")
+                .build();
+
+
+        LiteflowResponse response = flowExecutor.execute2Resp("chain2","arg1");
+        DefaultContext context = response.getFirstContextBean();
+        Assert.assertTrue(response.isSuccess());
+        Assert.assertEquals("d[组件D]==>s2[条件脚本S2]==>a[组件A]", response.getExecuteStepStr());
+    }
+
     //测试通过builder方式运行普通script节点,以脚本文本的方式运行
     @Test
     public void testBuilderScript1() {