You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2023/03/01 12:43:52 UTC
[shardingsphere] branch master updated: Use AutoMockExtension on backend proxy modules (#24408)
This is an automated email from the ASF dual-hosted git repository.
panjuan 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 561391b22af Use AutoMockExtension on backend proxy modules (#24408)
561391b22af is described below
commit 561391b22afade9b37e47b1c4829ae20574a6bbc
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Wed Mar 1 20:43:43 2023 +0800
Use AutoMockExtension on backend proxy modules (#24408)
---
...StatementMemoryStrictlyFetchSizeSetterTest.java | 17 +--
.../executor/MySQLAdminExecutorCreatorTest.java | 26 ++--
.../MySQLSetVariableAdminExecutorTest.java | 22 ++--
.../executor/ShowCreateDatabaseExecutorTest.java | 35 +++---
.../executor/ShowCurrentUserExecutorTest.java | 21 ++--
.../admin/executor/ShowDatabasesExecutorTest.java | 112 ++++++++---------
.../executor/ShowFunctionStatusExecutorTest.java | 26 ++--
.../executor/ShowProcedureStatusExecutorTest.java | 26 ++--
.../executor/ShowProcessListExecutorTest.java | 38 +++---
.../admin/executor/ShowTablesExecutorTest.java | 133 ++++++++++-----------
.../admin/executor/UseDatabaseExecutorTest.java | 33 +++--
.../SelectInformationSchemataExecutorTest.java | 91 +++++++-------
proxy/backend/type/opengauss/pom.xml | 6 +
...StatementMemoryStrictlyFetchSizeSetterTest.java | 17 +--
...enGaussSystemCatalogAdminQueryExecutorTest.java | 113 +++++++++--------
...StatementMemoryStrictlyFetchSizeSetterTest.java | 17 +--
...ostgreSQLDefaultSessionVariableHandlerTest.java | 2 +-
.../PostgreSQLResetVariableAdminExecutorTest.java | 2 +-
.../PostgreSQLSetVariableAdminExecutorTest.java | 2 +-
.../admin/executor/SelectDatabaseExecutorTest.java | 89 +++++++-------
.../admin/executor/SelectTableExecutorTest.java | 43 +++----
proxy/frontend/type/opengauss/pom.xml | 2 +-
22 files changed, 406 insertions(+), 467 deletions(-)
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/connector/jdbc/statement/MySQLStatementMemoryStrictlyFetchSizeSetterTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/connector/jdbc/statement/MySQLStatementMemoryStrictlyFetchSizeSetterTest.java
index 04f0ead1786..c2b6fa7508c 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/connector/jdbc/statement/MySQLStatementMemoryStrictlyFetchSizeSetterTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/connector/jdbc/statement/MySQLStatementMemoryStrictlyFetchSizeSetterTest.java
@@ -20,29 +20,30 @@ package org.apache.shardingsphere.proxy.backend.mysql.connector.jdbc.statement;
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.sql.SQLException;
import java.sql.Statement;
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.verify;
import static org.mockito.Mockito.when;
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
public final class MySQLStatementMemoryStrictlyFetchSizeSetterTest {
@Test
public void assertSetFetchSize() throws SQLException {
Statement statement = mock(Statement.class);
ContextManager contextManager = mockContextManager();
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- new MySQLStatementMemoryStrictlyFetchSizeSetter().setFetchSize(statement);
- verify(statement).setFetchSize(Integer.MIN_VALUE);
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ new MySQLStatementMemoryStrictlyFetchSizeSetter().setFetchSize(statement);
+ verify(statement).setFetchSize(Integer.MIN_VALUE);
}
private static ContextManager mockContextManager() {
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/MySQLAdminExecutorCreatorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/MySQLAdminExecutorCreatorTest.java
index 68f5b344f66..391f2d67d79 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/MySQLAdminExecutorCreatorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/MySQLAdminExecutorCreatorTest.java
@@ -50,12 +50,11 @@ import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQ
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dml.MySQLDeleteStatement;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dml.MySQLSelectStatement;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
-import org.junit.jupiter.api.AfterEach;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
-import org.mockito.MockedStatic;
-import org.mockito.junit.jupiter.MockitoExtension;
import java.util.Collections;
import java.util.Map;
@@ -69,23 +68,16 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
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;
-@ExtendWith(MockitoExtension.class)
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
public final class MySQLAdminExecutorCreatorTest {
- private final MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS);
-
@SuppressWarnings("rawtypes")
@Mock
private SQLStatementContext sqlStatementContext;
- @AfterEach
- public void tearDown() {
- proxyContext.close();
- }
-
@Test
public void assertCreateWithMySQLShowFunctionStatus() {
when(sqlStatementContext.getSqlStatement()).thenReturn(new MySQLShowFunctionStatusStatement());
@@ -256,8 +248,8 @@ public final class MySQLAdminExecutorCreatorTest {
ShardingSphereDatabase database = new ShardingSphereDatabase("db_0", mock(DatabaseType.class), resourceMetaData, mock(ShardingSphereRuleMetaData.class), Collections.emptyMap());
Map<String, ShardingSphereDatabase> result = Collections.singletonMap("db_0", database);
initProxyContext(result);
- proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("db_0"));
- proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db_0")).thenReturn(database);
+ when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("db_0"));
+ when(ProxyContext.getInstance().getDatabase("db_0")).thenReturn(database);
MySQLSelectStatement mySQLSelectStatement = mock(MySQLSelectStatement.class);
when(mySQLSelectStatement.getFrom()).thenReturn(null);
ProjectionsSegment projectionsSegment = mock(ProjectionsSegment.class);
@@ -274,8 +266,8 @@ public final class MySQLAdminExecutorCreatorTest {
ShardingSphereDatabase database = new ShardingSphereDatabase("db_0", mock(DatabaseType.class), resourceMetaData, mock(ShardingSphereRuleMetaData.class), Collections.emptyMap());
Map<String, ShardingSphereDatabase> result = Collections.singletonMap("db_0", database);
initProxyContext(result);
- proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("db_0"));
- proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db_0")).thenReturn(database);
+ when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("db_0"));
+ when(ProxyContext.getInstance().getDatabase("db_0")).thenReturn(database);
MySQLSelectStatement mySQLSelectStatement = mock(MySQLSelectStatement.class);
when(mySQLSelectStatement.getFrom()).thenReturn(null);
ProjectionsSegment projectionsSegment = mock(ProjectionsSegment.class);
@@ -342,7 +334,7 @@ public final class MySQLAdminExecutorCreatorTest {
MetaDataContexts metaDataContexts = new MetaDataContexts(mock(MetaDataPersistService.class),
new ShardingSphereMetaData(databases, mock(ShardingSphereRuleMetaData.class), new ConfigurationProperties(new Properties())));
when(contextManager.getMetaDataContexts()).thenReturn(metaDataContexts);
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
}
@Test
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/MySQLSetVariableAdminExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/MySQLSetVariableAdminExecutorTest.java
index 7a9d9212ac9..2d9946257a1 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/MySQLSetVariableAdminExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/MySQLSetVariableAdminExecutorTest.java
@@ -32,10 +32,11 @@ import org.apache.shardingsphere.sql.parser.sql.common.segment.dal.VariableAssig
import org.apache.shardingsphere.sql.parser.sql.common.segment.dal.VariableSegment;
import org.apache.shardingsphere.sql.parser.sql.common.statement.dal.SetStatement;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLSetStatement;
-import org.junit.jupiter.api.AfterEach;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.MockedConstruction;
-import org.mockito.MockedStatic;
import java.sql.SQLException;
import java.util.Collections;
@@ -43,30 +44,24 @@ import java.util.Collections;
import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.mockConstruction;
-import static org.mockito.Mockito.mockStatic;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
public final class MySQLSetVariableAdminExecutorTest {
- private final MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS);
-
- @AfterEach
- public void tearDown() {
- proxyContext.close();
- }
-
@Test
public void assertExecute() throws SQLException {
SetStatement setStatement = prepareSetStatement();
MySQLSetVariableAdminExecutor executor = new MySQLSetVariableAdminExecutor(setStatement);
ConnectionSession connectionSession = mock(ConnectionSession.class);
- when(connectionSession.getDatabaseName()).thenReturn("db");
+ when(connectionSession.getDatabaseName()).thenReturn("foo_db");
BackendConnection backendConnection = mock(BackendConnection.class);
when(connectionSession.getBackendConnection()).thenReturn(backendConnection);
when(backendConnection.getConnectionSession()).thenReturn(connectionSession);
ContextManager contextManager = mockContextManager();
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
try (MockedConstruction<DatabaseConnector> mockConstruction = mockConstruction(DatabaseConnector.class)) {
executor.execute(connectionSession);
verify(mockConstruction.constructed().get(0)).execute();
@@ -94,8 +89,7 @@ public final class MySQLSetVariableAdminExecutorTest {
private ContextManager mockContextManager() {
ContextManager result = mock(ContextManager.class, RETURNS_DEEP_STUBS);
- when(result.getMetaDataContexts().getMetaData().getDatabase("db")).thenReturn(mock(ShardingSphereDatabase.class));
- when(result.getMetaDataContexts().getMetaData().containsDatabase("db")).thenReturn(true);
+ when(result.getMetaDataContexts().getMetaData().getDatabase("foo_db")).thenReturn(mock(ShardingSphereDatabase.class));
when(result.getMetaDataContexts().getMetaData().getGlobalRuleMetaData())
.thenReturn(new ShardingSphereRuleMetaData(Collections.singleton(new SQLParserRule(new SQLParserRuleConfiguration(false, new CacheOption(1, 1), new CacheOption(1, 1))))));
return result;
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowCreateDatabaseExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowCreateDatabaseExecutorTest.java
index b5d06b5cffb..6119384195a 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowCreateDatabaseExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowCreateDatabaseExecutorTest.java
@@ -22,15 +22,16 @@ import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.metadata.user.Grantee;
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.session.ConnectionSession;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowCreateDatabaseStatement;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.sql.SQLException;
import java.util.HashMap;
@@ -41,9 +42,10 @@ import static org.hamcrest.CoreMatchers.is;
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;
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
public final class ShowCreateDatabaseExecutorTest {
private static final String DATABASE_PATTERN = "db_%s";
@@ -54,16 +56,14 @@ public final class ShowCreateDatabaseExecutorTest {
statement.setDatabaseName("db_0");
ShowCreateDatabaseExecutor executor = new ShowCreateDatabaseExecutor(statement);
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_0")).thenReturn(true);
- executor.execute(mockConnectionSession());
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
- int count = 0;
- while (executor.getMergedResult().next()) {
- assertThat(executor.getMergedResult().getValue(1, Object.class), is(String.format(DATABASE_PATTERN, count)));
- count++;
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().databaseExists("db_0")).thenReturn(true);
+ executor.execute(mock(ConnectionSession.class));
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
+ int count = 0;
+ while (executor.getMergedResult().next()) {
+ assertThat(executor.getMergedResult().getValue(1, Object.class), is(String.format(DATABASE_PATTERN, count)));
+ count++;
}
}
@@ -85,11 +85,4 @@ public final class ShowCreateDatabaseExecutorTest {
}
return result;
}
-
- private ConnectionSession mockConnectionSession() {
- ConnectionSession result = mock(ConnectionSession.class);
- when(result.getGrantee()).thenReturn(new Grantee("root", ""));
- when(result.getDatabaseName()).thenReturn(String.format(DATABASE_PATTERN, 0));
- return result;
- }
}
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowCurrentUserExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowCurrentUserExecutorTest.java
index 01697eedb82..e8c73d60f5a 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowCurrentUserExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowCurrentUserExecutorTest.java
@@ -28,8 +28,10 @@ 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.session.ConnectionSession;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.sql.SQLException;
import java.util.Collections;
@@ -41,9 +43,10 @@ import static org.hamcrest.CoreMatchers.is;
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;
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
public final class ShowCurrentUserExecutorTest {
private static final Grantee GRANTEE = new Grantee("root", "");
@@ -52,13 +55,11 @@ public final class ShowCurrentUserExecutorTest {
public void assertExecute() throws SQLException {
ShowCurrentUserExecutor executor = new ShowCurrentUserExecutor();
ContextManager contextManager = mockContextManager();
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- executor.execute(mockConnectionSession());
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
- while (executor.getMergedResult().next()) {
- assertThat(executor.getMergedResult().getValue(1, Object.class), is("root@%"));
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ executor.execute(mockConnectionSession());
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
+ while (executor.getMergedResult().next()) {
+ assertThat(executor.getMergedResult().getValue(1, Object.class), is("root@%"));
}
}
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowDatabasesExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowDatabasesExecutorTest.java
index 71d1b2c13c5..1611909c0f5 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowDatabasesExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowDatabasesExecutorTest.java
@@ -33,8 +33,12 @@ import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dal.ShowFilterSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dal.ShowLikeSegment;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowDatabasesStatement;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
import java.sql.SQLException;
import java.util.Collection;
@@ -51,26 +55,24 @@ import static org.hamcrest.CoreMatchers.is;
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;
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
public final class ShowDatabasesExecutorTest {
private static final String DATABASE_PATTERN = "database_%s";
- private ShowDatabasesExecutor executor = new ShowDatabasesExecutor(new MySQLShowDatabasesStatement());
-
@Test
public void assertExecute() throws SQLException {
ContextManager contextManager = mockContextManager();
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames())
- .thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
- executor.execute(mockConnectionSession());
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
- assertThat(getActual(), is(getExpected()));
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
+ ShowDatabasesExecutor executor = new ShowDatabasesExecutor(new MySQLShowDatabasesStatement());
+ executor.execute(mockConnectionSession());
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
+ assertThat(getActual(executor), is(getExpected()));
}
@Test
@@ -81,17 +83,14 @@ public final class ShowDatabasesExecutorTest {
showFilterSegment.setLike(showLikeSegment);
showDatabasesStatement.setFilter(showFilterSegment);
ContextManager contextManager = mockContextManager();
- executor = new ShowDatabasesExecutor(showDatabasesStatement);
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames())
- .thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
- executor.execute(mockConnectionSession());
- assertThat(getActual(), is(getExpected()));
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
+ ShowDatabasesExecutor executor = new ShowDatabasesExecutor(showDatabasesStatement);
+ executor.execute(mockConnectionSession());
+ assertThat(getActual(executor), is(getExpected()));
}
- private Collection<String> getActual() throws SQLException {
+ private Collection<String> getActual(final ShowDatabasesExecutor executor) throws SQLException {
Map<String, String> result = new ConcurrentHashMap<>(10, 1);
while (executor.getMergedResult().next()) {
String value = executor.getMergedResult().getValue(1, Object.class).toString();
@@ -116,21 +115,18 @@ public final class ShowDatabasesExecutorTest {
ShowLikeSegment showLikeSegment = new ShowLikeSegment(0, 0, "%_1");
showFilterSegment.setLike(showLikeSegment);
showDatabasesStatement.setFilter(showFilterSegment);
- executor = new ShowDatabasesExecutor(showDatabasesStatement);
ContextManager contextManager = mockContextManager();
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames())
- .thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
- executor.execute(mockConnectionSession());
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
- int count = 0;
- while (executor.getMergedResult().next()) {
- assertThat(executor.getMergedResult().getValue(1, Object.class), is("database_1"));
- count++;
- }
- assertThat(count, is(1));
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
+ ShowDatabasesExecutor executor = new ShowDatabasesExecutor(showDatabasesStatement);
+ executor.execute(mockConnectionSession());
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
+ int count = 0;
+ while (executor.getMergedResult().next()) {
+ assertThat(executor.getMergedResult().getValue(1, Object.class), is("database_1"));
+ count++;
}
+ assertThat(count, is(1));
}
@Test
@@ -140,21 +136,18 @@ public final class ShowDatabasesExecutorTest {
ShowLikeSegment showLikeSegment = new ShowLikeSegment(0, 0, "database_9");
showFilterSegment.setLike(showLikeSegment);
showDatabasesStatement.setFilter(showFilterSegment);
- executor = new ShowDatabasesExecutor(showDatabasesStatement);
ContextManager contextManager = mockContextManager();
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames())
- .thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
- executor.execute(mockConnectionSession());
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
- int count = 0;
- while (executor.getMergedResult().next()) {
- assertThat(executor.getMergedResult().getValue(1, Object.class), is("database_9"));
- count++;
- }
- assertThat(count, is(1));
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
+ ShowDatabasesExecutor executor = new ShowDatabasesExecutor(showDatabasesStatement);
+ executor.execute(mockConnectionSession());
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
+ int count = 0;
+ while (executor.getMergedResult().next()) {
+ assertThat(executor.getMergedResult().getValue(1, Object.class), is("database_9"));
+ count++;
}
+ assertThat(count, is(1));
}
@Test
@@ -164,21 +157,18 @@ public final class ShowDatabasesExecutorTest {
ShowLikeSegment showLikeSegment = new ShowLikeSegment(0, 0, "not_exist_database");
showFilterSegment.setLike(showLikeSegment);
showDatabasesStatement.setFilter(showFilterSegment);
- executor = new ShowDatabasesExecutor(showDatabasesStatement);
ContextManager contextManager = mockContextManager();
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames())
- .thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
- executor.execute(mockConnectionSession());
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
- int count = 0;
- while (executor.getMergedResult().next()) {
- assertThat(executor.getMergedResult().getValue(1, Object.class), is("not_exist_database"));
- count++;
- }
- assertThat(count, is(0));
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(IntStream.range(0, 10).mapToObj(each -> String.format("database_%s", each)).collect(Collectors.toList()));
+ ShowDatabasesExecutor executor = new ShowDatabasesExecutor(showDatabasesStatement);
+ executor.execute(mockConnectionSession());
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(1));
+ int count = 0;
+ while (executor.getMergedResult().next()) {
+ assertThat(executor.getMergedResult().getValue(1, Object.class), is("not_exist_database"));
+ count++;
}
+ assertThat(count, is(0));
}
private ContextManager mockContextManager() {
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowFunctionStatusExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowFunctionStatusExecutorTest.java
index e59df62616f..003ee8a34c6 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowFunctionStatusExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowFunctionStatusExecutorTest.java
@@ -22,15 +22,16 @@ import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.metadata.user.Grantee;
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.session.ConnectionSession;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowFunctionStatusStatement;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.sql.SQLException;
import java.util.HashMap;
@@ -41,9 +42,10 @@ import static org.hamcrest.CoreMatchers.is;
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;
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
public final class ShowFunctionStatusExecutorTest {
private static final String DATABASE_PATTERN = "db_%s";
@@ -52,11 +54,9 @@ public final class ShowFunctionStatusExecutorTest {
public void assertExecute() throws SQLException {
ShowFunctionStatusExecutor executor = new ShowFunctionStatusExecutor(new MySQLShowFunctionStatusStatement());
ContextManager contextManager = mockContextManager();
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- executor.execute(mockConnectionSession());
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(11));
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ executor.execute(mock(ConnectionSession.class));
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(11));
}
private ContextManager mockContextManager() {
@@ -72,17 +72,9 @@ public final class ShowFunctionStatusExecutorTest {
Map<String, ShardingSphereDatabase> result = new HashMap<>(10, 1);
for (int i = 0; i < 10; i++) {
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(database.isComplete()).thenReturn(false);
when(database.getProtocolType()).thenReturn(new MySQLDatabaseType());
result.put(String.format(DATABASE_PATTERN, i), database);
}
return result;
}
-
- private ConnectionSession mockConnectionSession() {
- ConnectionSession result = mock(ConnectionSession.class);
- when(result.getGrantee()).thenReturn(new Grantee("root", ""));
- when(result.getDatabaseName()).thenReturn(String.format(DATABASE_PATTERN, 0));
- return result;
- }
}
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcedureStatusExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcedureStatusExecutorTest.java
index e04c912ac8d..b5be6fe7e60 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcedureStatusExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcedureStatusExecutorTest.java
@@ -22,15 +22,16 @@ import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
-import org.apache.shardingsphere.infra.metadata.user.Grantee;
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.session.ConnectionSession;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowProcedureStatusStatement;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.sql.SQLException;
import java.util.HashMap;
@@ -41,9 +42,10 @@ import static org.hamcrest.CoreMatchers.is;
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;
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
public final class ShowProcedureStatusExecutorTest {
private static final String DATABASE_PATTERN = "db_%s";
@@ -52,11 +54,9 @@ public final class ShowProcedureStatusExecutorTest {
public void assertExecute() throws SQLException {
ShowProcedureStatusExecutor executor = new ShowProcedureStatusExecutor(new MySQLShowProcedureStatusStatement());
ContextManager contextManager = mockContextManager();
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- executor.execute(mockConnectionSession());
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(11));
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ executor.execute(mock(ConnectionSession.class));
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(11));
}
private ContextManager mockContextManager() {
@@ -72,17 +72,9 @@ public final class ShowProcedureStatusExecutorTest {
Map<String, ShardingSphereDatabase> result = new HashMap<>(10, 1);
for (int i = 0; i < 10; i++) {
ShardingSphereDatabase database = mock(ShardingSphereDatabase.class, RETURNS_DEEP_STUBS);
- when(database.isComplete()).thenReturn(false);
when(database.getProtocolType()).thenReturn(new MySQLDatabaseType());
result.put(String.format(DATABASE_PATTERN, i), database);
}
return result;
}
-
- private ConnectionSession mockConnectionSession() {
- ConnectionSession result = mock(ConnectionSession.class);
- when(result.getGrantee()).thenReturn(new Grantee("root", ""));
- when(result.getDatabaseName()).thenReturn(String.format(DATABASE_PATTERN, 0));
- return result;
- }
}
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutorTest.java
index 86c27f0cd3d..001cfc3ad1e 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowProcessListExecutorTest.java
@@ -23,9 +23,11 @@ import org.apache.shardingsphere.infra.merge.result.MergedResult;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
import org.apache.shardingsphere.transaction.api.TransactionType;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.internal.configuration.plugins.Plugins;
import java.sql.SQLException;
@@ -35,28 +37,28 @@ import static org.hamcrest.CoreMatchers.is;
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;
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
public final class ShowProcessListExecutorTest {
@Test
public void assertExecute() throws SQLException, ReflectiveOperationException {
ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS);
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- ShowProcessListExecutor showProcessListExecutor = new ShowProcessListExecutor();
- setupBatchProcessContexts(showProcessListExecutor);
- showProcessListExecutor.execute(new ConnectionSession(mock(MySQLDatabaseType.class), TransactionType.LOCAL, new DefaultAttributeMap()));
- assertThat(showProcessListExecutor.getQueryResultMetaData().getColumnCount(), is(8));
- MergedResult mergedResult = showProcessListExecutor.getMergedResult();
- while (mergedResult.next()) {
- assertThat(mergedResult.getValue(1, String.class), is("f6c2336a-63ba-41bf-941e-2e3504eb2c80"));
- assertThat(mergedResult.getValue(2, String.class), is("sharding"));
- assertThat(mergedResult.getValue(3, String.class), is("127.0.0.1"));
- assertThat(mergedResult.getValue(4, String.class), is("sharding_db"));
- assertThat(mergedResult.getValue(7, String.class), is("Executing 1/2"));
- assertThat(mergedResult.getValue(8, String.class), is("alter table t_order add column a varchar(64) after order_id"));
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ ShowProcessListExecutor showProcessListExecutor = new ShowProcessListExecutor();
+ setupBatchProcessContexts(showProcessListExecutor);
+ showProcessListExecutor.execute(new ConnectionSession(mock(MySQLDatabaseType.class), TransactionType.LOCAL, new DefaultAttributeMap()));
+ assertThat(showProcessListExecutor.getQueryResultMetaData().getColumnCount(), is(8));
+ MergedResult mergedResult = showProcessListExecutor.getMergedResult();
+ while (mergedResult.next()) {
+ assertThat(mergedResult.getValue(1, String.class), is("f6c2336a-63ba-41bf-941e-2e3504eb2c80"));
+ assertThat(mergedResult.getValue(2, String.class), is("sharding"));
+ assertThat(mergedResult.getValue(3, String.class), is("127.0.0.1"));
+ assertThat(mergedResult.getValue(4, String.class), is("sharding_db"));
+ assertThat(mergedResult.getValue(7, String.class), is("Executing 1/2"));
+ assertThat(mergedResult.getValue(8, String.class), is("alter table t_order add column a varchar(64) after order_id"));
}
}
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowTablesExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowTablesExecutorTest.java
index 9990c135ecf..db8ac8fe43f 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowTablesExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/ShowTablesExecutorTest.java
@@ -27,7 +27,6 @@ import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
import org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereTable;
-import org.apache.shardingsphere.infra.metadata.user.Grantee;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
@@ -39,8 +38,12 @@ import org.apache.shardingsphere.sql.parser.sql.common.segment.dal.ShowLikeSegme
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.sql.parser.sql.dialect.statement.mysql.dal.MySQLShowTablesStatement;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
import java.sql.SQLException;
import java.util.Collections;
@@ -51,12 +54,14 @@ import java.util.Properties;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertFalse;
+import static org.junit.jupiter.api.Assertions.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;
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
public final class ShowTablesExecutorTest {
private static final String DATABASE_PATTERN = "db_%s";
@@ -66,21 +71,19 @@ public final class ShowTablesExecutorTest {
ShowTablesExecutor executor = new ShowTablesExecutor(new MySQLShowTablesStatement(), DatabaseTypeEngine.getDatabaseType("MySQL"));
Map<String, ShardingSphereDatabase> databases = getDatabases();
ContextManager contextManager = mockContextManager(databases);
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
- executor.execute(mockConnectionSession());
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
- executor.getMergedResult().next();
- assertThat(executor.getMergedResult().getValue(1, Object.class), is("T_TEST"));
- executor.getMergedResult().next();
- assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account"));
- executor.getMergedResult().next();
- assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account_bak"));
- executor.getMergedResult().next();
- assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account_detail"));
- assertFalse(executor.getMergedResult().next());
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
+ executor.execute(mockConnectionSession());
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
+ executor.getMergedResult().next();
+ assertThat(executor.getMergedResult().getValue(1, Object.class), is("T_TEST"));
+ executor.getMergedResult().next();
+ assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account"));
+ executor.getMergedResult().next();
+ assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account_bak"));
+ executor.getMergedResult().next();
+ assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account_detail"));
+ assertFalse(executor.getMergedResult().next());
}
@Test
@@ -92,19 +95,17 @@ public final class ShowTablesExecutorTest {
ShowTablesExecutor executor = new ShowTablesExecutor(showTablesStatement, new MySQLDatabaseType());
Map<String, ShardingSphereDatabase> databases = getDatabases();
ContextManager contextManager = mockContextManager(databases);
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
- executor.execute(mockConnectionSession());
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
- executor.getMergedResult().next();
- assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account"));
- executor.getMergedResult().next();
- assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account_bak"));
- executor.getMergedResult().next();
- assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account_detail"));
- assertFalse(executor.getMergedResult().next());
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
+ executor.execute(mockConnectionSession());
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
+ executor.getMergedResult().next();
+ assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account"));
+ executor.getMergedResult().next();
+ assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account_bak"));
+ executor.getMergedResult().next();
+ assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account_detail"));
+ assertFalse(executor.getMergedResult().next());
}
@Test
@@ -116,15 +117,13 @@ public final class ShowTablesExecutorTest {
ShowTablesExecutor executor = new ShowTablesExecutor(showTablesStatement, new MySQLDatabaseType());
Map<String, ShardingSphereDatabase> databases = getDatabases();
ContextManager contextManager = mockContextManager(databases);
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
- executor.execute(mockConnectionSession());
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
- executor.getMergedResult().next();
- assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account"));
- assertFalse(executor.getMergedResult().next());
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
+ executor.execute(mockConnectionSession());
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
+ executor.getMergedResult().next();
+ assertThat(executor.getMergedResult().getValue(1, Object.class), is("t_account"));
+ assertFalse(executor.getMergedResult().next());
}
@Test
@@ -136,15 +135,13 @@ public final class ShowTablesExecutorTest {
ShowTablesExecutor executor = new ShowTablesExecutor(showTablesStatement, new MySQLDatabaseType());
Map<String, ShardingSphereDatabase> databases = getDatabases();
ContextManager contextManager = mockContextManager(databases);
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
- executor.execute(mockConnectionSession());
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
- executor.getMergedResult().next();
- assertThat(executor.getMergedResult().getValue(1, Object.class), is("T_TEST"));
- assertFalse(executor.getMergedResult().next());
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
+ executor.execute(mockConnectionSession());
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
+ executor.getMergedResult().next();
+ assertThat(executor.getMergedResult().getValue(1, Object.class), is("T_TEST"));
+ assertFalse(executor.getMergedResult().next());
}
@Test
@@ -156,15 +153,13 @@ public final class ShowTablesExecutorTest {
ShowTablesExecutor executor = new ShowTablesExecutor(showTablesStatement, new MySQLDatabaseType());
Map<String, ShardingSphereDatabase> databases = getDatabases();
ContextManager contextManager = mockContextManager(databases);
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
- executor.execute(mockConnectionSession());
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
- executor.getMergedResult().next();
- assertThat(executor.getMergedResult().getValue(1, Object.class), is("T_TEST"));
- assertFalse(executor.getMergedResult().next());
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getDatabase("db_0")).thenReturn(databases.get("db_0"));
+ executor.execute(mockConnectionSession());
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
+ executor.getMergedResult().next();
+ assertThat(executor.getMergedResult().getValue(1, Object.class), is("T_TEST"));
+ assertFalse(executor.getMergedResult().next());
}
@Test
@@ -173,15 +168,13 @@ public final class ShowTablesExecutorTest {
showTablesStatement.setFromSchema(new FromSchemaSegment(0, 0, new DatabaseSegment(0, 0, new IdentifierValue("uncompleted"))));
ShowTablesExecutor executor = new ShowTablesExecutor(showTablesStatement, new MySQLDatabaseType());
ContextManager contextManager = mockContextManager(getDatabases());
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- executor.execute(mockConnectionSession());
- QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
- assertThat(actualMetaData.getColumnCount(), is(2));
- assertThat(actualMetaData.getColumnName(1), is("Tables_in_uncompleted"));
- MergedResult actualResult = executor.getMergedResult();
- assertFalse(actualResult.next());
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ executor.execute(mockConnectionSession());
+ QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
+ assertThat(actualMetaData.getColumnCount(), is(2));
+ assertThat(actualMetaData.getColumnName(1), is("Tables_in_uncompleted"));
+ MergedResult actualResult = executor.getMergedResult();
+ assertFalse(actualResult.next());
}
private ContextManager mockContextManager(final Map<String, ShardingSphereDatabase> databases) {
@@ -206,14 +199,12 @@ public final class ShowTablesExecutorTest {
Map<String, ShardingSphereDatabase> result = new HashMap<>(2, 1);
result.put(String.format(DATABASE_PATTERN, 0), database);
ShardingSphereDatabase uncompletedDatabase = mock(ShardingSphereDatabase.class);
- when(uncompletedDatabase.isComplete()).thenReturn(false);
result.put("uncompleted", uncompletedDatabase);
return result;
}
private ConnectionSession mockConnectionSession() {
ConnectionSession result = mock(ConnectionSession.class);
- when(result.getGrantee()).thenReturn(new Grantee("root", ""));
when(result.getDatabaseName()).thenReturn(String.format(DATABASE_PATTERN, 0));
return result;
}
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/UseDatabaseExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/UseDatabaseExecutorTest.java
index 25fbc7e6779..ab3b8d03e32 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/UseDatabaseExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/UseDatabaseExecutorTest.java
@@ -29,25 +29,26 @@ import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.mysql.dal.MySQLUseStatement;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
-import org.mockito.MockedStatic;
-import org.mockito.junit.MockitoJUnitRunner;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
import java.util.Properties;
+import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.anyString;
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.verify;
import static org.mockito.Mockito.when;
-@RunWith(MockitoJUnitRunner.class)
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
public final class UseDatabaseExecutorTest {
private static final String DATABASE_PATTERN = "db_%s";
@@ -60,25 +61,21 @@ public final class UseDatabaseExecutorTest {
MySQLUseStatement useStatement = mock(MySQLUseStatement.class);
when(useStatement.getSchema()).thenReturn(String.format(DATABASE_PATTERN, 0));
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_0")).thenReturn(true);
- UseDatabaseExecutor executor = new UseDatabaseExecutor(useStatement);
- executor.execute(connectionSession);
- verify(connectionSession).setCurrentDatabase(anyString());
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().databaseExists("db_0")).thenReturn(true);
+ UseDatabaseExecutor executor = new UseDatabaseExecutor(useStatement);
+ executor.execute(connectionSession);
+ verify(connectionSession).setCurrentDatabase(anyString());
}
- @Test(expected = UnknownDatabaseException.class)
+ @Test
public void assertExecuteUseStatementBackendHandlerWhenSchemaNotExist() {
MySQLUseStatement useStatement = mock(MySQLUseStatement.class);
when(useStatement.getSchema()).thenReturn(String.format(DATABASE_PATTERN, 10));
UseDatabaseExecutor executor = new UseDatabaseExecutor(useStatement);
ContextManager contextManager = mockContextManager();
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- executor.execute(connectionSession);
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ assertThrows(UnknownDatabaseException.class, () -> executor.execute(connectionSession));
}
private ContextManager mockContextManager() {
diff --git a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutorTest.java b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutorTest.java
index cd1d0ec7d3f..3724f93cf5e 100644
--- a/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutorTest.java
+++ b/proxy/backend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/backend/mysql/handler/admin/executor/information/SelectInformationSchemataExecutorTest.java
@@ -35,12 +35,14 @@ import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
-import org.mockito.MockedStatic;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoSettings;
+import org.mockito.quality.Strictness;
import java.sql.Connection;
import java.sql.ResultSet;
@@ -57,15 +59,16 @@ import java.util.stream.Collectors;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
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)
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
+@MockitoSettings(strictness = Strictness.LENIENT)
public final class SelectInformationSchemataExecutorTest {
private final Grantee grantee = new Grantee("root", "127.0.0.1");
@@ -77,7 +80,7 @@ public final class SelectInformationSchemataExecutorTest {
@Mock
private ConnectionSession connectionSession;
- @Before
+ @BeforeEach
public void setUp() {
when(connectionSession.getGrantee()).thenReturn(grantee);
statement = (SelectStatement) new SQLParserRule(new DefaultSQLParserRuleConfigurationBuilder().build()).getSQLParserEngine("MySQL").parse(sql, false);
@@ -85,15 +88,13 @@ public final class SelectInformationSchemataExecutorTest {
@Test
public void assertExecuteWithUnauthorizedDatabase() throws SQLException {
- SelectInformationSchemataExecutor executor = new SelectInformationSchemataExecutor(statement, sql);
ContextManager contextManager = mockContextManager(createDatabase("no_auth_db"));
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("no_auth_db"));
- executor.execute(connectionSession);
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(0));
- assertFalse(executor.getMergedResult().next());
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("no_auth_db"));
+ SelectInformationSchemataExecutor executor = new SelectInformationSchemataExecutor(statement, sql);
+ executor.execute(connectionSession);
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(0));
+ assertFalse(executor.getMergedResult().next());
}
@Test
@@ -101,48 +102,42 @@ public final class SelectInformationSchemataExecutorTest {
Map<String, String> expectedResultSetMap = new HashMap<>(2, 1);
expectedResultSetMap.put("SCHEMA_NAME", "foo_ds");
expectedResultSetMap.put("DEFAULT_COLLATION_NAME", "utf8mb4");
- SelectInformationSchemataExecutor executor = new SelectInformationSchemataExecutor(statement, sql);
ShardingSphereDatabase database = createDatabase(expectedResultSetMap);
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().getAllDatabaseNames()).thenReturn(Collections.singleton("auth_db"));
- proxyContext.when(() -> ProxyContext.getInstance().getDatabase("auth_db")).thenReturn(database);
- executor.execute(connectionSession);
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
- assertTrue(executor.getMergedResult().next());
- assertThat(executor.getMergedResult().getValue(1, String.class), is("auth_db"));
- assertThat(executor.getMergedResult().getValue(2, String.class), is("utf8mb4"));
- assertFalse(executor.getMergedResult().next());
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("auth_db"));
+ when(ProxyContext.getInstance().getDatabase("auth_db")).thenReturn(database);
+ SelectInformationSchemataExecutor executor = new SelectInformationSchemataExecutor(statement, sql);
+ executor.execute(connectionSession);
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
+ assertTrue(executor.getMergedResult().next());
+ assertThat(executor.getMergedResult().getValue(1, String.class), is("auth_db"));
+ assertThat(executor.getMergedResult().getValue(2, String.class), is("utf8mb4"));
+ assertFalse(executor.getMergedResult().next());
}
@Test
public void assertExecuteWithAuthorizedDatabaseAndEmptyResource() throws SQLException {
- SelectInformationSchemataExecutor executor = new SelectInformationSchemataExecutor(statement, sql);
ContextManager contextManager = mockContextManager(createDatabase("auth_db"));
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("auth_db"));
- executor.execute(connectionSession);
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
- assertTrue(executor.getMergedResult().next());
- assertThat(executor.getMergedResult().getValue(1, String.class), is("auth_db"));
- assertThat(executor.getMergedResult().getValue(2, String.class), is(""));
- assertFalse(executor.getMergedResult().next());
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("auth_db"));
+ SelectInformationSchemataExecutor executor = new SelectInformationSchemataExecutor(statement, sql);
+ executor.execute(connectionSession);
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(2));
+ assertTrue(executor.getMergedResult().next());
+ assertThat(executor.getMergedResult().getValue(1, String.class), is("auth_db"));
+ assertThat(executor.getMergedResult().getValue(2, String.class), is(""));
+ assertFalse(executor.getMergedResult().next());
}
@Test
public void assertExecuteWithoutDatabase() throws SQLException {
- SelectInformationSchemataExecutor executor = new SelectInformationSchemataExecutor(statement, sql);
ContextManager contextManager = mockContextManager();
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.emptyList());
- executor.execute(connectionSession);
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(0));
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.emptyList());
+ SelectInformationSchemataExecutor executor = new SelectInformationSchemataExecutor(statement, sql);
+ executor.execute(connectionSession);
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(0));
}
private ContextManager mockContextManager(final ShardingSphereDatabase... databases) {
diff --git a/proxy/backend/type/opengauss/pom.xml b/proxy/backend/type/opengauss/pom.xml
index 9fe6b20c72e..1c5f4800ba1 100644
--- a/proxy/backend/type/opengauss/pom.xml
+++ b/proxy/backend/type/opengauss/pom.xml
@@ -38,5 +38,11 @@
<artifactId>shardingsphere-proxy-backend-postgresql</artifactId>
<version>${project.version}</version>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.shardingsphere</groupId>
+ <artifactId>shardingsphere-test-util</artifactId>
+ <version>${project.version}</version>
+ </dependency>
</dependencies>
</project>
diff --git a/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/connector/jdbc/statement/OpenGaussStatementMemoryStrictlyFetchSizeSetterTest.java b/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/connector/jdbc/statement/OpenGaussStatementMemoryStrictlyFetchSizeSetterTest.java
index c38c535c23e..ed089fd8d5e 100644
--- a/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/connector/jdbc/statement/OpenGaussStatementMemoryStrictlyFetchSizeSetterTest.java
+++ b/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/connector/jdbc/statement/OpenGaussStatementMemoryStrictlyFetchSizeSetterTest.java
@@ -20,29 +20,30 @@ package org.apache.shardingsphere.proxy.backend.opengauss.connector.jdbc.stateme
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.sql.SQLException;
import java.sql.Statement;
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.verify;
import static org.mockito.Mockito.when;
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
public final class OpenGaussStatementMemoryStrictlyFetchSizeSetterTest {
@Test
public void assertSetFetchSize() throws SQLException {
Statement statement = mock(Statement.class);
ContextManager contextManager = mockContextManager();
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- new OpenGaussStatementMemoryStrictlyFetchSizeSetter().setFetchSize(statement);
- verify(statement).setFetchSize(1);
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ new OpenGaussStatementMemoryStrictlyFetchSizeSetter().setFetchSize(statement);
+ verify(statement).setFetchSize(1);
}
private static ContextManager mockContextManager() {
diff --git a/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutorTest.java b/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutorTest.java
index 82f199f8298..dc041e282a0 100644
--- a/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutorTest.java
+++ b/proxy/backend/type/opengauss/src/test/java/org/apache/shardingsphere/proxy/backend/opengauss/handler/admin/OpenGaussSystemCatalogAdminQueryExecutorTest.java
@@ -22,8 +22,10 @@ import org.apache.shardingsphere.infra.executor.sql.execute.result.query.QueryRe
import org.apache.shardingsphere.infra.merge.result.MergedResult;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.sql.SQLException;
import java.sql.Types;
@@ -32,82 +34,75 @@ import java.util.Arrays;
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertTrue;
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;
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
public final class OpenGaussSystemCatalogAdminQueryExecutorTest {
@Test
public void assertExecuteSelectFromPgDatabase() throws SQLException {
- try (MockedStatic<ProxyContext> mockedStatic = mockStatic(ProxyContext.class)) {
- mockedStatic.when(ProxyContext::getInstance).thenReturn(mock(ProxyContext.class, RETURNS_DEEP_STUBS));
- when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Arrays.asList("foo", "bar", "sharding_db", "other_db"));
- OpenGaussSystemCatalogAdminQueryExecutor executor = new OpenGaussSystemCatalogAdminQueryExecutor("select datname, datcompatibility from pg_database where datname = 'sharding_db'");
- ConnectionSession connectionSession = mock(ConnectionSession.class);
- when(connectionSession.getProtocolType()).thenReturn(new OpenGaussDatabaseType());
- executor.execute(connectionSession);
- QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
- assertThat(actualMetaData.getColumnCount(), is(2));
- assertThat(actualMetaData.getColumnName(1), is("datname"));
- assertThat(actualMetaData.getColumnName(2), is("datcompatibility"));
- MergedResult actualResult = executor.getMergedResult();
- assertTrue(actualResult.next());
- assertThat(actualResult.getValue(1, String.class), is("sharding_db"));
- assertThat(actualResult.getValue(2, String.class), is("PG"));
- }
+ when(ProxyContext.getInstance()).thenReturn(mock(ProxyContext.class, RETURNS_DEEP_STUBS));
+ when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Arrays.asList("foo", "bar", "sharding_db", "other_db"));
+ OpenGaussSystemCatalogAdminQueryExecutor executor = new OpenGaussSystemCatalogAdminQueryExecutor("select datname, datcompatibility from pg_database where datname = 'sharding_db'");
+ ConnectionSession connectionSession = mock(ConnectionSession.class);
+ when(connectionSession.getProtocolType()).thenReturn(new OpenGaussDatabaseType());
+ executor.execute(connectionSession);
+ QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
+ assertThat(actualMetaData.getColumnCount(), is(2));
+ assertThat(actualMetaData.getColumnName(1), is("datname"));
+ assertThat(actualMetaData.getColumnName(2), is("datcompatibility"));
+ MergedResult actualResult = executor.getMergedResult();
+ assertTrue(actualResult.next());
+ assertThat(actualResult.getValue(1, String.class), is("sharding_db"));
+ assertThat(actualResult.getValue(2, String.class), is("PG"));
}
@Test
public void assertExecuteSelectVersion() throws SQLException {
- try (MockedStatic<ProxyContext> mockedStatic = mockStatic(ProxyContext.class)) {
- mockedStatic.when(ProxyContext::getInstance).thenReturn(mock(ProxyContext.class, RETURNS_DEEP_STUBS));
- OpenGaussSystemCatalogAdminQueryExecutor executor = new OpenGaussSystemCatalogAdminQueryExecutor("select VERSION()");
- ConnectionSession connectionSession = mock(ConnectionSession.class);
- when(connectionSession.getProtocolType()).thenReturn(new OpenGaussDatabaseType());
- executor.execute(connectionSession);
- QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
- assertThat(actualMetaData.getColumnCount(), is(1));
- assertThat(actualMetaData.getColumnType(1), is(Types.VARCHAR));
- MergedResult actualResult = executor.getMergedResult();
- assertTrue(actualResult.next());
- assertThat((String) actualResult.getValue(1, String.class), containsString("ShardingSphere-Proxy"));
- }
+ when(ProxyContext.getInstance()).thenReturn(mock(ProxyContext.class, RETURNS_DEEP_STUBS));
+ OpenGaussSystemCatalogAdminQueryExecutor executor = new OpenGaussSystemCatalogAdminQueryExecutor("select VERSION()");
+ ConnectionSession connectionSession = mock(ConnectionSession.class);
+ when(connectionSession.getProtocolType()).thenReturn(new OpenGaussDatabaseType());
+ executor.execute(connectionSession);
+ QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
+ assertThat(actualMetaData.getColumnCount(), is(1));
+ assertThat(actualMetaData.getColumnType(1), is(Types.VARCHAR));
+ MergedResult actualResult = executor.getMergedResult();
+ assertTrue(actualResult.next());
+ assertThat((String) actualResult.getValue(1, String.class), containsString("ShardingSphere-Proxy"));
}
@Test
public void assertExecuteSelectGsPasswordDeadlineAndIntervalToNum() throws SQLException {
- try (MockedStatic<ProxyContext> mockedStatic = mockStatic(ProxyContext.class)) {
- mockedStatic.when(ProxyContext::getInstance).thenReturn(mock(ProxyContext.class, RETURNS_DEEP_STUBS));
- OpenGaussSystemCatalogAdminQueryExecutor executor = new OpenGaussSystemCatalogAdminQueryExecutor("select intervaltonum(gs_password_deadline())");
- ConnectionSession connectionSession = mock(ConnectionSession.class);
- when(connectionSession.getProtocolType()).thenReturn(new OpenGaussDatabaseType());
- executor.execute(connectionSession);
- QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
- assertThat(actualMetaData.getColumnCount(), is(1));
- assertThat(actualMetaData.getColumnType(1), is(Types.INTEGER));
- MergedResult actualResult = executor.getMergedResult();
- assertTrue(actualResult.next());
- assertThat(actualResult.getValue(1, Integer.class), is(90));
- }
+ when(ProxyContext.getInstance()).thenReturn(mock(ProxyContext.class, RETURNS_DEEP_STUBS));
+ OpenGaussSystemCatalogAdminQueryExecutor executor = new OpenGaussSystemCatalogAdminQueryExecutor("select intervaltonum(gs_password_deadline())");
+ ConnectionSession connectionSession = mock(ConnectionSession.class);
+ when(connectionSession.getProtocolType()).thenReturn(new OpenGaussDatabaseType());
+ executor.execute(connectionSession);
+ QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
+ assertThat(actualMetaData.getColumnCount(), is(1));
+ assertThat(actualMetaData.getColumnType(1), is(Types.INTEGER));
+ MergedResult actualResult = executor.getMergedResult();
+ assertTrue(actualResult.next());
+ assertThat(actualResult.getValue(1, Integer.class), is(90));
}
@Test
public void assertExecuteSelectGsPasswordNotifyTime() throws SQLException {
- try (MockedStatic<ProxyContext> mockedStatic = mockStatic(ProxyContext.class)) {
- mockedStatic.when(ProxyContext::getInstance).thenReturn(mock(ProxyContext.class, RETURNS_DEEP_STUBS));
- OpenGaussSystemCatalogAdminQueryExecutor executor = new OpenGaussSystemCatalogAdminQueryExecutor("select gs_password_notifytime()");
- ConnectionSession connectionSession = mock(ConnectionSession.class);
- when(connectionSession.getProtocolType()).thenReturn(new OpenGaussDatabaseType());
- executor.execute(connectionSession);
- QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
- assertThat(actualMetaData.getColumnCount(), is(1));
- assertThat(actualMetaData.getColumnType(1), is(Types.INTEGER));
- MergedResult actualResult = executor.getMergedResult();
- assertTrue(actualResult.next());
- assertThat(actualResult.getValue(1, Integer.class), is(7));
- }
+ when(ProxyContext.getInstance()).thenReturn(mock(ProxyContext.class, RETURNS_DEEP_STUBS));
+ OpenGaussSystemCatalogAdminQueryExecutor executor = new OpenGaussSystemCatalogAdminQueryExecutor("select gs_password_notifytime()");
+ ConnectionSession connectionSession = mock(ConnectionSession.class);
+ when(connectionSession.getProtocolType()).thenReturn(new OpenGaussDatabaseType());
+ executor.execute(connectionSession);
+ QueryResultMetaData actualMetaData = executor.getQueryResultMetaData();
+ assertThat(actualMetaData.getColumnCount(), is(1));
+ assertThat(actualMetaData.getColumnType(1), is(Types.INTEGER));
+ MergedResult actualResult = executor.getMergedResult();
+ assertTrue(actualResult.next());
+ assertThat(actualResult.getValue(1, Integer.class), is(7));
}
}
diff --git a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/connector/jdbc/statement/PostgreSQLStatementMemoryStrictlyFetchSizeSetterTest.java b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/connector/jdbc/statement/PostgreSQLStatementMemoryStrictlyFetchSizeSetterTest.java
index bf748198f7b..5a761d6e7af 100644
--- a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/connector/jdbc/statement/PostgreSQLStatementMemoryStrictlyFetchSizeSetterTest.java
+++ b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/connector/jdbc/statement/PostgreSQLStatementMemoryStrictlyFetchSizeSetterTest.java
@@ -20,29 +20,30 @@ package org.apache.shardingsphere.proxy.backend.postgresql.connector.jdbc.statem
import org.apache.shardingsphere.infra.config.props.ConfigurationPropertyKey;
import org.apache.shardingsphere.mode.manager.ContextManager;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.sql.SQLException;
import java.sql.Statement;
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.verify;
import static org.mockito.Mockito.when;
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
public final class PostgreSQLStatementMemoryStrictlyFetchSizeSetterTest {
@Test
public void assertSetFetchSize() throws SQLException {
Statement statement = mock(Statement.class);
ContextManager contextManager = mockContextManager();
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- new PostgreSQLStatementMemoryStrictlyFetchSizeSetter().setFetchSize(statement);
- verify(statement).setFetchSize(1);
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ new PostgreSQLStatementMemoryStrictlyFetchSizeSetter().setFetchSize(statement);
+ verify(statement).setFetchSize(1);
}
private static ContextManager mockContextManager() {
diff --git a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLDefaultSessionVariableHandlerTest.java b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLDefaultSessionVariableHandlerTest.java
index 71596691fc5..db1041f48f8 100644
--- a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLDefaultSessionVariableHandlerTest.java
+++ b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLDefaultSessionVariableHandlerTest.java
@@ -21,7 +21,7 @@ import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.proxy.backend.handler.admin.executor.ReplayedSessionVariablesProvider;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.proxy.backend.session.RequiredSessionVariableRecorder;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import org.mockito.MockedStatic;
import java.util.Collections;
diff --git a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLResetVariableAdminExecutorTest.java b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLResetVariableAdminExecutorTest.java
index b44d5f6b89d..9cd38b63fdc 100644
--- a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLResetVariableAdminExecutorTest.java
+++ b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLResetVariableAdminExecutorTest.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.proxy.backend.postgresql.handler.admin;
import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dal.PostgreSQLResetParameterStatement;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import org.mockito.MockedStatic;
import static org.mockito.Mockito.mock;
diff --git a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLSetVariableAdminExecutorTest.java b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLSetVariableAdminExecutorTest.java
index 045afb13f9a..ee1b14e504e 100644
--- a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLSetVariableAdminExecutorTest.java
+++ b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/PostgreSQLSetVariableAdminExecutorTest.java
@@ -21,7 +21,7 @@ import org.apache.shardingsphere.infra.util.spi.type.typed.TypedSPILoader;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dal.VariableAssignSegment;
import org.apache.shardingsphere.sql.parser.sql.common.segment.dal.VariableSegment;
import org.apache.shardingsphere.sql.parser.sql.dialect.statement.postgresql.dal.PostgreSQLSetStatement;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
import org.mockito.MockedStatic;
import static org.mockito.Mockito.mock;
diff --git a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/SelectDatabaseExecutorTest.java b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/SelectDatabaseExecutorTest.java
index 6ad277d0816..4b3ecddefe2 100644
--- a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/SelectDatabaseExecutorTest.java
+++ b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/SelectDatabaseExecutorTest.java
@@ -32,8 +32,10 @@ import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.sql.parser.sql.common.statement.dml.SelectStatement;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.sql.Connection;
import java.sql.ResultSet;
@@ -49,13 +51,14 @@ import java.util.stream.Collectors;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.fail;
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;
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
public final class SelectDatabaseExecutorTest {
private final SQLParserRule sqlParserRule = new SQLParserRule(new DefaultSQLParserRuleConfigurationBuilder().build());
@@ -68,29 +71,27 @@ public final class SelectDatabaseExecutorTest {
ShardingSphereDatabase shardingDatabase = createShardingDatabase();
ShardingSphereDatabase emptyDatabase = createEmptyDatabase();
ContextManager contextManager = mockContextManager(shardingDatabase, emptyDatabase);
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Arrays.asList("sharding_db", "empty_db"));
+ when(ProxyContext.getInstance().getDatabase("sharding_db")).thenReturn(shardingDatabase);
+ when(ProxyContext.getInstance().getDatabase("empty_db")).thenReturn(emptyDatabase);
SelectDatabaseExecutor executor = new SelectDatabaseExecutor((SelectStatement) sqlParserRule.getSQLParserEngine("PostgreSQL").parse(sql, false), sql);
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Arrays.asList("sharding_db", "empty_db"));
- proxyContext.when(() -> ProxyContext.getInstance().getDatabase("sharding_db")).thenReturn(shardingDatabase);
- proxyContext.when(() -> ProxyContext.getInstance().getDatabase("empty_db")).thenReturn(emptyDatabase);
- executor.execute(mock(ConnectionSession.class));
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(4));
- int count = 0;
- while (executor.getMergedResult().next()) {
- count++;
- if ("sharding_db".equals(executor.getMergedResult().getValue(1, String.class))) {
- assertThat(executor.getMergedResult().getValue(2, String.class), is("postgres"));
- assertThat(executor.getMergedResult().getValue(3, String.class), is("-1"));
- } else if ("empty_db".equals(executor.getMergedResult().getValue(1, String.class))) {
- assertThat(executor.getMergedResult().getValue(2, String.class), is(""));
- assertThat(executor.getMergedResult().getValue(3, String.class), is(""));
- } else {
- fail("expected : `sharding_db` or `empty_db`");
- }
+ executor.execute(mock(ConnectionSession.class));
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(4));
+ int count = 0;
+ while (executor.getMergedResult().next()) {
+ count++;
+ if ("sharding_db".equals(executor.getMergedResult().getValue(1, String.class))) {
+ assertThat(executor.getMergedResult().getValue(2, String.class), is("postgres"));
+ assertThat(executor.getMergedResult().getValue(3, String.class), is("-1"));
+ } else if ("empty_db".equals(executor.getMergedResult().getValue(1, String.class))) {
+ assertThat(executor.getMergedResult().getValue(2, String.class), is(""));
+ assertThat(executor.getMergedResult().getValue(3, String.class), is(""));
+ } else {
+ fail("expected : `sharding_db` or `empty_db`");
}
- assertThat(count, is(2));
}
+ assertThat(count, is(2));
}
@Test
@@ -99,14 +100,12 @@ public final class SelectDatabaseExecutorTest {
+ "d.datcollate, d.datctype, shobj_description(d.oid, 'pg_database') AS description, d.datconnlimit, t.spcname, d.encoding, pg_encoding_to_char(d.encoding) AS encodingname "
+ "FROM pg_database d LEFT JOIN pg_tablespace t ON d.dattablespace = t.oid;";
ContextManager contextManager = mockContextManager(createEmptyDatabase());
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("empty_db"));
SelectDatabaseExecutor executor = new SelectDatabaseExecutor((SelectStatement) sqlParserRule.getSQLParserEngine("PostgreSQL").parse(sql, false), sql);
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("empty_db"));
- executor.execute(mock(ConnectionSession.class));
- while (executor.getMergedResult().next()) {
- assertThat(executor.getMergedResult().getValue(1, String.class), is("empty_db"));
- }
+ executor.execute(mock(ConnectionSession.class));
+ while (executor.getMergedResult().next()) {
+ assertThat(executor.getMergedResult().getValue(1, String.class), is("empty_db"));
}
}
@@ -114,17 +113,15 @@ public final class SelectDatabaseExecutorTest {
public void assertSelectDatabaseWithoutDataSourceExecuteAndWithColumnProjectionSegment() throws SQLException {
String sql = "SELECT d.oid, d.datname AS databasename, d.datacl, d.datistemplate FROM pg_database d LEFT JOIN pg_tablespace t ON d.dattablespace = t.oid;";
ContextManager contextManager = mockContextManager(createEmptyDatabase());
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("empty_db"));
SelectDatabaseExecutor executor = new SelectDatabaseExecutor((SelectStatement) sqlParserRule.getSQLParserEngine("PostgreSQL").parse(sql, false), sql);
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("empty_db"));
- executor.execute(mock(ConnectionSession.class));
- while (executor.getMergedResult().next()) {
- assertThat(executor.getMergedResult().getValue(1, String.class), is(""));
- assertThat(executor.getMergedResult().getValue(2, String.class), is("empty_db"));
- assertThat(executor.getMergedResult().getValue(3, String.class), is(""));
- assertThat(executor.getMergedResult().getValue(4, String.class), is(""));
- }
+ executor.execute(mock(ConnectionSession.class));
+ while (executor.getMergedResult().next()) {
+ assertThat(executor.getMergedResult().getValue(1, String.class), is(""));
+ assertThat(executor.getMergedResult().getValue(2, String.class), is("empty_db"));
+ assertThat(executor.getMergedResult().getValue(3, String.class), is(""));
+ assertThat(executor.getMergedResult().getValue(4, String.class), is(""));
}
}
@@ -132,13 +129,11 @@ public final class SelectDatabaseExecutorTest {
public void assertSelectDatabaseInNoSchemaExecute() throws SQLException {
String sql = "SELECT d.oid, d.datname AS databasename, d.datacl, d.datistemplate FROM pg_database d LEFT JOIN pg_tablespace t ON d.dattablespace = t.oid;";
ContextManager contextManager = mockContextManager();
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.emptyList());
SelectDatabaseExecutor executor = new SelectDatabaseExecutor((SelectStatement) sqlParserRule.getSQLParserEngine("PostgreSQL").parse(sql, false), sql);
- try (MockedStatic<ProxyContext> proxyContext = mockStatic(ProxyContext.class, RETURNS_DEEP_STUBS)) {
- proxyContext.when(() -> ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
- proxyContext.when(() -> ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.emptyList());
- executor.execute(mock(ConnectionSession.class));
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(0));
- }
+ executor.execute(mock(ConnectionSession.class));
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(0));
}
private static ContextManager mockContextManager(final ShardingSphereDatabase... databases) {
diff --git a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/SelectTableExecutorTest.java b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/SelectTableExecutorTest.java
index 67c1fd06421..590fe7e0436 100644
--- a/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/SelectTableExecutorTest.java
+++ b/proxy/backend/type/postgresql/src/test/java/org/apache/shardingsphere/proxy/backend/postgresql/handler/admin/executor/SelectTableExecutorTest.java
@@ -31,8 +31,10 @@ import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
import org.apache.shardingsphere.test.fixture.jdbc.MockedDataSource;
-import org.junit.Test;
-import org.mockito.MockedStatic;
+import org.apache.shardingsphere.test.mock.AutoMockExtension;
+import org.apache.shardingsphere.test.mock.StaticMockSettings;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
import java.sql.Connection;
import java.sql.ResultSet;
@@ -46,39 +48,38 @@ import java.util.Properties;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.fail;
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;
+@ExtendWith(AutoMockExtension.class)
+@StaticMockSettings(ProxyContext.class)
public final class SelectTableExecutorTest {
@Test
public void assertExecute() throws SQLException {
String sql = "SELECT c.oid, n.nspname AS schemaname, c.relname AS tablename from pg_tablespace";
- SelectTableExecutor executor = new SelectTableExecutor(sql);
ShardingSphereDatabase database = createDatabase();
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().getAllDatabaseNames()).thenReturn(Collections.singleton("public"));
- proxyContext.when(() -> ProxyContext.getInstance().getDatabase("public")).thenReturn(database);
- executor.execute(mock(ConnectionSession.class));
- assertThat(executor.getQueryResultMetaData().getColumnCount(), is(3));
- int count = 0;
- while (executor.getMergedResult().next()) {
- count++;
- if ("t_order".equals(executor.getMergedResult().getValue(1, String.class))) {
- assertThat(executor.getMergedResult().getValue(2, String.class), is("0000"));
- assertThat(executor.getMergedResult().getValue(3, String.class), is("public"));
- } else {
- fail("expected : `t_order`");
- }
+ when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager);
+ when(ProxyContext.getInstance().getAllDatabaseNames()).thenReturn(Collections.singleton("public"));
+ when(ProxyContext.getInstance().getDatabase("public")).thenReturn(database);
+ SelectTableExecutor executor = new SelectTableExecutor(sql);
+ executor.execute(mock(ConnectionSession.class));
+ assertThat(executor.getQueryResultMetaData().getColumnCount(), is(3));
+ int count = 0;
+ while (executor.getMergedResult().next()) {
+ count++;
+ if ("t_order".equals(executor.getMergedResult().getValue(1, String.class))) {
+ assertThat(executor.getMergedResult().getValue(2, String.class), is("0000"));
+ assertThat(executor.getMergedResult().getValue(3, String.class), is("public"));
+ } else {
+ fail("expected : `t_order`");
}
- assertThat(count, is(1));
}
+ assertThat(count, is(1));
}
private ShardingSphereDatabase createDatabase() throws SQLException {
diff --git a/proxy/frontend/type/opengauss/pom.xml b/proxy/frontend/type/opengauss/pom.xml
index b4173ad661f..2bf816e812a 100644
--- a/proxy/frontend/type/opengauss/pom.xml
+++ b/proxy/frontend/type/opengauss/pom.xml
@@ -38,7 +38,7 @@
<artifactId>shardingsphere-proxy-frontend-postgresql</artifactId>
<version>${project.version}</version>
</dependency>
-
+
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-test-util</artifactId>