This is an automated email from the ASF dual-hosted git repository. zhangliang pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push: new 2bf337c89ea Replace MySQLDatabaseType with DatabaseType in tests (#35336) 2bf337c89ea is described below commit 2bf337c89ea98e1b4778f0279a3dfe77ec5268fe Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Mon May 5 16:06:37 2025 +0800 Replace MySQLDatabaseType with DatabaseType in tests (#35336) * Replace MySQLDatabaseType with DatabaseType in tests - Use DatabaseType interface instead of MySQLDatabaseType implementation - Utilize TypedSPILoader to get MySQL DatabaseType instance- Update related test classes to use the new DatabaseType reference - This change is part of a larger effort to decouple the codebase from specific database implementations * Replace MySQLDatabaseType with DatabaseType in tests - Use DatabaseType interface instead of MySQLDatabaseType implementation - Utilize TypedSPILoader to get MySQL DatabaseType instance- Update related test classes to use the new DatabaseType reference - This change is part of a larger effort to decouple the codebase from specific database implementations --- .../handler/admin/executor/ShowProcessListExecutorTest.java | 7 +++++-- .../query/binary/execute/MySQLComStmtExecuteExecutorTest.java | 11 +++++++---- .../env/container/atomic/storage/impl/MariaDBContainer.java | 5 ++--- .../e2e/env/container/atomic/storage/impl/MySQLContainer.java | 5 ++--- 4 files changed, 16 insertions(+), 12 deletions(-) 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 16a5285fbc6..357c436677e 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 @@ -18,9 +18,10 @@ package org.apache.shardingsphere.proxy.backend.mysql.handler.admin.executor; import io.netty.util.DefaultAttributeMap; -import org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType; +import org.apache.shardingsphere.infra.database.core.type.DatabaseType; import org.apache.shardingsphere.infra.executor.sql.process.Process; import org.apache.shardingsphere.infra.merge.result.MergedResult; +import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader; import org.apache.shardingsphere.mode.manager.ContextManager; import org.apache.shardingsphere.proxy.backend.context.ProxyContext; import org.apache.shardingsphere.proxy.backend.session.ConnectionSession; @@ -45,13 +46,15 @@ import static org.mockito.Mockito.when; @StaticMockSettings(ProxyContext.class) class ShowProcessListExecutorTest { + private final DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "MySQL"); + @Test void assertExecute() throws SQLException { ContextManager contextManager = mock(ContextManager.class, RETURNS_DEEP_STUBS); when(ProxyContext.getInstance().getContextManager()).thenReturn(contextManager); when(contextManager.getPersistServiceFacade().getModeFacade().getProcessService().getProcessList()).thenReturn(mockProcessList()); ShowProcessListExecutor showProcessListExecutor = new ShowProcessListExecutor(false); - showProcessListExecutor.execute(new ConnectionSession(mock(MySQLDatabaseType.class), new DefaultAttributeMap())); + showProcessListExecutor.execute(new ConnectionSession(databaseType, new DefaultAttributeMap())); assertThat(showProcessListExecutor.getQueryResultMetaData().getColumnCount(), is(8)); MergedResult mergedResult = showProcessListExecutor.getMergedResult(); while (mergedResult.next()) { diff --git a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java index dbc14d72d63..4c8560ef43a 100644 --- a/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java +++ b/proxy/frontend/type/mysql/src/test/java/org/apache/shardingsphere/proxy/frontend/mysql/command/query/binary/execute/MySQLComStmtExecuteExecutorTest.java @@ -32,11 +32,12 @@ import org.apache.shardingsphere.infra.binder.context.statement.SQLStatementCont import org.apache.shardingsphere.infra.binder.context.statement.UnknownSQLStatementContext; import org.apache.shardingsphere.infra.binder.context.statement.dml.SelectStatementContext; import org.apache.shardingsphere.infra.binder.context.statement.dml.UpdateStatementContext; -import org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType; +import org.apache.shardingsphere.infra.database.core.type.DatabaseType; import org.apache.shardingsphere.infra.hint.HintValueContext; import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData; import org.apache.shardingsphere.infra.session.connection.ConnectionContext; import org.apache.shardingsphere.infra.session.query.QueryContext; +import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader; import org.apache.shardingsphere.proxy.backend.connector.ProxyDatabaseConnectionManager; import org.apache.shardingsphere.proxy.backend.context.ProxyContext; import org.apache.shardingsphere.proxy.backend.handler.ProxyBackendHandler; @@ -92,6 +93,8 @@ import static org.mockito.Mockito.when; @MockitoSettings(strictness = Strictness.LENIENT) class MySQLComStmtExecuteExecutorTest { + private final DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "MySQL"); + @Mock private ProxyBackendHandler proxyBackendHandler; @@ -157,7 +160,7 @@ class MySQLComStmtExecuteExecutorTest { when(proxyBackendHandler.execute()).thenReturn(new QueryResponseHeader(Collections.singletonList(queryHeader))); when(proxyBackendHandler.next()).thenReturn(true, false); when(proxyBackendHandler.getRowData()).thenReturn(new QueryResponseRow(Collections.singletonList(new QueryResponseCell(Types.INTEGER, 1)))); - when(ProxyBackendHandlerFactory.newInstance(any(MySQLDatabaseType.class), any(QueryContext.class), eq(connectionSession), anyBoolean())).thenReturn(proxyBackendHandler); + when(ProxyBackendHandlerFactory.newInstance(eq(databaseType), any(QueryContext.class), eq(connectionSession), anyBoolean())).thenReturn(proxyBackendHandler); Iterator<DatabasePacket> actual = executor.execute().iterator(); assertThat(executor.getResponseType(), is(ResponseType.QUERY)); assertThat(actual.next(), instanceOf(MySQLFieldCountPacket.class)); @@ -178,7 +181,7 @@ class MySQLComStmtExecuteExecutorTest { when(packet.getNewParametersBoundFlag()).thenReturn(MySQLNewParametersBoundFlag.PARAMETER_TYPE_EXIST); MySQLComStmtExecuteExecutor executor = new MySQLComStmtExecuteExecutor(packet, connectionSession); when(proxyBackendHandler.execute()).thenReturn(new UpdateResponseHeader(new MySQLUpdateStatement())); - when(ProxyBackendHandlerFactory.newInstance(any(MySQLDatabaseType.class), any(QueryContext.class), eq(connectionSession), anyBoolean())).thenReturn(proxyBackendHandler); + when(ProxyBackendHandlerFactory.newInstance(eq(databaseType), any(QueryContext.class), eq(connectionSession), anyBoolean())).thenReturn(proxyBackendHandler); Iterator<DatabasePacket> actual = executor.execute().iterator(); assertThat(executor.getResponseType(), is(ResponseType.UPDATE)); assertThat(actual.next(), instanceOf(MySQLOKPacket.class)); @@ -192,7 +195,7 @@ class MySQLComStmtExecuteExecutorTest { MySQLComStmtExecuteExecutor executor = new MySQLComStmtExecuteExecutor(packet, connectionSession); ProxyBackendHandler proxyBackendHandler = mock(ProxyBackendHandler.class); when(proxyBackendHandler.execute()).thenReturn(new UpdateResponseHeader(new MySQLCommitStatement())); - when(ProxyBackendHandlerFactory.newInstance(any(MySQLDatabaseType.class), any(QueryContext.class), eq(connectionSession), eq(true))).thenReturn(proxyBackendHandler); + when(ProxyBackendHandlerFactory.newInstance(eq(databaseType), any(QueryContext.class), eq(connectionSession), eq(true))).thenReturn(proxyBackendHandler); Iterator<DatabasePacket> actual = executor.execute().iterator(); assertThat(executor.getResponseType(), is(ResponseType.UPDATE)); assertThat(actual.next(), instanceOf(MySQLOKPacket.class)); diff --git a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/impl/MariaDBContainer.java b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/impl/MariaDBContainer.java index eb2af4a2017..00290b282f1 100644 --- a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/impl/MariaDBContainer.java +++ b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/impl/MariaDBContainer.java @@ -19,7 +19,6 @@ package org.apache.shardingsphere.test.e2e.env.container.atomic.storage.impl; import com.google.common.base.Strings; import org.apache.shardingsphere.infra.database.core.type.DatabaseType; -import org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType; import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader; import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.DockerStorageContainer; import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.StorageContainerConfiguration; @@ -56,13 +55,13 @@ public final class MariaDBContainer extends DockerStorageContainer { @Override protected Collection<String> getDatabaseNames() { return storageContainerConfig.getDatabaseTypes().entrySet().stream() - .filter(entry -> entry.getValue() instanceof MySQLDatabaseType).map(Entry::getKey).collect(Collectors.toList()); + .filter(entry -> entry.getValue() == getDatabaseType()).map(Entry::getKey).collect(Collectors.toList()); } @Override protected Collection<String> getExpectedDatabaseNames() { return storageContainerConfig.getExpectedDatabaseTypes().entrySet().stream() - .filter(entry -> entry.getValue() instanceof MySQLDatabaseType).map(Entry::getKey).collect(Collectors.toList()); + .filter(entry -> entry.getValue() == getDatabaseType()).map(Entry::getKey).collect(Collectors.toList()); } @Override diff --git a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/impl/MySQLContainer.java b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/impl/MySQLContainer.java index 1100deb1fd9..1dcffa5479f 100644 --- a/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/impl/MySQLContainer.java +++ b/test/e2e/env/src/test/java/org/apache/shardingsphere/test/e2e/env/container/atomic/storage/impl/MySQLContainer.java @@ -19,7 +19,6 @@ package org.apache.shardingsphere.test.e2e.env.container.atomic.storage.impl; import com.google.common.base.Strings; import org.apache.shardingsphere.infra.database.core.type.DatabaseType; -import org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType; import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader; import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.DockerStorageContainer; import org.apache.shardingsphere.test.e2e.env.container.atomic.storage.config.StorageContainerConfiguration; @@ -59,13 +58,13 @@ public final class MySQLContainer extends DockerStorageContainer { @Override protected Collection<String> getDatabaseNames() { return storageContainerConfig.getDatabaseTypes().entrySet().stream() - .filter(entry -> entry.getValue() instanceof MySQLDatabaseType).map(Entry::getKey).collect(Collectors.toList()); + .filter(entry -> entry.getValue() == getDatabaseType()).map(Entry::getKey).collect(Collectors.toList()); } @Override protected Collection<String> getExpectedDatabaseNames() { return storageContainerConfig.getExpectedDatabaseTypes().entrySet().stream() - .filter(entry -> entry.getValue() instanceof MySQLDatabaseType).map(Entry::getKey).collect(Collectors.toList()); + .filter(entry -> entry.getValue() == getDatabaseType()).map(Entry::getKey).collect(Collectors.toList()); } @Override