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

zhangliang 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 0e844303b1a Add more test cases on FirebirdAdminExecutorCreatorTest 
(#38055)
0e844303b1a is described below

commit 0e844303b1aec963da72b86bb7e0aae0a5387260
Author: Liang Zhang <[email protected]>
AuthorDate: Mon Feb 16 01:21:56 2026 +0800

    Add more test cases on FirebirdAdminExecutorCreatorTest (#38055)
---
 .../admin/FirebirdAdminExecutorCreatorTest.java    | 67 ++++++++++++++--------
 1 file changed, 42 insertions(+), 25 deletions(-)

diff --git 
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
 
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
index 1d77518037a..94d20742cbd 100644
--- 
a/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
+++ 
b/proxy/backend/dialect/firebird/src/test/java/org/apache/shardingsphere/proxy/backend/firebird/handler/admin/FirebirdAdminExecutorCreatorTest.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.proxy.backend.firebird.handler.admin;
 
+import 
org.apache.shardingsphere.database.connector.core.spi.DatabaseTypedSPILoader;
 import org.apache.shardingsphere.database.connector.core.type.DatabaseType;
 import 
org.apache.shardingsphere.infra.binder.context.statement.SQLStatementContext;
 import 
org.apache.shardingsphere.infra.binder.context.statement.type.CommonSQLStatementContext;
@@ -26,55 +27,71 @@ import 
org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import 
org.apache.shardingsphere.proxy.backend.firebird.handler.admin.executor.FirebirdSetVariableAdminExecutor;
 import 
org.apache.shardingsphere.proxy.backend.firebird.handler.admin.executor.FirebirdShowVariableExecutor;
 import 
org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminExecutor;
+import 
org.apache.shardingsphere.proxy.backend.handler.admin.executor.DatabaseAdminExecutorCreator;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dal.SetStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dal.ShowStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.DeleteStatement;
 import 
org.apache.shardingsphere.sql.parser.statement.core.statement.type.dml.SelectStatement;
-import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
 
 import java.util.Collections;
 import java.util.Optional;
+import java.util.stream.Stream;
 
-import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.isA;
+import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 class FirebirdAdminExecutorCreatorTest {
     
-    private final DatabaseType databaseType = 
TypedSPILoader.getService(DatabaseType.class, "Firebird");
+    private static final DatabaseType DATABASE_TYPE = 
TypedSPILoader.getService(DatabaseType.class, "Firebird");
     
-    @Test
-    void assertCreateWithSelectNonSystem() {
-        SelectStatementContext selectStatementContext = 
mock(SelectStatementContext.class);
-        when(selectStatementContext.getSqlStatement()).thenReturn(new 
SelectStatement(databaseType));
-        assertThat(new 
FirebirdAdminExecutorCreator().create(selectStatementContext, "SELECT 1", "", 
Collections.emptyList()), is(Optional.empty()));
+    private final DatabaseAdminExecutorCreator creator = 
DatabaseTypedSPILoader.getService(DatabaseAdminExecutorCreator.class, 
DATABASE_TYPE);
+    
+    @ParameterizedTest(name = "{0}")
+    @MethodSource("createArguments")
+    void assertCreate(final String scenario, final SQLStatementContext 
sqlStatementContext, final String sql, final Class<? extends 
DatabaseAdminExecutor> expectedExecutorType) {
+        final Optional<DatabaseAdminExecutor> actual = 
creator.create(sqlStatementContext, sql, "", Collections.emptyList());
+        if (null == expectedExecutorType) {
+            assertFalse(actual.isPresent(), scenario);
+            return;
+        }
+        assertTrue(actual.isPresent(), scenario);
+        assertThat(actual.get(), isA(expectedExecutorType));
+    }
+    
+    private static Stream<Arguments> createArguments() {
+        return Stream.of(
+                Arguments.of("select statement returns empty", 
createSelectStatementContext(), "SELECT 1", null),
+                Arguments.of("set statement returns set executor", 
createSetStatementContext(), "SET NAMES utf8", 
FirebirdSetVariableAdminExecutor.class),
+                Arguments.of("show statement returns show executor", 
createShowStatementContext(), "SHOW server_version", 
FirebirdShowVariableExecutor.class),
+                Arguments.of("delete statement returns empty", 
createOtherStatementContext(), "DELETE FROM t WHERE id = 1", null));
     }
     
-    @Test
-    void assertCreateWithSetStatement() {
-        SetStatement sqlStatement = new SetStatement(databaseType, 
Collections.emptyList());
+    private static SQLStatementContext createSetStatementContext() {
+        SetStatement sqlStatement = new SetStatement(DATABASE_TYPE, 
Collections.emptyList());
         sqlStatement.buildAttributes();
-        SQLStatementContext sqlStatementContext = new 
CommonSQLStatementContext(sqlStatement);
-        Optional<DatabaseAdminExecutor> actual = new 
FirebirdAdminExecutorCreator().create(sqlStatementContext, "SET NAMES utf8", 
"", Collections.emptyList());
-        assertTrue(actual.isPresent());
-        assertThat(actual.get(), isA(FirebirdSetVariableAdminExecutor.class));
+        return new CommonSQLStatementContext(sqlStatement);
     }
     
-    @Test
-    void assertCreateWithShowSQLStatement() {
-        ShowStatement sqlStatement = new ShowStatement(databaseType, 
"server_version");
+    private static SQLStatementContext createShowStatementContext() {
+        ShowStatement sqlStatement = new ShowStatement(DATABASE_TYPE, 
"server_version");
         sqlStatement.buildAttributes();
-        Optional<DatabaseAdminExecutor> actual = new 
FirebirdAdminExecutorCreator().create(new 
CommonSQLStatementContext(sqlStatement), "SHOW server_version", "", 
Collections.emptyList());
-        assertTrue(actual.isPresent());
-        assertThat(actual.get(), isA(FirebirdShowVariableExecutor.class));
+        return new CommonSQLStatementContext(sqlStatement);
+    }
+    
+    private static SQLStatementContext createSelectStatementContext() {
+        SelectStatementContext result = mock(SelectStatementContext.class);
+        when(result.getSqlStatement()).thenReturn(new 
SelectStatement(DATABASE_TYPE));
+        return result;
     }
     
-    @Test
-    void assertCreateWithDMLStatement() {
-        DeleteStatementContext sqlStatementContext = new 
DeleteStatementContext(new DeleteStatement(databaseType));
-        assertThat(new 
FirebirdAdminExecutorCreator().create(sqlStatementContext, "DELETE FROM t WHERE 
id = 1", "", Collections.emptyList()), is(Optional.empty()));
+    private static SQLStatementContext createOtherStatementContext() {
+        return new DeleteStatementContext(new DeleteStatement(DATABASE_TYPE));
     }
 }

Reply via email to