You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2020/12/28 13:24:45 UTC
[shardingsphere] branch master updated: Add DataSetLoader class
(#8797)
This is an automated email from the ASF dual-hosted git repository.
duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 1421291 Add DataSetLoader class (#8797)
1421291 is described below
commit 14212916e633d65fdffe183f9f0921c82b3c18bf
Author: Liang Zhang <te...@163.com>
AuthorDate: Mon Dec 28 21:24:15 2020 +0800
Add DataSetLoader class (#8797)
* Refactor SingleIT
* Rename SingleIT.originalSQL to caseIdentifier
* Add DataSetPathUtil.loadDataSet
* Add DataSetPathUtil.loadDataSet
* Private getPath
* Rename DataSetLoader
* Move DataSetLoader package
* For code format
* For code format
---
.../ddl/DDLIntegrateTestCaseAssertion.java | 4 ++-
.../DataSetPathUtil.java => DataSetLoader.java} | 26 +++++++++++++-----
.../test/integration/engine/BatchIT.java | 23 +++++++---------
.../test/integration/engine/SingleIT.java | 32 +++++++++-------------
.../test/integration/engine/dcl/GeneralDCLIT.java | 4 +--
.../test/integration/engine/ddl/BaseDDLIT.java | 29 ++++++++------------
.../test/integration/engine/ddl/GeneralDDLIT.java | 8 +++---
.../test/integration/engine/dml/BaseDMLIT.java | 19 ++++---------
.../test/integration/engine/dml/GeneralDMLIT.java | 4 +--
.../test/integration/engine/dql/BaseDQLIT.java | 19 ++++---------
.../test/integration/engine/dql/GeneralDQLIT.java | 4 +--
11 files changed, 78 insertions(+), 94 deletions(-)
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/ddl/DDLIntegrateTestCaseAssertion.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/ddl/DDLIntegrateTestCaseAssertion.java
index e9a8e3f..e50c7ae 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/ddl/DDLIntegrateTestCaseAssertion.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/assertion/ddl/DDLIntegrateTestCaseAssertion.java
@@ -18,6 +18,7 @@
package org.apache.shardingsphere.test.integration.cases.assertion.ddl;
import lombok.Getter;
+import lombok.Setter;
import org.apache.shardingsphere.test.integration.cases.assertion.root.IntegrateTestCaseAssertion;
import javax.xml.bind.annotation.XmlAttribute;
@@ -26,10 +27,11 @@ import javax.xml.bind.annotation.XmlAttribute;
* JAXB definition of DDL integrate test case assertion.
*/
@Getter
+@Setter
public final class DDLIntegrateTestCaseAssertion extends IntegrateTestCaseAssertion {
@XmlAttribute(name = "init-sql")
- private String initSql;
+ private String initSQL;
@XmlAttribute(name = "table")
private String table;
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/dataset/util/DataSetPathUtil.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/dataset/DataSetLoader.java
similarity index 71%
rename from shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/dataset/util/DataSetPathUtil.java
rename to shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/dataset/DataSetLoader.java
index 6b3d0b9..352d4ae 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/dataset/util/DataSetPathUtil.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/dataset/DataSetLoader.java
@@ -15,32 +15,44 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.integration.cases.dataset.util;
+package org.apache.shardingsphere.test.integration.cases.dataset;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
+import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
/**
- * Data set path util.
+ * Data set loader.
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class DataSetPathUtil {
+public final class DataSetLoader {
private static final String DATA_SET_FOLDER_NAME = "dataset";
/**
- * Get data set absolute path.
- *
+ * Load data set.
+ *
* @param parentPath parent path of data set file
* @param ruleType rule type
* @param databaseType database type
* @param dataSetFile name of data set file
- * @return data set absolute path
+ * @return data set
*/
- public static String getDataSetPath(final String parentPath, final String ruleType, final DatabaseType databaseType, final String dataSetFile) {
+ @SneakyThrows({JAXBException.class, IOException.class})
+ public static DataSet load(final String parentPath, final String ruleType, final DatabaseType databaseType, final String dataSetFile) {
+ try (FileReader reader = new FileReader(getFile(parentPath, ruleType, databaseType, dataSetFile))) {
+ return (DataSet) JAXBContext.newInstance(DataSet.class).createUnmarshaller().unmarshal(reader);
+ }
+ }
+
+ private static String getFile(final String parentPath, final String ruleType, final DatabaseType databaseType, final String dataSetFile) {
String result = String.join(File.separator, parentPath, DATA_SET_FOLDER_NAME, ruleType, databaseType.getName().toLowerCase(), dataSetFile);
if (new File(result).exists()) {
return result;
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/BatchIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/BatchIT.java
index 1195547..48ebab3 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/BatchIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/BatchIT.java
@@ -29,7 +29,7 @@ import org.apache.shardingsphere.test.integration.cases.dataset.DataSet;
import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetColumn;
import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetMetadata;
import org.apache.shardingsphere.test.integration.cases.dataset.row.DataSetRow;
-import org.apache.shardingsphere.test.integration.cases.dataset.util.DataSetPathUtil;
+import org.apache.shardingsphere.test.integration.cases.dataset.DataSetLoader;
import org.apache.shardingsphere.test.integration.env.EnvironmentPath;
import org.apache.shardingsphere.test.integration.env.dataset.DataSetEnvironmentManager;
import org.junit.After;
@@ -37,9 +37,7 @@ import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
-import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
-import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -69,16 +67,16 @@ public abstract class BatchIT extends BaseIT {
private final String sql;
- private final Collection<String> expectedDataFiles;
+ private final Collection<DataSet> dataSets;
protected BatchIT(final IntegrateTestCaseContext testCaseContext,
final String ruleType, final DatabaseType databaseType, final String sql) throws IOException, JAXBException, SQLException {
super(ruleType, databaseType);
this.testCaseContext = testCaseContext;
this.sql = sql;
- expectedDataFiles = new LinkedList<>();
+ dataSets = new LinkedList<>();
for (IntegrateTestCaseAssertion each : testCaseContext.getTestCase().getIntegrateTestCaseAssertions()) {
- expectedDataFiles.add(DataSetPathUtil.getDataSetPath(testCaseContext.getParentPath(), ruleType, databaseType, each.getExpectedDataFile()));
+ dataSets.add(DataSetLoader.load(testCaseContext.getParentPath(), ruleType, databaseType, each.getExpectedDataFile()));
}
dataSetEnvironmentManager = new DataSetEnvironmentManager(EnvironmentPath.getDataInitializeResourceFile(ruleType), getDataSourceMap());
}
@@ -103,15 +101,14 @@ public abstract class BatchIT extends BaseIT {
dataSetEnvironmentManager.clear();
}
- protected final void assertDataSet(final int[] actualUpdateCounts) throws SQLException, IOException, JAXBException {
+ protected final void assertDataSet(final int[] actualUpdateCounts) throws SQLException {
Collection<DataSet> expectedList = new LinkedList<>();
- assertThat(actualUpdateCounts.length, is(expectedDataFiles.size()));
+ assertThat(actualUpdateCounts.length, is(dataSets.size()));
int count = 0;
- for (String each : expectedDataFiles) {
- try (FileReader reader = new FileReader(each)) {
- DataSet expected = (DataSet) JAXBContext.newInstance(DataSet.class).createUnmarshaller().unmarshal(reader);
- assertThat(actualUpdateCounts[count], is(expected.getUpdateCount()));
- expectedList.add(expected);
+ for (DataSet each : dataSets) {
+ try {
+ assertThat(actualUpdateCounts[count], is(each.getUpdateCount()));
+ expectedList.add(each);
} catch (final AssertionError ex) {
log.error("[ERROR] SQL::{}, Expect::{}", sql, each);
throw ex;
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/SingleIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/SingleIT.java
index c036a3f..7a48276 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/SingleIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/SingleIT.java
@@ -24,12 +24,14 @@ import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.test.integration.cases.assertion.root.IntegrateTestCaseAssertion;
import org.apache.shardingsphere.test.integration.cases.assertion.root.SQLCaseType;
import org.apache.shardingsphere.test.integration.cases.assertion.root.SQLValue;
-import org.apache.shardingsphere.test.integration.cases.dataset.util.DataSetPathUtil;
+import org.apache.shardingsphere.test.integration.cases.dataset.DataSet;
+import org.apache.shardingsphere.test.integration.cases.dataset.DataSetLoader;
import javax.xml.bind.JAXBException;
import java.io.IOException;
import java.sql.SQLException;
import java.text.ParseException;
+import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@@ -37,40 +39,32 @@ import java.util.stream.Collectors;
@Getter(AccessLevel.PROTECTED)
public abstract class SingleIT extends BaseIT {
+ private final String caseIdentifier;
+
private final IntegrateTestCaseAssertion assertion;
private final SQLCaseType caseType;
- private final String expectedDataFile;
+ private final DataSet dataSet;
private final String sql;
- private final String originalSQL;
-
protected SingleIT(final String parentPath, final IntegrateTestCaseAssertion assertion, final String ruleType,
final DatabaseType databaseType, final SQLCaseType caseType, final String sql) throws IOException, JAXBException, SQLException, ParseException {
super(ruleType, databaseType);
+ caseIdentifier = sql;
this.assertion = assertion;
this.caseType = caseType;
- originalSQL = sql;
- this.sql = convert(sql);
- expectedDataFile = null == assertion ? null : DataSetPathUtil.getDataSetPath(parentPath, ruleType, databaseType, assertion.getExpectedDataFile());
- }
-
- private String convert(final String sql) throws ParseException {
- return caseType == SQLCaseType.Literal ? getLiteralSQL(sql) : sql;
+ this.sql = caseType == SQLCaseType.Literal ? getLiteralSQL(sql) : sql;
+ dataSet = null == assertion ? null : DataSetLoader.load(parentPath, ruleType, databaseType, assertion.getExpectedDataFile());
}
private String getLiteralSQL(final String sql) throws ParseException {
- List<Object> parameters = null != assertion ? assertion.getSQLValues().stream().map(SQLValue::toString).collect(Collectors.toList()) : null;
- if (null == parameters || parameters.isEmpty()) {
- return sql;
- }
- return String.format(sql.replace("%", "$").replace("?", "%s"), parameters.toArray()).replace("$", "%")
- .replace("%%", "%").replace("'%'", "'%%'");
+ List<Object> parameters = null == assertion ? Collections.emptyList() : assertion.getSQLValues().stream().map(SQLValue::toString).collect(Collectors.toList());
+ return parameters.isEmpty() ? sql : String.format(sql.replace("%", "$").replace("?", "%s"), parameters.toArray()).replace("$", "%").replace("%%", "%").replace("'%'", "'%%'");
}
- protected final void printExceptionContext(final Exception ex) {
- log.error("ruleType={}, databaseType={}, expectedDataFile={}, sql={}", getRuleType(), getDatabaseType().getName(), expectedDataFile, sql, ex);
+ protected final void logException(final Exception ex) {
+ log.error("ruleType={}, databaseType={}, sql={}", getRuleType(), getDatabaseType().getName(), sql, ex);
}
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dcl/GeneralDCLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dcl/GeneralDCLIT.java
index 35b0fb0..fe9477f 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dcl/GeneralDCLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dcl/GeneralDCLIT.java
@@ -53,7 +53,7 @@ public final class GeneralDCLIT extends BaseDCLIT {
connection.prepareStatement(getSql()).executeUpdate();
}
} catch (final SQLException ex) {
- printExceptionContext(ex);
+ logException(ex);
throw ex;
}
}
@@ -67,7 +67,7 @@ public final class GeneralDCLIT extends BaseDCLIT {
connection.prepareStatement(getSql()).execute();
}
} catch (final SQLException ex) {
- printExceptionContext(ex);
+ logException(ex);
throw ex;
}
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/BaseDDLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/BaseDDLIT.java
index 31859d7..0096aea 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/BaseDDLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/BaseDDLIT.java
@@ -18,24 +18,21 @@
package org.apache.shardingsphere.test.integration.engine.ddl;
import lombok.extern.slf4j.Slf4j;
+import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.test.integration.cases.assertion.ddl.DDLIntegrateTestCaseAssertion;
-import org.apache.shardingsphere.test.integration.cases.dataset.DataSet;
+import org.apache.shardingsphere.test.integration.cases.assertion.root.SQLCaseType;
import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetColumn;
import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetIndex;
import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetMetadata;
-import org.apache.shardingsphere.test.integration.cases.assertion.root.SQLCaseType;
import org.apache.shardingsphere.test.integration.engine.SingleIT;
import org.apache.shardingsphere.test.integration.env.EnvironmentPath;
import org.apache.shardingsphere.test.integration.env.dataset.DataSetEnvironmentManager;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
-import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
-import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
@@ -89,15 +86,11 @@ public abstract class BaseDDLIT extends SingleIT {
dropTables();
}
- protected final void assertMetadata(final Connection connection) throws IOException, JAXBException, SQLException {
+ protected final void assertMetaData(final Connection connection) throws SQLException {
if (null == assertion.getExpectedDataFile()) {
- log.warn("Have empty expectedDataFile `{}`", getSql());
+ log.warn("Expected data file `{}` is empty", getSql());
return;
}
- DataSet expected;
- try (FileReader reader = new FileReader(getExpectedDataFile())) {
- expected = (DataSet) JAXBContext.newInstance(DataSet.class).createUnmarshaller().unmarshal(reader);
- }
String tableName = assertion.getTable();
List<DataSetColumn> actualColumns = getActualColumns(connection, tableName);
List<DataSetIndex> actualIndexes = getActualIndexes(connection, tableName);
@@ -107,19 +100,19 @@ public abstract class BaseDDLIT extends SingleIT {
return;
}
try {
- assertMetadata(actualColumns, actualIndexes, expected.findMetadata(tableName));
+ assertMetaData(actualColumns, actualIndexes, getDataSet().findMetadata(tableName));
} catch (final AssertionError ex) {
- log.error("[ERROR] SQL::{}, Parameter::{}, Expect::{}", getOriginalSQL(), getAssertion().getParameters(), getAssertion().getExpectedDataFile());
+ log.error("[ERROR] SQL::{}, Parameter::{}, Expect::{}", getCaseIdentifier(), getAssertion().getParameters(), getAssertion().getExpectedDataFile());
throw ex;
}
}
- private void assertMetadata(final List<DataSetColumn> actualColumns, final List<DataSetIndex> actualIndexes, final DataSetMetadata expected) {
+ private void assertMetaData(final List<DataSetColumn> actualColumns, final List<DataSetIndex> actualIndexes, final DataSetMetadata expected) {
for (DataSetColumn each : expected.getColumns()) {
- assertColumnMetadata(actualColumns, each);
+ assertColumnMetaData(actualColumns, each);
}
for (DataSetIndex each : expected.getIndexes()) {
- assertIndexMetadata(actualIndexes, each);
+ assertIndexMetaData(actualIndexes, each);
}
}
@@ -135,7 +128,7 @@ public abstract class BaseDDLIT extends SingleIT {
}
}
- private void assertColumnMetadata(final List<DataSetColumn> actual, final DataSetColumn expect) {
+ private void assertColumnMetaData(final List<DataSetColumn> actual, final DataSetColumn expect) {
for (DataSetColumn each : actual) {
if (expect.getName().equals(each.getName())) {
if ("MySQL".equals(databaseType.getName()) && "integer".equals(expect.getType())) {
@@ -149,7 +142,7 @@ public abstract class BaseDDLIT extends SingleIT {
}
}
- private void assertIndexMetadata(final List<DataSetIndex> actual, final DataSetIndex expect) {
+ private void assertIndexMetaData(final List<DataSetIndex> actual, final DataSetIndex expect) {
for (DataSetIndex each : actual) {
if (expect.getName().equals(each.getName())) {
assertThat(each.isUnique(), is(expect.isUnique()));
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/GeneralDDLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/GeneralDDLIT.java
index 4eef20f..1cb686d 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/GeneralDDLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/ddl/GeneralDDLIT.java
@@ -62,8 +62,8 @@ public final class GeneralDDLIT extends BaseDDLIT {
private void assertExecuteByType(final boolean isExecuteUpdate) throws JAXBException, IOException, SQLException {
try (Connection connection = getDataSource().getConnection()) {
dropTableIfExisted(connection);
- if (!Strings.isNullOrEmpty(assertion.getInitSql())) {
- for (String sql : Splitter.on(";").trimResults().splitToList(assertion.getInitSql())) {
+ if (!Strings.isNullOrEmpty(assertion.getInitSQL())) {
+ for (String sql : Splitter.on(";").trimResults().splitToList(assertion.getInitSQL())) {
connection.prepareStatement(sql).executeUpdate();
}
}
@@ -80,10 +80,10 @@ public final class GeneralDDLIT extends BaseDDLIT {
connection.prepareStatement(getSql()).execute();
}
}
- assertMetadata(connection);
+ assertMetaData(connection);
dropTableIfExisted(connection);
} catch (final SQLException ex) {
- printExceptionContext(ex);
+ logException(ex);
throw ex;
}
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/BaseDMLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/BaseDMLIT.java
index a55908b..6e4f94b 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/BaseDMLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/BaseDMLIT.java
@@ -24,7 +24,6 @@ import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.sharding.algorithm.sharding.inline.InlineExpressionParser;
import org.apache.shardingsphere.test.integration.cases.assertion.dml.DMLIntegrateTestCaseAssertion;
import org.apache.shardingsphere.test.integration.cases.assertion.root.SQLCaseType;
-import org.apache.shardingsphere.test.integration.cases.dataset.DataSet;
import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetColumn;
import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetMetadata;
import org.apache.shardingsphere.test.integration.cases.dataset.row.DataSetRow;
@@ -36,9 +35,7 @@ import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
-import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
-import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
@@ -85,15 +82,11 @@ public abstract class BaseDMLIT extends SingleIT {
dataSetEnvironmentManager.clear();
}
- protected final void assertDataSet(final int actualUpdateCount) throws SQLException, IOException, JAXBException {
- DataSet expected;
- try (FileReader reader = new FileReader(getExpectedDataFile())) {
- expected = (DataSet) JAXBContext.newInstance(DataSet.class).createUnmarshaller().unmarshal(reader);
- }
+ protected final void assertDataSet(final int actualUpdateCount) throws SQLException {
try {
- assertThat("Only support single table for DML.", expected.getMetadataList().size(), is(1));
- assertThat(actualUpdateCount, is(expected.getUpdateCount()));
- DataSetMetadata expectedDataSetMetadata = expected.getMetadataList().get(0);
+ assertThat("Only support single table for DML.", getDataSet().getMetadataList().size(), is(1));
+ assertThat(actualUpdateCount, is(getDataSet().getUpdateCount()));
+ DataSetMetadata expectedDataSetMetadata = getDataSet().getMetadataList().get(0);
for (String each : new InlineExpressionParser(expectedDataSetMetadata.getDataNodes()).splitAndEvaluate()) {
DataNode dataNode = new DataNode(each);
String sql;
@@ -107,11 +100,11 @@ public abstract class BaseDMLIT extends SingleIT {
}
try (Connection connection = getDataSourceMap().get(dataNode.getDataSourceName()).getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(sql)) {
- assertDataSet(preparedStatement, expected.findRows(dataNode), expectedDataSetMetadata);
+ assertDataSet(preparedStatement, getDataSet().findRows(dataNode), expectedDataSetMetadata);
}
}
} catch (final AssertionError ex) {
- log.error("[ERROR] SQL::{}, Parameter::{}, Expect::{}", getOriginalSQL(), getAssertion().getParameters(), getAssertion().getExpectedDataFile());
+ log.error("[ERROR] SQL::{}, Parameter::{}, Expect::{}", getCaseIdentifier(), getAssertion().getParameters(), getAssertion().getExpectedDataFile());
throw ex;
}
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/GeneralDMLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/GeneralDMLIT.java
index 5cf8da2..117e19d 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/GeneralDMLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dml/GeneralDMLIT.java
@@ -73,7 +73,7 @@ public final class GeneralDMLIT extends BaseDMLIT {
try (Connection connection = getDataSource().getConnection()) {
actualUpdateCount = SQLCaseType.Literal == getCaseType() ? executeUpdateForStatement(connection) : executeUpdateForPreparedStatement(connection);
} catch (final SQLException ex) {
- printExceptionContext(ex);
+ logException(ex);
throw ex;
}
assertDataSet(actualUpdateCount);
@@ -108,7 +108,7 @@ public final class GeneralDMLIT extends BaseDMLIT {
try (Connection connection = getDataSource().getConnection()) {
actualUpdateCount = SQLCaseType.Literal == getCaseType() ? executeForStatement(connection) : executeForPreparedStatement(connection);
} catch (final SQLException ex) {
- printExceptionContext(ex);
+ logException(ex);
throw ex;
}
assertDataSet(actualUpdateCount);
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/BaseDQLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/BaseDQLIT.java
index 2fddaf9..bbf996040 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/BaseDQLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/BaseDQLIT.java
@@ -18,26 +18,23 @@
package org.apache.shardingsphere.test.integration.engine.dql;
import lombok.extern.slf4j.Slf4j;
+import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.apache.shardingsphere.test.integration.cases.assertion.dql.DQLIntegrateTestCaseAssertion;
-import org.apache.shardingsphere.test.integration.cases.dataset.DataSet;
+import org.apache.shardingsphere.test.integration.cases.assertion.root.SQLCaseType;
import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetColumn;
import org.apache.shardingsphere.test.integration.cases.dataset.metadata.DataSetMetadata;
import org.apache.shardingsphere.test.integration.cases.dataset.row.DataSetRow;
-import org.apache.shardingsphere.test.integration.cases.assertion.root.SQLCaseType;
import org.apache.shardingsphere.test.integration.engine.SingleIT;
import org.apache.shardingsphere.test.integration.env.EnvironmentPath;
import org.apache.shardingsphere.test.integration.env.IntegrateTestEnvironment;
import org.apache.shardingsphere.test.integration.env.dataset.DataSetEnvironmentManager;
import org.apache.shardingsphere.test.integration.env.datasource.DataSourceUtil;
import org.apache.shardingsphere.test.integration.env.schema.SchemaEnvironmentManager;
-import org.apache.shardingsphere.infra.database.type.DatabaseType;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import javax.sql.DataSource;
-import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
-import java.io.FileReader;
import java.io.IOException;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
@@ -91,20 +88,16 @@ public abstract class BaseDQLIT extends SingleIT {
return result;
}
- protected final void assertResultSet(final ResultSet resultSet) throws SQLException, JAXBException, IOException {
- DataSet expected;
- try (FileReader reader = new FileReader(getExpectedDataFile())) {
- expected = (DataSet) JAXBContext.newInstance(DataSet.class).createUnmarshaller().unmarshal(reader);
- }
+ protected final void assertResultSet(final ResultSet resultSet) throws SQLException {
List<DataSetColumn> expectedColumns = new LinkedList<>();
- for (DataSetMetadata each : expected.getMetadataList()) {
+ for (DataSetMetadata each : getDataSet().getMetadataList()) {
expectedColumns.addAll(each.getColumns());
}
try {
assertMetaData(resultSet.getMetaData(), expectedColumns);
- assertRows(resultSet, expected.getRows());
+ assertRows(resultSet, getDataSet().getRows());
} catch (final AssertionError ex) {
- log.error("[ERROR] SQL::{}, Parameter::[{}], Expect::{}", getOriginalSQL(), getAssertion().getParameters(), getAssertion().getExpectedDataFile());
+ log.error("[ERROR] SQL::{}, Parameter::[{}], Expect::{}", getCaseIdentifier(), getAssertion().getParameters(), getAssertion().getExpectedDataFile());
throw ex;
}
}
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/GeneralDQLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/GeneralDQLIT.java
index 9fa529f..45a8aed 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/GeneralDQLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/dql/GeneralDQLIT.java
@@ -62,7 +62,7 @@ public final class GeneralDQLIT extends BaseDQLIT {
assertExecuteQueryForPreparedStatement(connection);
}
} catch (final SQLException ex) {
- printExceptionContext(ex);
+ logException(ex);
throw ex;
}
}
@@ -95,7 +95,7 @@ public final class GeneralDQLIT extends BaseDQLIT {
assertExecuteForPreparedStatement(connection);
}
} catch (final SQLException ex) {
- printExceptionContext(ex);
+ logException(ex);
throw ex;
}
}