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 ed2e726519c Refactor SQLRewriterIT.createDatabaseRules() (#35156)
ed2e726519c is described below

commit ed2e726519ce03e145014ce8734669996637d429
Author: Liang Zhang <zhangli...@apache.org>
AuthorDate: Thu Apr 10 11:55:10 2025 +0800

    Refactor SQLRewriterIT.createDatabaseRules() (#35156)
    
    * Refactor SQLRewriterIT
    
    * Refactor SQLRewriterIT.createDatabaseRules()
---
 .../test/it/rewrite/engine/SQLRewriterIT.java       | 21 +++++++++------------
 .../engine/scenario/EncryptSQLRewriterIT.java       |  2 +-
 .../rewrite/engine/scenario/MixSQLRewriterIT.java   |  2 +-
 .../engine/scenario/ShardingSQLRewriterIT.java      |  2 +-
 4 files changed, 12 insertions(+), 15 deletions(-)

diff --git 
a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/SQLRewriterIT.java
 
b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/SQLRewriterIT.java
index f110cfb13e9..bdc60f951b6 100644
--- 
a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/SQLRewriterIT.java
+++ 
b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/SQLRewriterIT.java
@@ -31,7 +31,6 @@ import 
org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseTypeRegistry;
 import org.apache.shardingsphere.infra.hint.HintValueContext;
 import org.apache.shardingsphere.infra.hint.SQLHintUtils;
-import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
@@ -118,9 +117,8 @@ public abstract class SQLRewriterIT {
         String sql = SQLHintUtils.removeHint(testParams.getInputSQL());
         SQLParserEngine sqlParserEngine = 
sqlParserRule.getSQLParserEngine(databaseType);
         SQLStatement sqlStatement = sqlParserEngine.parse(sql, false);
-        Collection<ShardingSphereRule> databaseRules = 
createDatabaseRules(databaseConfig, schemaName, sqlStatement, databaseType);
-        RuleMetaData databaseRuleMetaData = new RuleMetaData(databaseRules);
-        ShardingSphereDatabase database = new 
ShardingSphereDatabase(databaseName, databaseType, resourceMetaData, 
databaseRuleMetaData, mockSchemas(schemaName));
+        Collection<ShardingSphereRule> rules = 
createDatabaseRules(databaseConfig, schemaName, sqlStatement, databaseType);
+        ShardingSphereDatabase database = new 
ShardingSphereDatabase(databaseName, databaseType, resourceMetaData, new 
RuleMetaData(rules), mockSchemas(schemaName));
         RuleMetaData globalRuleMetaData = new 
RuleMetaData(createGlobalRules());
         ShardingSphereMetaData metaData = new 
ShardingSphereMetaData(Collections.singleton(database), mock(), 
globalRuleMetaData, mock());
         HintValueContext hintValueContext = 
SQLHintUtils.extractHint(testParams.getInputSQL());
@@ -134,7 +132,7 @@ public abstract class SQLRewriterIT {
         ConnectionContext connectionContext = 
createConnectionContext(database.getName());
         QueryContext queryContext = new QueryContext(sqlStatementContext, sql, 
testParams.getInputParameters(), hintValueContext, connectionContext, metaData);
         ConfigurationProperties props = new 
ConfigurationProperties(rootConfig.getProps());
-        RouteContext routeContext = new SQLRouteEngine(databaseRules, 
props).route(queryContext, globalRuleMetaData, database);
+        RouteContext routeContext = new SQLRouteEngine(rules, 
props).route(queryContext, globalRuleMetaData, database);
         SQLRewriteEntry sqlRewriteEntry = new SQLRewriteEntry(database, 
globalRuleMetaData, props);
         SQLRewriteResult sqlRewriteResult = 
sqlRewriteEntry.rewrite(queryContext, routeContext);
         return sqlRewriteResult instanceof GenericSQLRewriteResult
@@ -149,11 +147,9 @@ public abstract class SQLRewriterIT {
     }
     
     private Collection<ShardingSphereRule> createDatabaseRules(final 
DatabaseConfiguration databaseConfig, final String schemaName, final 
SQLStatement sqlStatement, final DatabaseType databaseType) {
-        Collection<ShardingSphereRule> result = 
DatabaseRulesBuilder.build(DefaultDatabase.LOGIC_NAME, databaseType, 
databaseConfig, mock(ComputeNodeInstanceContext.class),
-                new ResourceMetaData(databaseConfig.getDataSources(), 
databaseConfig.getStorageUnits()));
-        mockRules(result, schemaName, sqlStatement);
-        result.add(sqlParserRule);
-        result.add(timestampServiceRule);
+        Collection<ShardingSphereRule> result = DatabaseRulesBuilder.build(
+                DefaultDatabase.LOGIC_NAME, databaseType, databaseConfig, 
mock(), new ResourceMetaData(databaseConfig.getDataSources(), 
databaseConfig.getStorageUnits()));
+        mockDatabaseRules(result, schemaName, sqlStatement);
         return result;
     }
     
@@ -165,8 +161,9 @@ public abstract class SQLRewriterIT {
     
     private Collection<ShardingSphereRule> createGlobalRules() {
         Collection<ShardingSphereRule> result = new LinkedList<>();
+        result.add(sqlParserRule);
+        result.add(timestampServiceRule);
         result.add(new SQLTranslatorRule(new 
DefaultSQLTranslatorRuleConfigurationBuilder().build()));
-        result.add(new 
TimestampServiceRule(mock(TimestampServiceRuleConfiguration.class)));
         return result;
     }
     
@@ -177,7 +174,7 @@ public abstract class SQLRewriterIT {
     
     protected abstract Collection<ShardingSphereSchema> mockSchemas(String 
schemaName);
     
-    protected abstract void mockRules(Collection<ShardingSphereRule> rules, 
String schemaName, SQLStatement sqlStatement);
+    protected abstract void mockDatabaseRules(Collection<ShardingSphereRule> 
rules, String schemaName, SQLStatement sqlStatement);
     
     private static class TestCaseArgumentsProvider implements 
ArgumentsProvider {
         
diff --git 
a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/EncryptSQLRewriterIT.java
 
b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/EncryptSQLRewriterIT.java
index 9eed0395663..64383b98dfd 100644
--- 
a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/EncryptSQLRewriterIT.java
+++ 
b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/EncryptSQLRewriterIT.java
@@ -74,7 +74,7 @@ class EncryptSQLRewriterIT extends SQLRewriterIT {
     }
     
     @Override
-    protected void mockRules(final Collection<ShardingSphereRule> rules, final 
String schemaName, final SQLStatement sqlStatement) {
+    protected void mockDatabaseRules(final Collection<ShardingSphereRule> 
rules, final String schemaName, final SQLStatement sqlStatement) {
         Optional<SingleRule> singleRule = 
rules.stream().filter(SingleRule.class::isInstance).map(SingleRule.class::cast).findFirst();
         if (singleRule.isPresent() && !(sqlStatement instanceof 
CreateTableStatement)) {
             
singleRule.get().getAttributes().getAttribute(MutableDataNodeRuleAttribute.class).put("encrypt_ds",
 schemaName, "t_account");
diff --git 
a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/MixSQLRewriterIT.java
 
b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/MixSQLRewriterIT.java
index 4083f88ea6d..96fc65a9f52 100644
--- 
a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/MixSQLRewriterIT.java
+++ 
b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/MixSQLRewriterIT.java
@@ -58,6 +58,6 @@ class MixSQLRewriterIT extends SQLRewriterIT {
     }
     
     @Override
-    protected void mockRules(final Collection<ShardingSphereRule> rules, final 
String schemaName, final SQLStatement sqlStatement) {
+    protected void mockDatabaseRules(final Collection<ShardingSphereRule> 
rules, final String schemaName, final SQLStatement sqlStatement) {
     }
 }
diff --git 
a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/ShardingSQLRewriterIT.java
 
b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/ShardingSQLRewriterIT.java
index 1891af7ab16..489377801cb 100644
--- 
a/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/ShardingSQLRewriterIT.java
+++ 
b/test/it/rewriter/src/test/java/org/apache/shardingsphere/test/it/rewrite/engine/scenario/ShardingSQLRewriterIT.java
@@ -40,7 +40,7 @@ import java.util.Optional;
 class ShardingSQLRewriterIT extends SQLRewriterIT {
     
     @Override
-    protected void mockRules(final Collection<ShardingSphereRule> rules, final 
String schemaName, final SQLStatement sqlStatement) {
+    protected void mockDatabaseRules(final Collection<ShardingSphereRule> 
rules, final String schemaName, final SQLStatement sqlStatement) {
         Optional<SingleRule> singleRule = 
rules.stream().filter(SingleRule.class::isInstance).map(SingleRule.class::cast).findFirst();
         if (singleRule.isPresent() && !(sqlStatement instanceof 
CreateTableStatement)) {
             
singleRule.get().getAttributes().getAttribute(MutableDataNodeRuleAttribute.class).put("db",
 schemaName, "t_single");

Reply via email to