You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2025/05/05 07:58:39 UTC
(shardingsphere) branch master updated: Optimize MySQLMetaDataLoaderTest and ensure resource safety (#35335)
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 <zh...@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();