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

terrymanu 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 96d71df59a1 Refactor MCP test database type JDBC URL fixtures (#39040)
96d71df59a1 is described below

commit 96d71df59a1c0a31601778a384290f129acc57b2
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Jul 7 22:38:39 2026 +0800

    Refactor MCP test database type JDBC URL fixtures (#39040)
---
 .../fixture/CoreDatabaseTypeFactoryMocker.java     | 50 ++++++++--------------
 .../mcp/core/resource/ResourceTestDataFactory.java | 15 +------
 .../MCPJdbcTransactionStatementExecutorTest.java   |  2 +-
 .../MCPSQLExecutionFacadeConcurrencyTest.java      |  2 +-
 .../workflow/WorkflowProxyQueryServiceTest.java    | 12 +-----
 .../MCPDatabaseCapabilityProviderTest.java         | 29 +------------
 .../jdbc/AbstractMCPJdbcMetadataLoaderTest.java    | 13 +-----
 .../jdbc/MCPJdbcDatabaseProfileLoaderTest.java     |  2 +-
 .../jdbc/MCPJdbcMetadataLoaderSequenceTest.java    |  3 +-
 .../metadata/query/DatabaseTestDataFactory.java    | 16 +------
 .../fixture/SupportDatabaseTypeFactoryMocker.java  | 50 ++++++++--------------
 11 files changed, 47 insertions(+), 147 deletions(-)

diff --git 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/fixture/CoreDatabaseTypeFactoryMocker.java
 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/fixture/CoreDatabaseTypeFactoryMocker.java
index 786f9827ed6..cb6cbd6d7e0 100644
--- 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/fixture/CoreDatabaseTypeFactoryMocker.java
+++ 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/fixture/CoreDatabaseTypeFactoryMocker.java
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.mcp.support.database.metadata.jdbc.RuntimeDatab
 import org.mockito.MockedStatic;
 
 import java.sql.DatabaseMetaData;
-import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
 
@@ -43,6 +42,18 @@ import static org.mockito.Mockito.when;
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 public final class CoreDatabaseTypeFactoryMocker {
     
+    private static final String JDBC_URL_PREFIX = "jdbc:mcp-fixture:";
+    
+    /**
+     * Create MCP fixture JDBC URL.
+     *
+     * @param databaseType database type
+     * @return MCP fixture JDBC URL
+     */
+    public static String createJdbcUrl(final String databaseType) {
+        return JDBC_URL_PREFIX + databaseType + ":test";
+    }
+    
     /**
      * Mock database type factory by JDBC connection metadata.
      *
@@ -73,38 +84,13 @@ public final class CoreDatabaseTypeFactoryMocker {
     }
     
     private static String resolveTypeByURL(final String url) {
-        String actualURL = Objects.toString(url, 
"").toLowerCase(Locale.ENGLISH);
-        if (actualURL.startsWith("jdbc:mysql:")) {
-            return "MySQL";
-        }
-        if (actualURL.startsWith("jdbc:postgresql:")) {
-            return "PostgreSQL";
-        }
-        if (actualURL.startsWith("jdbc:opengauss:")) {
-            return "openGauss";
-        }
-        if (actualURL.startsWith("jdbc:sqlserver:")) {
-            return "SQLServer";
-        }
-        if (actualURL.startsWith("jdbc:mariadb:")) {
-            return "MariaDB";
-        }
-        if (actualURL.startsWith("jdbc:oracle:")) {
-            return "Oracle";
-        }
-        if (actualURL.startsWith("jdbc:clickhouse:")) {
-            return "ClickHouse";
-        }
-        if (actualURL.startsWith("jdbc:hive2:") || 
actualURL.startsWith("jdbc:hive:")) {
-            return "Hive";
-        }
-        if (actualURL.startsWith("jdbc:presto:")) {
-            return "Presto";
-        }
-        if (actualURL.startsWith("jdbc:firebirdsql:")) {
-            return "Firebird";
+        String actualURL = Objects.toString(url, "");
+        if (!actualURL.startsWith(JDBC_URL_PREFIX)) {
+            return "";
         }
-        return "";
+        String databaseType = actualURL.substring(JDBC_URL_PREFIX.length());
+        int delimiterIndex = databaseType.indexOf(':');
+        return -1 == delimiterIndex ? databaseType : databaseType.substring(0, 
delimiterIndex);
     }
     
     private static DatabaseType mockDatabaseType(final String databaseType) {
diff --git 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/ResourceTestDataFactory.java
 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/ResourceTestDataFactory.java
index 1fbd70a9924..3fe2ceb7f5b 100644
--- 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/ResourceTestDataFactory.java
+++ 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/resource/ResourceTestDataFactory.java
@@ -137,7 +137,7 @@ public final class ResourceTestDataFactory {
         when(result.getMetaData()).thenReturn(databaseMetaData);
         when(result.createStatement()).thenReturn(statement);
         
when(databaseMetaData.getDatabaseProductVersion()).thenReturn(databaseMetadata.getDatabaseVersion());
-        
when(databaseMetaData.getURL()).thenReturn(getJdbcUrl(databaseMetadata));
+        
when(databaseMetaData.getURL()).thenReturn(CoreDatabaseTypeFactoryMocker.createJdbcUrl(databaseMetadata.getDatabaseType()));
         when(databaseMetaData.getTables(nullable(String.class), 
nullable(String.class), eq("%"), any(String[].class))).thenAnswer(invocation -> 
{
             String[] tableTypes = invocation.getArgument(3, String[].class);
             return createResultSet("TABLE".equals(tableTypes[0]) ? 
createTableRows(databaseMetadata) : createViewRows(databaseMetadata));
@@ -151,19 +151,6 @@ public final class ResourceTestDataFactory {
         return result;
     }
     
-    private static String getJdbcUrl(final MCPDatabaseMetadata 
databaseMetadata) {
-        switch (databaseMetadata.getDatabaseType()) {
-            case "MySQL":
-                return String.format("jdbc:mysql://metadata-query/%s", 
databaseMetadata.getDatabase());
-            case "PostgreSQL":
-                return String.format("jdbc:postgresql://metadata-query/%s", 
databaseMetadata.getDatabase());
-            case "Hive":
-                return String.format("jdbc:hive2://metadata-query/%s", 
databaseMetadata.getDatabase());
-            default:
-                throw new 
IllegalArgumentException(databaseMetadata.getDatabaseType());
-        }
-    }
-    
     private static List<Map<String, String>> createTableRows(final 
MCPDatabaseMetadata databaseMetadata) {
         List<Map<String, String>> result = new LinkedList<>();
         for (MCPSchemaMetadata each : databaseMetadata.getSchemas()) {
diff --git 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/session/MCPJdbcTransactionStatementExecutorTest.java
 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/session/MCPJdbcTransactionStatementExecutorTest.java
index 389ff3bb662..ed8a58c2842 100644
--- 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/session/MCPJdbcTransactionStatementExecutorTest.java
+++ 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/session/MCPJdbcTransactionStatementExecutorTest.java
@@ -153,7 +153,7 @@ class MCPJdbcTransactionStatementExecutorTest {
             when(result.openConnection(databaseName)).thenReturn(connection);
             when(connection.getMetaData()).thenReturn(databaseMetaData);
             when(databaseMetaData.getDatabaseProductVersion()).thenReturn("");
-            
when(databaseMetaData.getURL()).thenReturn(String.format("jdbc:%s://transaction-executor/test",
 databaseType.toLowerCase(java.util.Locale.ENGLISH)));
+            
when(databaseMetaData.getURL()).thenReturn(CoreDatabaseTypeFactoryMocker.createJdbcUrl(databaseType));
             mockEmptyScalarQueries(connection);
         } catch (final SQLException ex) {
             throw new IllegalStateException(ex);
diff --git 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/execute/MCPSQLExecutionFacadeConcurrencyTest.java
 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/execute/MCPSQLExecutionFacadeConcurrencyTest.java
index e153acc1d04..12a6e4ce2c0 100644
--- 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/execute/MCPSQLExecutionFacadeConcurrencyTest.java
+++ 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/tool/handler/execute/MCPSQLExecutionFacadeConcurrencyTest.java
@@ -184,7 +184,7 @@ class MCPSQLExecutionFacadeConcurrencyTest {
             when(result.openConnection("logic_db")).thenReturn(connection);
             when(connection.getMetaData()).thenReturn(databaseMetaData);
             when(databaseMetaData.getDatabaseProductVersion()).thenReturn("");
-            
when(databaseMetaData.getURL()).thenReturn("jdbc:mysql://localhost:3306/facade_concurrency");
+            
when(databaseMetaData.getURL()).thenReturn(CoreDatabaseTypeFactoryMocker.createJdbcUrl("MySQL"));
             mockEmptyScalarQueries(connection);
         } catch (final SQLException ex) {
             throw new IllegalStateException(ex);
diff --git 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/workflow/WorkflowProxyQueryServiceTest.java
 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/workflow/WorkflowProxyQueryServiceTest.java
index 2651308e2f6..6febca0d3b6 100644
--- 
a/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/workflow/WorkflowProxyQueryServiceTest.java
+++ 
b/mcp/core/src/test/java/org/apache/shardingsphere/mcp/core/workflow/WorkflowProxyQueryServiceTest.java
@@ -244,7 +244,7 @@ class WorkflowProxyQueryServiceTest {
             when(result.openConnection("logic_db")).thenReturn(connection);
             when(connection.getMetaData()).thenReturn(databaseMetaData);
             when(databaseMetaData.getDatabaseProductVersion()).thenReturn("");
-            
when(databaseMetaData.getURL()).thenReturn(getJdbcUrl(databaseType));
+            
when(databaseMetaData.getURL()).thenReturn(CoreDatabaseTypeFactoryMocker.createJdbcUrl(databaseType));
             mockEmptyScalarQueries(connection);
         } catch (final SQLException ex) {
             throw new IllegalStateException(ex);
@@ -258,14 +258,4 @@ class WorkflowProxyQueryServiceTest {
         when(connection.createStatement()).thenReturn(statement);
         when(statement.executeQuery(anyString())).thenReturn(resultSet);
     }
-    
-    private String getJdbcUrl(final String databaseType) {
-        if ("PostgreSQL".equals(databaseType)) {
-            return "jdbc:postgresql://workflow-proxy-query/test";
-        }
-        if ("openGauss".equals(databaseType)) {
-            return "jdbc:opengauss://workflow-proxy-query/test";
-        }
-        return "jdbc:mysql://workflow-proxy-query/test";
-    }
 }
diff --git 
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/capability/MCPDatabaseCapabilityProviderTest.java
 
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/capability/MCPDatabaseCapabilityProviderTest.java
index 2169ecaccff..2ea1508393a 100644
--- 
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/capability/MCPDatabaseCapabilityProviderTest.java
+++ 
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/capability/MCPDatabaseCapabilityProviderTest.java
@@ -134,40 +134,13 @@ class MCPDatabaseCapabilityProviderTest {
             
when(statement.executeQuery(anyString())).thenReturn(scalarResultSet);
             when(scalarResultSet.next()).thenReturn(false);
             
when(databaseMetaData.getDatabaseProductVersion()).thenReturn(databaseVersion);
-            
when(databaseMetaData.getURL()).thenReturn(getJdbcUrl(databaseType));
+            
when(databaseMetaData.getURL()).thenReturn(SupportDatabaseTypeFactoryMocker.createJdbcUrl(databaseType));
         } catch (final SQLException ex) {
             throw new IllegalStateException(ex);
         }
         return result;
     }
     
-    private String getJdbcUrl(final String databaseType) {
-        switch (databaseType) {
-            case "MySQL":
-                return "jdbc:mysql:test";
-            case "PostgreSQL":
-                return "jdbc:postgresql:test";
-            case "openGauss":
-                return "jdbc:opengauss:test";
-            case "SQLServer":
-                return "jdbc:sqlserver:test";
-            case "MariaDB":
-                return "jdbc:mariadb:test";
-            case "Oracle":
-                return "jdbc:oracle:test";
-            case "ClickHouse":
-                return "jdbc:clickhouse:test";
-            case "Hive":
-                return "jdbc:hive2:test";
-            case "Presto":
-                return "jdbc:presto:test";
-            case "Firebird":
-                return "jdbc:firebirdsql:test";
-            default:
-                throw new IllegalArgumentException(databaseType);
-        }
-    }
-    
     private static Stream<Arguments> provideCapabilityMatrixArguments() {
         return Stream.of(
                 Arguments.of("mysql", "MySQL", true, true, true, false, 
SchemaExecutionSemantics.FIXED_TO_DATABASE),
diff --git 
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/metadata/jdbc/AbstractMCPJdbcMetadataLoaderTest.java
 
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/metadata/jdbc/AbstractMCPJdbcMetadataLoaderTest.java
index 51d49d4f9b3..e7ed3442fed 100644
--- 
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/metadata/jdbc/AbstractMCPJdbcMetadataLoaderTest.java
+++ 
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/metadata/jdbc/AbstractMCPJdbcMetadataLoaderTest.java
@@ -65,15 +65,6 @@ import static org.mockito.Mockito.when;
 
 abstract class AbstractMCPJdbcMetadataLoaderTest {
     
-    protected static final Map<String, String> METADATA_JDBC_URLS = Map.of(
-            "MySQL", "jdbc:mysql://metadata-loader/test",
-            "PostgreSQL", "jdbc:postgresql://metadata-loader/test",
-            "openGauss", "jdbc:opengauss://metadata-loader/test",
-            "SQLServer", "jdbc:sqlserver://metadata-loader",
-            "Oracle", "jdbc:oracle:thin:@metadata-loader",
-            "MariaDB", "jdbc:mariadb://metadata-loader/test",
-            "Firebird", "jdbc:firebirdsql://metadata-loader/test");
-    
     protected LoadedMetadataCatalog load(final Map<String, 
RuntimeDatabaseConfiguration> runtimeDatabases) {
         try (MockedStatic<DatabaseTypeFactory> ignored = 
SupportDatabaseTypeFactoryMocker.mockByConnectionMetadata()) {
             MCPJdbcDatabaseProfileLoader databaseProfileLoader = new 
MCPJdbcDatabaseProfileLoader();
@@ -200,7 +191,7 @@ abstract class AbstractMCPJdbcMetadataLoaderTest {
                 List.of(Map.of("SEQUENCE_SCHEMA", "PUBLIC", "SEQUENCE_NAME", 
"order_seq")));
         DatabaseMetaData databaseMetaData = result.getMetaData();
         when(databaseMetaData.getDatabaseProductVersion()).thenReturn("16.2");
-        
when(databaseMetaData.getURL()).thenReturn("jdbc:postgresql://metadata-loader/test");
+        
when(databaseMetaData.getURL()).thenReturn(getMetadataJdbcUrl("PostgreSQL"));
         return result;
     }
     
@@ -285,7 +276,7 @@ abstract class AbstractMCPJdbcMetadataLoaderTest {
     }
     
     protected String getMetadataJdbcUrl(final String databaseType) {
-        return METADATA_JDBC_URLS.getOrDefault(databaseType, 
METADATA_JDBC_URLS.get("PostgreSQL"));
+        return SupportDatabaseTypeFactoryMocker.createJdbcUrl(databaseType);
     }
     
     protected int countMetadata(final MCPDatabaseMetadata databaseMetadata, 
final SupportedMCPMetadataObjectType objectType, final String objectName) {
diff --git 
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/metadata/jdbc/MCPJdbcDatabaseProfileLoaderTest.java
 
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/metadata/jdbc/MCPJdbcDatabaseProfileLoaderTest.java
index 1e5ca38b83f..8e36e906189 100644
--- 
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/metadata/jdbc/MCPJdbcDatabaseProfileLoaderTest.java
+++ 
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/metadata/jdbc/MCPJdbcDatabaseProfileLoaderTest.java
@@ -41,7 +41,7 @@ class MCPJdbcDatabaseProfileLoaderTest {
     @Test
     void assertLoad() throws SQLException {
         try (MockedStatic<DatabaseTypeFactory> ignored = 
SupportDatabaseTypeFactoryMocker.mockByConnectionMetadata()) {
-            RuntimeDatabaseProfile actual = new 
MCPJdbcDatabaseProfileLoader().load("logic_db", 
createRuntimeDatabaseConfiguration("jdbc:mysql:test", "8.0.32"));
+            RuntimeDatabaseProfile actual = new 
MCPJdbcDatabaseProfileLoader().load("logic_db", 
createRuntimeDatabaseConfiguration(SupportDatabaseTypeFactoryMocker.createJdbcUrl("MySQL"),
 "8.0.32"));
             assertThat(actual.getDatabase(), is("logic_db"));
             assertThat(actual.getDatabaseType(), is("MySQL"));
             assertThat(actual.getDatabaseVersion(), is("8.0.32"));
diff --git 
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/metadata/jdbc/MCPJdbcMetadataLoaderSequenceTest.java
 
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/metadata/jdbc/MCPJdbcMetadataLoaderSequenceTest.java
index fc9782c95c4..0def9521ead 100644
--- 
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/metadata/jdbc/MCPJdbcMetadataLoaderSequenceTest.java
+++ 
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/metadata/jdbc/MCPJdbcMetadataLoaderSequenceTest.java
@@ -27,7 +27,6 @@ import java.sql.Connection;
 import java.sql.Driver;
 import java.sql.SQLException;
 import java.util.List;
-import java.util.Locale;
 import java.util.Map;
 
 import static org.hamcrest.MatcherAssert.assertThat;
@@ -80,7 +79,7 @@ class MCPJdbcMetadataLoaderSequenceTest extends 
AbstractMCPJdbcMetadataLoaderTes
     @MethodSource("loadSequenceDialectArguments")
     void assertLoadWithDialectSequenceMetadata(final String name, final String 
databaseType, final String sequenceSchema,
                                                final String sequenceName, 
final String sequenceQuery) throws SQLException {
-        String jdbcUrl = "jdbc:mock:sequence:" + 
databaseType.toLowerCase(Locale.ENGLISH);
+        String jdbcUrl = "jdbc:mock:sequence:" + name.replace(' ', '-');
         Driver mockDriver = new MockDriver(jdbcUrl, 
createConnectionWithSequenceMetadata(databaseType, sequenceSchema, 
sequenceName, sequenceQuery));
         try (MockDriverRegistration ignored = 
MockDriverRegistration.register(mockDriver)) {
             LoadedMetadataCatalog actual = load(Map.of("logic_db", new 
RuntimeDatabaseConfiguration(jdbcUrl, "", "", MockDriver.class.getName())));
diff --git 
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/metadata/query/DatabaseTestDataFactory.java
 
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/metadata/query/DatabaseTestDataFactory.java
index cefefd3d54f..19c73f03d26 100644
--- 
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/metadata/query/DatabaseTestDataFactory.java
+++ 
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/database/metadata/query/DatabaseTestDataFactory.java
@@ -27,6 +27,7 @@ import 
org.apache.shardingsphere.mcp.support.database.metadata.model.MCPSequence
 import 
org.apache.shardingsphere.mcp.support.database.metadata.model.MCPSchemaMetadata;
 import 
org.apache.shardingsphere.mcp.support.database.metadata.model.MCPTableMetadata;
 import 
org.apache.shardingsphere.mcp.support.database.metadata.model.MCPViewMetadata;
+import 
org.apache.shardingsphere.mcp.support.fixture.SupportDatabaseTypeFactoryMocker;
 
 import java.sql.Connection;
 import java.sql.DatabaseMetaData;
@@ -92,7 +93,7 @@ final class DatabaseTestDataFactory {
         when(result.getMetaData()).thenReturn(databaseMetaData);
         when(result.createStatement()).thenReturn(statement);
         
when(databaseMetaData.getDatabaseProductVersion()).thenReturn(databaseMetadata.getDatabaseVersion());
-        
when(databaseMetaData.getURL()).thenReturn(getJdbcUrl(databaseMetadata));
+        
when(databaseMetaData.getURL()).thenReturn(SupportDatabaseTypeFactoryMocker.createJdbcUrl(databaseMetadata.getDatabaseType()));
         when(databaseMetaData.getTables(nullable(String.class), 
nullable(String.class), eq("%"), any(String[].class))).thenAnswer(invocation -> 
{
             String[] tableTypes = invocation.getArgument(3, String[].class);
             return createResultSet("TABLE".equals(tableTypes[0]) ? 
createTableRows(databaseMetadata) : createViewRows(databaseMetadata));
@@ -106,19 +107,6 @@ final class DatabaseTestDataFactory {
         return result;
     }
     
-    private static String getJdbcUrl(final MCPDatabaseMetadata 
databaseMetadata) {
-        switch (databaseMetadata.getDatabaseType()) {
-            case "MySQL":
-                return String.format("jdbc:mysql://metadata-query/%s", 
databaseMetadata.getDatabase());
-            case "PostgreSQL":
-                return String.format("jdbc:postgresql://metadata-query/%s", 
databaseMetadata.getDatabase());
-            case "Hive":
-                return String.format("jdbc:hive2://metadata-query/%s", 
databaseMetadata.getDatabase());
-            default:
-                throw new 
IllegalArgumentException(databaseMetadata.getDatabaseType());
-        }
-    }
-    
     private static List<Map<String, String>> createTableRows(final 
MCPDatabaseMetadata databaseMetadata) {
         List<Map<String, String>> result = new LinkedList<>();
         for (MCPSchemaMetadata each : databaseMetadata.getSchemas()) {
diff --git 
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/fixture/SupportDatabaseTypeFactoryMocker.java
 
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/fixture/SupportDatabaseTypeFactoryMocker.java
index c8b4135ef82..bd61508663b 100644
--- 
a/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/fixture/SupportDatabaseTypeFactoryMocker.java
+++ 
b/mcp/support/src/test/java/org/apache/shardingsphere/mcp/support/fixture/SupportDatabaseTypeFactoryMocker.java
@@ -26,7 +26,6 @@ import 
org.apache.shardingsphere.mcp.support.database.metadata.jdbc.RuntimeDatab
 import org.mockito.MockedStatic;
 
 import java.sql.DatabaseMetaData;
-import java.util.Locale;
 import java.util.Map;
 import java.util.Objects;
 
@@ -43,6 +42,18 @@ import static org.mockito.Mockito.when;
 @NoArgsConstructor(access = AccessLevel.PRIVATE)
 public final class SupportDatabaseTypeFactoryMocker {
     
+    private static final String JDBC_URL_PREFIX = "jdbc:mcp-fixture:";
+    
+    /**
+     * Create MCP fixture JDBC URL.
+     *
+     * @param databaseType database type
+     * @return MCP fixture JDBC URL
+     */
+    public static String createJdbcUrl(final String databaseType) {
+        return JDBC_URL_PREFIX + databaseType + ":test";
+    }
+    
     /**
      * Mock database type factory by JDBC connection metadata.
      *
@@ -73,38 +84,13 @@ public final class SupportDatabaseTypeFactoryMocker {
     }
     
     private static String resolveTypeByURL(final String url) {
-        String actualURL = Objects.toString(url, 
"").toLowerCase(Locale.ENGLISH);
-        if (actualURL.startsWith("jdbc:mysql:")) {
-            return "MySQL";
-        }
-        if (actualURL.startsWith("jdbc:postgresql:")) {
-            return "PostgreSQL";
-        }
-        if (actualURL.startsWith("jdbc:opengauss:")) {
-            return "openGauss";
-        }
-        if (actualURL.startsWith("jdbc:sqlserver:")) {
-            return "SQLServer";
-        }
-        if (actualURL.startsWith("jdbc:mariadb:")) {
-            return "MariaDB";
-        }
-        if (actualURL.startsWith("jdbc:oracle:")) {
-            return "Oracle";
-        }
-        if (actualURL.startsWith("jdbc:clickhouse:")) {
-            return "ClickHouse";
-        }
-        if (actualURL.startsWith("jdbc:hive2:") || 
actualURL.startsWith("jdbc:hive:")) {
-            return "Hive";
-        }
-        if (actualURL.startsWith("jdbc:presto:")) {
-            return "Presto";
-        }
-        if (actualURL.startsWith("jdbc:firebirdsql:")) {
-            return "Firebird";
+        String actualURL = Objects.toString(url, "");
+        if (!actualURL.startsWith(JDBC_URL_PREFIX)) {
+            return "";
         }
-        return "";
+        String databaseType = actualURL.substring(JDBC_URL_PREFIX.length());
+        int delimiterIndex = databaseType.indexOf(':');
+        return -1 == delimiterIndex ? databaseType : databaseType.substring(0, 
delimiterIndex);
     }
     
     private static DatabaseType mockDatabaseType(final String databaseType) {

Reply via email to