未验证 提交 44cbee04 编写于 作者: J Juan Pan(Trista) 提交者: GitHub

Add auto table integrated tests (#6017)

* Add auto table integrated tests

* change import

* fix test
上级 9783d618
......@@ -37,6 +37,7 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
......
......@@ -17,6 +17,7 @@
package org.apache.shardingsphere.driver.jdbc.core.statement;
import com.google.common.collect.Lists;
import org.apache.shardingsphere.driver.common.base.AbstractShardingSphereDataSourceForShardingTest;
import org.apache.shardingsphere.driver.fixture.ResetIncrementKeyGenerateAlgorithm;
import org.junit.Ignore;
......@@ -27,8 +28,10 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Collection;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat;
......@@ -52,8 +55,12 @@ public final class ShardingSpherePreparedStatementTest extends AbstractShardingS
private static final String SELECT_SQL_WITH_PARAMETER_MARKER_RETURN_STATUS = "SELECT item_id, user_id, status FROM t_order_item WHERE order_id= ? AND user_id = ?";
private static final String SELECT_AUTO_SQL = "SELECT item_id, order_id, status FROM t_order_item_auto WHERE order_id >= ?";
private static final String UPDATE_SQL = "UPDATE t_order SET status = ? WHERE user_id = ? AND order_id = ?";
private static final String UPDATE_AUTO_SQL = "UPDATE t_order_auto SET status = ? WHERE order_id = ?";
private static final String UPDATE_BATCH_SQL = "UPDATE t_order SET status=? WHERE status=?";
@Test
......@@ -433,6 +440,32 @@ public final class ShardingSpherePreparedStatementTest extends AbstractShardingS
}
}
@Test
public void assertExecuteUpdateAutoTableGetResultSet() throws SQLException {
try (PreparedStatement preparedStatement = getShardingSphereDataSource().getConnection().prepareStatement(UPDATE_AUTO_SQL)) {
preparedStatement.setString(1, "OK");
preparedStatement.setInt(2, 10);
preparedStatement.executeUpdate();
assertNull(preparedStatement.getResultSet());
}
}
@Test
public void assertExecuteSelectAutoTableGetResultSet() throws SQLException {
Collection<Integer> result = Lists.newArrayList(1001, 1100, 1101);
try (PreparedStatement preparedStatement = getShardingSphereDataSource().getConnection().prepareStatement(SELECT_AUTO_SQL)) {
preparedStatement.setInt(1, 1001);
int count = 0;
try (ResultSet resultSet = preparedStatement.executeQuery()) {
while (resultSet.next()) {
result.contains(resultSet.getInt(2));
count++;
}
}
assertEquals(result.size(), count);
}
}
@Test
public void assertClearBatch() throws SQLException {
try (
......
......@@ -39,6 +39,24 @@ rules:
keyGenerateStrategy:
column: id
keyGeneratorName: reset_increment
autoTables:
t_order_auto:
actualDataSources: jdbc_0, jdbc_1
shardingStrategy:
standard:
shardingColumn: order_id
shardingAlgorithm:
type: MOD
props:
mod.value: 2
t_order_item_auto:
shardingStrategy:
standard:
shardingColumn: order_id
shardingAlgorithm:
type: MOD
props:
mod.value: 2
bindingTables:
- t_order,t_order_item
broadcastTables:
......@@ -53,7 +71,7 @@ rules:
shardingColumn: user_id
shardingAlgorithm:
type: STANDARD_TEST
keyGenerators:
increment:
type: INCREMENT
......
......@@ -17,7 +17,10 @@
DELETE FROM t_order;
DELETE FROM t_order_item;
DELETE FROM t_order_auto;
DELETE FROM t_order_item_auto;
DELETE FROM t_config;
INSERT INTO t_order VALUES(1000, 10, 'init');
INSERT INTO t_order VALUES(1001, 10, 'init');
INSERT INTO t_order VALUES(1100, 11, 'init');
......@@ -30,4 +33,12 @@ INSERT INTO t_order_item VALUES(110000, 1100, 11, 'init');
INSERT INTO t_order_item VALUES(110001, 1100, 11, 'init');
INSERT INTO t_order_item VALUES(110100, 1101, 11, 'init');
INSERT INTO t_order_item VALUES(110101, 1101, 11, 'init');
INSERT INTO t_order_auto VALUES(1000, 10, 'init');
INSERT INTO t_order_auto VALUES(1100, 11, 'init');
INSERT INTO t_order_item_auto VALUES(100000, 1000, 10, 'init');
INSERT INTO t_order_item_auto VALUES(100100, 1001, 10, 'init');
INSERT INTO t_order_item_auto VALUES(110000, 1100, 11, 'init');
INSERT INTO t_order_item_auto VALUES(110100, 1101, 11, 'init');
INSERT INTO t_config VALUES(1, 'init');
......@@ -19,6 +19,12 @@ CREATE TABLE IF NOT EXISTS t_order_0 (order_id INT NOT NULL, user_id INT NOT NUL
CREATE TABLE IF NOT EXISTS t_order_1 (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
CREATE TABLE IF NOT EXISTS t_order_item_0 (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
CREATE TABLE IF NOT EXISTS t_order_item_1 (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
CREATE TABLE IF NOT EXISTS t_order_auto_0 (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
CREATE TABLE IF NOT EXISTS t_order_auto_1 (order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (order_id));
CREATE TABLE IF NOT EXISTS t_order_item_auto_0 (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
CREATE TABLE IF NOT EXISTS t_order_item_auto_1 (item_id INT NOT NULL, order_id INT NOT NULL, user_id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (item_id));
CREATE TABLE IF NOT EXISTS t_config (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
CREATE TABLE IF NOT EXISTS t_global (id INT NOT NULL, status VARCHAR(45) NULL, PRIMARY KEY (id));
CREATE TABLE IF NOT EXISTS t_encrypt (id INT NOT NULL AUTO_INCREMENT, cipher_pwd VARCHAR(45) NULL, plain_pwd VARCHAR(45), PRIMARY KEY (id));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册