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 ab04b6b80e2 Fix transaction test case code style (#21393)
ab04b6b80e2 is described below
commit ab04b6b80e22117a1b8351aaba83778e779d42a1
Author: ZhangCheng <[email protected]>
AuthorDate: Sat Oct 8 18:57:27 2022 +0800
Fix transaction test case code style (#21393)
* Fix transaction test case code style
* Fix
---
.../cases/alterresource/AddResourceTestCase.java | 14 ++-
.../cases/base/BaseTransactionTestCase.java | 12 ++-
.../transaction/engine/base/BaseITCase.java | 99 +++++-----------------
3 files changed, 46 insertions(+), 79 deletions(-)
diff --git
a/test/integration-test/transaction/src/test/java/org/apache/shardingsphere/integration/transaction/cases/alterresource/AddResourceTestCase.java
b/test/integration-test/transaction/src/test/java/org/apache/shardingsphere/integration/transaction/cases/alterresource/AddResourceTestCase.java
index 26bfded5da1..9c95d5a7cc8 100644
---
a/test/integration-test/transaction/src/test/java/org/apache/shardingsphere/integration/transaction/cases/alterresource/AddResourceTestCase.java
+++
b/test/integration-test/transaction/src/test/java/org/apache/shardingsphere/integration/transaction/cases/alterresource/AddResourceTestCase.java
@@ -27,6 +27,9 @@ import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+
/**
* Integration test of add resource.
*/
@@ -44,14 +47,21 @@ public final class AddResourceTestCase extends
BaseTransactionTestCase {
private void assertAddResource() throws SQLException {
Connection conn = getDataSource().getConnection();
- getBaseTransactionITCase().addNewResource(conn);
- getBaseTransactionITCase().createThreeDataSourceAccountTableRule(conn);
+ getBaseTransactionITCase().addResource(conn, "transaction_it_2");
+ createThreeDataSourceAccountTableRule(conn);
reCreateAccountTable(conn);
assertRollback();
assertCommit();
conn.close();
}
+ private void createThreeDataSourceAccountTableRule(final Connection
connection) throws SQLException {
+ executeWithLog(connection, "DROP SHARDING TABLE RULE account;");
+ executeWithLog(connection,
getBaseTransactionITCase().getCommonSQLCommand().getCreateThreeDataSourceAccountTableRule());
+ int ruleCount = countWithLog(connection, "SHOW SHARDING TABLE RULES
FROM sharding_db;");
+ assertThat(ruleCount, is(3));
+ }
+
private void reCreateAccountTable(final Connection conn) throws
SQLException {
getBaseTransactionITCase().dropAccountTable(conn);
getBaseTransactionITCase().createAccountTable(conn);
diff --git
a/test/integration-test/transaction/src/test/java/org/apache/shardingsphere/integration/transaction/cases/base/BaseTransactionTestCase.java
b/test/integration-test/transaction/src/test/java/org/apache/shardingsphere/integration/transaction/cases/base/BaseTransactionTestCase.java
index 6aea54627df..7d290411b1c 100644
---
a/test/integration-test/transaction/src/test/java/org/apache/shardingsphere/integration/transaction/cases/base/BaseTransactionTestCase.java
+++
b/test/integration-test/transaction/src/test/java/org/apache/shardingsphere/integration/transaction/cases/base/BaseTransactionTestCase.java
@@ -47,7 +47,7 @@ public abstract class BaseTransactionTestCase {
/**
* Execute test cases.
- *
+ *
* @throws SQLException SQL exception
*/
public void execute() throws SQLException {
@@ -105,4 +105,14 @@ public abstract class BaseTransactionTestCase {
conn.createStatement().execute(each);
}
}
+
+ protected int countWithLog(final Connection conn, final String sql) throws
SQLException {
+ Statement statement = conn.createStatement();
+ ResultSet rs = statement.executeQuery(sql);
+ int result = 0;
+ while (rs.next()) {
+ result++;
+ }
+ return result;
+ }
}
diff --git
a/test/integration-test/transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/base/BaseITCase.java
b/test/integration-test/transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/base/BaseITCase.java
index 0b50fcbd6a0..218f40af4b1 100644
---
a/test/integration-test/transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/base/BaseITCase.java
+++
b/test/integration-test/transaction/src/test/java/org/apache/shardingsphere/integration/transaction/engine/base/BaseITCase.java
@@ -31,7 +31,6 @@ import
org.apache.shardingsphere.infra.database.type.dialect.PostgreSQLDatabaseT
import
org.apache.shardingsphere.integration.transaction.cases.base.BaseTransactionTestCase;
import
org.apache.shardingsphere.integration.transaction.engine.command.CommonSQLCommand;
import
org.apache.shardingsphere.integration.transaction.engine.constants.TransactionTestConstants;
-import
org.apache.shardingsphere.integration.transaction.engine.entity.JdbcInfoEntity;
import
org.apache.shardingsphere.integration.transaction.env.IntegrationTestEnvironment;
import
org.apache.shardingsphere.integration.transaction.env.enums.TransactionITEnvTypeEnum;
import
org.apache.shardingsphere.integration.transaction.env.enums.TransactionTestCaseRegistry;
@@ -85,9 +84,6 @@ public abstract class BaseITCase {
protected static final String DATA_SOURCE_1 = TRANSACTION_IT + "_1";
- /**
- * For adding resource tests.
- */
protected static final String DATA_SOURCE_2 = TRANSACTION_IT + "_2";
protected static final Collection<String> ALL_DATA_SOURCES =
Arrays.asList(DATA_SOURCE_0, DATA_SOURCE_1, DATA_SOURCE_2);
@@ -100,6 +96,7 @@ public abstract class BaseITCase {
private final BaseContainerComposer containerComposer;
+ @Getter(AccessLevel.PUBLIC)
private final CommonSQLCommand commonSQLCommand;
private final DatabaseType databaseType;
@@ -121,11 +118,7 @@ public abstract class BaseITCase {
containerComposer = initializeContainerComposer(parameterized);
commonSQLCommand = loadCommonSQLCommand();
initActualDataSources();
- if (isProxyAdapter(parameterized)) {
- createProxyDatabase();
- } else {
- createJdbcDataSource();
- }
+ dataSource = isProxyAdapter(parameterized) ? createProxyDataSource() :
createJdbcDataSource();
}
private BaseContainerComposer initializeContainerComposer(final
TransactionParameterized parameterized) {
@@ -141,44 +134,11 @@ public abstract class BaseITCase {
}
private void initActualDataSources() throws SQLException {
- JdbcInfoEntity jdbcInfo = getJdbcInfoEntity();
- String jdbcUrl = getJdbcUrl(jdbcInfo);
- dropDatabases(jdbcUrl, jdbcInfo);
- createDatabases(jdbcUrl, jdbcInfo);
- }
-
- private JdbcInfoEntity getJdbcInfoEntity() {
- if (ENV.getItEnvType() == TransactionITEnvTypeEnum.DOCKER) {
- DockerStorageContainer storageContainer =
((DockerContainerComposer) containerComposer).getStorageContainer();
- return new JdbcInfoEntity(storageContainer.getUsername(),
storageContainer.getPassword(), storageContainer.getExposedPort());
- }
- return ENV.getActualDatabaseJdbcInfo(getDatabaseType());
- }
-
- private String getJdbcUrl(final JdbcInfoEntity jdbcInfo) {
- if (ENV.getItEnvType() == TransactionITEnvTypeEnum.DOCKER) {
- DockerStorageContainer storageContainer =
((DockerContainerComposer) containerComposer).getStorageContainer();
- return storageContainer.getJdbcUrl("");
- }
- return DataSourceEnvironment.getURL(databaseType, "localhost",
jdbcInfo.getPort());
- }
-
- private void dropDatabases(final String jdbcUrl, final JdbcInfoEntity
jdbcInfo) throws SQLException {
- try (Connection connection = DriverManager.getConnection(jdbcUrl,
jdbcInfo.getUsername(), jdbcInfo.getPassword())) {
- for (String each : ALL_DATA_SOURCES) {
- executeWithLog(connection, String.format("DROP DATABASE IF
EXISTS %s", each));
- }
- }
- }
-
- private void createDatabases(final String jdbcUrl, final JdbcInfoEntity
jdbcInfo) throws SQLException {
- try (Connection connection = DriverManager.getConnection(jdbcUrl,
jdbcInfo.getUsername(), jdbcInfo.getPassword())) {
+ DockerStorageContainer storageContainer = ((DockerContainerComposer)
containerComposer).getStorageContainer();
+ String jdbcUrl = storageContainer.getJdbcUrl("");
+ try (Connection connection = DriverManager.getConnection(jdbcUrl,
storageContainer.getUsername(), storageContainer.getPassword())) {
for (String each : ALL_DATA_SOURCES) {
- try {
- executeWithLog(connection, String.format("CREATE DATABASE
%s", each));
- } catch (final SQLException ex) {
- log.error("Error occurred when create database. error
msg={}", ex.getMessage());
- }
+ executeWithLog(connection, String.format("CREATE DATABASE %s",
each));
}
}
}
@@ -187,15 +147,16 @@ public abstract class BaseITCase {
return
parameterized.getAdapter().equalsIgnoreCase(AdapterContainerConstants.PROXY);
}
- private void createProxyDatabase() throws SQLException {
+ private ProxyDataSource createProxyDataSource() throws SQLException {
+ initProxyDatabase();
+ return new ProxyDataSource(containerComposer, SHARDING_DB,
ENV.getProxyUserName(), ENV.getProxyPassword());
+ }
+
+ private void initProxyDatabase() throws SQLException {
String jdbcUrl = getProxyJdbcUrl(databaseType);
try (Connection connection = DriverManager.getConnection(jdbcUrl,
ENV.getProxyUserName(), ENV.getProxyPassword())) {
- if (ENV.getItEnvType() == TransactionITEnvTypeEnum.NATIVE) {
- executeWithLog(connection, "DROP DATABASE IF EXISTS " +
SHARDING_DB);
- }
executeWithLog(connection, "CREATE DATABASE " + SHARDING_DB);
}
- dataSource = new ProxyDataSource(containerComposer, SHARDING_DB,
ENV.getProxyUserName(), ENV.getProxyPassword());
}
private String getProxyJdbcUrl(final DatabaseType databaseType) {
@@ -216,15 +177,13 @@ public abstract class BaseITCase {
return result;
}
- private void createJdbcDataSource() {
- if (containerComposer instanceof DockerContainerComposer) {
- DockerContainerComposer dockerContainerComposer =
(DockerContainerComposer) containerComposer;
- DockerStorageContainer storageContainer =
dockerContainerComposer.getStorageContainer();
- Map<String, DataSource> actualDataSourceMap =
storageContainer.getActualDataSourceMap();
- actualDataSourceMap.put("ds_0", createDataSource(storageContainer,
DATA_SOURCE_0));
- actualDataSourceMap.put("ds_1", createDataSource(storageContainer,
DATA_SOURCE_1));
- dataSource = new JdbcDataSource(dockerContainerComposer);
- }
+ private JdbcDataSource createJdbcDataSource() {
+ DockerContainerComposer dockerContainerComposer =
(DockerContainerComposer) containerComposer;
+ DockerStorageContainer storageContainer =
dockerContainerComposer.getStorageContainer();
+ Map<String, DataSource> actualDataSourceMap =
storageContainer.getActualDataSourceMap();
+ actualDataSourceMap.put("ds_0", createDataSource(storageContainer,
DATA_SOURCE_0));
+ actualDataSourceMap.put("ds_1", createDataSource(storageContainer,
DATA_SOURCE_1));
+ return new JdbcDataSource(dockerContainerComposer);
}
private DataSource createDataSource(final DockerStorageContainer
storageContainer, final String dataSourceName) {
@@ -402,36 +361,24 @@ public abstract class BaseITCase {
}
/**
- * Add ds_2 resource to proxy.
+ * Add resource.
*
* @param connection connection
+ * @param databaseName database name
* @throws SQLException SQL exception
*/
@SneakyThrows(InterruptedException.class)
- public final void addNewResource(final Connection connection) throws
SQLException {
+ public final void addResource(final Connection connection, final String
databaseName) throws SQLException {
String addSourceResource =
commonSQLCommand.getSourceAddNewResourceTemplate()
.replace("${user}",
ENV.getActualDataSourceUsername(databaseType))
.replace("${password}",
ENV.getActualDataSourcePassword(databaseType))
- .replace("${ds2}", getActualJdbcUrlTemplate(DATA_SOURCE_2));
+ .replace("${ds2}", getActualJdbcUrlTemplate(databaseName));
executeWithLog(connection, addSourceResource);
int resourceCount = countWithLog("SHOW DATABASE RESOURCES FROM
sharding_db");
Thread.sleep(5000L);
assertThat(resourceCount, is(3));
}
- /**
- * Drop previous account table rule and create the table rule with three
data sources.
- *
- * @param connection connection
- * @throws SQLException SQL exception
- */
- public final void createThreeDataSourceAccountTableRule(final Connection
connection) throws SQLException {
- executeWithLog(connection, "DROP SHARDING TABLE RULE account;");
- executeWithLog(connection,
getCommonSQLCommand().getCreateThreeDataSourceAccountTableRule());
- int ruleCount = countWithLog("SHOW SHARDING TABLE RULES FROM
sharding_db;");
- assertThat(ruleCount, is(3));
- }
-
/**
* Create the account table rule with one data source.
*