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 bd8a6fbe171 Add more test cases on DatabaseRulesBuilder (#37057)
bd8a6fbe171 is described below

commit bd8a6fbe1713aafbb59a777e1f4443536f90d735
Author: Liang Zhang <[email protected]>
AuthorDate: Sun Nov 9 21:45:47 2025 +0800

    Add more test cases on DatabaseRulesBuilder (#37057)
    
    * Add more test cases on DatabaseRulesBuilder
    
    * Add more test cases on DatabaseRulesBuilder
    
    * Add more test cases on DatabaseRulesBuilder
---
 .../builder/database/DatabaseRulesBuilder.java     |  6 +++---
 .../builder/database/DatabaseRulesBuilderTest.java | 22 +++++++++++++++-------
 2 files changed, 18 insertions(+), 10 deletions(-)

diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/database/DatabaseRulesBuilder.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/database/DatabaseRulesBuilder.java
index b79400b0da0..1aa88558f79 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/database/DatabaseRulesBuilder.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/rule/builder/database/DatabaseRulesBuilder.java
@@ -53,7 +53,7 @@ public final class DatabaseRulesBuilder {
      * @param protocolType protocol type
      * @param databaseConfig database configuration
      * @param computeNodeInstanceContext compute node instance context
-     * @param resourceMetaData  resource meta data
+     * @param resourceMetaData resource meta data
      * @return built rules
      */
     @SuppressWarnings({"unchecked", "rawtypes"})
@@ -79,7 +79,7 @@ public final class DatabaseRulesBuilder {
      * @param rules rules
      * @param ruleConfig rule configuration
      * @param computeNodeInstanceContext compute node instance context
-     * @param resourceMetaData  resource meta data
+     * @param resourceMetaData resource meta data
      * @return built rule
      */
     @SuppressWarnings({"unchecked", "rawtypes"})
@@ -121,9 +121,9 @@ public final class DatabaseRulesBuilder {
     
     @SuppressWarnings("rawtypes")
     private static Map<RuleConfiguration, DatabaseRuleBuilder> 
getMissedDefaultRuleBuilderMap(final Collection<DatabaseRuleBuilder> 
configuredBuilders) {
-        Map<RuleConfiguration, DatabaseRuleBuilder> result = new 
LinkedHashMap<>();
         Map<DatabaseRuleBuilder, DefaultDatabaseRuleConfigurationBuilder> 
defaultBuilders =
                 
OrderedSPILoader.getServices(DefaultDatabaseRuleConfigurationBuilder.class, 
getMissedDefaultRuleBuilders(configuredBuilders));
+        Map<RuleConfiguration, DatabaseRuleBuilder> result = new 
LinkedHashMap<>(defaultBuilders.size(), 1F);
         // TODO consider about order for new put items
         for (Entry<DatabaseRuleBuilder, 
DefaultDatabaseRuleConfigurationBuilder> entry : defaultBuilders.entrySet()) {
             result.put(entry.getValue().build(), entry.getKey());
diff --git 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/rule/builder/database/DatabaseRulesBuilderTest.java
 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/rule/builder/database/DatabaseRulesBuilderTest.java
index 6f312db97f6..e3199a9c0da 100644
--- 
a/infra/common/src/test/java/org/apache/shardingsphere/infra/rule/builder/database/DatabaseRulesBuilderTest.java
+++ 
b/infra/common/src/test/java/org/apache/shardingsphere/infra/rule/builder/database/DatabaseRulesBuilderTest.java
@@ -21,23 +21,31 @@ import 
org.apache.shardingsphere.infra.config.database.impl.DataSourceProvidedDa
 import org.apache.shardingsphere.infra.fixture.FixtureRule;
 import org.apache.shardingsphere.infra.fixture.FixtureRuleConfiguration;
 import org.apache.shardingsphere.infra.rule.ShardingSphereRule;
+import 
org.apache.shardingsphere.infra.rule.builder.fixture.FixtureDatabaseRuleConfiguration;
 import org.junit.jupiter.api.Test;
 
+import java.util.ArrayList;
 import java.util.Collections;
-import java.util.Iterator;
+import java.util.List;
 
+import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.isA;
-import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.mockito.Mockito.mock;
 
 class DatabaseRulesBuilderTest {
     
     @Test
-    void assertBuild() {
-        Iterator<ShardingSphereRule> actual = 
DatabaseRulesBuilder.build("foo_db", mock(),
-                new 
DataSourceProvidedDatabaseConfiguration(Collections.emptyMap(), 
Collections.singleton(new FixtureRuleConfiguration())), mock(), 
mock()).iterator();
-        assertThat(actual.next(), isA(FixtureRule.class));
-        assertFalse(actual.hasNext());
+    void assertBuildMultipleRules() {
+        List<ShardingSphereRule> actual = new 
ArrayList<>(DatabaseRulesBuilder.build("foo_db", mock(),
+                new 
DataSourceProvidedDatabaseConfiguration(Collections.emptyMap(), 
Collections.singleton(new FixtureRuleConfiguration())), mock(), mock()));
+        assertThat(actual.size(), is(1));
+        assertThat(actual.get(0), isA(FixtureRule.class));
+    }
+    
+    @Test
+    void assertBuildSingleRule() {
+        ShardingSphereRule actual = DatabaseRulesBuilder.build("foo_db", 
mock(), Collections.emptyList(), new FixtureDatabaseRuleConfiguration(), 
mock(), mock());
+        assertThat(actual, isA(FixtureRule.class));
     }
 }

Reply via email to