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 4066c9bbe8e Add test case to cover SchemaMetaDataReviseEngine line
62-63 branches (#37001)
4066c9bbe8e is described below
commit 4066c9bbe8e3d1c57945b94c603e91de79aada12
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Nov 4 12:32:13 2025 +0800
Add test case to cover SchemaMetaDataReviseEngine line 62-63 branches
(#37001)
- Add assertReviseWithoutAggregationReviser() test method using mockStatic
OrderedSPILoader
- Use MockedStatic to mock OrderedSPILoader.getServices() returning empty
aggregation reviser
- Cover the !aggregationReviser.isPresent() branch (lines 62-63) that was
previously untested
- Follow existing test code style and use branch minimal coverage approach
- Ensure 100% branch coverage for SchemaMetaDataReviseEngine.revise() method
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude <[email protected]>
---
.../schema/SchemaMetaDataReviseEngineTest.java | 33 ++++++++++++++++++----
1 file changed, 27 insertions(+), 6 deletions(-)
diff --git
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/schema/SchemaMetaDataReviseEngineTest.java
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/schema/SchemaMetaDataReviseEngineTest.java
index 893ea195ae1..c6634afa610 100644
---
a/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/schema/SchemaMetaDataReviseEngineTest.java
+++
b/infra/common/src/test/java/org/apache/shardingsphere/infra/metadata/database/schema/reviser/schema/SchemaMetaDataReviseEngineTest.java
@@ -23,8 +23,12 @@ import
org.apache.shardingsphere.database.connector.core.metadata.data.model.Ind
import
org.apache.shardingsphere.database.connector.core.metadata.data.model.SchemaMetaData;
import
org.apache.shardingsphere.database.connector.core.metadata.data.model.TableMetaData;
import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
+import
org.apache.shardingsphere.infra.metadata.database.schema.reviser.MetaDataReviseEntry;
+import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
import org.apache.shardingsphere.infra.rule.builder.fixture.FixtureGlobalRule;
+import org.apache.shardingsphere.infra.spi.type.ordered.OrderedSPILoader;
import org.junit.jupiter.api.Test;
+import org.mockito.MockedStatic;
import java.sql.Types;
import java.util.Arrays;
@@ -32,34 +36,51 @@ import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedHashSet;
+import java.util.Map;
import java.util.Properties;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockStatic;
+import static org.mockito.Mockito.when;
class SchemaMetaDataReviseEngineTest {
@Test
void assertReviseWithoutMetaDataReviseEntry() {
- SchemaMetaData schemaMetaData = new SchemaMetaData("expected",
Collections.singleton(mock(TableMetaData.class)));
- SchemaMetaData actual = new SchemaMetaDataReviseEngine(
- Collections.emptyList(), new ConfigurationProperties(new
Properties())).revise(schemaMetaData);
+ SchemaMetaData schemaMetaData = new SchemaMetaData("foo_schema",
Collections.singleton(mock(TableMetaData.class)));
+ SchemaMetaData actual = new
SchemaMetaDataReviseEngine(Collections.emptyList(), new
ConfigurationProperties(new Properties())).revise(schemaMetaData);
assertThat(actual.getName(), is(schemaMetaData.getName()));
assertThat(actual.getTables(), is(schemaMetaData.getTables()));
}
@Test
void assertReviseWithMetaDataReviseEntry() {
- SchemaMetaData schemaMetaData = new SchemaMetaData("expected",
Collections.singletonList(createTableMetaData()));
- SchemaMetaData actual = new SchemaMetaDataReviseEngine(
- Collections.singleton(new FixtureGlobalRule()), new
ConfigurationProperties(new Properties())).revise(schemaMetaData);
+ SchemaMetaData schemaMetaData = new SchemaMetaData("foo_schema",
Collections.singletonList(createTableMetaData()));
+ SchemaMetaData actual = new
SchemaMetaDataReviseEngine(Collections.singleton(new FixtureGlobalRule()), new
ConfigurationProperties(new Properties())).revise(schemaMetaData);
assertThat(actual.getName(), is(schemaMetaData.getName()));
assertThat(actual.getTables().size(),
is(schemaMetaData.getTables().size()));
Iterator<TableMetaData> expectedTableIterator =
schemaMetaData.getTables().iterator();
actual.getTables().forEach(each -> assertTableMetaData(each,
expectedTableIterator.next()));
}
+ @SuppressWarnings("unchecked")
+ @Test
+ void assertReviseWithoutAggregationReviser() {
+ SchemaMetaData schemaMetaData = new SchemaMetaData("foo_schema",
Collections.singleton(createTableMetaData()));
+ MetaDataReviseEntry<FixtureGlobalRule> reviseEntry =
mock(MetaDataReviseEntry.class);
+ when(reviseEntry.getTypeClass()).thenReturn(FixtureGlobalRule.class);
+ ShardingSphereRule rule = new FixtureGlobalRule();
+ Map<ShardingSphereRule, MetaDataReviseEntry<?>> entries =
Collections.singletonMap(rule, reviseEntry);
+ try (MockedStatic<OrderedSPILoader> mocked =
mockStatic(OrderedSPILoader.class)) {
+ mocked.when(() ->
OrderedSPILoader.getServices(MetaDataReviseEntry.class,
Collections.singleton(rule))).thenReturn(entries);
+ SchemaMetaData actual = new
SchemaMetaDataReviseEngine(Collections.singleton(rule), new
ConfigurationProperties(new Properties())).revise(schemaMetaData);
+ assertThat(actual.getName(), is(schemaMetaData.getName()));
+ assertThat(actual.getTables().size(),
is(schemaMetaData.getTables().size()));
+ }
+ }
+
private TableMetaData createTableMetaData() {
Collection<ColumnMetaData> columns = new
LinkedHashSet<>(Arrays.asList(new ColumnMetaData("id", Types.INTEGER, true,
true, true, true, false, false),
new ColumnMetaData("pwd_cipher", Types.VARCHAR, false, false,
true, true, false, false),