This is an automated email from the ASF dual-hosted git repository.

zhaojinchao 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 0162b7ef9fd Use MockedDataSource instead of mock(DataSource.class) 
(#17886)
0162b7ef9fd is described below

commit 0162b7ef9fd740f2d371336c487ac471aea20a91
Author: Liang Zhang <[email protected]>
AuthorDate: Tue May 24 00:22:23 2022 +0800

    Use MockedDataSource instead of mock(DataSource.class) (#17886)
    
    * Use MockedDataSource instead of mock(DataSource.class)
    
    * Use MockedDataSource instead of mock(DataSource.class)
    
    * Use MockedDataSource instead of mock(DataSource.class)
---
 .../route/DatabaseDiscoverySQLRouterTest.java      |  4 +-
 .../rule/DatabaseDiscoveryRuleTest.java            |  4 +-
 ...hmProvidedDatabaseDiscoveryRuleBuilderTest.java |  5 +-
 .../builder/DatabaseDiscoveryRuleBuilderTest.java  |  5 +-
 .../shardingsphere-encrypt-core/pom.xml            |  6 ++
 .../metadata/EncryptSchemaMetaDataBuilderTest.java | 36 +++++-----
 .../database/type/DatabaseTypeEngineTest.java      |  2 +-
 .../context/TransactionContextsBuilderTest.java    |  5 +-
 .../AlterDefaultSingleTableRuleUpdaterTest.java    | 24 +++----
 .../CreateDefaultSingleTableRuleUpdaterTest.java   | 21 +++---
 .../DropDefaultSingleTableRuleUpdaterTest.java     | 19 ++----
 .../opengauss/OpenGaussFrontendEngineTest.java     | 11 +---
 .../shardingsphere-pipeline-test/pom.xml           |  7 ++
 .../loader/PipelineTableMetaDataLoaderTest.java    | 77 ++++++++++++----------
 14 files changed, 111 insertions(+), 115 deletions(-)

diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/route/DatabaseDiscoverySQLRouterTest.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/route/DatabaseDiscoverySQLRouterTest.java
index 7fb0d8ab4a7..4aac24e78db 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/route/DatabaseDiscoverySQLRouterTest.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/route/DatabaseDiscoverySQLRouterTest.java
@@ -35,13 +35,13 @@ import 
org.apache.shardingsphere.infra.route.context.RouteContext;
 import org.apache.shardingsphere.infra.route.context.RouteMapper;
 import org.apache.shardingsphere.infra.route.context.RouteUnit;
 import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
+import org.apache.shardingsphere.test.mock.MockedDataSource;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 
-import javax.sql.DataSource;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.Properties;
@@ -75,7 +75,7 @@ public final class DatabaseDiscoverySQLRouterTest {
         DatabaseDiscoveryRuleConfiguration config = new 
DatabaseDiscoveryRuleConfiguration(Collections.singleton(dataSourceConfig),
                 Collections.singletonMap("ha_heartbeat", new 
DatabaseDiscoveryHeartBeatConfiguration(new Properties())),
                 Collections.singletonMap("CORE.FIXTURE", algorithmConfig));
-        rule = new DatabaseDiscoveryRule(DATA_SOURCE_NAME, 
Collections.singletonMap(PRIMARY_DATA_SOURCE, mock(DataSource.class)), config);
+        rule = new DatabaseDiscoveryRule(DATA_SOURCE_NAME, 
Collections.singletonMap(PRIMARY_DATA_SOURCE, new MockedDataSource()), config);
         sqlRouter = (DatabaseDiscoverySQLRouter) 
SQLRouterFactory.getInstances(Collections.singleton(rule)).get(rule);
     }
     
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryRuleTest.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryRuleTest.java
index 21c2a1bd340..4c67979c157 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryRuleTest.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/DatabaseDiscoveryRuleTest.java
@@ -22,6 +22,7 @@ import 
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryDa
 import 
org.apache.shardingsphere.dbdiscovery.api.config.rule.DatabaseDiscoveryHeartBeatConfiguration;
 import 
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmConfiguration;
 import org.apache.shardingsphere.infra.distsql.constant.ExportableConstants;
+import org.apache.shardingsphere.test.mock.MockedDataSource;
 import org.junit.Test;
 
 import javax.sql.DataSource;
@@ -36,11 +37,10 @@ import java.util.Properties;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
 
 public final class DatabaseDiscoveryRuleTest {
     
-    private final Map<String, DataSource> dataSourceMap = 
Collections.singletonMap("primary", mock(DataSource.class));
+    private final Map<String, DataSource> dataSourceMap = 
Collections.singletonMap("primary", new MockedDataSource());
     
     @Test
     public void assertFindDataSourceRule() {
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/AlgorithmProvidedDatabaseDiscoveryRuleBuilderTest.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/AlgorithmProvidedDatabaseDiscoveryRuleBuilderTest.java
index 5428078c875..868d16b2db5 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/AlgorithmProvidedDatabaseDiscoveryRuleBuilderTest.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/AlgorithmProvidedDatabaseDiscoveryRuleBuilderTest.java
@@ -25,15 +25,14 @@ import 
org.apache.shardingsphere.dbdiscovery.rule.DatabaseDiscoveryRule;
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
 import org.apache.shardingsphere.infra.rule.builder.schema.SchemaRuleBuilder;
 import 
org.apache.shardingsphere.infra.rule.builder.schema.SchemaRuleBuilderFactory;
+import org.apache.shardingsphere.test.mock.MockedDataSource;
 import org.junit.Test;
 
-import javax.sql.DataSource;
 import java.util.Collections;
 import java.util.Properties;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.mock;
 
 public final class AlgorithmProvidedDatabaseDiscoveryRuleBuilderTest {
     
@@ -46,7 +45,7 @@ public final class 
AlgorithmProvidedDatabaseDiscoveryRuleBuilderTest {
                         new DatabaseDiscoveryHeartBeatConfiguration(new 
Properties())),
                 Collections.singletonMap("discoveryTypeName", new 
CoreDatabaseDiscoveryProviderAlgorithmFixture()));
         SchemaRuleBuilder builder = 
SchemaRuleBuilderFactory.getInstanceMap(Collections.singletonList(algorithmProvidedRuleConfig)).get(algorithmProvidedRuleConfig);
-        assertThat(builder.build(algorithmProvidedRuleConfig, "", 
Collections.singletonMap("name", mock(DataSource.class)), 
Collections.emptyList(), new ConfigurationProperties(new Properties())),
+        assertThat(builder.build(algorithmProvidedRuleConfig, "", 
Collections.singletonMap("name", new MockedDataSource()), 
Collections.emptyList(), new ConfigurationProperties(new Properties())),
                 instanceOf(DatabaseDiscoveryRule.class));
     }
 }
diff --git 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/DatabaseDiscoveryRuleBuilderTest.java
 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/DatabaseDiscoveryRuleBuilderTest.java
index 2da7994b33b..a1f84b53d88 100644
--- 
a/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/DatabaseDiscoveryRuleBuilderTest.java
+++ 
b/shardingsphere-features/shardingsphere-db-discovery/shardingsphere-db-discovery-core/src/test/java/org/apache/shardingsphere/dbdiscovery/rule/builder/DatabaseDiscoveryRuleBuilderTest.java
@@ -25,15 +25,14 @@ import 
org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmC
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
 import org.apache.shardingsphere.infra.rule.builder.schema.SchemaRuleBuilder;
 import 
org.apache.shardingsphere.infra.rule.builder.schema.SchemaRuleBuilderFactory;
+import org.apache.shardingsphere.test.mock.MockedDataSource;
 import org.junit.Test;
 
-import javax.sql.DataSource;
 import java.util.Collections;
 import java.util.Properties;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.mock;
 
 public final class DatabaseDiscoveryRuleBuilderTest {
     
@@ -45,7 +44,7 @@ public final class DatabaseDiscoveryRuleBuilderTest {
                 Collections.singletonMap("ha_heartbeat", new 
DatabaseDiscoveryHeartBeatConfiguration(new Properties())),
                 Collections.singletonMap("CORE.FIXTURE", new 
ShardingSphereAlgorithmConfiguration("CORE.FIXTURE", new Properties())));
         SchemaRuleBuilder builder = 
SchemaRuleBuilderFactory.getInstanceMap(Collections.singletonList(config)).get(config);
-        assertThat(builder.build(config, "test_schema", 
Collections.singletonMap("name", mock(DataSource.class)), 
Collections.emptyList(), new ConfigurationProperties(new Properties())),
+        assertThat(builder.build(config, "test_schema", 
Collections.singletonMap("name", new MockedDataSource()), 
Collections.emptyList(), new ConfigurationProperties(new Properties())),
                 instanceOf(DatabaseDiscoveryRule.class));
     }
 }
diff --git 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/pom.xml
 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/pom.xml
index b5454610032..c00c1002c14 100644
--- 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/pom.xml
+++ 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/pom.xml
@@ -59,6 +59,12 @@
             <version>${project.version}</version>
         </dependency>
         
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-test-common</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
         <dependency>
             <groupId>org.apache.shardingsphere</groupId>
             <artifactId>shardingsphere-single-table-core</artifactId>
diff --git 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataBuilderTest.java
 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataBuilderTest.java
index 73058508890..c167944b74b 100644
--- 
a/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataBuilderTest.java
+++ 
b/shardingsphere-features/shardingsphere-encrypt/shardingsphere-encrypt-core/src/test/java/org/apache/shardingsphere/encrypt/metadata/EncryptSchemaMetaDataBuilderTest.java
@@ -30,6 +30,7 @@ import 
org.apache.shardingsphere.infra.metadata.schema.model.SchemaMetaData;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
 import org.apache.shardingsphere.singletable.rule.SingleTableRule;
+import org.apache.shardingsphere.test.mock.MockedDataSource;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -52,9 +53,9 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
+import java.util.Properties;
 
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
@@ -72,22 +73,18 @@ public final class EncryptSchemaMetaDataBuilderTest {
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private DatabaseType databaseType;
     
-    @Mock
     private DataSource dataSource;
     
-    @Mock
-    private ConfigurationProperties props;
-    
     @Before
     public void setUp() throws SQLException {
         Connection connection = mock(Connection.class, RETURNS_DEEP_STUBS);
-        when(dataSource.getConnection()).thenReturn(connection);
         mockH2ResultSet(connection);
         mockMySQLResultSet(connection);
         mockOracleResultSet(connection);
         mockPGResultSet(connection);
         mockSQLServerResultSet(connection);
         mockDatabase(connection);
+        dataSource = new MockedDataSource(connection);
     }
     
     private void mockSQLServerResultSet(final Connection connection) throws 
SQLException {
@@ -172,7 +169,7 @@ public final class EncryptSchemaMetaDataBuilderTest {
         EncryptSchemaMetaDataBuilder loader = 
getEncryptMetaDataBuilder(encryptRule, rules);
         
when(databaseType.formatTableNamePattern(TABLE_NAME)).thenReturn(TABLE_NAME);
         Map<String, SchemaMetaData> actual = 
loader.load(Collections.singleton(TABLE_NAME), encryptRule,
-                new SchemaBuilderMaterials(databaseType, databaseType, 
Collections.singletonMap("logic_db", dataSource), rules, props, "logic_db"));
+                new SchemaBuilderMaterials(databaseType, databaseType, 
Collections.singletonMap("logic_db", dataSource), rules, new 
ConfigurationProperties(new Properties()), "logic_db"));
         TableMetaData tableMetaData = 
actual.get("logic_db").getTables().values().iterator().next();
         List<String> columnNames = new 
ArrayList<>(tableMetaData.getColumns().keySet());
         
assertThat(tableMetaData.getColumns().get(columnNames.get(0)).getName(), 
is("id"));
@@ -190,7 +187,7 @@ public final class EncryptSchemaMetaDataBuilderTest {
                           final EncryptRule encryptRule) throws SQLException {
         when(databaseType.getType()).thenReturn("H2");
         Map<String, SchemaMetaData> actual = loader.load(tableNames, 
encryptRule,
-                new SchemaBuilderMaterials(databaseType, databaseType, 
Collections.singletonMap("logic_db", dataSource), rules, props, "logic_db"));
+                new SchemaBuilderMaterials(databaseType, databaseType, 
Collections.singletonMap("logic_db", dataSource), rules, new 
ConfigurationProperties(new Properties()), "logic_db"));
         assertResult(actual, "logic_db");
     }
     
@@ -205,7 +202,7 @@ public final class EncryptSchemaMetaDataBuilderTest {
                              final EncryptRule encryptRule) throws 
SQLException {
         when(databaseType.getType()).thenReturn("MySQL");
         Map<String, SchemaMetaData> actual = loader.load(tableNames, 
encryptRule,
-                new SchemaBuilderMaterials(databaseType, databaseType, 
Collections.singletonMap("logic_db", dataSource), rules, props, "logic_db"));
+                new SchemaBuilderMaterials(databaseType, databaseType, 
Collections.singletonMap("logic_db", dataSource), rules, new 
ConfigurationProperties(new Properties()), "logic_db"));
         assertResult(actual, "logic_db");
     }
     
@@ -220,7 +217,7 @@ public final class EncryptSchemaMetaDataBuilderTest {
                               final EncryptRule encryptRule) throws 
SQLException {
         when(databaseType.getType()).thenReturn("Oracle");
         Map<String, SchemaMetaData> actual = loader.load(tableNames, 
encryptRule,
-                new SchemaBuilderMaterials(databaseType, databaseType, 
Collections.singletonMap("logic_db", dataSource), rules, props, "logic_db"));
+                new SchemaBuilderMaterials(databaseType, databaseType, 
Collections.singletonMap("logic_db", dataSource), rules, new 
ConfigurationProperties(new Properties()), "logic_db"));
         assertResult(actual, "logic_db");
     }
     
@@ -239,7 +236,7 @@ public final class EncryptSchemaMetaDataBuilderTest {
         ResultSet schemaMetaData = mockSchemaMetaData();
         
when(dataSource.getConnection().getMetaData().getSchemas()).thenReturn(schemaMetaData);
         Map<String, SchemaMetaData> actual = loader.load(tableNames, 
encryptRule,
-                new SchemaBuilderMaterials(databaseType, databaseType, 
Collections.singletonMap("logic_db", dataSource), rules, props, "logic_db"));
+                new SchemaBuilderMaterials(databaseType, databaseType, 
Collections.singletonMap("logic_db", dataSource), rules, new 
ConfigurationProperties(new Properties()), "logic_db"));
         assertResult(actual, "public");
     }
     
@@ -268,7 +265,7 @@ public final class EncryptSchemaMetaDataBuilderTest {
                                  final EncryptRule encryptRule) throws 
SQLException {
         when(databaseType.getType()).thenReturn("SQLServer");
         Map<String, SchemaMetaData> actual = loader.load(tableNames, 
encryptRule,
-                new SchemaBuilderMaterials(databaseType, databaseType, 
Collections.singletonMap("logic_db", dataSource), rules, props, "logic_db"));
+                new SchemaBuilderMaterials(databaseType, databaseType, 
Collections.singletonMap("logic_db", dataSource), rules, new 
ConfigurationProperties(new Properties()), "logic_db"));
         assertResult(actual, "logic_db");
     }
     
@@ -285,7 +282,7 @@ public final class EncryptSchemaMetaDataBuilderTest {
         Collection<ShardingSphereRule> rules = 
Arrays.asList(createSingleTableRule(), encryptRule);
         EncryptSchemaMetaDataBuilder loader = new 
EncryptSchemaMetaDataBuilder();
         Map<String, SchemaMetaData> actual = 
loader.load(Collections.singleton("not_existed_table"), encryptRule,
-                new SchemaBuilderMaterials(databaseType, databaseType, 
Collections.singletonMap("logic_db", dataSource), rules, props, "logic_db"));
+                new SchemaBuilderMaterials(databaseType, databaseType, 
Collections.singletonMap("logic_db", dataSource), rules, new 
ConfigurationProperties(new Properties()), "logic_db"));
         assertTrue(actual.isEmpty());
     }
     
@@ -294,13 +291,12 @@ public final class EncryptSchemaMetaDataBuilderTest {
         
when(databaseType.formatTableNamePattern(TABLE_NAME)).thenReturn(TABLE_NAME);
         Map<String, DataSource> dataSourceMap = new HashMap<>();
         dataSourceMap.put("logic_db", dataSource);
-        dataSourceMap.put("logic_db_2", mock(DataSource.class));
+        dataSourceMap.put("logic_db_2", new MockedDataSource());
         EncryptRule encryptRule = createEncryptRule();
         Collection<ShardingSphereRule> rules = 
Arrays.asList(createSingleTableRule(), encryptRule);
         EncryptSchemaMetaDataBuilder loader = 
getEncryptMetaDataBuilder(encryptRule, rules);
-        Map<String, SchemaMetaData> actual = 
loader.load(Collections.singleton(TABLE_NAME), encryptRule,
-                new SchemaBuilderMaterials(databaseType, databaseType, 
dataSourceMap, rules, props, "logic_db"));
-        assertFalse(actual.isEmpty());
+        Map<String, SchemaMetaData> actual = 
loader.load(Collections.singleton(TABLE_NAME),
+                encryptRule, new SchemaBuilderMaterials(databaseType, 
databaseType, dataSourceMap, rules, new ConfigurationProperties(new 
Properties()), "logic_db"));
         TableMetaData tableMetaData = 
actual.get("logic_db").getTables().values().iterator().next();
         List<String> actualColumnNames = new 
ArrayList<>(tableMetaData.getColumns().keySet());
         
assertThat(tableMetaData.getColumns().get(actualColumnNames.get(0)).getName(), 
is("id"));
@@ -313,10 +309,10 @@ public final class EncryptSchemaMetaDataBuilderTest {
         Collection<ShardingSphereRule> rules = 
Arrays.asList(createSingleTableRule(), encryptRule);
         Map<String, DataSource> dataSourceMap = new HashMap<>();
         dataSourceMap.put("logic_db", dataSource);
-        dataSourceMap.put("logic_db_2", mock(DataSource.class));
+        dataSourceMap.put("logic_db_2", new MockedDataSource());
         EncryptSchemaMetaDataBuilder loader = new 
EncryptSchemaMetaDataBuilder();
-        Map<String, SchemaMetaData> actual = 
loader.load(Collections.singleton("not_existed_table"), encryptRule,
-                new SchemaBuilderMaterials(databaseType, databaseType, 
dataSourceMap, rules, props, "logic_db"));
+        Map<String, SchemaMetaData> actual = 
loader.load(Collections.singleton("not_existed_table"),
+                encryptRule, new SchemaBuilderMaterials(databaseType, 
databaseType, dataSourceMap, rules, new ConfigurationProperties(new 
Properties()), "logic_db"));
         assertTrue(actual.isEmpty());
     }
     
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/DatabaseTypeEngineTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/DatabaseTypeEngineTest.java
index d0a87026af4..469034e3e4c 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/DatabaseTypeEngineTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/DatabaseTypeEngineTest.java
@@ -110,7 +110,7 @@ public final class DatabaseTypeEngineTest {
     public void assertCantGetConnectionFromDataSource() throws SQLException {
         DataSource mockDataSource = mock(DataSource.class);
         when(mockDataSource.getConnection()).thenThrow(SQLException.class);
-        
DatabaseTypeEngine.getDatabaseType(Collections.singletonList(mockDataSource));
+        
DatabaseTypeEngine.getDatabaseType(Collections.singleton(mockDataSource));
     }
     
     private DataSource mockDataSource(final DatabaseType databaseType) throws 
SQLException {
diff --git 
a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/context/TransactionContextsBuilderTest.java
 
b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/context/TransactionContextsBuilderTest.java
index 31fed352d79..555dd09f2e0 100644
--- 
a/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/context/TransactionContextsBuilderTest.java
+++ 
b/shardingsphere-kernel/shardingsphere-transaction/shardingsphere-transaction-core/src/test/java/org/apache/shardingsphere/transaction/context/TransactionContextsBuilderTest.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.transaction.context;
 import org.apache.shardingsphere.infra.database.DefaultDatabase;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
+import org.apache.shardingsphere.test.mock.MockedDataSource;
 import 
org.apache.shardingsphere.transaction.ShardingSphereTransactionManagerEngine;
 import 
org.apache.shardingsphere.transaction.config.TransactionRuleConfiguration;
 import org.apache.shardingsphere.transaction.core.TransactionType;
@@ -61,8 +62,8 @@ public final class TransactionContextsBuilderTest {
     
     private Map<String, DataSource> createDataSourceMap() {
         Map<String, DataSource> result = new HashMap<>(2, 1);
-        result.put("ds_0", mock(DataSource.class));
-        result.put("ds_1", mock(DataSource.class));
+        result.put("ds_0", new MockedDataSource());
+        result.put("ds_1", new MockedDataSource());
         return result;
     }
 }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/AlterDefaultSingleTableRuleUpdaterTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/AlterDefaultSingleTableRuleUpdaterTest.java
index 21a953c3e17..c82af55f89b 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/AlterDefaultSingleTableRuleUpdaterTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/AlterDefaultSingleTableRuleUpdaterTest.java
@@ -22,6 +22,7 @@ import 
org.apache.shardingsphere.infra.distsql.exception.resource.RequiredResour
 import 
org.apache.shardingsphere.infra.distsql.exception.rule.RequiredRuleMissedException;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.singletable.config.SingleTableRuleConfiguration;
+import org.apache.shardingsphere.test.mock.MockedDataSource;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -29,64 +30,57 @@ import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 
-import javax.sql.DataSource;
 import java.util.Collections;
 import java.util.Optional;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
 public final class AlterDefaultSingleTableRuleUpdaterTest {
     
+    private final AlterDefaultSingleTableRuleStatementUpdater updater = new 
AlterDefaultSingleTableRuleStatementUpdater();
+    
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private ShardingSphereDatabase database;
     
     @Mock
     private SingleTableRuleConfiguration currentConfig;
     
-    private final AlterDefaultSingleTableRuleStatementUpdater updater = new 
AlterDefaultSingleTableRuleStatementUpdater();
-    
     @Before
     public void setUp() throws Exception {
         when(database.getName()).thenReturn("sharding_db");
-        
when(database.getResource().getDataSources()).thenReturn(Collections.singletonMap("ds_0",
 mock(DataSource.class)));
+        
when(database.getResource().getDataSources()).thenReturn(Collections.singletonMap("ds_0",
 new MockedDataSource()));
     }
     
     @Test(expected = RequiredRuleMissedException.class)
     public void assertCheckWithNotExistConfiguration() throws Exception {
-        AlterDefaultSingleTableRuleStatement statement = new 
AlterDefaultSingleTableRuleStatement("ds_1");
-        updater.checkSQLStatement(database, statement, null);
+        updater.checkSQLStatement(database, new 
AlterDefaultSingleTableRuleStatement("ds_1"), null);
     }
     
     @Test(expected = RequiredResourceMissedException.class)
     public void assertCheckWithInvalidResource() throws Exception {
-        AlterDefaultSingleTableRuleStatement statement = new 
AlterDefaultSingleTableRuleStatement("ds_1");
-        updater.checkSQLStatement(database, statement, currentConfig);
+        updater.checkSQLStatement(database, new 
AlterDefaultSingleTableRuleStatement("ds_1"), currentConfig);
     }
     
     @Test(expected = RequiredRuleMissedException.class)
     public void assertCheckWithNotExistResource() throws Exception {
         
when(currentConfig.getDefaultDataSource()).thenReturn(Optional.empty());
-        AlterDefaultSingleTableRuleStatement statement = new 
AlterDefaultSingleTableRuleStatement("ds_0");
-        updater.checkSQLStatement(database, statement, currentConfig);
+        updater.checkSQLStatement(database, new 
AlterDefaultSingleTableRuleStatement("ds_0"), currentConfig);
     }
     
     @Test
     public void assertBuild() {
-        AlterDefaultSingleTableRuleStatement statement = new 
AlterDefaultSingleTableRuleStatement("ds_0");
-        SingleTableRuleConfiguration config = 
updater.buildToBeAlteredRuleConfiguration(statement);
+        SingleTableRuleConfiguration config = 
updater.buildToBeAlteredRuleConfiguration(new 
AlterDefaultSingleTableRuleStatement("ds_0"));
         assertTrue(config.getDefaultDataSource().isPresent());
         assertThat(config.getDefaultDataSource().get(), is("ds_0"));
     }
     
     @Test
     public void assertUpdate() {
-        AlterDefaultSingleTableRuleStatement statement = new 
AlterDefaultSingleTableRuleStatement("ds_0");
-        SingleTableRuleConfiguration config = 
updater.buildToBeAlteredRuleConfiguration(statement);
+        SingleTableRuleConfiguration config = 
updater.buildToBeAlteredRuleConfiguration(new 
AlterDefaultSingleTableRuleStatement("ds_0"));
         SingleTableRuleConfiguration currentConfig = new 
SingleTableRuleConfiguration();
         updater.updateCurrentRuleConfiguration(currentConfig, config);
         assertTrue(currentConfig.getDefaultDataSource().isPresent());
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/CreateDefaultSingleTableRuleUpdaterTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/CreateDefaultSingleTableRuleUpdaterTest.java
index 2069a147236..816a72f3b2c 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/CreateDefaultSingleTableRuleUpdaterTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/CreateDefaultSingleTableRuleUpdaterTest.java
@@ -22,6 +22,7 @@ import 
org.apache.shardingsphere.infra.distsql.exception.resource.RequiredResour
 import 
org.apache.shardingsphere.infra.distsql.exception.rule.DuplicateRuleException;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.singletable.config.SingleTableRuleConfiguration;
+import org.apache.shardingsphere.test.mock.MockedDataSource;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -29,58 +30,52 @@ import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 
-import javax.sql.DataSource;
 import java.util.Collections;
 import java.util.Optional;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
 public final class CreateDefaultSingleTableRuleUpdaterTest {
     
+    private final CreateDefaultSingleTableRuleStatementUpdater updater = new 
CreateDefaultSingleTableRuleStatementUpdater();
+    
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private ShardingSphereDatabase database;
     
     @Mock
     private SingleTableRuleConfiguration currentConfig;
     
-    private final CreateDefaultSingleTableRuleStatementUpdater updater = new 
CreateDefaultSingleTableRuleStatementUpdater();
-    
     @Before
     public void setUp() throws Exception {
         when(database.getName()).thenReturn("sharding_db");
-        
when(database.getResource().getDataSources()).thenReturn(Collections.singletonMap("ds_0",
 mock(DataSource.class)));
+        
when(database.getResource().getDataSources()).thenReturn(Collections.singletonMap("ds_0",
 new MockedDataSource()));
     }
     
     @Test(expected = RequiredResourceMissedException.class)
     public void assertCheckWithInvalidResource() throws Exception {
-        CreateDefaultSingleTableRuleStatement statement = new 
CreateDefaultSingleTableRuleStatement("ds_1");
-        updater.checkSQLStatement(database, statement, currentConfig);
+        updater.checkSQLStatement(database, new 
CreateDefaultSingleTableRuleStatement("ds_1"), currentConfig);
     }
     
     @Test(expected = DuplicateRuleException.class)
     public void assertCheckWithDuplicateResource() throws Exception {
         
when(currentConfig.getDefaultDataSource()).thenReturn(Optional.of("single_table"));
-        CreateDefaultSingleTableRuleStatement statement = new 
CreateDefaultSingleTableRuleStatement("ds_0");
-        updater.checkSQLStatement(database, statement, currentConfig);
+        updater.checkSQLStatement(database, new 
CreateDefaultSingleTableRuleStatement("ds_0"), currentConfig);
     }
     
     @Test
     public void assertBuild() {
-        CreateDefaultSingleTableRuleStatement statement = new 
CreateDefaultSingleTableRuleStatement("ds_0");
-        SingleTableRuleConfiguration toBeCreatedRuleConfig = 
updater.buildToBeCreatedRuleConfiguration(statement);
+        SingleTableRuleConfiguration toBeCreatedRuleConfig = 
updater.buildToBeCreatedRuleConfiguration(new 
CreateDefaultSingleTableRuleStatement("ds_0"));
         assertTrue(toBeCreatedRuleConfig.getDefaultDataSource().isPresent());
         assertThat(toBeCreatedRuleConfig.getDefaultDataSource().get(), 
is("ds_0"));
     }
     
     @Test
     public void assertUpdate() {
-        CreateDefaultSingleTableRuleStatement statement = new 
CreateDefaultSingleTableRuleStatement("ds_0");
-        SingleTableRuleConfiguration toBeCreatedRuleConfig = 
updater.buildToBeCreatedRuleConfiguration(statement);
+        SingleTableRuleConfiguration toBeCreatedRuleConfig = 
updater.buildToBeCreatedRuleConfiguration(new 
CreateDefaultSingleTableRuleStatement("ds_0"));
         SingleTableRuleConfiguration currentConfig = new 
SingleTableRuleConfiguration();
         updater.updateCurrentRuleConfiguration(currentConfig, 
toBeCreatedRuleConfig);
         assertTrue(currentConfig.getDefaultDataSource().isPresent());
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/DropDefaultSingleTableRuleUpdaterTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/DropDefaultSingleTableRuleUpdaterTest.java
index f2d1890e914..686a76386c1 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/DropDefaultSingleTableRuleUpdaterTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-backend/src/test/java/org/apache/shardingsphere/proxy/backend/text/distsql/rdl/rule/DropDefaultSingleTableRuleUpdaterTest.java
@@ -21,6 +21,7 @@ import 
org.apache.shardingsphere.distsql.parser.statement.rdl.drop.DropDefaultSi
 import 
org.apache.shardingsphere.infra.distsql.exception.rule.RequiredRuleMissedException;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.singletable.config.SingleTableRuleConfiguration;
+import org.apache.shardingsphere.test.mock.MockedDataSource;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -28,38 +29,33 @@ import org.mockito.Answers;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 
-import javax.sql.DataSource;
 import java.util.Collections;
 
 import static org.junit.Assert.assertFalse;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 @RunWith(MockitoJUnitRunner.class)
 public final class DropDefaultSingleTableRuleUpdaterTest {
     
+    private final DropDefaultSingleTableRuleStatementUpdater updater = new 
DropDefaultSingleTableRuleStatementUpdater();
+    
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private ShardingSphereDatabase database;
     
-    private final DropDefaultSingleTableRuleStatementUpdater updater = new 
DropDefaultSingleTableRuleStatementUpdater();
-    
     @Before
     public void setUp() throws Exception {
         when(database.getName()).thenReturn("sharding_db");
-        
when(database.getResource().getDataSources()).thenReturn(Collections.singletonMap("ds_0",
 mock(DataSource.class)));
+        
when(database.getResource().getDataSources()).thenReturn(Collections.singletonMap("ds_0",
 new MockedDataSource()));
     }
     
     @Test(expected = RequiredRuleMissedException.class)
     public void assertCheckWithoutConfig() throws Exception {
-        DropDefaultSingleTableRuleStatement statement = new 
DropDefaultSingleTableRuleStatement();
-        updater.checkSQLStatement(database, statement, null);
+        updater.checkSQLStatement(database, new 
DropDefaultSingleTableRuleStatement(), null);
     }
     
     @Test(expected = RequiredRuleMissedException.class)
     public void assertCheckWithoutResource() throws Exception {
-        DropDefaultSingleTableRuleStatement statement = new 
DropDefaultSingleTableRuleStatement();
-        SingleTableRuleConfiguration currentConfig = new 
SingleTableRuleConfiguration();
-        updater.checkSQLStatement(database, statement, currentConfig);
+        updater.checkSQLStatement(database, new 
DropDefaultSingleTableRuleStatement(), new SingleTableRuleConfiguration());
     }
     
     @Test
@@ -72,10 +68,9 @@ public final class DropDefaultSingleTableRuleUpdaterTest {
     
     @Test
     public void assertUpdate() {
-        DropDefaultSingleTableRuleStatement statement = new 
DropDefaultSingleTableRuleStatement();
         SingleTableRuleConfiguration currentConfig = new 
SingleTableRuleConfiguration();
         currentConfig.setDefaultDataSource("default");
-        updater.updateCurrentRuleConfiguration(statement, currentConfig);
+        updater.updateCurrentRuleConfiguration(new 
DropDefaultSingleTableRuleStatement(), currentConfig);
         assertFalse(currentConfig.getDefaultDataSource().isPresent());
     }
 }
diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/OpenGaussFrontendEngineTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/OpenGaussFrontendEngineTest.java
index 9c63bd5cab0..e84777a9400 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/OpenGaussFrontendEngineTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-opengauss/src/test/java/org/apache/shardingsphere/proxy/frontend/opengauss/OpenGaussFrontendEngineTest.java
@@ -17,7 +17,6 @@
 
 package org.apache.shardingsphere.proxy.frontend.opengauss;
 
-import lombok.SneakyThrows;
 import 
org.apache.shardingsphere.db.protocol.opengauss.codec.OpenGaussPacketCodecEngine;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
 import 
org.apache.shardingsphere.proxy.frontend.opengauss.authentication.OpenGaussAuthenticationEngine;
@@ -39,19 +38,13 @@ import static org.mockito.Mockito.verify;
 @RunWith(MockitoJUnitRunner.class)
 public final class OpenGaussFrontendEngineTest {
     
-    private OpenGaussFrontendEngine openGaussFrontendEngine;
+    private final OpenGaussFrontendEngine openGaussFrontendEngine = new 
OpenGaussFrontendEngine();
     
     @Mock
     private PostgreSQLFrontendEngine mockPostgreSQLFrontendEngine;
     
     @Before
-    public void setup() {
-        openGaussFrontendEngine = new OpenGaussFrontendEngine();
-        prepareMock();
-    }
-    
-    @SneakyThrows
-    private void prepareMock() {
+    public void setup() throws ReflectiveOperationException {
         Field field = 
OpenGaussFrontendEngine.class.getDeclaredField("postgreSQLFrontendEngine");
         field.setAccessible(true);
         field.set(openGaussFrontendEngine, mockPostgreSQLFrontendEngine);
diff --git a/shardingsphere-test/shardingsphere-pipeline-test/pom.xml 
b/shardingsphere-test/shardingsphere-pipeline-test/pom.xml
index 42fea36b789..a8ee835b4ed 100644
--- a/shardingsphere-test/shardingsphere-pipeline-test/pom.xml
+++ b/shardingsphere-test/shardingsphere-pipeline-test/pom.xml
@@ -49,6 +49,13 @@
             <version>${project.version}</version>
         </dependency>
         
+        <dependency>
+            <groupId>org.apache.shardingsphere</groupId>
+            <artifactId>shardingsphere-test-common</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+        
         <dependency>
             <groupId>com.h2database</groupId>
             <artifactId>h2</artifactId>
diff --git 
a/shardingsphere-test/shardingsphere-pipeline-test/src/test/java/org/apache/shardingsphere/data/pipeline/core/metadata/loader/PipelineTableMetaDataLoaderTest.java
 
b/shardingsphere-test/shardingsphere-pipeline-test/src/test/java/org/apache/shardingsphere/data/pipeline/core/metadata/loader/PipelineTableMetaDataLoaderTest.java
index c45df0c9d3b..b5d7d5501a3 100644
--- 
a/shardingsphere-test/shardingsphere-pipeline-test/src/test/java/org/apache/shardingsphere/data/pipeline/core/metadata/loader/PipelineTableMetaDataLoaderTest.java
+++ 
b/shardingsphere-test/shardingsphere-pipeline-test/src/test/java/org/apache/shardingsphere/data/pipeline/core/metadata/loader/PipelineTableMetaDataLoaderTest.java
@@ -22,13 +22,12 @@ import 
org.apache.shardingsphere.data.pipeline.core.metadata.model.PipelineColum
 import 
org.apache.shardingsphere.data.pipeline.core.metadata.model.PipelineIndexMetaData;
 import 
org.apache.shardingsphere.data.pipeline.core.metadata.model.PipelineTableMetaData;
 import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
+import org.apache.shardingsphere.test.mock.MockedDataSource;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 
-import javax.sql.DataSource;
 import java.sql.Connection;
 import java.sql.DatabaseMetaData;
 import java.sql.ResultSet;
@@ -64,42 +63,54 @@ public final class PipelineTableMetaDataLoaderTest {
     
     private PipelineDataSourceWrapper dataSource;
     
-    @Mock
-    private Connection connection;
+    @Before
+    public void setUp() throws SQLException {
+        dataSource = new PipelineDataSourceWrapper(new 
MockedDataSource(mockConnection()), new H2DatabaseType());
+    }
     
-    @Mock
-    private DatabaseMetaData databaseMetaData;
+    private Connection mockConnection() throws SQLException {
+        Connection result = mock(Connection.class);
+        when(result.getCatalog()).thenReturn(TEST_CATALOG);
+        DatabaseMetaData databaseMetaData = mockDatabaseMetaData();
+        when(result.getMetaData()).thenReturn(databaseMetaData);
+        return result;
+    }
     
-    @Mock
-    private ResultSet primaryKeyResultSet;
+    private DatabaseMetaData mockDatabaseMetaData() throws SQLException {
+        DatabaseMetaData result = mock(DatabaseMetaData.class);
+        ResultSet columnMetaDataResultSet = mockColumnMetaDataResultSet();
+        when(result.getColumns(TEST_CATALOG, null, TEST_TABLE, 
"%")).thenReturn(columnMetaDataResultSet);
+        ResultSet primaryKeyResultSet = mockPrimaryKeyResultSet();
+        when(result.getPrimaryKeys(TEST_CATALOG, null, 
TEST_TABLE)).thenReturn(primaryKeyResultSet);
+        ResultSet indexInfoResultSet = mockIndexInfoResultSet();
+        when(result.getIndexInfo(TEST_CATALOG, null, TEST_TABLE, true, 
false)).thenReturn(indexInfoResultSet);
+        return result;
+    }
     
-    @Mock
-    private ResultSet columnMetaDataResultSet;
+    private ResultSet mockColumnMetaDataResultSet() throws SQLException {
+        ResultSet result = mock(ResultSet.class);
+        when(result.next()).thenReturn(true, true, true, false);
+        when(result.getString(TABLE_NAME)).thenReturn(TEST_TABLE);
+        when(result.getInt(ORDINAL_POSITION)).thenReturn(1, 2, 3);
+        when(result.getString(COLUMN_NAME)).thenReturn("id", "name", "age");
+        when(result.getInt(DATA_TYPE)).thenReturn(Types.BIGINT, Types.VARCHAR, 
Types.INTEGER);
+        return result;
+    }
     
-    @Mock
-    private ResultSet indexInfoResultSet;
+    private ResultSet mockPrimaryKeyResultSet() throws SQLException {
+        ResultSet result = mock(ResultSet.class);
+        when(result.next()).thenReturn(true, false);
+        when(result.getString(COLUMN_NAME)).thenReturn("id");
+        return result;
+    }
     
-    @Before
-    public void setUp() throws SQLException {
-        DataSource rawDataSource = mock(DataSource.class);
-        dataSource = new PipelineDataSourceWrapper(rawDataSource, new 
H2DatabaseType());
-        when(rawDataSource.getConnection()).thenReturn(connection);
-        when(connection.getCatalog()).thenReturn(TEST_CATALOG);
-        when(connection.getMetaData()).thenReturn(databaseMetaData);
-        when(databaseMetaData.getColumns(TEST_CATALOG, null, TEST_TABLE, 
"%")).thenReturn(columnMetaDataResultSet);
-        when(databaseMetaData.getPrimaryKeys(TEST_CATALOG, null, 
TEST_TABLE)).thenReturn(primaryKeyResultSet);
-        when(primaryKeyResultSet.next()).thenReturn(true, false);
-        when(primaryKeyResultSet.getString(COLUMN_NAME)).thenReturn("id");
-        when(columnMetaDataResultSet.next()).thenReturn(true, true, true, 
false);
-        
when(columnMetaDataResultSet.getString(TABLE_NAME)).thenReturn(TEST_TABLE);
-        when(columnMetaDataResultSet.getInt(ORDINAL_POSITION)).thenReturn(1, 
2, 3);
-        when(columnMetaDataResultSet.getString(COLUMN_NAME)).thenReturn("id", 
"name", "age");
-        
when(columnMetaDataResultSet.getInt(DATA_TYPE)).thenReturn(Types.BIGINT, 
Types.VARCHAR, Types.INTEGER);
-        when(databaseMetaData.getIndexInfo(TEST_CATALOG, null, TEST_TABLE, 
true, false)).thenReturn(indexInfoResultSet);
-        when(indexInfoResultSet.next()).thenReturn(true, true, false);
-        when(indexInfoResultSet.getString(INDEX_NAME)).thenReturn(TEST_INDEX);
-        when(indexInfoResultSet.getString(COLUMN_NAME)).thenReturn("name", 
"id");
-        when(indexInfoResultSet.getShort(ORDINAL_POSITION)).thenReturn((short) 
2, (short) 1);
+    private ResultSet mockIndexInfoResultSet() throws SQLException {
+        ResultSet result = mock(ResultSet.class);
+        when(result.next()).thenReturn(true, true, false);
+        when(result.getString(INDEX_NAME)).thenReturn(TEST_INDEX);
+        when(result.getString(COLUMN_NAME)).thenReturn("name", "id");
+        when(result.getShort(ORDINAL_POSITION)).thenReturn((short) 2, (short) 
1);
+        return result;
     }
     
     @Test

Reply via email to