diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/common/base/AbstractSQLAssertTest.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/common/base/AbstractSQLAssertTest.java index 4fc7ab8c3f49aab804f4c14961a9ab7ad91cbc21..421f89b150a19bb36d3aa5ba98da05e0fc1c02d0 100644 --- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/common/base/AbstractSQLAssertTest.java +++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/common/base/AbstractSQLAssertTest.java @@ -17,12 +17,12 @@ package com.dangdang.ddframe.rdb.common.base; +import com.dangdang.ddframe.rdb.common.env.DataBaseEnvironment; +import com.dangdang.ddframe.rdb.common.env.ShardingTestStrategy; +import com.dangdang.ddframe.rdb.common.util.DBUnitUtil; import com.dangdang.ddframe.rdb.integrate.jaxb.SQLAssertData; import com.dangdang.ddframe.rdb.integrate.jaxb.SQLShardingRule; import com.dangdang.ddframe.rdb.integrate.jaxb.helper.SQLAssertJAXBHelper; -import com.dangdang.ddframe.rdb.common.env.ShardingTestStrategy; -import com.dangdang.ddframe.rdb.common.util.DBUnitUtil; -import com.dangdang.ddframe.rdb.common.env.DataBaseEnvironment; import com.dangdang.ddframe.rdb.sharding.constant.DatabaseType; import com.dangdang.ddframe.rdb.sharding.constant.SQLType; import com.dangdang.ddframe.rdb.sharding.jdbc.core.datasource.ShardingDataSource; @@ -34,6 +34,7 @@ import org.dbunit.dataset.ITableIterator; import org.dbunit.dataset.ReplacementDataSet; import org.dbunit.dataset.xml.FlatXmlDataSetBuilder; import org.junit.Test; +import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import java.io.File; @@ -47,31 +48,39 @@ import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; -import java.util.Set; import static com.dangdang.ddframe.rdb.common.util.SqlPlaceholderUtil.replacePreparedStatement; import static com.dangdang.ddframe.rdb.common.util.SqlPlaceholderUtil.replaceStatement; import static org.dbunit.Assertion.assertEquals; +@RunWith(Parameterized.class) public abstract class AbstractSQLAssertTest extends AbstractSQLTest { + private final String testCaseName; + private final String sql; - private final Set types; + private final DatabaseType type; private final List shardingRules; - protected AbstractSQLAssertTest(final String testCaseName, final String sql, final Set types, final List shardingRules) { + protected AbstractSQLAssertTest(final String testCaseName, final String sql, final DatabaseType type, final List shardingRules) { + this.testCaseName = testCaseName; this.sql = sql; - this.types = types; + this.type = type; this.shardingRules = shardingRules; } - @Parameterized.Parameters(name = "{0}") + @Parameterized.Parameters(name = "{0}In{2}") public static Collection dataParameters() { return SQLAssertJAXBHelper.getDataParameters("integrate/assert"); } + @Override + public DatabaseType getCurrentDatabaseType() { + return type; + } + protected abstract ShardingTestStrategy getShardingStrategy(); protected abstract Map getShardingDataSources(); @@ -88,7 +97,7 @@ public abstract class AbstractSQLAssertTest extends AbstractSQLTest { private void execute(final boolean isPreparedStatement) { for (Map.Entry each : getShardingDataSources().entrySet()) { - if (types.isEmpty() || types.contains(each.getKey())) { + if (getCurrentDatabaseType() == each.getKey()) { try { executeAndAssertSQL(isPreparedStatement, each.getValue()); //CHECKSTYLE:OFF diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/common/base/AbstractSQLTest.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/common/base/AbstractSQLTest.java index bd69db4895fa2135ed5595a94ac74b3c434bcf48..57aca7abcb1d96b3eedea6b322a19c09451bac35 100644 --- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/common/base/AbstractSQLTest.java +++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/common/base/AbstractSQLTest.java @@ -17,8 +17,8 @@ package com.dangdang.ddframe.rdb.common.base; -import com.dangdang.ddframe.rdb.common.env.DatabaseTestMode; import com.dangdang.ddframe.rdb.common.env.DataBaseEnvironment; +import com.dangdang.ddframe.rdb.common.env.DatabaseTestMode; import com.dangdang.ddframe.rdb.common.env.ShardingJdbcDatabaseTester; import com.dangdang.ddframe.rdb.sharding.constant.DatabaseType; import org.apache.commons.dbcp.BasicDataSource; @@ -43,10 +43,10 @@ import java.util.Map; public abstract class AbstractSQLTest { - private static final DatabaseTestMode CURRENT_TEST_MODE = DatabaseTestMode.TEST; - private static boolean initialized; + private static final DatabaseTestMode CURRENT_TEST_MODE = DatabaseTestMode.TEST; + private final Map> databaseTypeMap = new HashMap<>(); static { @@ -93,21 +93,25 @@ public abstract class AbstractSQLTest { @Before public final void importDataSet() throws Exception { for (DatabaseType databaseType : CURRENT_TEST_MODE.databaseTypes()) { - DataBaseEnvironment dbEnv = new DataBaseEnvironment(databaseType); - for (String each : getDataSetFiles()) { - InputStream is = AbstractSQLTest.class.getClassLoader().getResourceAsStream(each); - IDataSet dataSet = new FlatXmlDataSetBuilder().build(new InputStreamReader(is)); - IDatabaseTester databaseTester = new ShardingJdbcDatabaseTester(dbEnv.getDriverClassName(), dbEnv.getURL(getDatabaseName(each)), - dbEnv.getUsername(), dbEnv.getPassword(), dbEnv.getSchema(getDatabaseName(each))); - databaseTester.setSetUpOperation(DatabaseOperation.CLEAN_INSERT); - databaseTester.setDataSet(dataSet); - databaseTester.onSetup(); + if (databaseType == getCurrentDatabaseType() || null == getCurrentDatabaseType()) { + DataBaseEnvironment dbEnv = new DataBaseEnvironment(databaseType); + for (String each : getDataSetFiles()) { + InputStream is = AbstractSQLTest.class.getClassLoader().getResourceAsStream(each); + IDataSet dataSet = new FlatXmlDataSetBuilder().build(new InputStreamReader(is)); + IDatabaseTester databaseTester = new ShardingJdbcDatabaseTester(dbEnv.getDriverClassName(), dbEnv.getURL(getDatabaseName(each)), + dbEnv.getUsername(), dbEnv.getPassword(), dbEnv.getSchema(getDatabaseName(each))); + databaseTester.setSetUpOperation(DatabaseOperation.CLEAN_INSERT); + databaseTester.setDataSet(dataSet); + databaseTester.onSetup(); + } } } } protected abstract List getDataSetFiles(); + protected abstract DatabaseType getCurrentDatabaseType(); + protected final Map> createDataSourceMap() { for (String each : getDataSetFiles()) { String dbName = getDatabaseName(each); diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/common/base/AbstractShardingJDBCDatabaseAndTableTest.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/common/base/AbstractShardingJDBCDatabaseAndTableTest.java index f24af2ee2af72e9bdd7ec9cd5f2598f6019ed88e..8a3890cdea4a384c779cec8cb722b3977897be2e 100644 --- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/common/base/AbstractShardingJDBCDatabaseAndTableTest.java +++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/common/base/AbstractShardingJDBCDatabaseAndTableTest.java @@ -49,6 +49,11 @@ public abstract class AbstractShardingJDBCDatabaseAndTableTest extends AbstractS "integrate/dataset/jdbc/jdbc_1.xml"); } + @Override + protected DatabaseType getCurrentDatabaseType() { + return null; + } + protected final Map getShardingDataSources() { if (!shardingDataSources.isEmpty() && !isShutdown) { return shardingDataSources; diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/jaxb/helper/SQLAssertJAXBHelper.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/jaxb/helper/SQLAssertJAXBHelper.java index c09fa25bb05fbb5c16cec9cbd755efb0a197bc53..62f3f4073bd2831c32fa375e8602c96fc5edb4d8 100644 --- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/jaxb/helper/SQLAssertJAXBHelper.java +++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/jaxb/helper/SQLAssertJAXBHelper.java @@ -3,15 +3,16 @@ package com.dangdang.ddframe.rdb.integrate.jaxb.helper; import com.dangdang.ddframe.rdb.common.jaxb.helper.SQLStatementHelper; import com.dangdang.ddframe.rdb.integrate.jaxb.SQLAssert; import com.dangdang.ddframe.rdb.integrate.jaxb.SQLAsserts; +import com.dangdang.ddframe.rdb.sharding.constant.DatabaseType; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import java.io.File; import java.net.URL; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; +import java.util.List; public class SQLAssertJAXBHelper { @@ -46,11 +47,14 @@ public class SQLAssertJAXBHelper { private static Collection dataParameters(final File file) { SQLAsserts asserts = loadSqlAsserts(file); - Object[][] result = new Object[asserts.getSqlAsserts().size()][1]; + List result = new ArrayList<>(); for (int i = 0; i < asserts.getSqlAsserts().size(); i++) { - result[i] = getDataParameter(asserts.getSqlAsserts().get(i)); + SQLAssert assertObj = asserts.getSqlAsserts().get(i); + for (DatabaseType each : SQLStatementHelper.getTypes(assertObj.getId())) { + result.add(getDataParameter(assertObj, each)); + } } - return Arrays.asList(result); + return result; } private static SQLAsserts loadSqlAsserts(final File file) { @@ -61,11 +65,11 @@ public class SQLAssertJAXBHelper { } } - private static Object[] getDataParameter(final SQLAssert sqlAssert) { + private static Object[] getDataParameter(final SQLAssert sqlAssert, final DatabaseType dbType) { final Object[] result = new Object[4]; result[0] = sqlAssert.getId(); result[1] = SQLStatementHelper.getSql(sqlAssert.getId()); - result[2] = SQLStatementHelper.getTypes(sqlAssert.getId()); + result[2] = dbType; result[3] = sqlAssert.getSqlShardingRules(); return result; } diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/NullableShardingTableOnlyTest.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/NullableShardingTableOnlyTest.java index c220ad8adbc9120a27383ec6554fb33cba519912..e5bc59adc279167d040c8534b0e990f3af839025 100644 --- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/NullableShardingTableOnlyTest.java +++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/NullableShardingTableOnlyTest.java @@ -17,11 +17,11 @@ package com.dangdang.ddframe.rdb.integrate.type; -import com.dangdang.ddframe.rdb.integrate.jaxb.SQLShardingRule; import com.dangdang.ddframe.rdb.common.base.AbstractSQLAssertTest; -import com.dangdang.ddframe.rdb.integrate.jaxb.helper.SQLAssertJAXBHelper; import com.dangdang.ddframe.rdb.common.env.ShardingTestStrategy; import com.dangdang.ddframe.rdb.integrate.fixture.MultipleKeysModuloDatabaseShardingAlgorithm; +import com.dangdang.ddframe.rdb.integrate.jaxb.SQLShardingRule; +import com.dangdang.ddframe.rdb.integrate.jaxb.helper.SQLAssertJAXBHelper; import com.dangdang.ddframe.rdb.sharding.api.rule.BindingTableRule; import com.dangdang.ddframe.rdb.sharding.api.rule.DataSourceRule; import com.dangdang.ddframe.rdb.sharding.api.rule.ShardingRule; @@ -32,7 +32,6 @@ import com.dangdang.ddframe.rdb.sharding.api.strategy.table.TableShardingStrateg import com.dangdang.ddframe.rdb.sharding.constant.DatabaseType; import com.dangdang.ddframe.rdb.sharding.jdbc.core.datasource.ShardingDataSource; import org.junit.AfterClass; -import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import javax.sql.DataSource; @@ -42,17 +41,15 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; -@RunWith(Parameterized.class) public class NullableShardingTableOnlyTest extends AbstractSQLAssertTest { private static boolean isShutdown; private static Map shardingDataSources = new HashMap<>(); - public NullableShardingTableOnlyTest(final String testCaseName, final String sql, final Set types, final List sqlShardingRules) { - super(testCaseName, sql, types, sqlShardingRules); + public NullableShardingTableOnlyTest(final String testCaseName, final String sql, final DatabaseType type, final List sqlShardingRules) { + super(testCaseName, sql, type, sqlShardingRules); } @Parameterized.Parameters(name = "{0}") diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingDatabaseAndTableDynamicTest.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingDatabaseAndTableDynamicTest.java index 0c9b16c3a5fbf0752592732bd73e2c148a8957f1..0c5a17f399c2c0ab8ed85c44035fb18cb3e04ac4 100644 --- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingDatabaseAndTableDynamicTest.java +++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingDatabaseAndTableDynamicTest.java @@ -17,11 +17,11 @@ package com.dangdang.ddframe.rdb.integrate.type; -import com.dangdang.ddframe.rdb.integrate.jaxb.SQLShardingRule; import com.dangdang.ddframe.rdb.common.base.AbstractSQLAssertTest; import com.dangdang.ddframe.rdb.common.env.ShardingTestStrategy; import com.dangdang.ddframe.rdb.integrate.fixture.SingleKeyDynamicModuloTableShardingAlgorithm; import com.dangdang.ddframe.rdb.integrate.fixture.SingleKeyModuloDatabaseShardingAlgorithm; +import com.dangdang.ddframe.rdb.integrate.jaxb.SQLShardingRule; import com.dangdang.ddframe.rdb.sharding.api.rule.BindingTableRule; import com.dangdang.ddframe.rdb.sharding.api.rule.DataSourceRule; import com.dangdang.ddframe.rdb.sharding.api.rule.ShardingRule; @@ -31,8 +31,6 @@ import com.dangdang.ddframe.rdb.sharding.api.strategy.table.TableShardingStrateg import com.dangdang.ddframe.rdb.sharding.constant.DatabaseType; import com.dangdang.ddframe.rdb.sharding.jdbc.core.datasource.ShardingDataSource; import org.junit.AfterClass; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; import javax.sql.DataSource; import java.util.Arrays; @@ -40,17 +38,15 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; -@RunWith(Parameterized.class) public class ShardingDatabaseAndTableDynamicTest extends AbstractSQLAssertTest { private static boolean isShutdown; private static Map shardingDataSources = new HashMap<>(); - public ShardingDatabaseAndTableDynamicTest(final String testCaseName, final String sql, final Set types, final List sqlShardingRules) { - super(testCaseName, sql, types, sqlShardingRules); + public ShardingDatabaseAndTableDynamicTest(final String testCaseName, final String sql, final DatabaseType type, final List sqlShardingRules) { + super(testCaseName, sql, type, sqlShardingRules); } @Override diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingDatabaseAndTableTest.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingDatabaseAndTableTest.java index 6907af0d2580c93e0abe7ae1158407501d9338f7..576d6ce142c002fa78a13e2e08afb33e4b1f4c80 100644 --- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingDatabaseAndTableTest.java +++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingDatabaseAndTableTest.java @@ -17,11 +17,11 @@ package com.dangdang.ddframe.rdb.integrate.type; -import com.dangdang.ddframe.rdb.integrate.jaxb.SQLShardingRule; import com.dangdang.ddframe.rdb.common.base.AbstractSQLAssertTest; import com.dangdang.ddframe.rdb.common.env.ShardingTestStrategy; import com.dangdang.ddframe.rdb.integrate.fixture.SingleKeyModuloDatabaseShardingAlgorithm; import com.dangdang.ddframe.rdb.integrate.fixture.SingleKeyModuloTableShardingAlgorithm; +import com.dangdang.ddframe.rdb.integrate.jaxb.SQLShardingRule; import com.dangdang.ddframe.rdb.sharding.api.rule.BindingTableRule; import com.dangdang.ddframe.rdb.sharding.api.rule.DataSourceRule; import com.dangdang.ddframe.rdb.sharding.api.rule.ShardingRule; @@ -31,8 +31,6 @@ import com.dangdang.ddframe.rdb.sharding.api.strategy.table.TableShardingStrateg import com.dangdang.ddframe.rdb.sharding.constant.DatabaseType; import com.dangdang.ddframe.rdb.sharding.jdbc.core.datasource.ShardingDataSource; import org.junit.AfterClass; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; import javax.sql.DataSource; import java.util.Arrays; @@ -40,17 +38,15 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; -@RunWith(Parameterized.class) public class ShardingDatabaseAndTableTest extends AbstractSQLAssertTest { private static boolean isShutdown; private static Map shardingDataSources = new HashMap<>(); - public ShardingDatabaseAndTableTest(final String testCaseName, final String sql, final Set types, final List sqlShardingRules) { - super(testCaseName, sql, types, sqlShardingRules); + public ShardingDatabaseAndTableTest(final String testCaseName, final String sql, final DatabaseType type, final List sqlShardingRules) { + super(testCaseName, sql, type, sqlShardingRules); } @Override diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingDatabaseOnlyTest.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingDatabaseOnlyTest.java index 6ab5f88671f6fad00afd9041b3f606893bba844d..2bd8739c3ece0870f15972f6312571824b9da7f5 100644 --- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingDatabaseOnlyTest.java +++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingDatabaseOnlyTest.java @@ -17,10 +17,10 @@ package com.dangdang.ddframe.rdb.integrate.type; -import com.dangdang.ddframe.rdb.integrate.jaxb.SQLShardingRule; import com.dangdang.ddframe.rdb.common.base.AbstractSQLAssertTest; import com.dangdang.ddframe.rdb.common.env.ShardingTestStrategy; import com.dangdang.ddframe.rdb.integrate.fixture.MultipleKeysModuloDatabaseShardingAlgorithm; +import com.dangdang.ddframe.rdb.integrate.jaxb.SQLShardingRule; import com.dangdang.ddframe.rdb.sharding.api.rule.BindingTableRule; import com.dangdang.ddframe.rdb.sharding.api.rule.DataSourceRule; import com.dangdang.ddframe.rdb.sharding.api.rule.ShardingRule; @@ -32,8 +32,6 @@ import com.dangdang.ddframe.rdb.sharding.constant.DatabaseType; import com.dangdang.ddframe.rdb.sharding.jdbc.core.datasource.ShardingDataSource; import com.dangdang.ddframe.rdb.sharding.keygen.fixture.IncrementKeyGenerator; import org.junit.AfterClass; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; import javax.sql.DataSource; import java.util.Arrays; @@ -41,17 +39,15 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; -@RunWith(Parameterized.class) public class ShardingDatabaseOnlyTest extends AbstractSQLAssertTest { private static boolean isShutdown; private static Map shardingDataSources = new HashMap<>(); - public ShardingDatabaseOnlyTest(final String testCaseName, final String sql, final Set types, final List sqlShardingRules) { - super(testCaseName, sql, types, sqlShardingRules); + public ShardingDatabaseOnlyTest(final String testCaseName, final String sql, final DatabaseType type, final List sqlShardingRules) { + super(testCaseName, sql, type, sqlShardingRules); } @Override diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingMasterSlaveTest.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingMasterSlaveTest.java index 78dbd90eb76c231188be4dbbe1fae996ed49c0c7..87eb53191e489ba9b0997b1633a8a28a09b5bf76 100644 --- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingMasterSlaveTest.java +++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingMasterSlaveTest.java @@ -17,11 +17,11 @@ package com.dangdang.ddframe.rdb.integrate.type; -import com.dangdang.ddframe.rdb.integrate.jaxb.SQLShardingRule; import com.dangdang.ddframe.rdb.common.base.AbstractSQLAssertTest; import com.dangdang.ddframe.rdb.common.env.ShardingTestStrategy; import com.dangdang.ddframe.rdb.integrate.fixture.SingleKeyModuloDatabaseShardingAlgorithm; import com.dangdang.ddframe.rdb.integrate.fixture.SingleKeyModuloTableShardingAlgorithm; +import com.dangdang.ddframe.rdb.integrate.jaxb.SQLShardingRule; import com.dangdang.ddframe.rdb.sharding.api.rule.BindingTableRule; import com.dangdang.ddframe.rdb.sharding.api.rule.DataSourceRule; import com.dangdang.ddframe.rdb.sharding.api.rule.ShardingRule; @@ -34,8 +34,6 @@ import com.dangdang.ddframe.rdb.sharding.jdbc.core.datasource.MasterSlaveDataSou import com.dangdang.ddframe.rdb.sharding.jdbc.core.datasource.ShardingDataSource; import org.junit.After; import org.junit.AfterClass; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; import javax.sql.DataSource; import java.util.Arrays; @@ -43,17 +41,15 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; -@RunWith(Parameterized.class) public class ShardingMasterSlaveTest extends AbstractSQLAssertTest { private static boolean isShutdown; private static Map shardingDataSources = new HashMap<>(); - public ShardingMasterSlaveTest(final String testCaseName, final String sql, final Set types, final List sqlShardingRules) { - super(testCaseName, sql, types, sqlShardingRules); + public ShardingMasterSlaveTest(final String testCaseName, final String sql, final DatabaseType type, final List sqlShardingRules) { + super(testCaseName, sql, type, sqlShardingRules); } @Override diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingTableOnlyTest.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingTableOnlyTest.java index 2d12240a576527a655c34d3960bf9bcf97923080..15f63fd540fd8945e330be203238e125ced1e980 100644 --- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingTableOnlyTest.java +++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/ShardingTableOnlyTest.java @@ -17,10 +17,10 @@ package com.dangdang.ddframe.rdb.integrate.type; -import com.dangdang.ddframe.rdb.integrate.jaxb.SQLShardingRule; import com.dangdang.ddframe.rdb.common.base.AbstractSQLAssertTest; import com.dangdang.ddframe.rdb.common.env.ShardingTestStrategy; import com.dangdang.ddframe.rdb.integrate.fixture.SingleKeyModuloTableShardingAlgorithm; +import com.dangdang.ddframe.rdb.integrate.jaxb.SQLShardingRule; import com.dangdang.ddframe.rdb.sharding.api.rule.BindingTableRule; import com.dangdang.ddframe.rdb.sharding.api.rule.DataSourceRule; import com.dangdang.ddframe.rdb.sharding.api.rule.ShardingRule; @@ -31,8 +31,6 @@ import com.dangdang.ddframe.rdb.sharding.api.strategy.table.TableShardingStrateg import com.dangdang.ddframe.rdb.sharding.constant.DatabaseType; import com.dangdang.ddframe.rdb.sharding.jdbc.core.datasource.ShardingDataSource; import org.junit.AfterClass; -import org.junit.runner.RunWith; -import org.junit.runners.Parameterized; import javax.sql.DataSource; import java.util.Arrays; @@ -40,17 +38,15 @@ import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; -@RunWith(Parameterized.class) public class ShardingTableOnlyTest extends AbstractSQLAssertTest { private static boolean isShutdown; private static Map shardingDataSources = new HashMap<>(); - public ShardingTableOnlyTest(final String testCaseName, final String sql, final Set types, final List sqlShardingRules) { - super(testCaseName, sql, types, sqlShardingRules); + public ShardingTableOnlyTest(final String testCaseName, final String sql, final DatabaseType type, final List sqlShardingRules) { + super(testCaseName, sql, type, sqlShardingRules); } @Override diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/hint/base/AbstractHintTest.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/hint/base/AbstractHintTest.java index e13c2217ac9febcf43ead87ba1a63e6d41a7ff96..a2e00b20b4b2b34a804a9fafbc4afcb32536e42c 100644 --- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/hint/base/AbstractHintTest.java +++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/integrate/type/hint/base/AbstractHintTest.java @@ -48,6 +48,11 @@ public abstract class AbstractHintTest extends AbstractSQLTest { private static Map shardingDataSources = new HashMap<>(); + @Override + protected DatabaseType getCurrentDatabaseType() { + return null; + } + @Override protected List getDataSetFiles() { return Arrays.asList( diff --git a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parsing/UnsupportedSQLParsingEngineTest.java b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parsing/UnsupportedSQLParsingEngineTest.java index 5247741c14db577c18a8d12f378826cf7c61e4b5..3c99df4099e00bfbc028b734455d81f7516bb7df 100644 --- a/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parsing/UnsupportedSQLParsingEngineTest.java +++ b/sharding-jdbc-core/src/test/java/com/dangdang/ddframe/rdb/sharding/parsing/UnsupportedSQLParsingEngineTest.java @@ -42,23 +42,25 @@ public final class UnsupportedSQLParsingEngineTest { private String sql; - private Set types; + private DatabaseType type; - public UnsupportedSQLParsingEngineTest(final String testCaseName, final String sql, final Set types) { + public UnsupportedSQLParsingEngineTest(final String testCaseName, final String sql, final DatabaseType type) { this.testCaseName = testCaseName; this.sql = sql; - this.types = types; + this.type = type; } - @Parameterized.Parameters(name = "{0}") + @Parameterized.Parameters(name = "{0}In{2}") public static Collection dataParameters() { Collection result = new ArrayList<>(); for (SQLStatement each : SQLStatementHelper.getUnsupportedSqlStatements()) { - Object[] object = new Object[3]; - object[0] = each.getId(); - object[1] = each.getSql(); - object[2] = getTypes(each.getTypes()); - result.add(object); + for (DatabaseType dbType : getTypes(each.getTypes())) { + Object[] object = new Object[3]; + object[0] = each.getId(); + object[1] = each.getSql(); + object[2] = dbType; + result.add(object); + } } return result; } @@ -76,17 +78,15 @@ public final class UnsupportedSQLParsingEngineTest { @Test public void assertUnsupportedStatement() { - for (DatabaseType each : types) { - try { - new SQLParsingEngine(each, sql, - new ShardingRuleMockBuilder().addShardingColumns("user_id").addShardingColumns("order_id") - .addGenerateKeyColumn("t_order", "order_id").build()).parse(); - fail(String.format("Should have thrown an SQLParsingUnsupportedException because %s is invalid!", sql)); - //CHECKSTYLE:OFF - } catch (final Exception exception) { - //CHECKSTYLE:ON - assertTrue(exception instanceof SQLParsingUnsupportedException); - } + try { + new SQLParsingEngine(type, sql, + new ShardingRuleMockBuilder().addShardingColumns("user_id").addShardingColumns("order_id") + .addGenerateKeyColumn("t_order", "order_id").build()).parse(); + fail(String.format("Should have thrown an SQLParsingUnsupportedException because %s is invalid!", sql)); + //CHECKSTYLE:OFF + } catch (final Exception exception) { + //CHECKSTYLE:ON + assertTrue(exception instanceof SQLParsingUnsupportedException); } } }