提交 1b05c436 编写于 作者: L liu ze jian

ddl sql test

上级 716f1727
......@@ -131,18 +131,9 @@ public class StartTest {
@BeforeClass
public static void beforeClass() {
try {
if (isInitialized()) {
String assertPath = getAssertPath();
assertPath = PathUtil.getPath(assertPath);
List<String> paths = FileUtil.getAllFilePaths(new File(assertPath), "t", "yaml");
Set<DatabaseType> databaseSchemas = InItCreateSchema.getDatabaseSchema(paths);
InItCreateSchema.setDatabaseSchemas(databaseSchemas);
InItCreateSchema.createDatabase();
InItCreateSchema.createTable();
}
} catch (IOException e) {
e.printStackTrace();
if (isInitialized()) {
InItCreateSchema.createDatabase();
InItCreateSchema.createTable();
}
}
......
......@@ -164,26 +164,14 @@ public class AssertEngine {
AssertDDLDefinition anAssert = each;
String rootsql = anAssert.getSql();
rootsql = SQLCasesLoader.getSql(rootsql);
String initDataFile = PathUtil.getPath(anAssert.getInitDataFile(), rootPath);
Map<String, DatasetDefinition> mapDatasetDefinition = new HashMap<>();
Map<String, String> sqls = new HashMap<>();
getInitDatas(dbs, initDataFile, mapDatasetDefinition, sqls);
if (mapDatasetDefinition.isEmpty()) {
throw new DbTestException(path + " Use cases cannot be parsed");
}
if (sqls.isEmpty()) {
throw new DbTestException(path + " The use case cannot initialize the data");
}
doUpdateUseStatementToExecuteUpdateDDL(rootPath, dataSource, dataSourceMaps, anAssert, rootsql, mapDatasetDefinition, sqls);
doUpdateUseStatementToExecuteUpdateDDL(rootPath, dataSource, anAssert, rootsql);
doUpdateUseStatementToExecuteDDL(rootPath, dataSource, dataSourceMaps, anAssert, rootsql, mapDatasetDefinition, sqls);
doUpdateUseStatementToExecuteDDL(rootPath, dataSource, anAssert, rootsql);
doUpdateUsePreparedStatementToExecuteUpdateDDL(rootPath, dataSource, dataSourceMaps, anAssert, rootsql, mapDatasetDefinition, sqls);
doUpdateUsePreparedStatementToExecuteUpdateDDL(rootPath, dataSource, anAssert, rootsql);
doUpdateUsePreparedStatementToExecuteDDL(rootPath, dataSource, dataSourceMaps, anAssert, rootsql, mapDatasetDefinition, sqls);
doUpdateUsePreparedStatementToExecuteDDL(rootPath, dataSource, anAssert, rootsql);
}
}
......@@ -216,9 +204,8 @@ public class AssertEngine {
}
}
private static void doUpdateUsePreparedStatementToExecuteDDL(final String rootPath, final DataSource dataSource, final Map<String, DataSource> dataSourceMaps, final AssertDDLDefinition anAssert, final String rootsql, final Map<String, DatasetDefinition> mapDatasetDefinition, final Map<String, String> sqls) throws SQLException, ParseException, IOException, SAXException, ParserConfigurationException, XPathExpressionException {
private static void doUpdateUsePreparedStatementToExecuteDDL(final String rootPath, final DataSource dataSource, final AssertDDLDefinition anAssert, final String rootsql) throws SQLException, ParseException, IOException, SAXException, ParserConfigurationException, XPathExpressionException {
try {
initTableData(dataSourceMaps, sqls, mapDatasetDefinition);
try (Connection con = dataSource.getConnection()) {
InItCreateSchema.dropTable();
InItCreateSchema.createTable();
......@@ -234,7 +221,6 @@ public class AssertEngine {
} finally {
InItCreateSchema.dropTable();
InItCreateSchema.createTable();
clearTableData(dataSourceMaps, mapDatasetDefinition);
}
}
......@@ -260,9 +246,8 @@ public class AssertEngine {
}
}
private static void doUpdateUsePreparedStatementToExecuteUpdateDDL(final String rootPath, final DataSource dataSource, final Map<String, DataSource> dataSourceMaps, final AssertDDLDefinition anAssert, final String rootsql, final Map<String, DatasetDefinition> mapDatasetDefinition, final Map<String, String> sqls) throws SQLException, ParseException, IOException, SAXException, ParserConfigurationException, XPathExpressionException {
private static void doUpdateUsePreparedStatementToExecuteUpdateDDL(final String rootPath, final DataSource dataSource, final AssertDDLDefinition anAssert, final String rootsql) throws SQLException, ParseException, IOException, SAXException, ParserConfigurationException, XPathExpressionException {
try {
initTableData(dataSourceMaps, sqls, mapDatasetDefinition);
try (Connection con = dataSource.getConnection()) {
InItCreateSchema.dropTable();
InItCreateSchema.createTable();
......@@ -279,7 +264,6 @@ public class AssertEngine {
} finally {
InItCreateSchema.dropTable();
InItCreateSchema.createTable();
clearTableData(dataSourceMaps, mapDatasetDefinition);
}
}
......@@ -305,9 +289,8 @@ public class AssertEngine {
}
}
private static void doUpdateUseStatementToExecuteDDL(final String rootPath, final DataSource dataSource, final Map<String, DataSource> dataSourceMaps, final AssertDDLDefinition anAssert, final String rootsql, final Map<String, DatasetDefinition> mapDatasetDefinition, final Map<String, String> sqls) throws SQLException, ParseException, IOException, SAXException, ParserConfigurationException, XPathExpressionException {
private static void doUpdateUseStatementToExecuteDDL(final String rootPath, final DataSource dataSource, final AssertDDLDefinition anAssert, final String rootsql) throws SQLException, ParseException, IOException, SAXException, ParserConfigurationException, XPathExpressionException {
try {
initTableData(dataSourceMaps, sqls, mapDatasetDefinition);
try (Connection con = dataSource.getConnection()) {
InItCreateSchema.dropTable();
InItCreateSchema.createTable();
......@@ -323,7 +306,6 @@ public class AssertEngine {
} finally {
InItCreateSchema.dropTable();
InItCreateSchema.createTable();
clearTableData(dataSourceMaps, mapDatasetDefinition);
}
}
......@@ -349,9 +331,8 @@ public class AssertEngine {
}
}
private static void doUpdateUseStatementToExecuteUpdateDDL(final String rootPath, final DataSource dataSource, final Map<String, DataSource> dataSourceMaps, final AssertDDLDefinition anAssert, final String rootsql, final Map<String, DatasetDefinition> mapDatasetDefinition, final Map<String, String> sqls) throws SQLException, ParseException, IOException, SAXException, ParserConfigurationException, XPathExpressionException {
private static void doUpdateUseStatementToExecuteUpdateDDL(final String rootPath, final DataSource dataSource, final AssertDDLDefinition anAssert, final String rootsql) throws SQLException, ParseException, IOException, SAXException, ParserConfigurationException, XPathExpressionException {
try {
initTableData(dataSourceMaps, sqls, mapDatasetDefinition);
try (Connection con = dataSource.getConnection()) {
InItCreateSchema.dropTable();
InItCreateSchema.createTable();
......@@ -366,7 +347,6 @@ public class AssertEngine {
} finally {
InItCreateSchema.dropTable();
InItCreateSchema.createTable();
clearTableData(dataSourceMaps, mapDatasetDefinition);
}
}
......
......@@ -606,7 +606,7 @@ public class DatabaseUtil {
Map<String, List<ColumnDefinition>> configs = expected.getMetadatas();
List<ColumnDefinition> columnDefinitions = configs.get(table);
for (ColumnDefinition each : columnDefinitions) {
boolean flag = false;
for (ColumnDefinition definition : actual) {
if (each.getName().equals(definition.getName())) {
boolean flag2 = true;
......@@ -640,12 +640,12 @@ public class DatabaseUtil {
flag2 = false;
}
}
if (flag2) {
flag = true;
if (!flag2) {
assertTrue(false);
}
}
assertTrue(flag);
}
}
}
......@@ -702,13 +702,13 @@ public class DatabaseUtil {
*/
public static List<ColumnDefinition> getColumnDefinitions(final Connection conn, final String table) throws SQLException, ParseException {
DatabaseMetaData stmt = conn.getMetaData();
try (ResultSet rs = stmt.getColumns(conn.getCatalog(), null, table, null);) {
try (ResultSet rs = stmt.getColumns(null, null, table, null)) {
List<ColumnDefinition> cols = new ArrayList<ColumnDefinition>();
while (rs.next()) {
ColumnDefinition col = new ColumnDefinition();
String column = rs.getString("COLUMN_NAME");
int size = rs.getInt("COLUMN_SIZE");
String columnType = rs.getString("TYPE_NAME");
String columnType = rs.getString("TYPE_NAME").toLowerCase();
int decimalDigits = rs.getInt("DECIMAL_DIGITS");
int numPrecRadix = rs.getInt("NUM_PREC_RADIX");
int nullAble = rs.getInt("NULLABLE");
......
......@@ -44,6 +44,6 @@ public class AssertDDLDefinition implements AssertDefinition {
private String table;
@XmlElement(name = "parameters")
private ParametersDefinition parameters;
private ParametersDefinition parameters = new ParametersDefinition();
}
......@@ -18,6 +18,7 @@
package io.shardingjdbc.dbtest.config.bean;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
......@@ -31,7 +32,7 @@ import lombok.Getter;
public class ParametersDefinition {
@XmlElement(name = "parameter")
private List<ParameterDefinition> parameter;
private List<ParameterDefinition> parameter = new ArrayList<>();
......
......@@ -26,7 +26,10 @@ import java.sql.SQLException;
import java.util.*;
import io.shardingjdbc.core.yaml.sharding.YamlShardingConfiguration;
import io.shardingjdbc.dbtest.StartTest;
import io.shardingjdbc.dbtest.common.DatabaseEnvironment;
import io.shardingjdbc.dbtest.common.FileUtil;
import io.shardingjdbc.dbtest.common.PathUtil;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.dbcp2.BasicDataSource;
......@@ -42,6 +45,20 @@ public class InItCreateSchema {
private static Set<DatabaseType> DATABASE_SCHEMAS;
static {
String assertPath = StartTest.getAssertPath();
assertPath = PathUtil.getPath(assertPath);
List<String> paths = FileUtil.getAllFilePaths(new File(assertPath), "t", "yaml");
try {
Set<DatabaseType> databaseSchemas = InItCreateSchema.getDatabaseSchema(paths);
InItCreateSchema.setDatabaseSchemas(databaseSchemas);
} catch (IOException e) {
e.printStackTrace();
}
}
public static Set<DatabaseType> getDatabaseSchemas() {
return DATABASE_SCHEMAS;
}
......@@ -203,7 +220,7 @@ public class InItCreateSchema {
}
conn = initialConnection("tbl", dbType);
RunScript.execute(conn, new InputStreamReader(
InItCreateSchema.class.getClassLoader().getResourceAsStream("integrate/schema/table/create/tbl.sql")));
InItCreateSchema.class.getClassLoader().getResourceAsStream("integrate/schema/table/drop/tbl.sql")));
conn.close();
} catch (final SQLException ex) {
ex.printStackTrace();
......@@ -229,6 +246,7 @@ public class InItCreateSchema {
Connection conn;
for (int i = 0; i < 2; i++) {
conn = initialConnection("jdbc_" + i, dbType);
RunScript.execute(conn, new InputStreamReader(InItCreateSchema.class.getClassLoader()
.getResourceAsStream("integrate/schema/table/drop/jdbc.sql")));
conn.close();
......
......@@ -20,4 +20,8 @@
<parameter value="1000" type="int"/>
</expected-parameters>
</assertDML>
<assertDDL id="test3" init-data-file="./init" expected-update="1" sql="assertAlterTableTOrder"
table="t_order"
expected-data-file="./asserts/ddl/update.xml">
</assertDDL>
</asserts>
\ No newline at end of file
<init>
<metadata>
<table name="data">
<table name="t_order">
<cloumn name="order_id" type="int" />
<cloumn name="user_id" type="int" />
<cloumn name="status" type="varchar"/>
<cloumn name="name" type="varchar"/>
</table>
</metadata>
</init>
\ No newline at end of file
DROP t_order;
DROP t_order_item;
DROP TABLE t_order;
DROP TABLE t_order_item;
DROP t_order_0 ;
DROP t_order_1 ;
DROP t_order_2 ;
DROP t_order_3 ;
DROP t_order_4 ;
DROP t_order_5 ;
DROP t_order_6 ;
DROP t_order_7 ;
DROP t_order_8 ;
DROP t_order_9 ;
DROP t_order_item_0 ;
DROP t_order_item_1 ;
DROP t_order_item_2 ;
DROP t_order_item_3 ;
DROP t_order_item_4 ;
DROP t_order_item_5 ;
DROP t_order_item_6 ;
DROP t_order_item_7 ;
DROP t_order_item_8 ;
DROP t_order_item_9 ;
DROP t_config ;
DROP t_global ;
DROP TABLE t_order_0 ;
DROP TABLE t_order_1 ;
DROP TABLE t_order_2 ;
DROP TABLE t_order_3 ;
DROP TABLE t_order_4 ;
DROP TABLE t_order_5 ;
DROP TABLE t_order_6 ;
DROP TABLE t_order_7 ;
DROP TABLE t_order_8 ;
DROP TABLE t_order_9 ;
DROP TABLE t_order_item_0 ;
DROP TABLE t_order_item_1 ;
DROP TABLE t_order_item_2 ;
DROP TABLE t_order_item_3 ;
DROP TABLE t_order_item_4 ;
DROP TABLE t_order_item_5 ;
DROP TABLE t_order_item_6 ;
DROP TABLE t_order_item_7 ;
DROP TABLE t_order_item_8 ;
DROP TABLE t_order_item_9 ;
DROP TABLE t_config ;
DROP TABLE t_global ;
DROP t_order_0 ;
DROP t_order_1 ;
DROP t_order_item_0 ;
DROP t_order_item_1 ;
DROP t_config ;
DROP t_global ;
DROP TABLE t_order_0 ;
DROP TABLE t_order_1 ;
DROP TABLE t_order_item_0 ;
DROP TABLE t_order_item_1 ;
DROP TABLE t_config ;
DROP TABLE t_global ;
DROP t_order_0 ;
DROP t_order_1 ;
DROP t_order_2 ;
DROP t_order_3 ;
DROP t_order_4 ;
DROP t_order_5 ;
DROP t_order_6 ;
DROP t_order_7 ;
DROP t_order_8 ;
DROP t_order_9 ;
DROP t_order_item_0 ;
DROP t_order_item_1 ;
DROP t_order_item_2 ;
DROP t_order_item_3 ;
DROP t_order_item_4 ;
DROP t_order_item_5 ;
DROP t_order_item_6 ;
DROP t_order_item_7 ;
DROP t_order_item_8 ;
DROP t_order_item_9 ;
DROP t_config ;
DROP t_global ;
DROP TABLE t_order_0 ;
DROP TABLE t_order_1 ;
DROP TABLE t_order_2 ;
DROP TABLE t_order_3 ;
DROP TABLE t_order_4 ;
DROP TABLE t_order_5 ;
DROP TABLE t_order_6 ;
DROP TABLE t_order_7 ;
DROP TABLE t_order_8 ;
DROP TABLE t_order_9 ;
DROP TABLE t_order_item_0 ;
DROP TABLE t_order_item_1 ;
DROP TABLE t_order_item_2 ;
DROP TABLE t_order_item_3 ;
DROP TABLE t_order_item_4 ;
DROP TABLE t_order_item_5 ;
DROP TABLE t_order_item_6 ;
DROP TABLE t_order_item_7 ;
DROP TABLE t_order_item_8 ;
DROP TABLE t_order_item_9 ;
DROP TABLE t_config ;
DROP TABLE t_global ;
DROP t_order ;
DROP t_order_item ;
DROP t_config ;
DROP t_global ;
DROP TABLE t_order ;
DROP TABLE t_order_item ;
DROP TABLE t_config ;
DROP TABLE t_global ;
DROP t_order_0 ;
DROP t_order_1 ;
DROP t_order_2 ;
DROP t_order_3 ;
DROP t_order_4 ;
DROP t_order_5 ;
DROP t_order_6 ;
DROP t_order_7 ;
DROP t_order_8 ;
DROP t_order_9 ;
DROP t_order_item_0 ;
DROP t_order_item_1 ;
DROP t_order_item_2 ;
DROP t_order_item_3 ;
DROP t_order_item_4 ;
DROP t_order_item_5 ;
DROP t_order_item_6 ;
DROP t_order_item_7 ;
DROP t_order_item_8 ;
DROP t_order_item_9 ;
DROP t_config ;
DROP t_global ;
DROP TABLE t_order_0 ;
DROP TABLE t_order_1 ;
DROP TABLE t_order_2 ;
DROP TABLE t_order_3 ;
DROP TABLE t_order_4 ;
DROP TABLE t_order_5 ;
DROP TABLE t_order_6 ;
DROP TABLE t_order_7 ;
DROP TABLE t_order_8 ;
DROP TABLE t_order_9 ;
DROP TABLE t_order_item_0 ;
DROP TABLE t_order_item_1 ;
DROP TABLE t_order_item_2 ;
DROP TABLE t_order_item_3 ;
DROP TABLE t_order_item_4 ;
DROP TABLE t_order_item_5 ;
DROP TABLE t_order_item_6 ;
DROP TABLE t_order_item_7 ;
DROP TABLE t_order_item_8 ;
DROP TABLE t_order_item_9 ;
DROP TABLE t_config ;
DROP TABLE t_global ;
DROP t_order ;
DROP t_order_item ;
DROP t_config ;
DROP t_global ;
DROP TABLE t_order ;
DROP TABLE t_order_item ;
DROP TABLE t_config ;
DROP TABLE t_global ;
DROP t_order_0 ;
DROP t_order_1 ;
DROP t_order_2 ;
DROP t_order_3 ;
DROP t_order_4 ;
DROP t_order_5 ;
DROP t_order_6 ;
DROP t_order_7 ;
DROP t_order_8 ;
DROP t_order_9 ;
DROP t_order_item_0 ;
DROP t_order_item_1 ;
DROP t_order_item_2 ;
DROP t_order_item_3 ;
DROP t_order_item_4 ;
DROP t_order_item_5 ;
DROP t_order_item_6 ;
DROP t_order_item_7 ;
DROP t_order_item_8 ;
DROP t_order_item_9 ;
DROP t_config ;
DROP TABLE t_order_0 ;
DROP TABLE t_order_1 ;
DROP TABLE t_order_2 ;
DROP TABLE t_order_3 ;
DROP TABLE t_order_4 ;
DROP TABLE t_order_5 ;
DROP TABLE t_order_6 ;
DROP TABLE t_order_7 ;
DROP TABLE t_order_8 ;
DROP TABLE t_order_9 ;
DROP TABLE t_order_item_0 ;
DROP TABLE t_order_item_1 ;
DROP TABLE t_order_item_2 ;
DROP TABLE t_order_item_3 ;
DROP TABLE t_order_item_4 ;
DROP TABLE t_order_item_5 ;
DROP TABLE t_order_item_6 ;
DROP TABLE t_order_item_7 ;
DROP TABLE t_order_item_8 ;
DROP TABLE t_order_item_9 ;
DROP TABLE t_config ;
......@@ -2,4 +2,5 @@
<sql-cases>
<sql-case id="assertAlterTable" value="ALTER TABLE t_log ADD name varchar(10)" />
<sql-case id="assertAlterTableIfExistAndOnly" value="ALTER TABLE IF EXISTS ONLY t_log ADD name varchar" db-types="PostgreSQL" />
<sql-case id="assertAlterTableTOrder" value="ALTER TABLE t_order ADD name varchar(10)" />
</sql-cases>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册