提交 dc04040f 编写于 作者: H haocao

New integrate sql test framework 21th version.

上级 0e1a06c2
...@@ -102,9 +102,13 @@ public abstract class AbstractSQLAssertTest extends AbstractSQLTest { ...@@ -102,9 +102,13 @@ public abstract class AbstractSQLAssertTest extends AbstractSQLTest {
continue; continue;
} }
for (SqlAssertData each : sqlShardingRule.getData()) { for (SqlAssertData each : sqlShardingRule.getData()) {
String strategyName = getShardingStrategy().name();
if (ShardingTestStrategy.hint.name().equals(strategyName)) {
strategyName = ShardingTestStrategy.db.name();
}
// TODO DML和DQL保持一直,去掉DML中XML名称里面的placeholder // TODO DML和DQL保持一直,去掉DML中XML名称里面的placeholder
String expected = null == each.getExpected() ? "integrate/dataset/EmptyTable.xml" String expected = null == each.getExpected() ? "integrate/dataset/EmptyTable.xml"
: String.format("integrate/dataset/%s/expect/" + each.getExpected(), getShardingStrategy().name(), getShardingStrategy().name()); : String.format("integrate/dataset/%s/expect/" + each.getExpected(), strategyName, strategyName);
URL url = AbstractSQLAssertTest.class.getClassLoader().getResource(expected); URL url = AbstractSQLAssertTest.class.getClassLoader().getResource(expected);
if (null == url) { if (null == url) {
throw new RuntimeException("Wrong expected file:" + expected); throw new RuntimeException("Wrong expected file:" + expected);
...@@ -168,6 +172,8 @@ public abstract class AbstractSQLAssertTest extends AbstractSQLTest { ...@@ -168,6 +172,8 @@ public abstract class AbstractSQLAssertTest extends AbstractSQLTest {
} }
if (result.contains("masterslave")) { if (result.contains("masterslave")) {
result = result.replace("masterslave", "ms"); result = result.replace("masterslave", "ms");
} else if (result.contains("hint")) {
result = result.replace("hint", "db");
} else { } else {
result = "dataSource_" + result; result = "dataSource_" + result;
} }
......
...@@ -44,7 +44,7 @@ import java.util.Map; ...@@ -44,7 +44,7 @@ import java.util.Map;
public abstract class AbstractSQLTest { public abstract class AbstractSQLTest {
private static final DatabaseTestMode CURRENT_TEST_MODE = DatabaseTestMode.TEST; private static final DatabaseTestMode CURRENT_TEST_MODE = DatabaseTestMode.LOCAL;
private final Map<DatabaseType, Map<String, DataSource>> databaseTypeMap = new HashMap<>(); private final Map<DatabaseType, Map<String, DataSource>> databaseTypeMap = new HashMap<>();
...@@ -55,7 +55,7 @@ public abstract class AbstractSQLTest { ...@@ -55,7 +55,7 @@ public abstract class AbstractSQLTest {
private static void createSchema() { private static void createSchema() {
for (DatabaseType each : CURRENT_TEST_MODE.databaseTypes()) { for (DatabaseType each : CURRENT_TEST_MODE.databaseTypes()) {
if (DatabaseType.H2 == each) { if (DatabaseType.H2 == each) {
createSchema(each); // createSchema(each);
} }
} }
} }
......
...@@ -20,22 +20,17 @@ package com.dangdang.ddframe.rdb.common.sql.strategy; ...@@ -20,22 +20,17 @@ package com.dangdang.ddframe.rdb.common.sql.strategy;
import com.dangdang.ddframe.rdb.common.jaxb.SqlShardingRule; import com.dangdang.ddframe.rdb.common.jaxb.SqlShardingRule;
import com.dangdang.ddframe.rdb.common.sql.common.ShardingTestStrategy; import com.dangdang.ddframe.rdb.common.sql.common.ShardingTestStrategy;
import com.dangdang.ddframe.rdb.sharding.constant.DatabaseType; import com.dangdang.ddframe.rdb.sharding.constant.DatabaseType;
import com.dangdang.ddframe.rdb.sharding.jdbc.core.datasource.ShardingDataSource;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.junit.runners.Parameterized; import org.junit.runners.Parameterized;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set; import java.util.Set;
@RunWith(Parameterized.class) @RunWith(Parameterized.class)
@Ignore @Ignore
public class HintShardingDatabaseOnlyTest extends ShardingDatabaseOnlyTest { public class HintShardingDatabaseOnlyTest extends ShardingDatabaseOnlyTest {
private static Map<DatabaseType, ShardingDataSource> shardingDataSources = new HashMap<>();
public HintShardingDatabaseOnlyTest(final String testCaseName, final String sql, final Set<DatabaseType> types, final List<SqlShardingRule> sqlShardingRules) { public HintShardingDatabaseOnlyTest(final String testCaseName, final String sql, final Set<DatabaseType> types, final List<SqlShardingRule> sqlShardingRules) {
super(testCaseName, sql, types, sqlShardingRules); super(testCaseName, sql, types, sqlShardingRules);
} }
......
...@@ -54,7 +54,7 @@ import static org.dbunit.Assertion.assertEquals; ...@@ -54,7 +54,7 @@ import static org.dbunit.Assertion.assertEquals;
public abstract class AbstractDBUnitTest { public abstract class AbstractDBUnitTest {
protected static final DatabaseType CURRENT_DB_TYPE = MySQL; protected static final DatabaseType CURRENT_DB_TYPE = H2;
@Getter(AccessLevel.PROTECTED) @Getter(AccessLevel.PROTECTED)
private static DatabaseTestSQL databaseTestSQL; private static DatabaseTestSQL databaseTestSQL;
...@@ -84,7 +84,7 @@ public abstract class AbstractDBUnitTest { ...@@ -84,7 +84,7 @@ public abstract class AbstractDBUnitTest {
} }
} }
conn = createDataSource("tbl").getConnection(); conn = createDataSource("tbl").getConnection();
// RunScript.execute(conn, new InputStreamReader(AbstractDBUnitTest.class.getClassLoader().getResourceAsStream("integrate/schema/table/tbl.sql"))); RunScript.execute(conn, new InputStreamReader(AbstractDBUnitTest.class.getClassLoader().getResourceAsStream("integrate/schema/table/tbl.sql")));
conn.close(); conn.close();
} catch (final SQLException ex) { } catch (final SQLException ex) {
ex.printStackTrace(); ex.printStackTrace();
......
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
<data parameter="'update',1108,11" expected="update/%s_8.xml" /> <data parameter="'update',1108,11" expected="update/%s_8.xml" />
<data parameter="'update',1109,11" expected="update/%s_9.xml" /> <data parameter="'update',1109,11" expected="update/%s_9.xml" />
</sharding-rule> </sharding-rule>
<sharding-rule value="db"> <sharding-rule value="db,hint">
<data parameter="'update',1000,10" expected="update/%s_0.xml" /> <data parameter="'update',1000,10" expected="update/%s_0.xml" />
<data parameter="'update',1100,11" expected="update/%s_1.xml" /> <data parameter="'update',1100,11" expected="update/%s_1.xml" />
<data parameter="'update',1200,12" expected="update/%s_2.xml" /> <data parameter="'update',1200,12" expected="update/%s_2.xml" />
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
<data parameter="'update',1108,11" expected="update/%s_8.xml" /> <data parameter="'update',1108,11" expected="update/%s_8.xml" />
<data parameter="'update',1109,11" expected="update/%s_9.xml" /> <data parameter="'update',1109,11" expected="update/%s_9.xml" />
</sharding-rule> </sharding-rule>
<sharding-rule value="db"> <sharding-rule value="db,hint">
<data parameter="'update',1000,10" expected="update/%s_0.xml" /> <data parameter="'update',1000,10" expected="update/%s_0.xml" />
<data parameter="'update',1100,11" expected="update/%s_1.xml" /> <data parameter="'update',1100,11" expected="update/%s_1.xml" />
<data parameter="'update',1200,12" expected="update/%s_2.xml" /> <data parameter="'update',1200,12" expected="update/%s_2.xml" />
...@@ -117,7 +117,7 @@ ...@@ -117,7 +117,7 @@
<data parameter="1108,11,'init'" expected="delete/%s_8.xml" /> <data parameter="1108,11,'init'" expected="delete/%s_8.xml" />
<data parameter="1109,11,'init'" expected="delete/%s_9.xml" /> <data parameter="1109,11,'init'" expected="delete/%s_9.xml" />
</sharding-rule> </sharding-rule>
<sharding-rule value="db"> <sharding-rule value="db,hint">
<data parameter="1000,10,'init'" expected="delete/%s_0.xml" /> <data parameter="1000,10,'init'" expected="delete/%s_0.xml" />
<data parameter="1100,11,'init'" expected="delete/%s_1.xml" /> <data parameter="1100,11,'init'" expected="delete/%s_1.xml" />
<data parameter="1200,12,'init'" expected="delete/%s_2.xml" /> <data parameter="1200,12,'init'" expected="delete/%s_2.xml" />
...@@ -158,8 +158,8 @@ ...@@ -158,8 +158,8 @@
<sharding-rule value="masterslave"> <sharding-rule value="masterslave">
<data parameter="'init_master'" expected="delete/%s.xml" /> <data parameter="'init_master'" expected="delete/%s.xml" />
</sharding-rule> </sharding-rule>
<!--<sharding-rule value="tbl,db,dbtbl">--> <sharding-rule value="tbl,db,dbtbl,hint">
<!--<data parameter="'init'" expected="delete/%s.xml" />--> <data parameter="'init'" expected="delete/%s.xml" />
<!--</sharding-rule>--> </sharding-rule>
</sql> </sql>
</sqls> </sqls>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册