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),

Reply via email to