Commit e206303e authored by haocao's avatar haocao
Browse files

Refactor sharding test cases 1th.

parent c6c78cb3
Loading
Loading
Loading
Loading
+14 −35
Original line number Diff line number Diff line
@@ -21,24 +21,14 @@ public abstract class AbstractDatabaseTestSQL implements DatabaseTestSQL {
    
    private static final String SELECT_COUNT_ALIAS_SQL = "SELECT COUNT(*) AS orders_count FROM t_order";
    
    private static final String SELECT_COUNT_SQL = "SELECT COUNT(*), COUNT(user_id) FROM t_order";
    
    private static final String SELECT_SUM_ALIAS_SQL = "SELECT SUM(user_id) AS user_id_sum FROM t_order";
    
    private static final String SELECT_SUM_SQL =  "SELECT SUM(user_id) FROM t_order";
    
    private static final String SELECT_MAX_ALIAS_SQL = "SELECT MAX(user_id) AS max_user_id FROM t_order";
    
    private static final String SELECT_MAX_SQL = "SELECT MAX(user_id) FROM t_order";
    
    private static final String SELECT_MIN_ALIAS_SQL = "SELECT MIN(user_id) AS min_user_id FROM t_order";
    
    private static final String SELECT_MIN_SQL = "SELECT MIN(user_id) FROM t_order";
    
    private static final String SELECT_AVG_ALIAS_SQL = "SELECT AVG(user_id) AS user_id_avg FROM t_order";
    
    private static final String SELECT_AVG_SQL = "SELECT AVG(user_id) FROM t_order";
    
    private static final String SELECT_COUNT_WITH_BINDING_TABLE_SQL = "SELECT COUNT(*) AS items_count FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id"
            + " WHERE o.user_id IN (%s, %s) AND o.order_id BETWEEN %s AND %s";
    
@@ -110,54 +100,33 @@ public abstract class AbstractDatabaseTestSQL implements DatabaseTestSQL {
    private static final String SELECT_WITH_BINDING_TABLE_SQL =
            "SELECT i.* FROM t_order o JOIN t_order_item i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.user_id IN (?, ?) AND o.order_id BETWEEN ? AND ?";
    
    @Override
    public abstract String getSelectLimitWithBindingTableSql();
    private static final String SELECT_GROUP_BY_USER_ID_SQL = "SELECT user_id AS uid FROM t_order group by uid";
    
    private static final String SELECT_USER_ID_BY_STATUS_SQL = "SELECT user_id AS uid FROM t_order WHERE status = 'init'";
    
    @Override
    public String getSelectCountSql() {
        return SELECT_COUNT_SQL;
    }
    public abstract String getSelectLimitWithBindingTableSql();
    
    @Override
    public String getSelectCountAliasSql() {
        return SELECT_COUNT_ALIAS_SQL;
    }
    
    @Override
    public String getSelectSumSql() {
        return SELECT_SUM_SQL;
    }
    
    @Override
    public String getSelectSumAliasSql() {
        return SELECT_SUM_ALIAS_SQL;
    }
    
    @Override
    public String getSelectMaxSql() {
        return SELECT_MAX_SQL;
    }
    
    @Override
    public String getSelectMaxAliasSql() {
        return SELECT_MAX_ALIAS_SQL;
    }
    
    @Override
    public String getSelectMinSql() {
        return SELECT_MIN_SQL;
    }
    
    @Override
    public String getSelectMinAliasSql() {
        return SELECT_MIN_ALIAS_SQL;
    }
    
    @Override
    public String getSelectAvgSql() {
        return SELECT_AVG_SQL;
    }
    
    @Override
    public String getSelectAvgAliasSql() {
        return SELECT_AVG_ALIAS_SQL;
@@ -317,4 +286,14 @@ public abstract class AbstractDatabaseTestSQL implements DatabaseTestSQL {
    public String getSelectWithBindingTableSql() {
        return SELECT_WITH_BINDING_TABLE_SQL;
    }
    
    @Override
    public String getSelectGroupByUserIdSql() {
        return SELECT_GROUP_BY_USER_ID_SQL;
    }
    
    @Override
    public String getSelectUserIdByStatusSql() {
        return SELECT_USER_ID_BY_STATUS_SQL;
    }
}
+4 −10
Original line number Diff line number Diff line
@@ -19,24 +19,14 @@ package com.dangdang.ddframe.rdb.integrate.sql;

public interface DatabaseTestSQL {
    
    String getSelectCountSql();
    
    String getSelectCountAliasSql();
    
    String getSelectSumSql();
    
    String getSelectSumAliasSql();
    
    String getSelectMaxSql();
    
    String getSelectMaxAliasSql();
    
    String getSelectMinSql();
    
    String getSelectMinAliasSql();
    
    String getSelectAvgSql();
    
    String getSelectAvgAliasSql();
    
    String getSelectCountWithBindingTableSql();
@@ -102,4 +92,8 @@ public interface DatabaseTestSQL {
    String getSelectForFullTableNameWithSingleTableSql();
    
    String getSelectWithBindingTableSql();
    
    String getSelectGroupByUserIdSql();
    
    String getSelectUserIdByStatusSql();
}
+13 −34
Original line number Diff line number Diff line
@@ -23,24 +23,14 @@ public final class MySQLTestSQL implements DatabaseTestSQL {
    
    private static final String SELECT_COUNT_ALIAS_SQL = "SELECT COUNT(*) AS `orders_count` FROM `t_order`";
    
    private static final String SELECT_COUNT_SQL = "SELECT COUNT(*) FROM `t_order`";
    
    private static final String SELECT_SUM_ALIAS_SQL = "SELECT SUM(`user_id`) AS `user_id_sum` FROM `t_order`";
    
    private static final String SELECT_SUM_SQL =  "SELECT SUM(`user_id`) FROM `t_order`";
    
    private static final String SELECT_MAX_ALIAS_SQL = "SELECT MAX(`user_id`) AS `max_user_id` FROM `t_order`";
    
    private static final String SELECT_MAX_SQL = "SELECT MAX(`user_id`) FROM `t_order`";
    
    private static final String SELECT_MIN_ALIAS_SQL = "SELECT MIN(`user_id`) AS `min_user_id` FROM `t_order`";
    
    private static final String SELECT_MIN_SQL = "SELECT MIN(`user_id`) FROM `t_order`";
    
    private static final String SELECT_AVG_ALIAS_SQL = "SELECT AVG(`user_id`) AS `user_id_avg` FROM `t_order`";
    
    private static final String SELECT_AVG_SQL = "SELECT AVG(`user_id`) FROM `t_order`";
    
    private static final String SELECT_COUNT_WITH_BINDING_TABLE_SQL = "SELECT COUNT(*) AS `items_count` FROM `t_order` o JOIN `t_order_item` i "
            + "ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.`user_id` IN (%s, %s) AND o.`order_id` BETWEEN %s AND %s";
    
@@ -112,51 +102,30 @@ public final class MySQLTestSQL implements DatabaseTestSQL {
    private static final String SELECT_WITH_BINDING_TABLE_SQL =
            "SELECT i.* FROM `t_order` o JOIN `t_order_item` i ON o.user_id = i.user_id AND o.order_id = i.order_id WHERE o.`user_id` IN (?, ?) AND o.`order_id` BETWEEN ? AND ?";
    
    @Override
    public String getSelectCountSql() {
        return SELECT_COUNT_SQL;
    }
    private static final String SELECT_GROUP_BY_USER_ID_SQL = "SELECT user_id AS `uid` FROM `t_order` group by `uid`";
    
    private static final String SELECT_USER_ID_BY_STATUS_SQL = "SELECT user_id AS `uid` FROM `t_order` WHERE `status` = 'init'";
    
    @Override
    public String getSelectCountAliasSql() {
        return SELECT_COUNT_ALIAS_SQL;
    }
    
    @Override
    public String getSelectSumSql() {
        return SELECT_SUM_SQL;
    }
    
    @Override
    public String getSelectSumAliasSql() {
        return SELECT_SUM_ALIAS_SQL;
    }
    
    @Override
    public String getSelectMaxSql() {
        return SELECT_MAX_SQL;
    }
    
    @Override
    public String getSelectMaxAliasSql() {
        return SELECT_MAX_ALIAS_SQL;
    }
    
    @Override
    public String getSelectMinSql() {
        return SELECT_MIN_SQL;
    }
    
    @Override
    public String getSelectMinAliasSql() {
        return SELECT_MIN_ALIAS_SQL;
    }
    
    @Override
    public String getSelectAvgSql() {
        return SELECT_AVG_SQL;
    }
    
    @Override
    public String getSelectAvgAliasSql() {
        return SELECT_AVG_ALIAS_SQL;
@@ -321,4 +290,14 @@ public final class MySQLTestSQL implements DatabaseTestSQL {
    public String getSelectWithBindingTableSql() {
        return SELECT_WITH_BINDING_TABLE_SQL;
    }
    
    @Override
    public String getSelectGroupByUserIdSql() {
        return SELECT_GROUP_BY_USER_ID_SQL;
    }
    
    @Override
    public String getSelectUserIdByStatusSql() {
        return SELECT_USER_ID_BY_STATUS_SQL;
    }
}
+8 −6
Original line number Diff line number Diff line
@@ -39,6 +39,8 @@ public final class ConnectionAdapterTest extends AbstractShardingDatabaseOnlyDBU
    
    private ShardingDataSource shardingDataSource;
    
    private String sql = getDatabaseTestSQL().getSelectUserIdByStatusSql();
    
    @Before
    public void init() throws SQLException {
        shardingDataSource = getShardingDataSource();
@@ -49,7 +51,7 @@ public final class ConnectionAdapterTest extends AbstractShardingDatabaseOnlyDBU
        try (ShardingConnection actual = shardingDataSource.getConnection()) {
            assertTrue(actual.getAutoCommit());
            actual.setAutoCommit(false);
            actual.createStatement().executeQuery("SELECT `user_id` FROM `t_order` WHERE `status` = 'init'");
            actual.createStatement().executeQuery(sql);
            assertAutoCommit(actual, false);
            actual.setAutoCommit(true);
            assertAutoCommit(actual, true);
@@ -69,7 +71,7 @@ public final class ConnectionAdapterTest extends AbstractShardingDatabaseOnlyDBU
    public void assertCommit() throws SQLException {
        try (ShardingConnection actual = shardingDataSource.getConnection()) {
            actual.setAutoCommit(false);
            actual.createStatement().executeQuery("SELECT `user_id` FROM `t_order` WHERE `status` = 'init'");
            actual.createStatement().executeQuery(sql);
            actual.commit();
        }
    }
@@ -79,7 +81,7 @@ public final class ConnectionAdapterTest extends AbstractShardingDatabaseOnlyDBU
    public void assertRollback() throws SQLException {
        try (ShardingConnection actual = shardingDataSource.getConnection()) {
            actual.setAutoCommit(false);
            actual.createStatement().executeQuery("SELECT `user_id` FROM `t_order` WHERE `status` = 'init'");
            actual.createStatement().executeQuery(sql);
            actual.rollback();
        }
    }
@@ -87,7 +89,7 @@ public final class ConnectionAdapterTest extends AbstractShardingDatabaseOnlyDBU
    @Test
    public void assertClose() throws SQLException {
        try (ShardingConnection actual = shardingDataSource.getConnection()) {
            actual.createStatement().executeQuery("SELECT `user_id` FROM `t_order` WHERE `status` = 'init'");
            actual.createStatement().executeQuery(sql);
            assertClose(actual, false);
            actual.close();
            assertClose(actual, true);
@@ -107,7 +109,7 @@ public final class ConnectionAdapterTest extends AbstractShardingDatabaseOnlyDBU
        try (ShardingConnection actual = shardingDataSource.getConnection()) {
            assertTrue(actual.isReadOnly());
            actual.setReadOnly(false);
            actual.createStatement().executeQuery("SELECT `user_id` FROM `t_order` WHERE `status` = 'init'");
            actual.createStatement().executeQuery(sql);
            assertReadOnly(actual, false);
            actual.setReadOnly(true);
            assertReadOnly(actual, true);
@@ -132,7 +134,7 @@ public final class ConnectionAdapterTest extends AbstractShardingDatabaseOnlyDBU
        try (ShardingConnection actual = shardingDataSource.getConnection()) {
            assertThat(actual.getTransactionIsolation(), is(Connection.TRANSACTION_READ_UNCOMMITTED));
            actual.setTransactionIsolation(Connection.TRANSACTION_SERIALIZABLE);
            actual.createStatement().executeQuery("SELECT `user_id` FROM `t_order` WHERE `status` = 'init'");
            actual.createStatement().executeQuery(sql);
            assertTransactionIsolation(actual, Connection.TRANSACTION_SERIALIZABLE);
            actual.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
            assertTransactionIsolation(actual, Connection.TRANSACTION_READ_COMMITTED);
+1 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@ public final class ResultSetAdapterTest extends AbstractShardingDatabaseOnlyDBUn
        ShardingDataSource shardingDataSource = getShardingDataSource();
        shardingConnection = shardingDataSource.getConnection();
        statement = shardingConnection.createStatement();
        actual = statement.executeQuery("SELECT user_id AS `uid` FROM `t_order` WHERE `status` = 'init'");
        actual = statement.executeQuery(getDatabaseTestSQL().getSelectUserIdByStatusSql());
    }
    
    @After
Loading