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 319364c97a3 Remove redundant method and optimize test structure (#35323) 319364c97a3 is described below commit 319364c97a3666de6f54bc7a9b45793ef1bef874 Author: Liang Zhang <zhangli...@apache.org> AuthorDate: Mon May 5 00:38:57 2025 +0800 Remove redundant method and optimize test structure (#35323) * Replace MockedDatabaseType with TypedSPILoader in tests - Remove usage of MockedDatabaseType from multiple test files - Use TypedSPILoader.getService(DatabaseType.class, "FIXTURE") to get DatabaseType instance - Update import statements and test logic to use the new DatabaseType instance - Improve test readability and reduce reliance on mock classes * Remove redundant method and optimize test structure - Remove getDialectTableMetaDataLoader() method - Directly use TypedSPILoader and DatabaseTypedSPILoader services - Add databaseType and dialectMetaDataLoader as test class fields - Update test methods to use the new approach - Add JDBCResourceOpenedButNotSafelyClosed annotation to relevant tests --- .../data/loader/OpenGaussMetaDataLoaderTest.java | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/infra/database/type/opengauss/src/test/java/org/apache/shardingsphere/infra/database/opengauss/metadata/data/loader/OpenGaussMetaDataLoaderTest.java b/infra/database/type/opengauss/src/test/java/org/apache/shardingsphere/infra/database/opengauss/metadata/data/loader/OpenGaussMetaDataLoaderTest.java index 94d44c61620..fb8b441cabf 100644 --- a/infra/database/type/opengauss/src/test/java/org/apache/shardingsphere/infra/database/opengauss/metadata/data/loader/OpenGaussMetaDataLoaderTest.java +++ b/infra/database/type/opengauss/src/test/java/org/apache/shardingsphere/infra/database/opengauss/metadata/data/loader/OpenGaussMetaDataLoaderTest.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.opengauss.type.OpenGaussDatabaseType; import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader; import org.junit.jupiter.api.Test; @@ -37,11 +36,9 @@ import java.sql.Types; import java.util.Collection; import java.util.Collections; import java.util.Iterator; -import java.util.Optional; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; -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.when; @@ -66,6 +63,11 @@ class OpenGaussMetaDataLoaderTest { + " FROM pg_index pgi JOIN pg_class idx ON idx.oid = pgi.indexrelid JOIN pg_namespace insp ON insp.oid = idx.relnamespace JOIN pg_class tbl ON tbl.oid = pgi.indrelid" + " JOIN pg_namespace tnsp ON tnsp.oid = tbl.relnamespace JOIN pg_attribute att ON att.attrelid = tbl.oid AND att.attnum = ANY(pgi.indkey) WHERE tnsp.nspname IN ('public')"; + private final DatabaseType databaseType = TypedSPILoader.getService(DatabaseType.class, "openGauss"); + + private final DialectMetaDataLoader dialectMetaDataLoader = DatabaseTypedSPILoader.getService(DialectMetaDataLoader.class, databaseType); + + @SuppressWarnings("JDBCResourceOpenedButNotSafelyClosed") @Test void assertLoadWithoutTables() throws SQLException { DataSource dataSource = mockDataSource(); @@ -80,7 +82,7 @@ class OpenGaussMetaDataLoaderTest { ResultSet advanceIndexResultSet = mockAdvanceIndexMetaDataResultSet(); when(dataSource.getConnection().prepareStatement(ADVANCE_INDEX_META_DATA_SQL).executeQuery()).thenReturn(advanceIndexResultSet); DataTypeRegistry.load(dataSource, "openGauss"); - assertTableMetaDataMap(getDialectTableMetaDataLoader().load(new MetaDataLoaderMaterial(Collections.emptyList(), "foo_ds", dataSource, new OpenGaussDatabaseType(), "sharding_db"))); + assertTableMetaDataMap(dialectMetaDataLoader.load(new MetaDataLoaderMaterial(Collections.emptyList(), "foo_ds", dataSource, databaseType, "sharding_db"))); } private ResultSet mockSchemaMetaDataResultSet() throws SQLException { @@ -90,6 +92,7 @@ class OpenGaussMetaDataLoaderTest { return result; } + @SuppressWarnings("JDBCResourceOpenedButNotSafelyClosed") @Test void assertLoadWithTables() throws SQLException { DataSource dataSource = mockDataSource(); @@ -104,9 +107,10 @@ class OpenGaussMetaDataLoaderTest { ResultSet advanceIndexResultSet = mockAdvanceIndexMetaDataResultSet(); when(dataSource.getConnection().prepareStatement(ADVANCE_INDEX_META_DATA_SQL).executeQuery()).thenReturn(advanceIndexResultSet); DataTypeRegistry.load(dataSource, "openGauss"); - assertTableMetaDataMap(getDialectTableMetaDataLoader().load(new MetaDataLoaderMaterial(Collections.singletonList("tbl"), "foo_ds", dataSource, new OpenGaussDatabaseType(), "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(); @@ -165,12 +169,6 @@ class OpenGaussMetaDataLoaderTest { return result; } - private DialectMetaDataLoader getDialectTableMetaDataLoader() { - Optional<DialectMetaDataLoader> result = DatabaseTypedSPILoader.findService(DialectMetaDataLoader.class, TypedSPILoader.getService(DatabaseType.class, "openGauss")); - assertTrue(result.isPresent()); - return result.get(); - } - private void assertTableMetaDataMap(final Collection<SchemaMetaData> schemaMetaDataList) { assertThat(schemaMetaDataList.size(), is(1)); TableMetaData actualTableMetaData = schemaMetaDataList.iterator().next().getTables().iterator().next();