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 2023/02/23 22:59:29 UTC
[shardingsphere] branch master updated: Remove ProxyContextRestorer on backend core module part 1 (#24329)
This is an automated email from the ASF dual-hosted git repository.
zhaojinchao 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 e586f0a2a63 Remove ProxyContextRestorer on backend core module part 1 (#24329)
e586f0a2a63 is described below
commit e586f0a2a6381efce5ef4dbe20c7b7385d0d07c0
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Fri Feb 24 06:59:09 2023 +0800
Remove ProxyContextRestorer on backend core module part 1 (#24329)
* Remove ProxyContextRestorer on AlterReadwriteSplittingStorageUnitStatusStatementUpdaterTest
* Remove ProxyContextRestorer on ShowStatusFromReadwriteSplittingRulesExecutorTest
* Remove ProxyContextRestorer on TransactionBackendHandlerTest
* Remove ProxyContextRestorer on DistSQLBackendHandlerFactoryTest
* Remove ProxyContextRestorer on ShowComputeNodeModeExecutorTest
* Remove ProxyContextRestorer on ShowDistVariablesExecutorTest
* Remove ProxyContextRestorer on ShowComputeNodesExecutorTest
* Remove ProxyContextRestorer on UnlabelComputeNodeUpdaterTest
* Remove ProxyContextRestorer on ShowComputeNodeInfoExecutorTest
* Remove ProxyContextRestorer on TransactionBackendHandlerFactoryTest
* Remove ProxyContextRestorer on DatabaseConnectorFactoryTest
* Remove ProxyContextRestorer on ShowDistVariableExecutorTest
* Remove ProxyContextRestorer on RefreshDatabaseMetaDataUpdaterTest
* Remove ProxyContextRestorer on backend core module part 1
---
.../connector/DatabaseConnectorFactoryTest.java | 65 ++++++++++++----------
.../distsql/DistSQLBackendHandlerFactoryTest.java | 45 +++++++++------
.../ExportDatabaseConfigurationExecutorTest.java | 3 +-
.../queryable/ShowComputeNodeInfoExecutorTest.java | 3 +-
.../queryable/ShowComputeNodeModeExecutorTest.java | 3 +-
.../queryable/ShowComputeNodesExecutorTest.java | 3 +-
.../queryable/ShowDistVariableExecutorTest.java | 3 +-
.../queryable/ShowDistVariablesExecutorTest.java | 3 +-
...tusFromReadwriteSplittingRulesExecutorTest.java | 38 +++++++------
...ttingStorageUnitStatusStatementUpdaterTest.java | 37 ++++++++----
.../RefreshDatabaseMetaDataUpdaterTest.java | 12 ++--
.../updatable/UnlabelComputeNodeUpdaterTest.java | 14 +++--
.../TransactionBackendHandlerFactoryTest.java | 45 ++++++++-------
.../transaction/TransactionBackendHandlerTest.java | 25 +++++----
14 files changed, 171 insertions(+), 128 deletions(-)
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnectorFactoryTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnectorFactoryTest.java
index 1d493cfb2c7..0eaec1cf28f 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnectorFactoryTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnectorFactoryTest.java
@@ -28,42 +28,20 @@ import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
-import org.junit.Before;
import org.junit.Test;
+import org.mockito.MockedStatic;
import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.Map;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.when;
-public final class DatabaseConnectorFactoryTest extends ProxyContextRestorer {
-
- @Before
- public void setUp() {
- MetaDataContexts metaDataContexts = new MetaDataContexts(mock(MetaDataPersistService.class),
- new ShardingSphereMetaData(getDatabases(), mock(ShardingSphereRuleMetaData.class), new ConfigurationProperties(new Properties())));
- ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
- when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
- ProxyContext.init(contextManager);
- }
-
- private Map<String, ShardingSphereDatabase> getDatabases() {
- ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(database.containsDataSource()).thenReturn(true);
- when(database.isComplete()).thenReturn(true);
- when(database.getProtocolType()).thenReturn(new H2DatabaseType());
- when(database.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
- Map<String, ShardingSphereDatabase> result = new LinkedHashMap<>(1, 1);
- result.put("db", database);
- return result;
- }
+public final class DatabaseConnectorFactoryTest {
@Test
public void assertNewDatabaseConnectorWithoutParameter() {
@@ -72,8 +50,14 @@ public final class DatabaseConnectorFactoryTest extends ProxyContextRestorer {
SQLStatementContext<?> sqlStatementContext = mock(SQLStatementContext.class, RETURNS_DEEP_STUBS);
when(sqlStatementContext.getTablesContext().getSchemaNames()).thenReturn(Collections.emptyList());
QueryContext queryContext = new QueryContext(sqlStatementContext, "schemaName", Collections.emptyList());
- DatabaseConnector engine = DatabaseConnectorFactory.getInstance().newInstance(queryContext, backendConnection, false);
- assertThat(engine, instanceOf(DatabaseConnector.class));
+ ShardingSphereDatabase database = mockDatabase();
+ ContextManager contextManager = mockContextManager(database);
+ try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
+ proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db")).thenReturn(database);
+ DatabaseConnector engine = DatabaseConnectorFactory.getInstance().newInstance(queryContext, backendConnection, false);
+ assertThat(engine, instanceOf(DatabaseConnector.class));
+ }
}
@Test
@@ -82,7 +66,30 @@ public final class DatabaseConnectorFactoryTest extends ProxyContextRestorer {
when(backendConnection.getConnectionSession().getDatabaseName()).thenReturn("db");
SQLStatementContext<?> sqlStatementContext = mock(SQLStatementContext.class, RETURNS_DEEP_STUBS);
when(sqlStatementContext.getTablesContext().getSchemaNames()).thenReturn(Collections.emptyList());
- assertThat(DatabaseConnectorFactory.getInstance().newInstance(new QueryContext(sqlStatementContext, "schemaName", Collections.emptyList()), backendConnection, false),
- instanceOf(DatabaseConnector.class));
+ ShardingSphereDatabase database = mockDatabase();
+ ContextManager contextManager = mockContextManager(database);
+ try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
+ proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db")).thenReturn(database);
+ assertThat(DatabaseConnectorFactory.getInstance().newInstance(new QueryContext(sqlStatementContext, "schemaName", Collections.emptyList()), backendConnection, false),
+ instanceOf(DatabaseConnector.class));
+ }
+ }
+
+ private ContextManager mockContextManager(final ShardingSphereDatabase database) {
+ MetaDataContexts metaDataContexts = new MetaDataContexts(mock(MetaDataPersistService.class),
+ new ShardingSphereMetaData(Collections.singletonMap("db", database), mock(ShardingSphereRuleMetaData.class), new ConfigurationProperties(new Properties())));
+ ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ when(result.getMetaDataContexts()).thenReturn(metaDataContexts);
+ return result;
+ }
+
+ private static ShardingSphereDatabase mockDatabase() {
+ ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
+ when(result.containsDataSource()).thenReturn(true);
+ when(result.isComplete()).thenReturn(true);
+ when(result.getProtocolType()).thenReturn(new H2DatabaseType());
+ when(result.getRuleMetaData().getRules()).thenReturn(Collections.emptyList());
+ return result;
}
}
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
index 5c376154921..6971ca105a3 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/DistSQLBackendHandlerFactoryTest.java
@@ -36,7 +36,6 @@ import org.apache.shardingsphere.proxy.backend.handler.distsql.rql.RQLBackendHan
import org.apache.shardingsphere.proxy.backend.response.header.query.QueryResponseHeader;
import org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.AlterReadwriteSplittingRuleStatement;
import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.CreateReadwriteSplittingRuleStatement;
import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.DropReadwriteSplittingRuleStatement;
@@ -53,10 +52,12 @@ import org.apache.shardingsphere.shadow.distsql.parser.statement.ShowShadowTable
import org.apache.shardingsphere.sharding.distsql.parser.statement.CreateShardingTableRuleStatement;
import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
+import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
+import org.mockito.MockedStatic;
import org.mockito.junit.MockitoJUnitRunner;
import java.sql.SQLException;
@@ -67,44 +68,56 @@ import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
-public final class DistSQLBackendHandlerFactoryTest extends ProxyContextRestorer {
+public final class DistSQLBackendHandlerFactoryTest {
+
+ private MockedStatic<ProxyContext> proxyContext;
@Mock
private ConnectionSession connectionSession;
@Before
public void setUp() {
+ ShardingSphereDatabase database = mockDatabase();
+ ContextManager contextManager = mockContextManager(database);
+ proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS);
+ proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ proxyContext.when(() -> ProxyContext.getInstance().databaseExists("db")).thenReturn(true);
+ proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db")).thenReturn(database);
when(connectionSession.getDatabaseName()).thenReturn("db");
- ProxyContext.init(mockContextManager());
}
- private ContextManager mockContextManager() {
+ @After
+ public void tearDown() {
+ proxyContext.close();
+ }
+
+ private ShardingSphereDatabase mockDatabase() {
+ ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
+ when(result.getResourceMetaData().getDataSources()).thenReturn(Collections.emptyMap());
+ when(result.getResourceMetaData().getNotExistedDataSources(any())).thenReturn(Collections.emptyList());
+ when(result.getRuleMetaData()).thenReturn(new ShardingSphereRuleMetaData(Collections.emptyList()));
+ return result;
+ }
+
+ private ContextManager mockContextManager(final ShardingSphereDatabase database) {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
- MetaDataContexts metaDataContexts = mockMetaDataContexts();
+ MetaDataContexts metaDataContexts = mockMetaDataContexts(database);
when(result.getMetaDataContexts()).thenReturn(metaDataContexts);
when(result.getInstanceContext().getModeContextManager()).thenReturn(mock(ModeContextManager.class));
return result;
}
- private MetaDataContexts mockMetaDataContexts() {
+ private MetaDataContexts mockMetaDataContexts(final ShardingSphereDatabase database) {
MetaDataContexts result = mock(MetaDataContexts.class, RETURNS_DEEP_STUBS);
when(result.getMetaData().containsDatabase("db")).thenReturn(true);
- ShardingSphereDatabase database = mockDatabase();
when(result.getMetaData().getDatabase("db")).thenReturn(database);
return result;
}
- private ShardingSphereDatabase mockDatabase() {
- ShardingSphereDatabase result = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(result.getResourceMetaData().getDataSources()).thenReturn(Collections.emptyMap());
- when(result.getResourceMetaData().getNotExistedDataSources(any())).thenReturn(Collections.emptyList());
- when(result.getRuleMetaData()).thenReturn(new ShardingSphereRuleMetaData(Collections.emptyList()));
- return result;
- }
-
@Test
public void assertExecuteDataSourcesContext() throws SQLException {
assertThat(RDLBackendHandlerFactory.newInstance(mock(RegisterStorageUnitStatement.class), connectionSession).execute(), instanceOf(UpdateResponseHeader.class));
@@ -209,7 +222,7 @@ public final class DistSQLBackendHandlerFactoryTest extends ProxyContextRestorer
ShadowRuleConfiguration ruleConfig = mockShadowRuleConfiguration();
when(ruleMetaData.getConfigurations()).thenReturn(Collections.singleton(ruleConfig));
when(database.getRuleMetaData()).thenReturn(ruleMetaData);
- when(ProxyContext.getInstance().getContextManager().getMetaDataContexts().getMetaData().getDatabase("db")).thenReturn(database);
+ proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db")).thenReturn(database);
}
private ShadowRuleConfiguration mockShadowRuleConfiguration() {
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportDatabaseConfigurationExecutorTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportDatabaseConfigurationExecutorTest.java
index c04ac93a139..e21263428c1 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportDatabaseConfigurationExecutorTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ExportDatabaseConfigurationExecutorTest.java
@@ -22,7 +22,6 @@ import org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ExportDa
import org.apache.shardingsphere.infra.config.algorithm.AlgorithmConfiguration;
import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
-import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
import org.apache.shardingsphere.sharding.api.config.ShardingRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.rule.ShardingTableRuleConfiguration;
import org.apache.shardingsphere.sharding.api.config.strategy.keygen.KeyGenerateStrategyConfiguration;
@@ -53,7 +52,7 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-public final class ExportDatabaseConfigurationExecutorTest extends ProxyContextRestorer {
+public final class ExportDatabaseConfigurationExecutorTest {
private final ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowComputeNodeInfoExecutorTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowComputeNodeInfoExecutorTest.java
index 841e53f9301..c0813c2cb58 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowComputeNodeInfoExecutorTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowComputeNodeInfoExecutorTest.java
@@ -24,7 +24,6 @@ import org.apache.shardingsphere.infra.instance.metadata.proxy.ProxyInstanceMeta
import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
import org.apache.shardingsphere.infra.state.StateContext;
import org.apache.shardingsphere.mode.repository.standalone.StandalonePersistRepositoryConfiguration;
-import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
import org.junit.Test;
import java.sql.SQLException;
@@ -38,7 +37,7 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-public final class ShowComputeNodeInfoExecutorTest extends ProxyContextRestorer {
+public final class ShowComputeNodeInfoExecutorTest {
@Test
public void assertGetColumns() {
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowComputeNodeModeExecutorTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowComputeNodeModeExecutorTest.java
index 40a6303a8fb..fa93b3d4ea8 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowComputeNodeModeExecutorTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowComputeNodeModeExecutorTest.java
@@ -22,7 +22,6 @@ import org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
import org.apache.shardingsphere.infra.instance.InstanceContext;
import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
import org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepositoryConfiguration;
-import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
import org.junit.Test;
@@ -37,7 +36,7 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-public final class ShowComputeNodeModeExecutorTest extends ProxyContextRestorer {
+public final class ShowComputeNodeModeExecutorTest {
@Test
public void assertExecute() throws SQLException {
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowComputeNodesExecutorTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowComputeNodesExecutorTest.java
index de6c167813c..a112ed23492 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowComputeNodesExecutorTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowComputeNodesExecutorTest.java
@@ -26,7 +26,6 @@ import org.apache.shardingsphere.infra.instance.metadata.proxy.ProxyInstanceMeta
import org.apache.shardingsphere.infra.merge.result.impl.local.LocalDataQueryResultRow;
import org.apache.shardingsphere.infra.state.StateContext;
import org.apache.shardingsphere.mode.repository.standalone.StandalonePersistRepositoryConfiguration;
-import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
import org.junit.Test;
import java.util.Collection;
@@ -40,7 +39,7 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-public final class ShowComputeNodesExecutorTest extends ProxyContextRestorer {
+public final class ShowComputeNodesExecutorTest {
@Test
public void assertGetColumns() {
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariableExecutorTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariableExecutorTest.java
index a5a9b9b2d9f..6e8041a5eac 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariableExecutorTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariableExecutorTest.java
@@ -28,7 +28,6 @@ import org.apache.shardingsphere.logging.rule.builder.DefaultLoggingRuleConfigur
import org.apache.shardingsphere.proxy.backend.exception.UnsupportedVariableException;
import org.apache.shardingsphere.proxy.backend.handler.distsql.ral.common.enums.VariableEnum;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
import org.apache.shardingsphere.proxy.backend.util.SystemPropertyUtil;
import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
@@ -45,7 +44,7 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-public final class ShowDistVariableExecutorTest extends ProxyContextRestorer {
+public final class ShowDistVariableExecutorTest {
private final ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariablesExecutorTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariablesExecutorTest.java
index 2f2a788b64e..66beb22d1b4 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariablesExecutorTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowDistVariablesExecutorTest.java
@@ -26,7 +26,6 @@ import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRule
import org.apache.shardingsphere.logging.rule.LoggingRule;
import org.apache.shardingsphere.logging.rule.builder.DefaultLoggingRuleConfigurationBuilder;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
import org.apache.shardingsphere.test.util.PropertiesBuilder;
import org.apache.shardingsphere.test.util.PropertiesBuilder.Property;
import org.junit.Test;
@@ -42,7 +41,7 @@ import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
-public final class ShowDistVariablesExecutorTest extends ProxyContextRestorer {
+public final class ShowDistVariablesExecutorTest {
private final ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowStatusFromReadwriteSplittingRulesExecutorTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowStatusFromReadwriteSplittingRulesExecutorTest.java
index 3b69251dd12..3b926188108 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowStatusFromReadwriteSplittingRulesExecutorTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ShowStatusFromReadwriteSplittingRulesExecutorTest.java
@@ -34,12 +34,12 @@ import org.apache.shardingsphere.mode.repository.cluster.ClusterPersistRepositor
import org.apache.shardingsphere.mode.repository.cluster.zookeeper.ZookeeperRepository;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.ShowStatusFromReadwriteSplittingRulesStatement;
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
import org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
import org.junit.Test;
+import org.mockito.MockedStatic;
import java.util.Collection;
import java.util.Collections;
@@ -53,9 +53,10 @@ import static org.hamcrest.MatcherAssert.assertThat;
import static org.junit.Assert.assertFalse;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.when;
-public final class ShowStatusFromReadwriteSplittingRulesExecutorTest extends ProxyContextRestorer {
+public final class ShowStatusFromReadwriteSplittingRulesExecutorTest {
private final ConnectionSession connectionSession = mock(ConnectionSession.class, RETURNS_DEEP_STUBS);
@@ -73,13 +74,25 @@ public final class ShowStatusFromReadwriteSplittingRulesExecutorTest extends Pro
@Test
public void assertGetRowsWithEmptyResult() {
when(connectionSession.getDatabaseName()).thenReturn("readwrite_db");
- ContextManager contextManager = mockContextManager();
- ProxyContext.init(contextManager);
ShowStatusFromReadwriteSplittingRulesExecutor executor = new ShowStatusFromReadwriteSplittingRulesExecutor();
- Collection<LocalDataQueryResultRow> actual = executor.getRows(mockMetaData(), connectionSession,
- new ShowStatusFromReadwriteSplittingRulesStatement(new DatabaseSegment(1, 1, new IdentifierValue("readwrite_db")), null));
- assertThat(actual.size(), is(0));
- assertFalse(actual.iterator().hasNext());
+ ContextManager contextManager = mockContextManager();
+ try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
+ proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ proxyContext.when(() -> ProxyContext.getInstance().databaseExists("readwrite_db")).thenReturn(true);
+ Collection<LocalDataQueryResultRow> actual = executor.getRows(mockMetaData(), connectionSession,
+ new ShowStatusFromReadwriteSplittingRulesStatement(new DatabaseSegment(1, 1, new IdentifierValue("readwrite_db")), null));
+ assertThat(actual.size(), is(0));
+ assertFalse(actual.iterator().hasNext());
+ }
+ }
+
+ private ContextManager mockContextManager() {
+ ClusterPersistRepository clusterPersistRepository = mock(ZookeeperRepository.class);
+ MetaDataPersistService persistService = new MetaDataPersistService(clusterPersistRepository);
+ when(clusterPersistRepository.getChildrenKeys("/nodes/storage_nodes")).thenReturn(Collections.singletonList("ds"));
+ when(clusterPersistRepository.getDirectly("/nodes/storage_nodes/ds")).thenReturn("");
+ MetaDataContexts metaDataContexts = new MetaDataContexts(persistService, mockMetaData());
+ return new ContextManager(metaDataContexts, mock(InstanceContext.class, RETURNS_DEEP_STUBS));
}
private ShardingSphereMetaData mockMetaData() {
@@ -91,13 +104,4 @@ public final class ShowStatusFromReadwriteSplittingRulesExecutorTest extends Pro
databaseMap.put("readwrite_db", database);
return new ShardingSphereMetaData(databaseMap, new ShardingSphereRuleMetaData(Collections.emptyList()), new ConfigurationProperties(new Properties()));
}
-
- private ContextManager mockContextManager() {
- ClusterPersistRepository clusterPersistRepository = mock(ZookeeperRepository.class);
- MetaDataPersistService persistService = new MetaDataPersistService(clusterPersistRepository);
- when(clusterPersistRepository.getChildrenKeys("/nodes/storage_nodes")).thenReturn(Collections.singletonList("ds"));
- when(clusterPersistRepository.getDirectly("/nodes/storage_nodes/ds")).thenReturn("");
- MetaDataContexts metaDataContexts = new MetaDataContexts(persistService, mockMetaData());
- return new ContextManager(metaDataContexts, mock(InstanceContext.class, RETURNS_DEEP_STUBS));
- }
}
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/AlterReadwriteSplittingStorageUnitStatusStatementUpdaterTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/AlterReadwriteSplittingStorageUnitStatusStatementUpdaterTest.java
index 8d9ca1cd529..19aa67ec612 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/AlterReadwriteSplittingStorageUnitStatusStatementUpdaterTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/AlterReadwriteSplittingStorageUnitStatusStatementUpdaterTest.java
@@ -25,9 +25,11 @@ import org.apache.shardingsphere.readwritesplitting.distsql.parser.statement.sta
import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.DatabaseSegment;
import org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
import org.junit.Test;
+import org.mockito.MockedStatic;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.when;
public final class AlterReadwriteSplittingStorageUnitStatusStatementUpdaterTest {
@@ -35,25 +37,36 @@ public final class AlterReadwriteSplittingStorageUnitStatusStatementUpdaterTest
@Test(expected = UnsupportedSQLOperationException.class)
public void assertWithStandaloneMode() {
AlterReadwriteSplittingStorageUnitStatusStatementUpdater updater = new AlterReadwriteSplittingStorageUnitStatusStatementUpdater();
- updater.executeUpdate("foo", new AlterReadwriteSplittingStorageUnitStatusStatement(new DatabaseSegment(1, 1, new IdentifierValue("db")), "group", "read_ds", "ENABLE"));
+ try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
+ proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(mock(ContextManager.class, RETURNS_DEEP_STUBS));
+ updater.executeUpdate("foo", new AlterReadwriteSplittingStorageUnitStatusStatement(new DatabaseSegment(1, 1, new IdentifierValue("db")), "group", "read_ds", "ENABLE"));
+ }
}
@Test(expected = UnknownDatabaseException.class)
public void assertWithUnknownDatabase() {
- ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
- when(contextManager.getInstanceContext().isCluster()).thenReturn(true);
- ProxyContext.init(contextManager);
- AlterReadwriteSplittingStorageUnitStatusStatementUpdater updater = new AlterReadwriteSplittingStorageUnitStatusStatementUpdater();
- updater.executeUpdate("foo", new AlterReadwriteSplittingStorageUnitStatusStatement(new DatabaseSegment(1, 1, new IdentifierValue("db")), "group", "read_ds", "ENABLE"));
+ ContextManager contextManager = mockContextManager();
+ try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
+ proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ AlterReadwriteSplittingStorageUnitStatusStatementUpdater updater = new AlterReadwriteSplittingStorageUnitStatusStatementUpdater();
+ updater.executeUpdate("foo", new AlterReadwriteSplittingStorageUnitStatusStatement(new DatabaseSegment(1, 1, new IdentifierValue("db")), "group", "read_ds", "ENABLE"));
+ }
}
@Test(expected = UnsupportedSQLOperationException.class)
public void assertWithNoReadwriteSplittingRule() {
- ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
- when(contextManager.getMetaDataContexts().getMetaData().containsDatabase("db")).thenReturn(true);
- when(contextManager.getInstanceContext().isCluster()).thenReturn(true);
- ProxyContext.init(contextManager);
- AlterReadwriteSplittingStorageUnitStatusStatementUpdater updater = new AlterReadwriteSplittingStorageUnitStatusStatementUpdater();
- updater.executeUpdate("foo", new AlterReadwriteSplittingStorageUnitStatusStatement(new DatabaseSegment(1, 1, new IdentifierValue("db")), "group", "read_ds", "ENABLE"));
+ ContextManager contextManager = mockContextManager();
+ try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
+ proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ proxyContext.when(() -> ProxyContext.getInstance().databaseExists("db")).thenReturn(true);
+ AlterReadwriteSplittingStorageUnitStatusStatementUpdater updater = new AlterReadwriteSplittingStorageUnitStatusStatementUpdater();
+ updater.executeUpdate("foo", new AlterReadwriteSplittingStorageUnitStatusStatement(new DatabaseSegment(1, 1, new IdentifierValue("db")), "group", "read_ds", "ENABLE"));
+ }
+ }
+
+ private static ContextManager mockContextManager() {
+ ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ when(result.getInstanceContext().isCluster()).thenReturn(true);
+ return result;
}
}
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/RefreshDatabaseMetaDataUpdaterTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/RefreshDatabaseMetaDataUpdaterTest.java
index f12ab0610b4..fe09b3eb8bb 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/RefreshDatabaseMetaDataUpdaterTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/RefreshDatabaseMetaDataUpdaterTest.java
@@ -21,19 +21,21 @@ import org.apache.shardingsphere.dialect.exception.syntax.database.UnknownDataba
import org.apache.shardingsphere.distsql.parser.statement.ral.updatable.RefreshDatabaseMetaDataStatement;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
import org.junit.Test;
+import org.mockito.MockedStatic;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockStatic;
-public final class RefreshDatabaseMetaDataUpdaterTest extends ProxyContextRestorer {
+public final class RefreshDatabaseMetaDataUpdaterTest {
@Test(expected = UnknownDatabaseException.class)
public void assertExecuteWithNoDatabase() {
- ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
- ProxyContext.init(contextManager);
RefreshDatabaseMetaDataUpdater updater = new RefreshDatabaseMetaDataUpdater();
- updater.executeUpdate("foo", mock(RefreshDatabaseMetaDataStatement.class));
+ try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
+ proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(mock(ContextManager.class, RETURNS_DEEP_STUBS));
+ updater.executeUpdate("foo", mock(RefreshDatabaseMetaDataStatement.class));
+ }
}
}
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/UnlabelComputeNodeUpdaterTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/UnlabelComputeNodeUpdaterTest.java
index b708692829a..87021507b27 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/UnlabelComputeNodeUpdaterTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/updatable/UnlabelComputeNodeUpdaterTest.java
@@ -21,19 +21,21 @@ import org.apache.shardingsphere.distsql.parser.statement.ral.updatable.UnlabelC
import org.apache.shardingsphere.infra.util.exception.external.sql.type.generic.UnsupportedSQLOperationException;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
import org.junit.Test;
+import org.mockito.MockedStatic;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockStatic;
-public final class UnlabelComputeNodeUpdaterTest extends ProxyContextRestorer {
+public final class UnlabelComputeNodeUpdaterTest {
@Test(expected = UnsupportedSQLOperationException.class)
public void assertWithStandaloneMode() {
- ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
- ProxyContext.init(contextManager);
- UnlabelComputeNodeUpdater updater = new UnlabelComputeNodeUpdater();
- updater.executeUpdate("foo", mock(UnlabelComputeNodeStatement.class));
+ try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
+ proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(mock(ContextManager.class, RETURNS_DEEP_STUBS));
+ UnlabelComputeNodeUpdater updater = new UnlabelComputeNodeUpdater();
+ updater.executeUpdate("foo", mock(UnlabelComputeNodeStatement.class));
+ }
}
}
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionBackendHandlerFactoryTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionBackendHandlerFactoryTest.java
index 784c0764f5c..14a80c95279 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionBackendHandlerFactoryTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionBackendHandlerFactoryTest.java
@@ -29,14 +29,12 @@ import org.apache.shardingsphere.proxy.backend.connector.jdbc.transaction.Backen
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.CommitStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.RollbackStatement;
import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.TCLStatement;
import org.apache.shardingsphere.transaction.core.TransactionOperationType;
import org.apache.shardingsphere.transaction.rule.TransactionRule;
import org.hamcrest.Matcher;
-import org.junit.Before;
import org.junit.Test;
import org.mockito.Answers;
import org.mockito.MockedStatic;
@@ -55,14 +53,7 @@ import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.when;
-public final class TransactionBackendHandlerFactoryTest extends ProxyContextRestorer {
-
- @Before
- public void setTransactionContexts() {
- ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
- when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(new ShardingSphereRuleMetaData(Collections.singleton(mock(TransactionRule.class))));
- ProxyContext.init(contextManager);
- }
+public final class TransactionBackendHandlerFactoryTest {
@SuppressWarnings("unchecked")
@Test
@@ -73,11 +64,15 @@ public final class TransactionBackendHandlerFactoryTest extends ProxyContextRest
when(connectionSession.getBackendConnection()).thenReturn(backendConnection);
SQLStatementContext<CommitStatement> context = mock(SQLStatementContext.class);
when(context.getSqlStatement()).thenReturn(mock(CommitStatement.class));
- ProxyBackendHandler proxyBackendHandler = TransactionBackendHandlerFactory.newInstance(context, null, connectionSession);
- assertThat(proxyBackendHandler, instanceOf(TransactionBackendHandler.class));
- TransactionBackendHandler transactionBackendHandler = (TransactionBackendHandler) proxyBackendHandler;
- assertFieldOfInstance(transactionBackendHandler, "operationType", is(TransactionOperationType.COMMIT));
- assertFieldOfInstance(getBackendTransactionManager(transactionBackendHandler), "connection", is(backendConnection));
+ ContextManager contextManager = mockContextManager();
+ try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
+ proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ ProxyBackendHandler proxyBackendHandler = TransactionBackendHandlerFactory.newInstance(context, null, connectionSession);
+ assertThat(proxyBackendHandler, instanceOf(TransactionBackendHandler.class));
+ TransactionBackendHandler transactionBackendHandler = (TransactionBackendHandler) proxyBackendHandler;
+ assertFieldOfInstance(transactionBackendHandler, "operationType", is(TransactionOperationType.COMMIT));
+ assertFieldOfInstance(getBackendTransactionManager(transactionBackendHandler), "connection", is(backendConnection));
+ }
}
@Test
@@ -88,11 +83,21 @@ public final class TransactionBackendHandlerFactoryTest extends ProxyContextRest
when(connectionSession.getBackendConnection()).thenReturn(backendConnection);
SQLStatementContext<RollbackStatement> context = mock(SQLStatementContext.class);
when(context.getSqlStatement()).thenReturn(mock(RollbackStatement.class));
- ProxyBackendHandler proxyBackendHandler = TransactionBackendHandlerFactory.newInstance(context, null, connectionSession);
- assertThat(proxyBackendHandler, instanceOf(TransactionBackendHandler.class));
- TransactionBackendHandler transactionBackendHandler = (TransactionBackendHandler) proxyBackendHandler;
- assertFieldOfInstance(transactionBackendHandler, "operationType", is(TransactionOperationType.ROLLBACK));
- assertFieldOfInstance(getBackendTransactionManager(transactionBackendHandler), "connection", is(backendConnection));
+ ContextManager contextManager = mockContextManager();
+ try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
+ proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ ProxyBackendHandler proxyBackendHandler = TransactionBackendHandlerFactory.newInstance(context, null, connectionSession);
+ assertThat(proxyBackendHandler, instanceOf(TransactionBackendHandler.class));
+ TransactionBackendHandler transactionBackendHandler = (TransactionBackendHandler) proxyBackendHandler;
+ assertFieldOfInstance(transactionBackendHandler, "operationType", is(TransactionOperationType.ROLLBACK));
+ assertFieldOfInstance(getBackendTransactionManager(transactionBackendHandler), "connection", is(backendConnection));
+ }
+ }
+
+ private static ContextManager mockContextManager() {
+ ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(new ShardingSphereRuleMetaData(Collections.singleton(mock(TransactionRule.class))));
+ return result;
}
@SuppressWarnings("unchecked")
diff --git a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionBackendHandlerTest.java b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionBackendHandlerTest.java
index e5a9b0d2357..e9e28f29b7a 100644
--- a/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionBackendHandlerTest.java
+++ b/proxy/backend/core/src/test/java/org/apache/shardingsphere/proxy/backend/handler/transaction/TransactionBackendHandlerTest.java
@@ -23,12 +23,11 @@ import org.apache.shardingsphere.proxy.backend.connector.BackendConnection;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.response.header.update.UpdateResponseHeader;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import org.apache.shardingsphere.proxy.backend.util.ProxyContextRestorer;
import org.apache.shardingsphere.sql.parser.sql.common.statement.tcl.TCLStatement;
import org.apache.shardingsphere.transaction.core.TransactionOperationType;
import org.apache.shardingsphere.transaction.rule.TransactionRule;
-import org.junit.Before;
import org.junit.Test;
+import org.mockito.MockedStatic;
import java.sql.SQLException;
import java.util.Collections;
@@ -37,24 +36,28 @@ import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.when;
-public final class TransactionBackendHandlerTest extends ProxyContextRestorer {
+public final class TransactionBackendHandlerTest {
private final ConnectionSession connectionSession = mock(ConnectionSession.class, RETURNS_DEEP_STUBS);
- @Before
- public void setTransactionContexts() {
- ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
- when(contextManager.getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(new ShardingSphereRuleMetaData(Collections.singleton(mock(TransactionRule.class))));
- ProxyContext.init(contextManager);
- }
-
@Test
public void assertExecute() throws SQLException {
BackendConnection backendConnection = mock(BackendConnection.class);
when(connectionSession.getBackendConnection()).thenReturn(backendConnection);
when(backendConnection.getConnectionSession()).thenReturn(connectionSession);
- assertThat(new TransactionBackendHandler(mock(TCLStatement.class), TransactionOperationType.BEGIN, connectionSession).execute(), instanceOf(UpdateResponseHeader.class));
+ ContextManager contextManager = mockContextManager();
+ try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
+ proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ assertThat(new TransactionBackendHandler(mock(TCLStatement.class), TransactionOperationType.BEGIN, connectionSession).execute(), instanceOf(UpdateResponseHeader.class));
+ }
+ }
+
+ private static ContextManager mockContextManager() {
+ ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
+ when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData()).thenReturn(new ShardingSphereRuleMetaData(Collections.singleton(mock(TransactionRule.class))));
+ return result;
}
}