You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2025/12/23 11:43:14 UTC
(shardingsphere) branch master updated: Update DistSQL unit test (#37474)
This is an automated email from the ASF dual-hosted git repository.
zhonghongsheng 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 ec07a8b5db3 Update DistSQL unit test (#37474)
ec07a8b5db3 is described below
commit ec07a8b5db3ef936ecd68ccf7b7eb346151f6261
Author: Hongsheng Zhong <zh...@apache.org>
AuthorDate: Tue Dec 23 19:43:08 2025 +0800
Update DistSQL unit test (#37474)
---
.../query/ShowShardingTableNodesExecutorTest.java | 4 +--
.../DistSQLProxyBackendHandlerFactoryTest.java | 31 +++++++++++++---------
.../DistSQLUpdateProxyBackendHandlerTest.java | 16 +++++++----
.../DistSQLGlobalRuleDefinitionExecutorAssert.java | 2 +-
4 files changed, 31 insertions(+), 22 deletions(-)
diff --git a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableNodesExecutorTest.java b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableNodesExecutorTest.java
index 2999035503c..036ddc8f96a 100644
--- a/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableNodesExecutorTest.java
+++ b/features/sharding/distsql/handler/src/test/java/org/apache/shardingsphere/sharding/distsql/handler/query/ShowShardingTableNodesExecutorTest.java
@@ -42,7 +42,6 @@ import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
-import java.util.Iterator;
import java.util.List;
import java.util.Optional;
@@ -82,8 +81,7 @@ class ShowShardingTableNodesExecutorTest {
engine.executeQuery();
Collection<LocalDataQueryResultRow> actual = engine.getRows();
assertThat(actual.size(), is(1));
- Iterator<LocalDataQueryResultRow> iterator = actual.iterator();
- LocalDataQueryResultRow row = iterator.next();
+ LocalDataQueryResultRow row = actual.iterator().next();
assertThat(row.getCell(1), is("t_order"));
assertThat(row.getCell(2), is("ds_1.t_order_0, ds_2.t_order_1, ds_1.t_order_2, ds_2.t_order_3, ds_1.t_order_4, ds_2.t_order_5"));
}
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLProxyBackendHandlerFactoryTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLProxyBackendHandlerFactoryTest.java
index 7e24f21eabc..f6e4de45797 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLProxyBackendHandlerFactoryTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLProxyBackendHandlerFactoryTest.java
@@ -26,6 +26,7 @@ import org.apache.shardingsphere.infra.exception.kernel.metadata.rule.MissingReq
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
+import org.apache.shardingsphere.infra.session.query.QueryContext;
import org.apache.shardingsphere.infra.util.props.PropertiesBuilder;
import org.apache.shardingsphere.infra.util.props.PropertiesBuilder.Property;
import org.apache.shardingsphere.mode.manager.ContextManager;
@@ -114,7 +115,7 @@ class DistSQLProxyBackendHandlerFactoryTest {
void assertExecuteDataSourcesContext() throws SQLException {
RegisterStorageUnitStatement sqlStatement = mock(RegisterStorageUnitStatement.class);
when(sqlStatement.getAttributes()).thenReturn(new SQLStatementAttributes());
- assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mock(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
+ assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mockQueryContext(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
}
@Test
@@ -122,21 +123,21 @@ class DistSQLProxyBackendHandlerFactoryTest {
when(contextManager.getDatabase("foo_db").getRuleMetaData()).thenReturn(new RuleMetaData(Collections.emptyList()));
CreateShardingTableRuleStatement sqlStatement = mock(CreateShardingTableRuleStatement.class);
when(sqlStatement.getAttributes()).thenReturn(new SQLStatementAttributes());
- assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mock(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
+ assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mockQueryContext(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
}
@Test
void assertExecuteAddResourceContext() throws SQLException {
RegisterStorageUnitStatement sqlStatement = mock(RegisterStorageUnitStatement.class);
when(sqlStatement.getAttributes()).thenReturn(new SQLStatementAttributes());
- assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mock(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
+ assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mockQueryContext(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
}
@Test
void assertExecuteAlterResourceContext() throws SQLException {
AlterStorageUnitStatement sqlStatement = mock(AlterStorageUnitStatement.class);
when(sqlStatement.getAttributes()).thenReturn(new SQLStatementAttributes());
- assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mock(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
+ assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mockQueryContext(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
}
@Test
@@ -145,7 +146,7 @@ class DistSQLProxyBackendHandlerFactoryTest {
when(contextManager.getDatabase("foo_db")).thenReturn(database);
AlterShadowRuleStatement sqlStatement = mock(AlterShadowRuleStatement.class);
when(sqlStatement.getAttributes()).thenReturn(new SQLStatementAttributes());
- assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mock(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
+ assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mockQueryContext(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
}
@Test
@@ -154,7 +155,7 @@ class DistSQLProxyBackendHandlerFactoryTest {
when(contextManager.getDatabase("foo_db")).thenReturn(database);
CreateShadowRuleStatement sqlStatement = mock(CreateShadowRuleStatement.class);
when(sqlStatement.getAttributes()).thenReturn(new SQLStatementAttributes());
- assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mock(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
+ assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mockQueryContext(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
}
@Test
@@ -163,7 +164,7 @@ class DistSQLProxyBackendHandlerFactoryTest {
when(contextManager.getDatabase("foo_db")).thenReturn(database);
DropShadowRuleStatement sqlStatement = mock(DropShadowRuleStatement.class);
when(sqlStatement.getAttributes()).thenReturn(new SQLStatementAttributes());
- assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mock(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
+ assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mockQueryContext(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
}
@Test
@@ -172,7 +173,7 @@ class DistSQLProxyBackendHandlerFactoryTest {
when(contextManager.getDatabase("foo_db")).thenReturn(database);
AlterDefaultShadowAlgorithmStatement statement = new AlterDefaultShadowAlgorithmStatement(
new ShadowAlgorithmSegment("foo", new AlgorithmSegment("SQL_HINT", PropertiesBuilder.build(new Property("type", "value")))));
- assertThat(new DistSQLUpdateProxyBackendHandler(statement, mock(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
+ assertThat(new DistSQLUpdateProxyBackendHandler(statement, mockQueryContext(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
}
@Test
@@ -205,33 +206,37 @@ class DistSQLProxyBackendHandlerFactoryTest {
when(contextManager.getDatabase("foo_db")).thenReturn(database);
DropShadowAlgorithmStatement sqlStatement = mock(DropShadowAlgorithmStatement.class);
when(sqlStatement.getAttributes()).thenReturn(new SQLStatementAttributes());
- assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mock(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
+ assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mockQueryContext(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
}
@Test
void assertExecuteDropResourceContext() throws SQLException {
UnregisterStorageUnitStatement sqlStatement = mock(UnregisterStorageUnitStatement.class);
when(sqlStatement.getAttributes()).thenReturn(new SQLStatementAttributes());
- assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mock(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
+ assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mockQueryContext(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
}
@Test
void assertExecuteDropReadwriteSplittingRuleContext() {
assertThrows(MissingRequiredRuleException.class,
- () -> new DistSQLUpdateProxyBackendHandler(mock(DropReadwriteSplittingRuleStatement.class, RETURNS_DEEP_STUBS), mock(), connectionSession, contextManager).execute());
+ () -> new DistSQLUpdateProxyBackendHandler(mock(DropReadwriteSplittingRuleStatement.class, RETURNS_DEEP_STUBS), mockQueryContext(), connectionSession, contextManager).execute());
}
@Test
void assertExecuteCreateReadwriteSplittingRuleContext() throws SQLException {
CreateReadwriteSplittingRuleStatement sqlStatement = mock(CreateReadwriteSplittingRuleStatement.class);
when(sqlStatement.getAttributes()).thenReturn(new SQLStatementAttributes());
- assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mock(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
+ assertThat(new DistSQLUpdateProxyBackendHandler(sqlStatement, mockQueryContext(), connectionSession, contextManager).execute(), isA(UpdateResponseHeader.class));
}
@Test
void assertExecuteAlterReadwriteSplittingRuleContext() {
assertThrows(MissingRequiredRuleException.class,
- () -> new DistSQLUpdateProxyBackendHandler(mock(AlterReadwriteSplittingRuleStatement.class, RETURNS_DEEP_STUBS), mock(), connectionSession, contextManager).execute());
+ () -> new DistSQLUpdateProxyBackendHandler(mock(AlterReadwriteSplittingRuleStatement.class, RETURNS_DEEP_STUBS), mockQueryContext(), connectionSession, contextManager).execute());
+ }
+
+ private QueryContext mockQueryContext() {
+ return mock(QueryContext.class, RETURNS_DEEP_STUBS);
}
private ShardingSphereDatabase mockDatabaseWithRule() {
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLUpdateProxyBackendHandlerTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLUpdateProxyBackendHandlerTest.java
index c95417aef29..db6d660d7d0 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLUpdateProxyBackendHandlerTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLUpdateProxyBackendHandlerTest.java
@@ -27,6 +27,7 @@ import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
import org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
+import org.apache.shardingsphere.infra.session.query.QueryContext;
import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.proxy.backend.response.header.ResponseHeader;
@@ -60,7 +61,8 @@ class DistSQLUpdateProxyBackendHandlerTest {
@Test
void assertEmptyStorageUnit() {
when(contextManager.getDatabase("foo_db")).thenReturn(new ShardingSphereDatabase("foo_db", databaseType, mock(), mock(), Collections.emptyList()));
- DistSQLUpdateProxyBackendHandler backendHandler = new DistSQLUpdateProxyBackendHandler(new RefreshTableMetaDataStatement(), mock(), mockConnectionSession("foo_db"), contextManager);
+ DistSQLUpdateProxyBackendHandler backendHandler = new DistSQLUpdateProxyBackendHandler(
+ new RefreshTableMetaDataStatement(), mockQueryContext(), mockConnectionSession("foo_db"), contextManager);
assertThrows(EmptyStorageUnitException.class, backendHandler::execute);
}
@@ -70,7 +72,7 @@ class DistSQLUpdateProxyBackendHandlerTest {
when(resourceMetaData.getStorageUnits()).thenReturn(Collections.singletonMap("ds_0", mock(StorageUnit.class)));
when(contextManager.getDatabase("foo_db")).thenReturn(new ShardingSphereDatabase("foo_db", databaseType, resourceMetaData, mock(), Collections.emptyList()));
DistSQLUpdateProxyBackendHandler backendHandler = new DistSQLUpdateProxyBackendHandler(
- new RefreshTableMetaDataStatement("t_order", "ds_1", null), mock(), mockConnectionSession("foo_db"), contextManager);
+ new RefreshTableMetaDataStatement("t_order", "ds_1", null), mockQueryContext(), mockConnectionSession("foo_db"), contextManager);
assertThrows(MissingRequiredStorageUnitsException.class, backendHandler::execute);
}
@@ -80,7 +82,7 @@ class DistSQLUpdateProxyBackendHandlerTest {
when(resourceMetaData.getStorageUnits()).thenReturn(Collections.singletonMap("ds_0", mock(StorageUnit.class)));
when(contextManager.getDatabase("foo_db")).thenReturn(new ShardingSphereDatabase("foo_db", databaseType, resourceMetaData, mock(), Collections.emptyList()));
DistSQLUpdateProxyBackendHandler backendHandler = new DistSQLUpdateProxyBackendHandler(
- new RefreshTableMetaDataStatement("t_order", "ds_0", "bar_db"), mock(), mockConnectionSession("foo_db"), contextManager);
+ new RefreshTableMetaDataStatement("t_order", "ds_0", "bar_db"), mockQueryContext(), mockConnectionSession("foo_db"), contextManager);
assertThrows(SchemaNotFoundException.class, backendHandler::execute);
}
@@ -95,7 +97,7 @@ class DistSQLUpdateProxyBackendHandlerTest {
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
when(contextManager.getDatabase("foo_db")).thenReturn(database);
DistSQLUpdateProxyBackendHandler backendHandler = new DistSQLUpdateProxyBackendHandler(
- new RefreshTableMetaDataStatement("t_order", "ds_0", "foo_db"), mock(), mockConnectionSession("foo_db"), contextManager);
+ new RefreshTableMetaDataStatement("t_order", "ds_0", "foo_db"), mockQueryContext(), mockConnectionSession("foo_db"), contextManager);
assertThrows(TableNotFoundException.class, backendHandler::execute);
}
@@ -108,10 +110,14 @@ class DistSQLUpdateProxyBackendHandlerTest {
when(database.getProtocolType()).thenReturn(databaseType);
when(database.getResourceMetaData()).thenReturn(resourceMetaData);
when(contextManager.getDatabase("foo_db")).thenReturn(database);
- ResponseHeader actual = new DistSQLUpdateProxyBackendHandler(new RefreshTableMetaDataStatement(), mock(), mockConnectionSession("foo_db"), contextManager).execute();
+ ResponseHeader actual = new DistSQLUpdateProxyBackendHandler(new RefreshTableMetaDataStatement(), mockQueryContext(), mockConnectionSession("foo_db"), contextManager).execute();
assertThat(actual, isA(UpdateResponseHeader.class));
}
+ private QueryContext mockQueryContext() {
+ return mock(QueryContext.class, RETURNS_DEEP_STUBS);
+ }
+
private ConnectionSession mockConnectionSession(final String databaseName) {
ConnectionSession result = mock(ConnectionSession.class, RETURNS_DEEP_STUBS);
when(result.getUsedDatabaseName()).thenReturn(databaseName);
diff --git a/test/it/distsql/src/main/java/org/apache/shardingsphere/test/it/distsql/handler/engine/update/DistSQLGlobalRuleDefinitionExecutorAssert.java b/test/it/distsql/src/main/java/org/apache/shardingsphere/test/it/distsql/handler/engine/update/DistSQLGlobalRuleDefinitionExecutorAssert.java
index 4b80aeb6132..64b6d6b0a52 100644
--- a/test/it/distsql/src/main/java/org/apache/shardingsphere/test/it/distsql/handler/engine/update/DistSQLGlobalRuleDefinitionExecutorAssert.java
+++ b/test/it/distsql/src/main/java/org/apache/shardingsphere/test/it/distsql/handler/engine/update/DistSQLGlobalRuleDefinitionExecutorAssert.java
@@ -58,7 +58,7 @@ public final class DistSQLGlobalRuleDefinitionExecutorAssert {
public void assertExecuteUpdate(final GlobalRuleConfiguration ruleConfig,
final DistSQLStatement sqlStatement, final RuleConfiguration matchedRuleConfig, final Class<? extends Exception> expectedException) throws SQLException {
ContextManager contextManager = mockContextManager(ruleConfig);
- DistSQLUpdateExecuteEngine engine = new DistSQLUpdateExecuteEngine(sqlStatement, null, contextManager, mock(DistSQLConnectionContext.class));
+ DistSQLUpdateExecuteEngine engine = new DistSQLUpdateExecuteEngine(sqlStatement, null, contextManager, mock(DistSQLConnectionContext.class, RETURNS_DEEP_STUBS));
if (null != expectedException) {
assertThrows(expectedException, engine::executeUpdate);
return;