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

panjuan 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 06644a3b6e1 Add more test cases for DatabaseType test (#18922)
06644a3b6e1 is described below

commit 06644a3b6e1df0767b1ef676209fc55133d7a974
Author: Liang Zhang <[email protected]>
AuthorDate: Thu Jul 7 14:06:53 2022 +0800

    Add more test cases for DatabaseType test (#18922)
    
    * Refactor DatabaseTypeEngineTest
    
    * Add DatabaseTypeTest
    
    * Refactor MariaDBDatabaseTypeTest
    
    * Refactor H2DatabaseTypeTest
    
    * Refactor OracleDatabaseTypeTest
    
    * Refactor PostgreSQLDatabaseTypeTest
    
    * Refactor SQL92DatabaseTypeTest
    
    * Refactor SQLServerDatabaseTypeTest
---
 .../database/type/dialect/OracleDatabaseType.java  |  1 -
 .../database/type/DatabaseTypeEngineTest.java      | 36 +++++++----------
 .../database/type/dialect/DatabaseTypeTest.java    | 44 ++++++++++++++++++++
 .../database/type/dialect/H2DatabaseTypeTest.java  | 34 +++++++---------
 .../type/dialect/MariaDBDatabaseTypeTest.java      | 33 ++++++---------
 .../type/dialect/MySQLDatabaseTypeTest.java        | 29 +++----------
 .../type/dialect/OracleDatabaseTypeTest.java       | 32 +++++++++++----
 .../type/dialect/PostgreSQLDatabaseTypeTest.java   | 47 +++++++++++++++-------
 .../type/dialect/SQL92DatabaseTypeTest.java        | 33 +++++----------
 .../type/dialect/SQLServerDatabaseTypeTest.java    | 26 +++++-------
 10 files changed, 171 insertions(+), 144 deletions(-)

diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/database/type/dialect/OracleDatabaseType.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/database/type/dialect/OracleDatabaseType.java
index a17525925ba..33d095762d4 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/database/type/dialect/OracleDatabaseType.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/main/java/org/apache/shardingsphere/infra/database/type/dialect/OracleDatabaseType.java
@@ -53,7 +53,6 @@ public final class OracleDatabaseType implements DatabaseType 
{
         return Optional.empty();
     }
     
-    @SuppressWarnings("ReturnOfNull")
     @Override
     public String getSchema(final Connection connection) {
         try {
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 0b76e55aa0e..f03f1ea0df9 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
@@ -25,6 +25,7 @@ import 
org.apache.shardingsphere.infra.database.type.dialect.MariaDBDatabaseType
 import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
 import 
org.apache.shardingsphere.infra.database.type.dialect.PostgreSQLDatabaseType;
 import org.apache.shardingsphere.infra.fixture.FixtureRuleConfiguration;
+import org.apache.shardingsphere.test.mock.MockedDataSource;
 import org.junit.Test;
 
 import javax.sql.DataSource;
@@ -122,37 +123,30 @@ public final class DatabaseTypeEngineTest {
     }
     
     private DataSource mockDataSource(final DatabaseType databaseType) throws 
SQLException {
-        DataSource result = mock(DataSource.class);
         Connection connection = mock(Connection.class, RETURNS_DEEP_STUBS);
-        when(result.getConnection()).thenReturn(connection);
-        String url;
+        
when(connection.getMetaData().getURL()).thenReturn(getURL(databaseType));
+        return new MockedDataSource(connection);
+    }
+    
+    private String getURL(final DatabaseType databaseType) {
         switch (databaseType.getType()) {
             case "H2":
-                url = 
"jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MySQL";
-                break;
+                return 
"jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MySQL";
             case "MariaDB":
-                url = "jdbc:mariadb://localhost:3306/test";
-                break;
+                return "jdbc:mariadb://localhost:3306/test";
             case "MySQL":
-                url = "jdbc:mysql://localhost:3306/test";
-                break;
-            case "Oracle":
-                url = "jdbc:oracle:oci:@127.0.0.1/test";
-                break;
+                return "jdbc:mysql://localhost:3306/test";
             case "PostgreSQL":
-                url = "jdbc:postgresql://localhost:5432/test";
-                break;
-            case "SQL92":
-                url = "jdbc:jtds:sqlserver://127.0.0.1;DatabaseName=test";
-                break;
+                return "jdbc:postgresql://localhost:5432/test";
             case "SQLServer":
-                url = "jdbc:microsoft:sqlserver://127.0.0.1;DatabaseName=test";
-                break;
+                return 
"jdbc:microsoft:sqlserver://127.0.0.1;DatabaseName=test";
+            case "Oracle":
+                return "jdbc:oracle:oci:@127.0.0.1/test";
+            case "SQL92":
+                return "jdbc:jtds:sqlserver://127.0.0.1;DatabaseName=test";
             default:
                 throw new IllegalStateException("Unexpected value: " + 
databaseType.getType());
         }
-        when(connection.getMetaData().getURL()).thenReturn(url);
-        return result;
     }
     
     @Test
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/DatabaseTypeTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/DatabaseTypeTest.java
new file mode 100644
index 00000000000..2c5d7e59f2e
--- /dev/null
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/DatabaseTypeTest.java
@@ -0,0 +1,44 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.infra.database.type.dialect;
+
+import org.apache.shardingsphere.infra.fixture.FixtureDatabaseType;
+import org.junit.Test;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+public final class DatabaseTypeTest {
+    
+    @Test
+    public void assertGetSchema() throws SQLException {
+        Connection connection = mock(Connection.class);
+        when(connection.getSchema()).thenReturn("ds");
+        assertThat(new FixtureDatabaseType().getSchema(connection), is("ds"));
+    }
+    
+    @Test
+    public void assertFormatTableNamePattern() {
+        assertThat(new FixtureDatabaseType().formatTableNamePattern("tbl"), 
is("tbl"));
+    }
+}
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/H2DatabaseTypeTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/H2DatabaseTypeTest.java
index b8d8e603f94..83485be2fac 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/H2DatabaseTypeTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/H2DatabaseTypeTest.java
@@ -21,21 +21,19 @@ import 
org.apache.shardingsphere.infra.database.metadata.dialect.H2DataSourceMet
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 import org.junit.Test;
 
-import java.sql.Connection;
-import java.sql.SQLException;
 import java.util.Collections;
+import java.util.Optional;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import static org.junit.Assert.assertTrue;
 
 public final class H2DatabaseTypeTest {
     
     @Test
-    public void assertGetName() {
-        assertThat(new H2DatabaseType().getType(), is("H2"));
+    public void assertGetQuoteCharacter() {
+        assertThat(new H2DatabaseType().getQuoteCharacter(), 
is(QuoteCharacter.QUOTE));
     }
     
     @Test
@@ -45,31 +43,27 @@ public final class H2DatabaseTypeTest {
     
     @Test
     public void assertGetDataSourceMetaData() {
-        assertThat(new 
H2DatabaseType().getDataSourceMetaData("jdbc:h2:~:primary_ds_0", "sa"), 
instanceOf(H2DataSourceMetaData.class));
-        assertThat(new 
H2DatabaseType().getDataSourceMetaData("jdbc:h2:mem:primary_ds_0", "sa"), 
instanceOf(H2DataSourceMetaData.class));
+        assertThat(new 
H2DatabaseType().getDataSourceMetaData("jdbc:h2:~:foo_ds", "sa"), 
instanceOf(H2DataSourceMetaData.class));
+        assertThat(new 
H2DatabaseType().getDataSourceMetaData("jdbc:h2:mem:foo_ds", "sa"), 
instanceOf(H2DataSourceMetaData.class));
     }
     
     @Test
-    public void assertGetTrunkDatabaseType() {
-        assertThat(new H2DatabaseType().getTrunkDatabaseType().getType(), 
is("MySQL"));
+    public void assertGetDataSourceClassName() {
+        assertThat(new H2DatabaseType().getDataSourceClassName(), 
is(Optional.of("org.h2.jdbcx.JdbcDataSource")));
     }
     
     @Test
-    public void assertGetSchema() throws SQLException {
-        Connection connection = mock(Connection.class);
-        when(connection.getSchema()).thenReturn("ds");
-        assertThat(new H2DatabaseType().getSchema(connection), is("ds"));
+    public void assertGetTrunkDatabaseType() {
+        assertThat(new H2DatabaseType().getTrunkDatabaseType().getType(), 
is("MySQL"));
     }
     
     @Test
-    public void assertFormatTableNamePattern() {
-        assertThat(new H2DatabaseType().formatTableNamePattern("tbl"), 
is("tbl"));
+    public void assertGetSystemDatabaseSchemaMap() {
+        assertTrue(new 
H2DatabaseType().getSystemDatabaseSchemaMap().isEmpty());
     }
     
     @Test
-    public void assertGetQuoteCharacter() {
-        QuoteCharacter actual = new H2DatabaseType().getQuoteCharacter();
-        assertThat(actual.getStartDelimiter(), is("\""));
-        assertThat(actual.getEndDelimiter(), is("\""));
+    public void assertGetSystemSchemas() {
+        assertTrue(new H2DatabaseType().getSystemSchemas().isEmpty());
     }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/MariaDBDatabaseTypeTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/MariaDBDatabaseTypeTest.java
index 0610bd43497..fa55543131e 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/MariaDBDatabaseTypeTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/MariaDBDatabaseTypeTest.java
@@ -21,21 +21,19 @@ import 
org.apache.shardingsphere.infra.database.metadata.dialect.MariaDBDataSour
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 import org.junit.Test;
 
-import java.sql.Connection;
-import java.sql.SQLException;
 import java.util.Collections;
+import java.util.Optional;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import static org.junit.Assert.assertTrue;
 
 public final class MariaDBDatabaseTypeTest {
     
     @Test
-    public void assertGetName() {
-        assertThat(new MariaDBDatabaseType().getType(), is("MariaDB"));
+    public void assertGetQuoteCharacter() {
+        assertThat(new MariaDBDatabaseType().getQuoteCharacter(), 
is(QuoteCharacter.BACK_QUOTE));
     }
     
     @Test
@@ -45,31 +43,26 @@ public final class MariaDBDatabaseTypeTest {
     
     @Test
     public void assertGetDataSourceMetaData() {
-        assertThat(new 
MariaDBDatabaseType().getDataSourceMetaData("jdbc:mysql://localhost:3306/demo_ds_0",
 "root"), instanceOf(MariaDBDataSourceMetaData.class));
-        assertThat(new 
MariaDBDatabaseType().getDataSourceMetaData("jdbc:mariadb://localhost:3306/demo_ds_0",
 "root"), instanceOf(MariaDBDataSourceMetaData.class));
+        assertThat(new 
MariaDBDatabaseType().getDataSourceMetaData("jdbc:mariadb://localhost:3306/foo_ds",
 "root"), instanceOf(MariaDBDataSourceMetaData.class));
     }
     
     @Test
-    public void assertGetTrunkDatabaseType() {
-        assertThat(new MariaDBDatabaseType().getTrunkDatabaseType().getType(), 
is("MySQL"));
+    public void assertGetDataSourceClassName() {
+        assertThat(new MariaDBDatabaseType().getDataSourceClassName(), 
is(Optional.of("org.mariadb.jdbc.MariaDbDataSource")));
     }
     
     @Test
-    public void assertGetSchema() throws SQLException {
-        Connection connection = mock(Connection.class);
-        when(connection.getSchema()).thenReturn("ds");
-        assertThat(new MariaDBDatabaseType().getSchema(connection), is("ds"));
+    public void assertGetTrunkDatabaseType() {
+        assertThat(new MariaDBDatabaseType().getTrunkDatabaseType().getType(), 
is("MySQL"));
     }
     
     @Test
-    public void assertFormatTableNamePattern() {
-        assertThat(new MariaDBDatabaseType().formatTableNamePattern("tbl"), 
is("tbl"));
+    public void assertGetSystemDatabaseSchemaMap() {
+        assertTrue(new 
MariaDBDatabaseType().getSystemDatabaseSchemaMap().isEmpty());
     }
     
     @Test
-    public void assertGetQuoteCharacter() {
-        QuoteCharacter actual = new MariaDBDatabaseType().getQuoteCharacter();
-        assertThat(actual.getStartDelimiter(), is("`"));
-        assertThat(actual.getEndDelimiter(), is("`"));
+    public void assertGetSystemSchemas() {
+        assertTrue(new MariaDBDatabaseType().getSystemSchemas().isEmpty());
     }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/MySQLDatabaseTypeTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/MySQLDatabaseTypeTest.java
index 31154acc66a..eb897f26046 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/MySQLDatabaseTypeTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/MySQLDatabaseTypeTest.java
@@ -21,23 +21,20 @@ import 
org.apache.shardingsphere.infra.database.metadata.dialect.MySQLDataSource
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 import org.junit.Test;
 
-import java.sql.Connection;
-import java.sql.SQLException;
 import java.util.Arrays;
 import java.util.HashSet;
+import java.util.Optional;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 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;
 
 public final class MySQLDatabaseTypeTest {
     
     @Test
-    public void assertGetName() {
-        assertThat(new MySQLDatabaseType().getType(), is("MySQL"));
+    public void assertGetQuoteCharacter() {
+        assertThat(new MySQLDatabaseType().getQuoteCharacter(), 
is(QuoteCharacter.BACK_QUOTE));
     }
     
     @Test
@@ -47,26 +44,12 @@ public final class MySQLDatabaseTypeTest {
     
     @Test
     public void assertGetDataSourceMetaData() {
-        assertThat(new 
MySQLDatabaseType().getDataSourceMetaData("jdbc:mysql://127.0.0.1/ds", "root"), 
instanceOf(MySQLDataSourceMetaData.class));
-    }
-    
-    @Test
-    public void assertGetSchema() throws SQLException {
-        Connection connection = mock(Connection.class);
-        when(connection.getSchema()).thenReturn("ds");
-        assertThat(new MySQLDatabaseType().getSchema(connection), is("ds"));
+        assertThat(new 
MySQLDatabaseType().getDataSourceMetaData("jdbc:mysql://127.0.0.1/foo_ds", 
"root"), instanceOf(MySQLDataSourceMetaData.class));
     }
     
     @Test
-    public void assertFormatTableNamePattern() {
-        assertThat(new MySQLDatabaseType().formatTableNamePattern("tbl"), 
is("tbl"));
-    }
-    
-    @Test
-    public void assertGetQuoteCharacter() {
-        QuoteCharacter actual = new MySQLDatabaseType().getQuoteCharacter();
-        assertThat(actual.getStartDelimiter(), is("`"));
-        assertThat(actual.getEndDelimiter(), is("`"));
+    public void assertGetDataSourceClassName() {
+        assertThat(new MySQLDatabaseType().getDataSourceClassName(), 
is(Optional.of("com.mysql.jdbc.jdbc2.optional.MysqlDataSource")));
     }
     
     @Test
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/OracleDatabaseTypeTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/OracleDatabaseTypeTest.java
index 83530a6a0b6..2025223702e 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/OracleDatabaseTypeTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/OracleDatabaseTypeTest.java
@@ -24,10 +24,13 @@ import org.junit.Test;
 import java.sql.Connection;
 import java.sql.SQLException;
 import java.util.Collections;
+import java.util.Optional;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
@@ -35,8 +38,8 @@ import static org.mockito.Mockito.when;
 public final class OracleDatabaseTypeTest {
     
     @Test
-    public void assertGetName() {
-        assertThat(new OracleDatabaseType().getType(), is("Oracle"));
+    public void assertGetQuoteCharacter() {
+        assertThat(new OracleDatabaseType().getQuoteCharacter(), 
is(QuoteCharacter.QUOTE));
     }
     
     @Test
@@ -46,7 +49,12 @@ public final class OracleDatabaseTypeTest {
     
     @Test
     public void assertOracleDataSourceMetaData() {
-        assertThat(new 
OracleDatabaseType().getDataSourceMetaData("jdbc:oracle:oci:@127.0.0.1/ds_0", 
"scott"), instanceOf(OracleDataSourceMetaData.class));
+        assertThat(new 
OracleDatabaseType().getDataSourceMetaData("jdbc:oracle:oci:@127.0.0.1/foo_ds", 
"scott"), instanceOf(OracleDataSourceMetaData.class));
+    }
+    
+    @Test
+    public void assertGetDataSourceClassName() {
+        assertThat(new OracleDatabaseType().getDataSourceClassName(), 
is(Optional.empty()));
     }
     
     @Test
@@ -56,15 +64,25 @@ public final class OracleDatabaseTypeTest {
         assertThat(new OracleDatabaseType().getSchema(connection), 
is("SCOTT"));
     }
     
+    @Test
+    public void assertGetSchemaIfExceptionThrown() throws SQLException {
+        Connection connection = mock(Connection.class, RETURNS_DEEP_STUBS);
+        
when(connection.getMetaData().getUserName()).thenThrow(SQLException.class);
+        assertNull(new OracleDatabaseType().getSchema(connection));
+    }
+    
     @Test
     public void assertFormatTableNamePattern() {
         assertThat(new OracleDatabaseType().formatTableNamePattern("tbl"), 
is("TBL"));
     }
     
     @Test
-    public void assertGetQuoteCharacter() {
-        QuoteCharacter actual = new OracleDatabaseType().getQuoteCharacter();
-        assertThat(actual.getStartDelimiter(), is("\""));
-        assertThat(actual.getEndDelimiter(), is("\""));
+    public void assertGetSystemDatabases() {
+        assertTrue(new 
OracleDatabaseType().getSystemDatabaseSchemaMap().isEmpty());
+    }
+    
+    @Test
+    public void assertGetSystemSchemas() {
+        assertTrue(new OracleDatabaseType().getSystemSchemas().isEmpty());
     }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/PostgreSQLDatabaseTypeTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/PostgreSQLDatabaseTypeTest.java
index aec636b1542..4a841e1dd47 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/PostgreSQLDatabaseTypeTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/PostgreSQLDatabaseTypeTest.java
@@ -19,26 +19,29 @@ package 
org.apache.shardingsphere.infra.database.type.dialect;
 
 import 
org.apache.shardingsphere.infra.database.metadata.dialect.PostgreSQLDataSourceMetaData;
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
+import 
org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
+import 
org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.CommitStatement;
+import 
org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.RollbackStatement;
 import org.junit.Test;
 
-import java.sql.Connection;
 import java.sql.SQLException;
+import java.sql.SQLFeatureNotSupportedException;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.HashSet;
+import java.util.Optional;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 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;
 
 public final class PostgreSQLDatabaseTypeTest {
     
     @Test
-    public void assertGetName() {
-        assertThat(new PostgreSQLDatabaseType().getType(), is("PostgreSQL"));
+    public void assertGetQuoteCharacter() {
+        assertThat(new PostgreSQLDatabaseType().getQuoteCharacter(), 
is(QuoteCharacter.QUOTE));
     }
     
     @Test
@@ -52,22 +55,28 @@ public final class PostgreSQLDatabaseTypeTest {
     }
     
     @Test
-    public void assertGetSchema() throws SQLException {
-        Connection connection = mock(Connection.class);
-        when(connection.getSchema()).thenReturn("ds");
-        assertThat(new PostgreSQLDatabaseType().getSchema(connection), 
is("ds"));
+    public void assertGetDataSourceClassName() {
+        assertThat(new PostgreSQLDatabaseType().getDataSourceClassName(), 
is(Optional.of("org.postgresql.ds.PGSimpleDataSource")));
     }
     
     @Test
-    public void assertFormatTableNamePattern() {
-        assertThat(new PostgreSQLDatabaseType().formatTableNamePattern("tbl"), 
is("tbl"));
+    public void assertHandleRollbackOnlyForNotRollbackOnly() throws 
SQLException {
+        new PostgreSQLDatabaseType().handleRollbackOnly(false, 
mock(CommitStatement.class));
     }
     
     @Test
-    public void assertGetQuoteCharacter() {
-        QuoteCharacter actual = new 
PostgreSQLDatabaseType().getQuoteCharacter();
-        assertThat(actual.getStartDelimiter(), is("\""));
-        assertThat(actual.getEndDelimiter(), is("\""));
+    public void assertHandleRollbackOnlyForRollbackOnlyAndCommitStatement() 
throws SQLException {
+        new PostgreSQLDatabaseType().handleRollbackOnly(true, 
mock(CommitStatement.class));
+    }
+    
+    @Test
+    public void assertHandleRollbackOnlyForRollbackOnlyAndRollbackStatement() 
throws SQLException {
+        new PostgreSQLDatabaseType().handleRollbackOnly(true, 
mock(RollbackStatement.class));
+    }
+    
+    @Test(expected = SQLFeatureNotSupportedException.class)
+    public void assertHandleRollbackOnlyForRollbackOnlyAndNotTCLStatement() 
throws SQLException {
+        new PostgreSQLDatabaseType().handleRollbackOnly(true, 
mock(SelectStatement.class));
     }
     
     @Test
@@ -79,4 +88,14 @@ public final class PostgreSQLDatabaseTypeTest {
     public void assertGetSystemSchemas() {
         assertThat(new PostgreSQLDatabaseType().getSystemSchemas(), is(new 
HashSet<>(Arrays.asList("information_schema", "pg_catalog"))));
     }
+    
+    @Test
+    public void assertIsSchemaAvailable() {
+        assertTrue(new PostgreSQLDatabaseType().isSchemaAvailable());
+    }
+    
+    @Test
+    public void assertGetDefaultSchema() {
+        assertThat(new PostgreSQLDatabaseType().getDefaultSchema(), 
is("public"));
+    }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/SQL92DatabaseTypeTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/SQL92DatabaseTypeTest.java
index 376089ce8bd..cc6a2d18a75 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/SQL92DatabaseTypeTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/SQL92DatabaseTypeTest.java
@@ -21,21 +21,19 @@ import 
org.apache.shardingsphere.infra.database.metadata.dialect.SQL92DataSource
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 import org.junit.Test;
 
-import java.sql.Connection;
-import java.sql.SQLException;
 import java.util.Collections;
+import java.util.Optional;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import static org.junit.Assert.assertTrue;
 
 public final class SQL92DatabaseTypeTest {
     
     @Test
-    public void assertGetName() {
-        assertThat(new SQL92DatabaseType().getType(), is("SQL92"));
+    public void assertGetQuoteCharacter() {
+        assertThat(new SQL92DatabaseType().getQuoteCharacter(), 
is(QuoteCharacter.QUOTE));
     }
     
     @Test
@@ -45,30 +43,21 @@ public final class SQL92DatabaseTypeTest {
     
     @Test
     public void assertGetDataSourceMetaData() {
-        assertThat(new 
SQL92DatabaseType().getDataSourceMetaData("jdbc:h2:mem:primary_ds_0", "sa"), 
instanceOf(SQL92DataSourceMetaData.class));
-        assertThat(new 
SQL92DatabaseType().getDataSourceMetaData("jdbc:mariadb://localhost:3306/demo_ds_0",
 "sa"), instanceOf(SQL92DataSourceMetaData.class));
-        assertThat(new 
SQL92DatabaseType().getDataSourceMetaData("jdbc:mysql://127.0.0.1/demo_ds_0", 
"root"), instanceOf(SQL92DataSourceMetaData.class));
-        assertThat(new 
SQL92DatabaseType().getDataSourceMetaData("jdbc:postgresql://localhost:5432/demo_ds_0",
 "postgres"), instanceOf(SQL92DataSourceMetaData.class));
-        assertThat(new 
SQL92DatabaseType().getDataSourceMetaData("jdbc:oracle:oci:@127.0.0.1/demo_ds_0",
 "scott"), instanceOf(SQL92DataSourceMetaData.class));
-        assertThat(new 
SQL92DatabaseType().getDataSourceMetaData("jdbc:microsoft:sqlserver://127.0.0.1;DatabaseName=ds_0",
 "sa"), instanceOf(SQL92DataSourceMetaData.class));
+        assertThat(new SQL92DatabaseType().getDataSourceMetaData("jdbc:xxx", 
"root"), instanceOf(SQL92DataSourceMetaData.class));
     }
     
     @Test
-    public void assertGetSchema() throws SQLException {
-        Connection connection = mock(Connection.class);
-        when(connection.getSchema()).thenReturn("ds");
-        assertThat(new SQL92DatabaseType().getSchema(connection), is("ds"));
+    public void assertGetDataSourceClassName() {
+        assertThat(new SQL92DatabaseType().getDataSourceClassName(), 
is(Optional.empty()));
     }
     
     @Test
-    public void assertFormatTableNamePattern() {
-        assertThat(new SQL92DatabaseType().formatTableNamePattern("tbl"), 
is("tbl"));
+    public void assertGetSystemDatabases() {
+        assertTrue(new 
SQL92DatabaseType().getSystemDatabaseSchemaMap().isEmpty());
     }
     
     @Test
-    public void assertGetQuoteCharacter() {
-        QuoteCharacter actual = new SQL92DatabaseType().getQuoteCharacter();
-        assertThat(actual.getStartDelimiter(), is("\""));
-        assertThat(actual.getEndDelimiter(), is("\""));
+    public void assertGetSystemSchemas() {
+        assertTrue(new SQL92DatabaseType().getSystemSchemas().isEmpty());
     }
 }
diff --git 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/SQLServerDatabaseTypeTest.java
 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/SQLServerDatabaseTypeTest.java
index 4668a816a2e..061c7b33f8f 100644
--- 
a/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/SQLServerDatabaseTypeTest.java
+++ 
b/shardingsphere-infra/shardingsphere-infra-common/src/test/java/org/apache/shardingsphere/infra/database/type/dialect/SQLServerDatabaseTypeTest.java
@@ -21,21 +21,19 @@ import 
org.apache.shardingsphere.infra.database.metadata.dialect.SQLServerDataSo
 import org.apache.shardingsphere.sql.parser.sql.common.constant.QuoteCharacter;
 import org.junit.Test;
 
-import java.sql.Connection;
-import java.sql.SQLException;
 import java.util.Arrays;
+import java.util.Optional;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
+import static org.junit.Assert.assertTrue;
 
 public final class SQLServerDatabaseTypeTest {
     
     @Test
-    public void assertGetName() {
-        assertThat(new SQLServerDatabaseType().getType(), is("SQLServer"));
+    public void assertGetQuoteCharacter() {
+        assertThat(new SQLServerDatabaseType().getQuoteCharacter(), 
is(QuoteCharacter.BRACKETS));
     }
     
     @Test
@@ -50,21 +48,17 @@ public final class SQLServerDatabaseTypeTest {
     }
     
     @Test
-    public void assertGetSchema() throws SQLException {
-        Connection connection = mock(Connection.class);
-        when(connection.getSchema()).thenReturn("ds");
-        assertThat(new SQLServerDatabaseType().getSchema(connection), 
is("ds"));
+    public void assertGetDataSourceClassName() {
+        assertThat(new SQLServerDatabaseType().getDataSourceClassName(), 
is(Optional.of("com.microsoft.sqlserver.jdbc.SQLServerDataSource")));
     }
     
     @Test
-    public void assertFormatTableNamePattern() {
-        assertThat(new SQLServerDatabaseType().formatTableNamePattern("tbl"), 
is("tbl"));
+    public void assertGetSystemDatabases() {
+        assertTrue(new 
SQLServerDatabaseType().getSystemDatabaseSchemaMap().isEmpty());
     }
     
     @Test
-    public void assertGetQuoteCharacter() {
-        QuoteCharacter actual = new 
SQLServerDatabaseType().getQuoteCharacter();
-        assertThat(actual.getStartDelimiter(), is("["));
-        assertThat(actual.getEndDelimiter(), is("]"));
+    public void assertGetSystemSchemas() {
+        assertTrue(new SQLServerDatabaseType().getSystemSchemas().isEmpty());
     }
 }

Reply via email to