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 652fdf65851 Optimize MySQLMetaDataLoaderTest and ensure resource safety (#35335) 652fdf65851 is described below commit 652fdf658516e44c1a67c234b493e293d1e5af33 Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Mon May 5 15:58:32 2025 +0800 Optimize MySQLMetaDataLoaderTest and ensure resource safety (#35335) - Replace direct MySQLDatabaseType usage with TypedSPILoader - Add @SuppressWarnings("JDBCResourceOpenedButNotSafelyClosed") annotation for test methods- Refactor test methods to use a class-level databaseType field --- .../mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java b/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java index ff796177d82..6e238cd6d76 100644 --- a/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java +++ b/infra/database/type/mysql/src/test/java/org/apache/shardingsphere/infra/database/mysql/metadata/data/loader/MySQLMetaDataLoaderTest.java @@ -26,7 +26,6 @@ import org.apache.shardingsphere.infra.database.core.metadata.data.model.TableMe import org.apache.shardingsphere.infra.database.core.metadata.database.datatype.DataTypeRegistry; import org.apache.shardingsphere.infra.database.core.spi.DatabaseTypedSPILoader; 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.junit.jupiter.api.Test; @@ -46,8 +45,11 @@ import static org.mockito.Mockito.when; class MySQLMetaDataLoaderTest { - private final DialectMetaDataLoader dialectMetaDataLoader = DatabaseTypedSPILoader.getService(DialectMetaDataLoader.class, TypedSPILoader.getService(DatabaseType.class, "MySQL")); + private final DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "MySQL"); + private final DialectMetaDataLoader dialectMetaDataLoader = DatabaseTypedSPILoader.getService(DialectMetaDataLoader.class, databaseType); + + @SuppressWarnings("JDBCResourceOpenedButNotSafelyClosed") @Test void assertLoadWithoutTables() throws SQLException { DataSource dataSource = mockDataSource(); @@ -59,9 +61,10 @@ class MySQLMetaDataLoaderTest { when(dataSource.getConnection().prepareStatement("SELECT TABLE_NAME, INDEX_NAME, NON_UNIQUE, COLUMN_NAME FROM information_schema.statistics " + "WHERE TABLE_SCHEMA=? and TABLE_NAME IN ('tbl') ORDER BY NON_UNIQUE, INDEX_NAME, SEQ_IN_INDEX").executeQuery()).thenReturn(indexResultSet); DataTypeRegistry.load(dataSource, "MySQL"); - assertTableMetaDataMap(dialectMetaDataLoader.load(new MetaDataLoaderMaterial(Collections.emptyList(), "foo_ds", dataSource, new MySQLDatabaseType(), "sharding_db"))); + assertTableMetaDataMap(dialectMetaDataLoader.load(new MetaDataLoaderMaterial(Collections.emptyList(), "foo_ds", dataSource, databaseType, "sharding_db"))); } + @SuppressWarnings("JDBCResourceOpenedButNotSafelyClosed") @Test void assertLoadWithTables() throws SQLException { DataSource dataSource = mockDataSource(); @@ -74,9 +77,10 @@ class MySQLMetaDataLoaderTest { + "ORDER BY NON_UNIQUE, INDEX_NAME, SEQ_IN_INDEX") .executeQuery()).thenReturn(indexResultSet); DataTypeRegistry.load(dataSource, "MySQL"); - assertTableMetaDataMap(dialectMetaDataLoader.load(new MetaDataLoaderMaterial(Collections.singletonList("tbl"), "foo_ds", dataSource, new MySQLDatabaseType(), "sharding_db"))); + assertTableMetaDataMap(dialectMetaDataLoader.load(new MetaDataLoaderMaterial(Collections.singletonList("tbl"), "foo_ds", dataSource, databaseType, "sharding_db"))); } + @SuppressWarnings("JDBCResourceOpenedButNotSafelyClosed") private DataSource mockDataSource() throws SQLException { DataSource result = mock(DataSource.class, RETURNS_DEEP_STUBS); ResultSet typeInfoResultSet = mockTypeInfoResultSet();