You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by su...@apache.org on 2023/06/01 15:59:09 UTC

[shardingsphere] branch master updated: Fix sonar issue on Replace tests with a single Parameterized one (#25999)

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

sunnianjun 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 9ad9931d0b5 Fix sonar issue on Replace tests with a single Parameterized one (#25999)
9ad9931d0b5 is described below

commit 9ad9931d0b50ab4023fa451fdb8e23bd46d36051
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Thu Jun 1 23:59:02 2023 +0800

    Fix sonar issue on Replace tests with a single Parameterized one (#25999)
    
    * Fix sonar issue on Replace tests with a single Parameterized one
---
 .../NewYamlMaskRuleConfigurationSwapper.java       |   2 +-
 ...st.java => AbstractDataSourceMetaDataTest.java} |  28 ++---
 .../metadata/dialect/H2DataSourceMetaDataTest.java |  30 ++---
 .../dialect/MariaDBDataSourceMetaDataTest.java     |  56 +++++----
 .../dialect/MySQLDataSourceMetaDataTest.java       |  56 +++++----
 .../dialect/OpenGaussDataSourceMetaDataTest.java   |  55 +++++----
 .../dialect/OracleDataSourceMetaDataTest.java      | 134 ++++++---------------
 .../dialect/PostgreSQLDataSourceMetaDataTest.java  |  55 +++++----
 .../dialect/SQL92DataSourceMetaDataTest.java       |  37 ++++--
 .../dialect/SQLServerDataSourceMetaDataTest.java   |  82 +++++--------
 ...taConsistencyCalculateAlgorithmChooserTest.java |  48 ++++----
 .../metadata/config/mask/MaskNodeConverter.java    |   2 +-
 12 files changed, 273 insertions(+), 312 deletions(-)

diff --git a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/yaml/swapper/NewYamlMaskRuleConfigurationSwapper.java b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/yaml/swapper/NewYamlMaskRuleConfigurationSwapper.java
index 705e0284181..90b2638d5ff 100644
--- a/features/mask/core/src/main/java/org/apache/shardingsphere/mask/yaml/swapper/NewYamlMaskRuleConfigurationSwapper.java
+++ b/features/mask/core/src/main/java/org/apache/shardingsphere/mask/yaml/swapper/NewYamlMaskRuleConfigurationSwapper.java
@@ -61,7 +61,7 @@ public final class NewYamlMaskRuleConfigurationSwapper implements NewYamlRuleCon
         // TODO to be completed.
         return new MaskRuleConfiguration(Collections.emptyList(), Collections.emptyMap());
     }
-        
+    
     @Override
     public Class<MaskRuleConfiguration> getTypeClass() {
         return MaskRuleConfiguration.class;
diff --git a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQL92DataSourceMetaDataTest.java b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/AbstractDataSourceMetaDataTest.java
similarity index 55%
copy from infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQL92DataSourceMetaDataTest.java
copy to infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/AbstractDataSourceMetaDataTest.java
index aef62762fbe..a53a6e0870f 100644
--- a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQL92DataSourceMetaDataTest.java
+++ b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/AbstractDataSourceMetaDataTest.java
@@ -17,27 +17,23 @@
 
 package org.apache.shardingsphere.infra.database.metadata.dialect;
 
-import org.apache.shardingsphere.infra.database.metadata.UnrecognizedDatabaseURLException;
-import org.junit.jupiter.api.Test;
+import org.apache.shardingsphere.infra.database.metadata.DataSourceMetaData;
+
+import java.util.Properties;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.junit.jupiter.api.Assertions.assertThrows;
 
-class SQL92DataSourceMetaDataTest {
+abstract class AbstractDataSourceMetaDataTest {
     
-    @Test
-    void assertNewConstructorSuccess() {
-        SQL92DataSourceMetaData actual = new SQL92DataSourceMetaData("jdbc:sql92_db:ds_0");
-        assertThat(actual.getHostname(), is(""));
-        assertThat(actual.getPort(), is(-1));
-        assertThat(actual.getCatalog(), is(""));
-        assertNull(actual.getSchema());
+    protected final void assertDataSourceMetaData(final String url, final String hostname, final int port, final String catalog, final String schema, final Properties queryProps) {
+        DataSourceMetaData actual = createDataSourceMetaData(url);
+        assertThat(actual.getHostname(), is(hostname));
+        assertThat(actual.getPort(), is(port));
+        assertThat(actual.getCatalog(), is(catalog));
+        assertThat(actual.getSchema(), is(schema));
+        assertThat(actual.getQueryProperties(), is(queryProps));
     }
     
-    @Test
-    void assertNewConstructorFailure() {
-        assertThrows(UnrecognizedDatabaseURLException.class, () -> new SQL92DataSourceMetaData("xxx:xxxx:xxxxxxxx"));
-    }
+    protected abstract DataSourceMetaData createDataSourceMetaData(String url);
 }
diff --git a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/H2DataSourceMetaDataTest.java b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/H2DataSourceMetaDataTest.java
index 7bc156a16c0..765b1e818f9 100644
--- a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/H2DataSourceMetaDataTest.java
+++ b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/H2DataSourceMetaDataTest.java
@@ -23,21 +23,18 @@ import org.junit.jupiter.params.provider.Arguments;
 import org.junit.jupiter.params.provider.ArgumentsProvider;
 import org.junit.jupiter.params.provider.ArgumentsSource;
 
+import java.util.Properties;
 import java.util.stream.Stream;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 
-class H2DataSourceMetaDataTest {
+class H2DataSourceMetaDataTest extends AbstractDataSourceMetaDataTest {
     
     @ParameterizedTest(name = "{0}")
     @ArgumentsSource(NewConstructorTestCaseArgumentsProvider.class)
     void assertNewConstructor(final String name, final String url, final String hostname, final int port, final String catalog, final String schema) {
-        H2DataSourceMetaData actual = new H2DataSourceMetaData(url);
-        assertThat(actual.getHostname(), is(hostname));
-        assertThat(actual.getPort(), is(port));
-        assertThat(actual.getCatalog(), is(catalog));
-        assertThat(actual.getSchema(), is(schema));
+        assertDataSourceMetaData(url, hostname, port, catalog, schema, new Properties());
     }
     
     @ParameterizedTest(name = "{0}")
@@ -48,16 +45,21 @@ class H2DataSourceMetaDataTest {
         assertThat(actual1.isInSameDatabaseInstance(actual2), is(isSame));
     }
     
+    @Override
+    protected H2DataSourceMetaData createDataSourceMetaData(final String url) {
+        return new H2DataSourceMetaData(url);
+    }
+    
     private static class NewConstructorTestCaseArgumentsProvider implements ArgumentsProvider {
         
         @Override
         public Stream<? extends Arguments> provideArguments(final ExtensionContext extensionContext) {
             return Stream.of(
-                    Arguments.of("mem", "jdbc:h2:mem:ds_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MySQL", "", -1, "ds_0", null),
-                    Arguments.of("symbol", "jdbc:h2:~:ds-0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MySQL", "", -1, "ds-0", null),
-                    Arguments.of("tcp", "jdbc:h2:tcp://localhost:8082/~/test1/test2;DB_CLOSE_DELAY=-1", "localhost", 8082, "test2", null),
-                    Arguments.of("ssl", "jdbc:h2:ssl:180.76.76.76/home/test", "180.76.76.76", -1, "test", null),
-                    Arguments.of("file", "jdbc:h2:file:/data/sample;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false", "", -1, "sample", null));
+                    Arguments.of("mem", "jdbc:h2:mem:foo_ds;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MySQL", "", -1, "foo_ds", null),
+                    Arguments.of("symbol", "jdbc:h2:~:foo-ds;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MySQL", "", -1, "foo-ds", null),
+                    Arguments.of("tcp", "jdbc:h2:tcp://localhost:8082/~/home/foo_ds;DB_CLOSE_DELAY=-1", "localhost", 8082, "foo_ds", null),
+                    Arguments.of("ssl", "jdbc:h2:ssl:127.0.0.1/home/foo_ds", "127.0.0.1", -1, "foo_ds", null),
+                    Arguments.of("file", "jdbc:h2:file:/data/foo_ds;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false", "", -1, "foo_ds", null));
         }
     }
     
@@ -71,9 +73,9 @@ class H2DataSourceMetaDataTest {
                     Arguments.of("memAndSymbol", "jdbc:h2:mem:ds_0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MySQL", "jdbc:h2:~:ds-1;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false;MODE=MySQL", true),
                     Arguments.of("tcp", "jdbc:h2:tcp://localhost:8082/~/test1/test2;DB_CLOSE_DELAY=-1", "jdbc:h2:tcp://localhost:8082/~/test3/test4;DB_CLOSE_DELAY=-1", true),
                     Arguments.of("tcpNotSame", "jdbc:h2:tcp://localhost:8082/~/test1/test2;DB_CLOSE_DELAY=-1", "jdbc:h2:tcp://192.168.64.76:8082/~/test3/test4;DB_CLOSE_DELAY=-1", false),
-                    Arguments.of("ssl", "jdbc:h2:ssl:180.76.76.76/home/test-one", "jdbc:h2:ssl:180.76.76.76/home/test-two", true),
-                    Arguments.of("sslNotSame", "jdbc:h2:ssl:180.76.76.76/home/test-one", "jdbc:h2:ssl:181.76.76.76/home/test-two", false),
-                    Arguments.of("file", "jdbc:h2:file:/data/sample-one;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false", "jdbc:h2:file:/data/sample-two;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false", true));
+                    Arguments.of("ssl", "jdbc:h2:ssl:127.0.0.1/home/test-one", "jdbc:h2:ssl:127.0.0.1/home/test-two", true),
+                    Arguments.of("sslNotSame", "jdbc:h2:ssl:127.0.0.1/home/test-one", "jdbc:h2:ssl:127.0.0.2/home/test-two", false),
+                    Arguments.of("file", "jdbc:h2:file:/data/ds-0;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false", "jdbc:h2:file:/data/ds-1;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=false", true));
         }
     }
 }
diff --git a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/MariaDBDataSourceMetaDataTest.java b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/MariaDBDataSourceMetaDataTest.java
index 07faae6dd31..f201099c866 100644
--- a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/MariaDBDataSourceMetaDataTest.java
+++ b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/MariaDBDataSourceMetaDataTest.java
@@ -18,40 +18,46 @@
 package org.apache.shardingsphere.infra.database.metadata.dialect;
 
 import org.apache.shardingsphere.infra.database.metadata.UnrecognizedDatabaseURLException;
+import org.apache.shardingsphere.test.util.PropertiesBuilder;
+import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtensionContext;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.ArgumentsProvider;
+import org.junit.jupiter.params.provider.ArgumentsSource;
+
+import java.util.Properties;
+import java.util.stream.Stream;
 
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
 
-class MariaDBDataSourceMetaDataTest {
+class MariaDBDataSourceMetaDataTest extends AbstractDataSourceMetaDataTest {
     
-    @Test
-    void assertNewConstructorWithSimpleJdbcUrl() {
-        MariaDBDataSourceMetaData actual = new MariaDBDataSourceMetaData("jdbc:mariadb://127.0.0.1/foo_ds");
-        assertThat(actual.getHostname(), is("127.0.0.1"));
-        assertThat(actual.getPort(), is(3306));
-        assertThat(actual.getCatalog(), is("foo_ds"));
-        assertNull(actual.getSchema());
-        assertTrue(actual.getQueryProperties().isEmpty());
-    }
-    
-    @Test
-    void assertNewConstructorWithComplexJdbcUrl() {
-        MariaDBDataSourceMetaData actual = new MariaDBDataSourceMetaData("jdbc:mariadb:replication://127.0.0.1:9999, 127.0.0.2:9999/foo_ds?serverTimezone=UTC&useSSL=false");
-        assertThat(actual.getHostname(), is("127.0.0.1"));
-        assertThat(actual.getPort(), is(9999));
-        assertThat(actual.getCatalog(), is("foo_ds"));
-        assertNull(actual.getSchema());
-        assertThat(actual.getQueryProperties().size(), is(2));
-        assertThat(actual.getQueryProperties().getProperty("serverTimezone"), is("UTC"));
-        assertThat(actual.getQueryProperties().getProperty("useSSL"), is(Boolean.FALSE.toString()));
+    @ParameterizedTest(name = "{0}")
+    @ArgumentsSource(NewConstructorTestCaseArgumentsProvider.class)
+    void assertNewConstructorWithSimpleJdbcUrl(final String name, final String url, final String hostname, final int port, final String catalog, final String schema, final Properties queryProps) {
+        assertDataSourceMetaData(url, hostname, port, catalog, schema, queryProps);
     }
     
     @Test
     void assertNewConstructorFailure() {
         assertThrows(UnrecognizedDatabaseURLException.class, () -> new MariaDBDataSourceMetaData("jdbc:mariadb:xxxxxxxx"));
     }
+    
+    @Override
+    protected MariaDBDataSourceMetaData createDataSourceMetaData(final String url) {
+        return new MariaDBDataSourceMetaData(url);
+    }
+    
+    private static class NewConstructorTestCaseArgumentsProvider implements ArgumentsProvider {
+        
+        @Override
+        public Stream<? extends Arguments> provideArguments(final ExtensionContext extensionContext) {
+            return Stream.of(
+                    Arguments.of("simple", "jdbc:mariadb://127.0.0.1/foo_ds", "127.0.0.1", 3306, "foo_ds", null, new Properties()),
+                    Arguments.of("complex", "jdbc:mariadb:replication://127.0.0.1:9999, 127.0.0.2:9999/foo_ds?serverTimezone=UTC&useSSL=false", "127.0.0.1", 9999, "foo_ds", null,
+                            PropertiesBuilder.build(new Property("serverTimezone", "UTC"), new Property("useSSL", Boolean.FALSE.toString()))));
+        }
+    }
 }
diff --git a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/MySQLDataSourceMetaDataTest.java b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/MySQLDataSourceMetaDataTest.java
index 6292bfc9f2e..c9812d9585f 100644
--- a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/MySQLDataSourceMetaDataTest.java
+++ b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/MySQLDataSourceMetaDataTest.java
@@ -18,40 +18,46 @@
 package org.apache.shardingsphere.infra.database.metadata.dialect;
 
 import org.apache.shardingsphere.infra.database.metadata.UnrecognizedDatabaseURLException;
+import org.apache.shardingsphere.test.util.PropertiesBuilder;
+import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtensionContext;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.ArgumentsProvider;
+import org.junit.jupiter.params.provider.ArgumentsSource;
+
+import java.util.Properties;
+import java.util.stream.Stream;
 
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
 
-class MySQLDataSourceMetaDataTest {
+class MySQLDataSourceMetaDataTest extends AbstractDataSourceMetaDataTest {
     
-    @Test
-    void assertNewConstructorWithSimpleJdbcUrl() {
-        MySQLDataSourceMetaData actual = new MySQLDataSourceMetaData("jdbc:mysql://127.0.0.1/foo_ds");
-        assertThat(actual.getHostname(), is("127.0.0.1"));
-        assertThat(actual.getPort(), is(3306));
-        assertThat(actual.getCatalog(), is("foo_ds"));
-        assertNull(actual.getSchema());
-        assertTrue(actual.getQueryProperties().isEmpty());
-    }
-    
-    @Test
-    void assertNewConstructorWithComplexJdbcUrl() {
-        MySQLDataSourceMetaData actual = new MySQLDataSourceMetaData("jdbc:mysql:loadbalance://127.0.0.1:9999,127.0.0.2:9999/foo_ds?serverTimezone=UTC&useSSL=false");
-        assertThat(actual.getHostname(), is("127.0.0.1"));
-        assertThat(actual.getPort(), is(9999));
-        assertThat(actual.getCatalog(), is("foo_ds"));
-        assertNull(actual.getSchema());
-        assertThat(actual.getQueryProperties().size(), is(2));
-        assertThat(actual.getQueryProperties().getProperty("serverTimezone"), is("UTC"));
-        assertThat(actual.getQueryProperties().getProperty("useSSL"), is(Boolean.FALSE.toString()));
+    @ParameterizedTest(name = "{0}")
+    @ArgumentsSource(NewConstructorTestCaseArgumentsProvider.class)
+    void assertNewConstructor(final String name, final String url, final String hostname, final int port, final String catalog, final String schema, final Properties queryProps) {
+        assertDataSourceMetaData(url, hostname, port, catalog, schema, queryProps);
     }
     
     @Test
     void assertNewConstructorFailure() {
         assertThrows(UnrecognizedDatabaseURLException.class, () -> new MySQLDataSourceMetaData("jdbc:mysql:xxxxxxxx"));
     }
+    
+    @Override
+    protected MySQLDataSourceMetaData createDataSourceMetaData(final String url) {
+        return new MySQLDataSourceMetaData(url);
+    }
+    
+    private static class NewConstructorTestCaseArgumentsProvider implements ArgumentsProvider {
+        
+        @Override
+        public Stream<? extends Arguments> provideArguments(final ExtensionContext extensionContext) {
+            return Stream.of(
+                    Arguments.of("simple", "jdbc:mysql://127.0.0.1/foo_ds", "127.0.0.1", 3306, "foo_ds", null, new Properties()),
+                    Arguments.of("complex", "jdbc:mysql:loadbalance://127.0.0.1:9999,127.0.0.2:9999/foo_ds?serverTimezone=UTC&useSSL=false", "127.0.0.1", 9999, "foo_ds", null,
+                            PropertiesBuilder.build(new Property("serverTimezone", "UTC"), new Property("useSSL", Boolean.FALSE.toString()))));
+        }
+    }
 }
diff --git a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/OpenGaussDataSourceMetaDataTest.java b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/OpenGaussDataSourceMetaDataTest.java
index c0818412a9b..90663536fc9 100644
--- a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/OpenGaussDataSourceMetaDataTest.java
+++ b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/OpenGaussDataSourceMetaDataTest.java
@@ -18,39 +18,46 @@
 package org.apache.shardingsphere.infra.database.metadata.dialect;
 
 import org.apache.shardingsphere.infra.database.metadata.UnrecognizedDatabaseURLException;
+import org.apache.shardingsphere.test.util.PropertiesBuilder;
+import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtensionContext;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.ArgumentsProvider;
+import org.junit.jupiter.params.provider.ArgumentsSource;
+
+import java.util.Properties;
+import java.util.stream.Stream;
 
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
 
-class OpenGaussDataSourceMetaDataTest {
+class OpenGaussDataSourceMetaDataTest extends AbstractDataSourceMetaDataTest {
     
-    @Test
-    void assertNewConstructorWithSimpleJdbcUrl() {
-        PostgreSQLDataSourceMetaData actual = new PostgreSQLDataSourceMetaData("jdbc:opengauss://127.0.0.1/foo_ds");
-        assertThat(actual.getHostname(), is("127.0.0.1"));
-        assertThat(actual.getPort(), is(5432));
-        assertThat(actual.getCatalog(), is("foo_ds"));
-        assertNull(actual.getSchema());
-        assertTrue(actual.getQueryProperties().isEmpty());
-    }
-    
-    @Test
-    void assertNewConstructorWithComplexJdbcUrl() {
-        PostgreSQLDataSourceMetaData actual = new PostgreSQLDataSourceMetaData("jdbc:opengauss://127.0.0.1:9999,127.0.0.2:9999,127.0.0.3:9999/foo_ds?targetServerType=master");
-        assertThat(actual.getHostname(), is("127.0.0.1"));
-        assertThat(actual.getPort(), is(9999));
-        assertThat(actual.getCatalog(), is("foo_ds"));
-        assertNull(actual.getSchema());
-        assertThat(actual.getQueryProperties().size(), is(1));
-        assertThat(actual.getQueryProperties().getProperty("targetServerType"), is("master"));
+    @ParameterizedTest(name = "{0}")
+    @ArgumentsSource(NewConstructorTestCaseArgumentsProvider.class)
+    void assertNewConstructor(final String name, final String url, final String hostname, final int port, final String catalog, final String schema, final Properties queryProps) {
+        assertDataSourceMetaData(url, hostname, port, catalog, schema, queryProps);
     }
     
     @Test
     void assertNewConstructorFailure() {
         assertThrows(UnrecognizedDatabaseURLException.class, () -> new PostgreSQLDataSourceMetaData("jdbc:opengauss:xxxxxxxx"));
     }
+    
+    @Override
+    protected OpenGaussDataSourceMetaData createDataSourceMetaData(final String url) {
+        return new OpenGaussDataSourceMetaData(url);
+    }
+    
+    private static class NewConstructorTestCaseArgumentsProvider implements ArgumentsProvider {
+        
+        @Override
+        public Stream<? extends Arguments> provideArguments(final ExtensionContext extensionContext) {
+            return Stream.of(
+                    Arguments.of("simple", "jdbc:opengauss://127.0.0.1/foo_ds", "127.0.0.1", 5431, "foo_ds", null, new Properties()),
+                    Arguments.of("complex", "jdbc:opengauss://127.0.0.1:9999,127.0.0.2:9999,127.0.0.3:9999/foo_ds?targetServerType=master", "127.0.0.1", 9999, "foo_ds", null,
+                            PropertiesBuilder.build(new Property("targetServerType", "master"))));
+        }
+    }
 }
diff --git a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/OracleDataSourceMetaDataTest.java b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/OracleDataSourceMetaDataTest.java
index 09dcd3d70cb..bf61bb48111 100644
--- a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/OracleDataSourceMetaDataTest.java
+++ b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/OracleDataSourceMetaDataTest.java
@@ -19,95 +19,23 @@ package org.apache.shardingsphere.infra.database.metadata.dialect;
 
 import org.apache.shardingsphere.infra.database.metadata.UnrecognizedDatabaseURLException;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtensionContext;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.ArgumentsProvider;
+import org.junit.jupiter.params.provider.ArgumentsSource;
+
+import java.util.Properties;
+import java.util.stream.Stream;
 
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
-class OracleDataSourceMetaDataTest {
-    
-    @Test
-    void assertNewConstructorWithPort() {
-        OracleDataSourceMetaData actual = new OracleDataSourceMetaData("jdbc:oracle:thin:@//127.0.0.1:9999/ds_0", "test");
-        assertThat(actual.getHostname(), is("127.0.0.1"));
-        assertThat(actual.getPort(), is(9999));
-        assertThat(actual.getCatalog(), is("ds_0"));
-        assertThat(actual.getSchema(), is("test"));
-    }
+class OracleDataSourceMetaDataTest extends AbstractDataSourceMetaDataTest {
     
-    @Test
-    void assertNewConstructorWithDomainPort() {
-        OracleDataSourceMetaData actual = new OracleDataSourceMetaData("jdbc:oracle:oci:@axxx.frex.cc:9999/ds_0", "test");
-        assertThat(actual.getHostname(), is("axxx.frex.cc"));
-        assertThat(actual.getPort(), is(9999));
-        assertThat(actual.getCatalog(), is("ds_0"));
-        assertThat(actual.getSchema(), is("test"));
-    }
-    
-    @Test
-    void assertNewConstructorWithHalfenDomainPort() {
-        OracleDataSourceMetaData actual = new OracleDataSourceMetaData("jdbc:oracle:oci:@ax-xx.frex.cc:9999/ds_0", "test");
-        assertThat(actual.getHostname(), is("ax-xx.frex.cc"));
-        assertThat(actual.getPort(), is(9999));
-        assertThat(actual.getCatalog(), is("ds_0"));
-        assertThat(actual.getSchema(), is("test"));
-    }
-    
-    @Test
-    void assertNewConstructorWithIpDefaultPort() {
-        OracleDataSourceMetaData actual = new OracleDataSourceMetaData("jdbc:oracle:oci:@127.0.0.1/ds_0", "test");
-        assertThat(actual.getHostname(), is("127.0.0.1"));
-        assertThat(actual.getPort(), is(1521));
-        assertThat(actual.getSchema(), is("test"));
-    }
-    
-    @Test
-    void assertNewConstructorWithDomainDefaultPort() {
-        OracleDataSourceMetaData actual = new OracleDataSourceMetaData("jdbc:oracle:oci:@axxx.frex.cc/ds_0", "test");
-        assertThat(actual.getHostname(), is("axxx.frex.cc"));
-        assertThat(actual.getPort(), is(1521));
-        assertThat(actual.getSchema(), is("test"));
-    }
-    
-    @Test
-    void assertNewConstructorWithHalfenDomainDefaultPort() {
-        OracleDataSourceMetaData actual = new OracleDataSourceMetaData("jdbc:oracle:oci:@ax-xx.frex.cc/ds_0", "test");
-        assertThat(actual.getHostname(), is("ax-xx.frex.cc"));
-        assertThat(actual.getPort(), is(1521));
-        assertThat(actual.getSchema(), is("test"));
-    }
-    
-    @Test
-    void assertNewConstructorWithConnectDescriptorIpUrl() {
-        OracleDataSourceMetaData actual = new OracleDataSourceMetaData("jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.0.12)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)"
-                + "(HOST = 172.16.0.22)(PORT = 1521))(LOAD_BALANCE = yes)(FAILOVER = ON)(CONNECT_DATA =(SERVER = DEDICATED)"
-                + "(SERVICE_NAME = rac)(FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 20)(DELAY = 15))))", "test");
-        assertThat(actual.getHostname(), is("172.16.0.12"));
-        assertThat(actual.getPort(), is(1521));
-        assertThat(actual.getCatalog(), is("rac"));
-        assertThat(actual.getSchema(), is("test"));
-    }
-    
-    @Test
-    void assertNewConstructorWithConnectDescriptorDomainUrl() {
-        OracleDataSourceMetaData actual = new OracleDataSourceMetaData("jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = axxx.frex.cc)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)"
-                + "(HOST = axxx.frex.cc)(PORT = 1521))(LOAD_BALANCE = yes)(FAILOVER = ON)(CONNECT_DATA =(SERVER = DEDICATED)"
-                + "(SERVICE_NAME = rac)(FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 20)(DELAY = 15))))", "test");
-        assertThat(actual.getHostname(), is("axxx.frex.cc"));
-        assertThat(actual.getPort(), is(1521));
-        assertThat(actual.getCatalog(), is("rac"));
-        assertThat(actual.getSchema(), is("test"));
-    }
-    
-    @Test
-    void assertNewConstructorWithConnectDescriptorHalfenDomainUrl() {
-        OracleDataSourceMetaData actual = new OracleDataSourceMetaData("jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = ax-xx.frex.cc)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)"
-                + "(HOST = ax-xx.frex.cc)(PORT = 1521))(LOAD_BALANCE = yes)(FAILOVER = ON)(CONNECT_DATA =(SERVER = DEDICATED)"
-                + "(SERVICE_NAME = rac)(FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 20)(DELAY = 15))))", "test");
-        assertThat(actual.getHostname(), is("ax-xx.frex.cc"));
-        assertThat(actual.getPort(), is(1521));
-        assertThat(actual.getCatalog(), is("rac"));
-        assertThat(actual.getSchema(), is("test"));
+    @ParameterizedTest(name = "{0}")
+    @ArgumentsSource(NewConstructorTestCaseArgumentsProvider.class)
+    void assertNewConstructor(final String name, final String url, final String hostname, final int port, final String catalog, final String schema) {
+        assertDataSourceMetaData(url, hostname, port, catalog, schema, new Properties());
     }
     
     @Test
@@ -115,14 +43,32 @@ class OracleDataSourceMetaDataTest {
         assertThrows(UnrecognizedDatabaseURLException.class, () -> new OracleDataSourceMetaData("jdbc:oracle:xxxxxxxx", "test"));
     }
     
-    @Test
-    void assertNewConstructorWithConnectDescriptorUrlWithExtraSpaces() {
-        OracleDataSourceMetaData actual = new OracleDataSourceMetaData("jdbc:oracle:thin:@(DESCRIPTION = description"
-                + "(HOST   =   172.16.0.22)(PORT   =  1521))(LOAD_BALANCE = yes)(FAILOVER = ON)(CONNECT_DATA =(SERVER = DEDICATED)"
-                + "(SERVICE_NAME   =   rac)(FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 20)(DELAY = 15))))", "test");
-        assertThat(actual.getHostname(), is("172.16.0.22"));
-        assertThat(actual.getPort(), is(1521));
-        assertThat(actual.getCatalog(), is("rac"));
-        assertThat(actual.getSchema(), is("test"));
+    @Override
+    protected OracleDataSourceMetaData createDataSourceMetaData(final String url) {
+        return new OracleDataSourceMetaData(url, "test");
+    }
+    
+    private static class NewConstructorTestCaseArgumentsProvider implements ArgumentsProvider {
+        
+        @Override
+        public Stream<? extends Arguments> provideArguments(final ExtensionContext extensionContext) {
+            return Stream.of(
+                    Arguments.of("port", "jdbc:oracle:thin:@//127.0.0.1:9999/foo_ds", "127.0.0.1", 9999, "foo_ds", "test"),
+                    Arguments.of("domainPort", "jdbc:oracle:oci:@ax-xx.frex.cc:9999/foo_ds", "ax-xx.frex.cc", 9999, "foo_ds", "test"),
+                    Arguments.of("ipDefaultPort", "jdbc:oracle:oci:@127.0.0.1/foo_ds", "127.0.0.1", 1521, "foo_ds", "test"),
+                    Arguments.of("domainDefaultPort", "jdbc:oracle:oci:@axxx.frex.cc/foo_ds", "axxx.frex.cc", 1521, "foo_ds", "test"),
+                    Arguments.of("connectDescriptorIpUrl", "jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)"
+                            + "(HOST = 127.0.0.1)(PORT = 1521))(LOAD_BALANCE = yes)(FAILOVER = ON)(CONNECT_DATA =(SERVER = DEDICATED)"
+                            + "(SERVICE_NAME = rac)(FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 20)(DELAY = 15))))", "127.0.0.1", 1521, "rac", "test"),
+                    Arguments.of("connectDescriptorDomainUrl", "jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = axxx.frex.cc)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)"
+                            + "(HOST = axxx.frex.cc)(PORT = 1521))(LOAD_BALANCE = yes)(FAILOVER = ON)(CONNECT_DATA =(SERVER = DEDICATED)"
+                            + "(SERVICE_NAME = rac)(FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 20)(DELAY = 15))))", "axxx.frex.cc", 1521, "rac", "test"),
+                    Arguments.of("connectDescriptorHalfenDomainUrl", "jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = ax-xx.frex.cc)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)"
+                            + "(HOST = ax-xx.frex.cc)(PORT = 1521))(LOAD_BALANCE = yes)(FAILOVER = ON)(CONNECT_DATA =(SERVER = DEDICATED)"
+                            + "(SERVICE_NAME = rac)(FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 20)(DELAY = 15))))", "ax-xx.frex.cc", 1521, "rac", "test"),
+                    Arguments.of("connectDescriptorUrlWithExtraSpaces", "jdbc:oracle:thin:@(DESCRIPTION = description"
+                            + "(HOST   =   127.0.0.1)(PORT   =  1521))(LOAD_BALANCE = yes)(FAILOVER = ON)(CONNECT_DATA =(SERVER = DEDICATED)"
+                            + "(SERVICE_NAME   =   rac)(FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 20)(DELAY = 15))))", "127.0.0.1", 1521, "rac", "test"));
+        }
     }
 }
diff --git a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/PostgreSQLDataSourceMetaDataTest.java b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/PostgreSQLDataSourceMetaDataTest.java
index 3ab73f45ddf..0dbd1d69274 100644
--- a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/PostgreSQLDataSourceMetaDataTest.java
+++ b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/PostgreSQLDataSourceMetaDataTest.java
@@ -18,39 +18,46 @@
 package org.apache.shardingsphere.infra.database.metadata.dialect;
 
 import org.apache.shardingsphere.infra.database.metadata.UnrecognizedDatabaseURLException;
+import org.apache.shardingsphere.test.util.PropertiesBuilder;
+import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtensionContext;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.ArgumentsProvider;
+import org.junit.jupiter.params.provider.ArgumentsSource;
+
+import java.util.Properties;
+import java.util.stream.Stream;
 
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.junit.jupiter.api.Assertions.assertTrue;
 
-class PostgreSQLDataSourceMetaDataTest {
+class PostgreSQLDataSourceMetaDataTest extends AbstractDataSourceMetaDataTest {
     
-    @Test
-    void assertNewConstructorWithSimpleJdbcUrl() {
-        PostgreSQLDataSourceMetaData actual = new PostgreSQLDataSourceMetaData("jdbc:postgresql://127.0.0.1/foo_ds");
-        assertThat(actual.getHostname(), is("127.0.0.1"));
-        assertThat(actual.getPort(), is(5432));
-        assertThat(actual.getCatalog(), is("foo_ds"));
-        assertNull(actual.getSchema());
-        assertTrue(actual.getQueryProperties().isEmpty());
-    }
-    
-    @Test
-    void assertNewConstructorWithComplexJdbcUrl() {
-        PostgreSQLDataSourceMetaData actual = new PostgreSQLDataSourceMetaData("jdbc:postgresql://127.0.0.1:9999,127.0.0.2:9999,127.0.0.3:9999/foo_ds?targetServerType=master");
-        assertThat(actual.getHostname(), is("127.0.0.1"));
-        assertThat(actual.getPort(), is(9999));
-        assertThat(actual.getCatalog(), is("foo_ds"));
-        assertNull(actual.getSchema());
-        assertThat(actual.getQueryProperties().size(), is(1));
-        assertThat(actual.getQueryProperties().getProperty("targetServerType"), is("master"));
+    @ParameterizedTest(name = "{0}")
+    @ArgumentsSource(NewConstructorTestCaseArgumentsProvider.class)
+    void assertNewConstructor(final String name, final String url, final String hostname, final int port, final String catalog, final String schema, final Properties queryProps) {
+        assertDataSourceMetaData(url, hostname, port, catalog, schema, queryProps);
     }
     
     @Test
     void assertNewConstructorFailure() {
         assertThrows(UnrecognizedDatabaseURLException.class, () -> new PostgreSQLDataSourceMetaData("jdbc:postgresql:xxxxxxxx"));
     }
+    
+    @Override
+    protected PostgreSQLDataSourceMetaData createDataSourceMetaData(final String url) {
+        return new PostgreSQLDataSourceMetaData(url);
+    }
+    
+    private static class NewConstructorTestCaseArgumentsProvider implements ArgumentsProvider {
+        
+        @Override
+        public Stream<? extends Arguments> provideArguments(final ExtensionContext extensionContext) {
+            return Stream.of(
+                    Arguments.of("simple", "jdbc:postgresql://127.0.0.1/foo_ds", "127.0.0.1", 5432, "foo_ds", null, new Properties()),
+                    Arguments.of("complex", "jdbc:postgresql://127.0.0.1:9999,127.0.0.2:9999,127.0.0.3:9999/foo_ds?targetServerType=master", "127.0.0.1", 9999, "foo_ds", null,
+                            PropertiesBuilder.build(new Property("targetServerType", "master"))));
+        }
+    }
 }
diff --git a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQL92DataSourceMetaDataTest.java b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQL92DataSourceMetaDataTest.java
index aef62762fbe..e3a13a70f6b 100644
--- a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQL92DataSourceMetaDataTest.java
+++ b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQL92DataSourceMetaDataTest.java
@@ -19,25 +19,40 @@ package org.apache.shardingsphere.infra.database.metadata.dialect;
 
 import org.apache.shardingsphere.infra.database.metadata.UnrecognizedDatabaseURLException;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtensionContext;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.ArgumentsProvider;
+import org.junit.jupiter.params.provider.ArgumentsSource;
+
+import java.util.Properties;
+import java.util.stream.Stream;
 
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
-class SQL92DataSourceMetaDataTest {
+class SQL92DataSourceMetaDataTest extends AbstractDataSourceMetaDataTest {
     
-    @Test
-    void assertNewConstructorSuccess() {
-        SQL92DataSourceMetaData actual = new SQL92DataSourceMetaData("jdbc:sql92_db:ds_0");
-        assertThat(actual.getHostname(), is(""));
-        assertThat(actual.getPort(), is(-1));
-        assertThat(actual.getCatalog(), is(""));
-        assertNull(actual.getSchema());
+    @ParameterizedTest(name = "{0}")
+    @ArgumentsSource(NewConstructorTestCaseArgumentsProvider.class)
+    void assertNewConstructor(final String name, final String url, final String hostname, final int port, final String catalog, final String schema) {
+        assertDataSourceMetaData(url, hostname, port, catalog, schema, new Properties());
     }
     
     @Test
     void assertNewConstructorFailure() {
         assertThrows(UnrecognizedDatabaseURLException.class, () -> new SQL92DataSourceMetaData("xxx:xxxx:xxxxxxxx"));
     }
+    
+    @Override
+    protected SQL92DataSourceMetaData createDataSourceMetaData(final String url) {
+        return new SQL92DataSourceMetaData(url);
+    }
+    
+    private static class NewConstructorTestCaseArgumentsProvider implements ArgumentsProvider {
+        
+        @Override
+        public Stream<? extends Arguments> provideArguments(final ExtensionContext extensionContext) {
+            return Stream.of(Arguments.of("simple", "jdbc:sql92_db:foo_ds", "", -1, "", null));
+        }
+    }
 }
diff --git a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQLServerDataSourceMetaDataTest.java b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQLServerDataSourceMetaDataTest.java
index 75b1a1787ae..dac35604d3c 100644
--- a/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQLServerDataSourceMetaDataTest.java
+++ b/infra/common/src/test/java/org/apache/shardingsphere/infra/database/metadata/dialect/SQLServerDataSourceMetaDataTest.java
@@ -17,69 +17,49 @@
 
 package org.apache.shardingsphere.infra.database.metadata.dialect;
 
+import org.apache.shardingsphere.infra.database.metadata.DataSourceMetaData;
 import org.apache.shardingsphere.infra.database.metadata.UnrecognizedDatabaseURLException;
 import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtensionContext;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.ArgumentsProvider;
+import org.junit.jupiter.params.provider.ArgumentsSource;
+
+import java.util.Properties;
+import java.util.stream.Stream;
 
-import static org.hamcrest.CoreMatchers.is;
-import static org.junit.jupiter.api.Assertions.assertNull;
-import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
-class SQLServerDataSourceMetaDataTest {
+class SQLServerDataSourceMetaDataTest extends AbstractDataSourceMetaDataTest {
     
-    @Test
-    void assertNewConstructorWithPortAndMicrosoft() {
-        SQLServerDataSourceMetaData actual = new SQLServerDataSourceMetaData("jdbc:microsoft:sqlserver://127.0.0.1:9999;DatabaseName=ds_0");
-        assertThat(actual.getHostname(), is("127.0.0.1"));
-        assertThat(actual.getPort(), is(9999));
-        assertThat(actual.getCatalog(), is("ds_0"));
-        assertNull(actual.getSchema());
-    }
-    
-    @Test
-    void assertNewConstructorWithPortAndWithoutMicrosoft() {
-        SQLServerDataSourceMetaData actual = new SQLServerDataSourceMetaData("jdbc:sqlserver://127.0.0.1:9999;DatabaseName=ds_0");
-        assertThat(actual.getHostname(), is("127.0.0.1"));
-        assertThat(actual.getPort(), is(9999));
-        assertNull(actual.getSchema());
+    @ParameterizedTest(name = "{0}")
+    @ArgumentsSource(NewConstructorTestCaseArgumentsProvider.class)
+    void assertNewConstructor(final String name, final String url, final String hostname, final int port, final String catalog, final String schema) {
+        assertDataSourceMetaData(url, hostname, port, catalog, schema, new Properties());
     }
     
     @Test
-    void assertNewConstructorWithDefaultPortAndMicrosoft() {
-        SQLServerDataSourceMetaData actual = new SQLServerDataSourceMetaData("jdbc:microsoft:sqlserver://127.0.0.1;DatabaseName=ds_0");
-        assertThat(actual.getHostname(), is("127.0.0.1"));
-        assertThat(actual.getPort(), is(1433));
-        assertNull(actual.getSchema());
-    }
-    
-    @Test
-    void assertNewConstructorWithDefaultPortWithoutMicrosoft() {
-        SQLServerDataSourceMetaData actual = new SQLServerDataSourceMetaData("jdbc:sqlserver://127.0.0.1;DatabaseName=ds_0");
-        assertThat(actual.getHostname(), is("127.0.0.1"));
-        assertThat(actual.getPort(), is(1433));
-        assertNull(actual.getSchema());
-    }
-    
-    @Test
-    void assertNewConstructorWithDataBaseNameContainDotAndMicrosoft() {
-        SQLServerDataSourceMetaData actual = new SQLServerDataSourceMetaData("jdbc:microsoft:sqlserver://127.0.0.1:9999;DatabaseName=ds_0.0.0");
-        assertThat(actual.getHostname(), is("127.0.0.1"));
-        assertThat(actual.getPort(), is(9999));
-        assertThat(actual.getCatalog(), is("ds_0.0.0"));
-        assertNull(actual.getSchema());
+    void assertNewConstructorFailure() {
+        assertThrows(UnrecognizedDatabaseURLException.class, () -> new SQLServerDataSourceMetaData("jdbc:sqlserver:xxxxxxxx"));
     }
     
-    @Test
-    void assertNewConstructorWithDataBaseNameContainDotAndWithoutMicrosoft() {
-        SQLServerDataSourceMetaData actual = new SQLServerDataSourceMetaData("jdbc:sqlserver://127.0.0.1:9999;DatabaseName=ds_0.0.0");
-        assertThat(actual.getHostname(), is("127.0.0.1"));
-        assertThat(actual.getPort(), is(9999));
-        assertThat(actual.getCatalog(), is("ds_0.0.0"));
-        assertNull(actual.getSchema());
+    @Override
+    protected DataSourceMetaData createDataSourceMetaData(final String url) {
+        return new SQLServerDataSourceMetaData(url);
     }
     
-    @Test
-    void assertNewConstructorFailure() {
-        assertThrows(UnrecognizedDatabaseURLException.class, () -> new SQLServerDataSourceMetaData("jdbc:sqlserver:xxxxxxxx"));
+    private static class NewConstructorTestCaseArgumentsProvider implements ArgumentsProvider {
+        
+        @Override
+        public Stream<? extends Arguments> provideArguments(final ExtensionContext extensionContext) {
+            return Stream.of(
+                    Arguments.of("portAndMicrosoft", "jdbc:microsoft:sqlserver://127.0.0.1:9999;DatabaseName=foo_ds", "127.0.0.1", 9999, "foo_ds", null),
+                    Arguments.of("portAndWithoutMicrosoft", "jdbc:sqlserver://127.0.0.1:9999;DatabaseName=foo_ds", "127.0.0.1", 9999, "foo_ds", null),
+                    Arguments.of("defaultPortAndMicrosoft", "jdbc:microsoft:sqlserver://127.0.0.1;DatabaseName=foo_ds", "127.0.0.1", 1433, "foo_ds", null),
+                    Arguments.of("defaultPortWithoutMicrosoft", "jdbc:sqlserver://127.0.0.1;DatabaseName=foo_ds", "127.0.0.1", 1433, "foo_ds", null),
+                    Arguments.of("databaseNameContainDotAndMicrosoft", "jdbc:microsoft:sqlserver://127.0.0.1:9999;DatabaseName=foo_0.0.0", "127.0.0.1", 9999, "foo_0.0.0", null),
+                    Arguments.of("databaseNameContainDotAndWithoutMicrosoft", "jdbc:sqlserver://127.0.0.1:9999;DatabaseName=foo_0.0.0", "127.0.0.1", 9999, "foo_0.0.0", null));
+        }
     }
 }
diff --git a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCalculateAlgorithmChooserTest.java b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCalculateAlgorithmChooserTest.java
index 897445c8b43..504d533e61b 100644
--- a/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCalculateAlgorithmChooserTest.java
+++ b/kernel/data-pipeline/core/src/test/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/DataConsistencyCalculateAlgorithmChooserTest.java
@@ -17,41 +17,37 @@
 
 package org.apache.shardingsphere.data.pipeline.core.check.consistency;
 
-import org.apache.shardingsphere.data.pipeline.spi.check.consistency.DataConsistencyCalculateAlgorithm;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
-import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtensionContext;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.ArgumentsProvider;
+import org.junit.jupiter.params.provider.ArgumentsSource;
+
+import java.util.stream.Stream;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
 
 class DataConsistencyCalculateAlgorithmChooserTest {
     
-    @Test
-    void assertChooseOnDifferentDatabaseTypes() {
-        DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "Oracle");
-        DatabaseType peerDatabaseType = TypedSPILoader.getService(DatabaseType.class, "PostgreSQL");
-        DataConsistencyCalculateAlgorithm actual = DataConsistencyCalculateAlgorithmChooser.choose(databaseType, peerDatabaseType);
-        assertNotNull(actual);
-        assertThat(actual.getType(), is("DATA_MATCH"));
-    }
-    
-    @Test
-    void assertChooseOnMySQL() {
-        DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "MySQL");
-        DatabaseType peerDatabaseType = TypedSPILoader.getService(DatabaseType.class, "MySQL");
-        DataConsistencyCalculateAlgorithm actual = DataConsistencyCalculateAlgorithmChooser.choose(databaseType, peerDatabaseType);
-        assertNotNull(actual);
-        assertThat(actual.getType(), is("CRC32_MATCH"));
+    @ParameterizedTest(name = "{0}")
+    @ArgumentsSource(TestCaseArgumentsProvider.class)
+    void assertChooseOnDifferentDatabaseTypes(final String name, final String databaseTypeName, final String peerDatabaseTypeName, final String expectedDataConsistencyType) {
+        DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, databaseTypeName);
+        DatabaseType peerDatabaseType = TypedSPILoader.getService(DatabaseType.class, peerDatabaseTypeName);
+        assertThat(DataConsistencyCalculateAlgorithmChooser.choose(databaseType, peerDatabaseType).getType(), is(expectedDataConsistencyType));
     }
     
-    @Test
-    void assertChooseOnPostgreSQL() {
-        DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "PostgreSQL");
-        DatabaseType peerDatabaseType = TypedSPILoader.getService(DatabaseType.class, "PostgreSQL");
-        DataConsistencyCalculateAlgorithm actual = DataConsistencyCalculateAlgorithmChooser.choose(databaseType, peerDatabaseType);
-        assertNotNull(actual);
-        assertThat(actual.getType(), is("DATA_MATCH"));
+    private static class TestCaseArgumentsProvider implements ArgumentsProvider {
+        
+        @Override
+        public Stream<? extends Arguments> provideArguments(final ExtensionContext extensionContext) {
+            return Stream.of(
+                    Arguments.of("chooseOnDifferentDatabaseTypes", "Oracle", "PostgreSQL", "DATA_MATCH"),
+                    Arguments.of("chooseOnMySQL", "MySQL", "MySQL", "CRC32_MATCH"),
+                    Arguments.of("chooseOnPostgreSQL", "PostgreSQL", "PostgreSQL", "DATA_MATCH"));
+        }
     }
 }
diff --git a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/metadata/config/mask/MaskNodeConverter.java b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/metadata/config/mask/MaskNodeConverter.java
index 360d19f0d12..a2f35adbde1 100644
--- a/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/metadata/config/mask/MaskNodeConverter.java
+++ b/kernel/metadata/core/src/main/java/org/apache/shardingsphere/metadata/persist/node/metadata/config/mask/MaskNodeConverter.java
@@ -30,7 +30,7 @@ public final class MaskNodeConverter {
     private static final String TABLES = "tables";
     
     private static final String MASK_ALGORITHMS = "mask_algorithms";
-  
+    
     /**
      * Get table name path.
      *