Sfoglia il codice sorgente

feature #I5ROOR SQL plugin 完善单元测试

tangkc 2 anni fa
parent
commit
ead5896d04

+ 1 - 2
liteflow-rule-plugin/liteflow-rule-sql/src/main/java/com/yomahub/liteflow/parser/sql/util/JDBCHelper.java

@@ -149,9 +149,8 @@ public class JDBCHelper {
 		return sqlParserVO;
 	}
 
-	private JDBCHelper setSqlParserVO(SQLParserVO sqlParserVO) {
+	private void setSqlParserVO(SQLParserVO sqlParserVO) {
 		this.sqlParserVO = sqlParserVO;
-		return this;
 	}
 	//#endregion
 }

+ 2 - 1
liteflow-testcase-el/liteflow-testcase-el-sql-springboot/pom.xml

@@ -14,6 +14,7 @@
 
     <properties>
         <h2.version>2.1.214</h2.version>
+        <jpa.version>2.0.5.RELEASE</jpa.version>
     </properties>
 
     <dependencies>
@@ -38,7 +39,7 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-data-jpa</artifactId>
-            <version>2.0.5.RELEASE</version>
+            <version>${jpa.version}</version>
             <scope>test</scope>
         </dependency>
 

+ 39 - 7
liteflow-testcase-el/liteflow-testcase-el-sql-springboot/src/test/java/com/yomahub/liteflow/test/sql/SQLWithXmlELSpringbootTest.java

@@ -2,7 +2,12 @@ package com.yomahub.liteflow.test.sql;
 
 import com.yomahub.liteflow.core.FlowExecutor;
 import com.yomahub.liteflow.flow.LiteflowResponse;
+import com.yomahub.liteflow.parser.sql.exception.ELSQLException;
+import com.yomahub.liteflow.parser.sql.vo.SQLParserVO;
+import com.yomahub.liteflow.property.LiteflowConfig;
+import com.yomahub.liteflow.property.LiteflowConfigGetter;
 import com.yomahub.liteflow.test.BaseTest;
+import com.yomahub.liteflow.util.JsonUtil;
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -13,6 +18,10 @@ import org.springframework.test.context.TestPropertySource;
 import org.springframework.test.context.junit4.SpringRunner;
 
 import javax.annotation.Resource;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
+import java.sql.Statement;
 
 /**
  * @author tangkc
@@ -24,12 +33,35 @@ import javax.annotation.Resource;
 @EnableAutoConfiguration
 @ComponentScan({"com.yomahub.liteflow.test.sql.cmp"})
 public class SQLWithXmlELSpringbootTest extends BaseTest {
-	@Resource
-	private FlowExecutor flowExecutor;
+    @Resource
+    private FlowExecutor flowExecutor;
 
-	@Test
-	public void testSQLWithXml() {
-		LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg");
-		Assert.assertEquals("a==>b==>c", response.getExecuteStepStr());
-	}
+    @Test
+    public void testSQLWithXml() {
+        LiteflowResponse response = flowExecutor.execute2Resp("chain1", "arg");
+        Assert.assertEquals("a==>b==>c", response.getExecuteStepStr());
+
+        // 修改数据库
+        changeData();
+
+        // 重新加载规则
+        flowExecutor.reloadRule();
+        Assert.assertEquals("a==>c==>b", flowExecutor.execute2Resp("chain1", "arg").getExecuteStepStr());
+    }
+
+    /**
+     * 修改数据库数据
+     */
+    private void changeData() {
+        LiteflowConfig liteflowConfig = LiteflowConfigGetter.get();
+        SQLParserVO sqlParserVO = JsonUtil.parseObject(liteflowConfig.getRuleSourceExtData(), SQLParserVO.class);
+        Connection connection = null;
+        try {
+            connection = DriverManager.getConnection(sqlParserVO.getUrl(), sqlParserVO.getUsername(), sqlParserVO.getPassword());
+            Statement statement = connection.createStatement();
+            statement.executeUpdate("UPDATE EL_TABLE SET EL_DATA='THEN(a, c, b);' WHERE chain_name='chain1'");
+        } catch (SQLException e) {
+            throw new ELSQLException(e.getMessage());
+        }
+    }
 }