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));
}
}