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/30 15:17:06 UTC
[shardingsphere] branch master updated: Add more assertion for DDL
IT (#8839)
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 bc030ab Add more assertion for DDL IT (#8839)
bc030ab is described below
commit bc030abd5e79d4a356895a9eddf2f051194ed09e
Author: Liang Zhang <te...@163.com>
AuthorDate: Wed Dec 30 23:16:41 2020 +0800
Add more assertion for DDL IT (#8839)
---
.../cases/dataset/metadata/DataSetColumn.java | 2 +
.../test/integration/engine/it/ddl/BaseDDLIT.java | 71 +++++++++++-----------
2 files changed, 39 insertions(+), 34 deletions(-)
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/dataset/metadata/DataSetColumn.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/dataset/metadata/DataSetColumn.java
index 7113e18..be15ef0 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/dataset/metadata/DataSetColumn.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/cases/dataset/metadata/DataSetColumn.java
@@ -17,6 +17,7 @@
package org.apache.shardingsphere.test.integration.cases.dataset.metadata;
+import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
@@ -27,6 +28,7 @@ import javax.xml.bind.annotation.XmlAttribute;
@Getter
@Setter
@XmlAccessorType(XmlAccessType.FIELD)
+@EqualsAndHashCode
public final class DataSetColumn {
@XmlAttribute(required = true)
diff --git a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java
index e140c96..eb41270 100644
--- a/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java
+++ b/shardingsphere-test/shardingsphere-integration-test/shardingsphere-test-suite/src/test/java/org/apache/shardingsphere/test/integration/engine/it/ddl/BaseDDLIT.java
@@ -45,8 +45,10 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.ParseException;
import java.util.Collection;
+import java.util.LinkedHashSet;
import java.util.LinkedList;
import java.util.List;
+import java.util.Set;
import java.util.stream.Collectors;
import static org.hamcrest.CoreMatchers.is;
@@ -112,44 +114,37 @@ public abstract class BaseDDLIT extends SingleIT {
DataSetMetadata expected = getDataSet().findMetadata(tableName);
Collection<DataNode> dataNodes = new InlineExpressionParser(expected.getDataNodes()).splitAndEvaluate().stream().map(DataNode::new).collect(Collectors.toList());
if (expected.getColumns().isEmpty()) {
- assertFalse(containsTable(dataNodes));
+ assertNotContainsTable(dataNodes);
return;
}
assertTableMetaData(getActualColumns(dataNodes), getActualIndexes(dataNodes), expected);
}
private void assertTableMetaData(final List<DataSetColumn> actualColumns, final List<DataSetIndex> actualIndexes, final DataSetMetadata expected) {
- for (DataSetColumn each : expected.getColumns()) {
- assertColumnMetaData(actualColumns, each);
- }
- for (DataSetIndex each : expected.getIndexes()) {
- assertIndexMetaData(actualIndexes, each);
- }
+ assertColumnMetaData(actualColumns, expected.getColumns());
+ assertIndexMetaData(actualIndexes, expected.getIndexes());
}
- private boolean containsTable(final Collection<DataNode> dataNodes) throws SQLException {
+ private void assertNotContainsTable(final Collection<DataNode> dataNodes) throws SQLException {
for (DataNode each : dataNodes) {
try (Connection connection = getActualDataSources().get(each.getDataSourceName()).getConnection()) {
- if (containsTable(connection, each.getTableName())) {
- return true;
- }
+ assertNotContainsTable(connection, each.getTableName());
}
}
- return false;
}
- private boolean containsTable(final Connection connection, final String tableName) throws SQLException {
- return connection.getMetaData().getTables(null, null, tableName, new String[]{"TABLE"}).next();
+ private void assertNotContainsTable(final Connection connection, final String tableName) throws SQLException {
+ assertFalse(connection.getMetaData().getTables(null, null, tableName, new String[]{"TABLE"}).next());
}
private List<DataSetColumn> getActualColumns(final Collection<DataNode> dataNodes) throws SQLException {
- List<DataSetColumn> result = new LinkedList<>();
+ Set<DataSetColumn> result = new LinkedHashSet<>();
for (DataNode each : dataNodes) {
try (Connection connection = getActualDataSources().get(each.getDataSourceName()).getConnection()) {
result.addAll(getActualColumns(connection, each.getTableName()));
}
}
- return result;
+ return new LinkedList<>(result);
}
private List<DataSetColumn> getActualColumns(final Connection connection, final String tableName) throws SQLException {
@@ -167,13 +162,13 @@ public abstract class BaseDDLIT extends SingleIT {
}
private List<DataSetIndex> getActualIndexes(final Collection<DataNode> dataNodes) throws SQLException {
- List<DataSetIndex> result = new LinkedList<>();
+ Set<DataSetIndex> result = new LinkedHashSet<>();
for (DataNode each : dataNodes) {
try (Connection connection = getActualDataSources().get(each.getDataSourceName()).getConnection()) {
result.addAll(getActualIndexes(connection, each.getTableName()));
}
}
- return result;
+ return new LinkedList<>(result);
}
private List<DataSetIndex> getActualIndexes(final Connection connection, final String tableName) throws SQLException {
@@ -191,26 +186,34 @@ public abstract class BaseDDLIT extends SingleIT {
}
}
- // TODO need to assert line by line
- private void assertColumnMetaData(final List<DataSetColumn> actual, final DataSetColumn expect) {
- for (DataSetColumn each : actual) {
- if (expect.getName().equals(each.getName())) {
- if ("MySQL".equals(getDatabaseType().getName()) && "integer".equals(expect.getType())) {
- assertThat(each.getType(), is("int"));
- } else if ("PostgreSQL".equals(getDatabaseType().getName()) && "integer".equals(expect.getType())) {
- assertThat(each.getType(), is("int4"));
- } else {
- assertThat(each.getType(), is(expect.getType()));
- }
- }
+ private void assertColumnMetaData(final List<DataSetColumn> actual, final List<DataSetColumn> expected) {
+ assertThat(actual.size(), is(expected.size()));
+ for (int i = 0; i < actual.size(); i++) {
+ assertColumnMetaData(actual.get(i), expected.get(i));
+ }
+ }
+
+ private void assertColumnMetaData(final DataSetColumn actual, final DataSetColumn expected) {
+ assertThat(actual.getName(), is(expected.getName()));
+ if ("MySQL".equals(getDatabaseType().getName()) && "integer".equals(expected.getType())) {
+ assertThat(actual.getType(), is("int"));
+ } else if ("PostgreSQL".equals(getDatabaseType().getName()) && "integer".equals(expected.getType())) {
+ assertThat(actual.getType(), is("int4"));
+ } else {
+ assertThat(actual.getType(), is(expected.getType()));
+ }
+ }
+
+ private void assertIndexMetaData(final List<DataSetIndex> actual, final List<DataSetIndex> expected) {
+ for (DataSetIndex each : expected) {
+ assertIndexMetaData(actual, each);
}
}
- // TODO need to assert line by line
- private void assertIndexMetaData(final List<DataSetIndex> actual, final DataSetIndex expect) {
+ private void assertIndexMetaData(final List<DataSetIndex> actual, final DataSetIndex expected) {
for (DataSetIndex each : actual) {
- if (expect.getName().equals(each.getName())) {
- assertThat(each.isUnique(), is(expect.isUnique()));
+ if (expected.getName().equals(each.getName())) {
+ assertThat(each.isUnique(), is(expected.isUnique()));
}
}
}