This is an automated email from the ASF dual-hosted git repository.

jianglongtao 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 7682b81a2b1 Enhance the test case of ConvertYamlConfigurationHandler. 
(#22176)
7682b81a2b1 is described below

commit 7682b81a2b1cef95441192d0936088bf404a11de
Author: yx9o <[email protected]>
AuthorDate: Tue Nov 15 14:49:20 2022 +0800

    Enhance the test case of ConvertYamlConfigurationHandler. (#22176)
    
    * Enhance the test case of ConvertYamlConfigurationHandler.
    
    * Update.
---
 .../queryable/ConvertYamlConfigurationHandler.java | 32 ++++++++++------------
 .../ConvertYamlConfigurationHandlerTest.java       | 24 ++++++++++++++--
 2 files changed, 35 insertions(+), 21 deletions(-)

diff --git 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationHandler.java
 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationHandler.java
index 9797990418e..abdab29b287 100644
--- 
a/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationHandler.java
+++ 
b/proxy/backend/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationHandler.java
@@ -234,34 +234,34 @@ public final class ConvertYamlConfigurationHandler 
extends QueryableRALBackendHa
         
result.append(DistSQLScriptConstants.SEMI).append(System.lineSeparator()).append(System.lineSeparator());
     }
     
-    private String appendTableStrategy(final ShardingTableRuleConfiguration 
shardingTableRuleConfig,
+    private String appendTableStrategy(final ShardingTableRuleConfiguration 
ruleConfig,
                                        final Map<String, 
AlgorithmConfiguration> shardingAlgorithms, final Map<String, 
AlgorithmConfiguration> keyGenerators) {
         StringBuilder result = new StringBuilder();
-        if (null != shardingTableRuleConfig.getDatabaseShardingStrategy()) {
-            
appendStrategy(shardingTableRuleConfig.getDatabaseShardingStrategy(), 
DistSQLScriptConstants.DATABASE_STRATEGY, result, shardingAlgorithms);
+        if (null != ruleConfig.getDatabaseShardingStrategy()) {
+            appendStrategy(ruleConfig.getDatabaseShardingStrategy(), 
DistSQLScriptConstants.DATABASE_STRATEGY, result, shardingAlgorithms);
         }
-        if (null != shardingTableRuleConfig.getTableShardingStrategy()) {
-            appendStrategy(shardingTableRuleConfig.getTableShardingStrategy(), 
DistSQLScriptConstants.TABLE_STRATEGY, result, shardingAlgorithms);
+        if (null != ruleConfig.getTableShardingStrategy()) {
+            appendStrategy(ruleConfig.getTableShardingStrategy(), 
DistSQLScriptConstants.TABLE_STRATEGY, result, shardingAlgorithms);
         }
-        if (null != shardingTableRuleConfig.getKeyGenerateStrategy()) {
-            KeyGenerateStrategyConfiguration keyGenerateStrategyConfig = 
shardingTableRuleConfig.getKeyGenerateStrategy();
+        if (null != ruleConfig.getKeyGenerateStrategy()) {
+            KeyGenerateStrategyConfiguration keyGenerateStrategyConfig = 
ruleConfig.getKeyGenerateStrategy();
             String algorithmDefinition = 
getAlgorithmType(keyGenerators.get(keyGenerateStrategyConfig.getKeyGeneratorName()));
             
result.append(String.format(DistSQLScriptConstants.KEY_GENERATOR_STRATEGY, 
keyGenerateStrategyConfig.getColumn(), algorithmDefinition));
         }
         return result.substring(0, result.lastIndexOf(","));
     }
     
-    private void appendStrategy(final ShardingStrategyConfiguration 
shardingStrategyConfiguration, final String strategyType,
+    private void appendStrategy(final ShardingStrategyConfiguration 
strategyConfig, final String strategyType,
                                 final StringBuilder result, final Map<String, 
AlgorithmConfiguration> shardingAlgorithms) {
-        String type = shardingStrategyConfiguration.getType().toLowerCase();
-        String algorithmDefinition = 
getAlgorithmType(shardingAlgorithms.get(shardingStrategyConfiguration.getShardingAlgorithmName()));
+        String type = strategyConfig.getType().toLowerCase();
+        String algorithmDefinition = 
getAlgorithmType(shardingAlgorithms.get(strategyConfig.getShardingAlgorithmName()));
         switch (type) {
             case DistSQLScriptConstants.STANDARD:
-                StandardShardingStrategyConfiguration 
standardShardingStrategyConfig = (StandardShardingStrategyConfiguration) 
shardingStrategyConfiguration;
+                StandardShardingStrategyConfiguration 
standardShardingStrategyConfig = (StandardShardingStrategyConfiguration) 
strategyConfig;
                 
result.append(String.format(DistSQLScriptConstants.SHARDING_STRATEGY_STANDARD, 
strategyType, type, standardShardingStrategyConfig.getShardingColumn(), 
algorithmDefinition));
                 break;
             case DistSQLScriptConstants.COMPLEX:
-                ComplexShardingStrategyConfiguration 
complexShardingStrategyConfig = (ComplexShardingStrategyConfiguration) 
shardingStrategyConfiguration;
+                ComplexShardingStrategyConfiguration 
complexShardingStrategyConfig = (ComplexShardingStrategyConfiguration) 
strategyConfig;
                 
result.append(String.format(DistSQLScriptConstants.SHARDING_STRATEGY_COMPLEX, 
strategyType, type, complexShardingStrategyConfig.getShardingColumns(), 
algorithmDefinition));
                 break;
             case DistSQLScriptConstants.HINT:
@@ -392,10 +392,8 @@ public final class ConvertYamlConfigurationHandler extends 
QueryableRALBackendHa
         Iterator<EncryptTableRuleConfiguration> iterator = 
ruleConfig.getTables().iterator();
         while (iterator.hasNext()) {
             EncryptTableRuleConfiguration tableRuleConfig = iterator.next();
-            String tableName = tableRuleConfig.getName();
-            String columns = getEncryptColumns(tableRuleConfig.getColumns(), 
ruleConfig.getEncryptors());
             boolean queryWithCipher = null != 
tableRuleConfig.getQueryWithCipherColumn() ? 
tableRuleConfig.getQueryWithCipherColumn() : true;
-            result.append(String.format(DistSQLScriptConstants.ENCRYPT, 
tableName, columns, queryWithCipher));
+            result.append(String.format(DistSQLScriptConstants.ENCRYPT, 
tableRuleConfig.getName(), getEncryptColumns(tableRuleConfig.getColumns(), 
ruleConfig.getEncryptors()), queryWithCipher));
             if (iterator.hasNext()) {
                 
result.append(DistSQLScriptConstants.COMMA).append(System.lineSeparator());
             }
@@ -441,11 +439,9 @@ public final class ConvertYamlConfigurationHandler extends 
QueryableRALBackendHa
         Iterator<ShadowDataSourceConfiguration> iterator = 
ruleConfig.getDataSources().iterator();
         while (iterator.hasNext()) {
             ShadowDataSourceConfiguration dataSourceConfig = iterator.next();
-            String source = dataSourceConfig.getProductionDataSourceName();
-            String shadow = dataSourceConfig.getShadowDataSourceName();
             String shadowRuleName = dataSourceConfig.getName();
             String shadowTables = getShadowTables(shadowRuleName, 
ruleConfig.getTables(), ruleConfig.getShadowAlgorithms());
-            result.append(String.format(DistSQLScriptConstants.SHADOW, 
shadowRuleName, source, shadow, shadowTables));
+            result.append(String.format(DistSQLScriptConstants.SHADOW, 
shadowRuleName, dataSourceConfig.getProductionDataSourceName(), 
dataSourceConfig.getShadowDataSourceName(), shadowTables));
             if (iterator.hasNext()) {
                 result.append(DistSQLScriptConstants.COMMA);
             }
diff --git 
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationHandlerTest.java
 
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationHandlerTest.java
index 070aea2a67c..a60a447837d 100644
--- 
a/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationHandlerTest.java
+++ 
b/proxy/backend/src/test/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationHandlerTest.java
@@ -17,8 +17,13 @@
 
 package org.apache.shardingsphere.proxy.backend.handler.distsql.ral.queryable;
 
+import com.google.common.base.Splitter;
+import com.google.common.base.Strings;
 import lombok.SneakyThrows;
 import 
org.apache.shardingsphere.distsql.parser.statement.ral.queryable.ConvertYamlConfigurationStatement;
+import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
+import org.apache.shardingsphere.parser.rule.SQLParserRule;
+import 
org.apache.shardingsphere.parser.rule.builder.DefaultSQLParserRuleConfigurationBuilder;
 import 
org.apache.shardingsphere.proxy.backend.response.header.query.QueryHeader;
 import 
org.apache.shardingsphere.proxy.backend.response.header.query.QueryResponseHeader;
 import org.apache.shardingsphere.proxy.backend.session.ConnectionSession;
@@ -34,6 +39,7 @@ import java.util.Objects;
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 
@@ -63,6 +69,8 @@ public final class ConvertYamlConfigurationHandlerTest {
     
     private final String mixExpectedFilePath = "/expected/convert-mix.yaml";
     
+    private final SQLParserRule sqlParserRule = new SQLParserRule(new 
DefaultSQLParserRuleConfigurationBuilder().build());
+    
     @Test
     public void assertExecuteWithSharding() throws SQLException {
         assertExecute(shardingConfigFilePath, shardingExpectedFilePath);
@@ -123,9 +131,19 @@ public final class ConvertYamlConfigurationHandlerTest {
         assertFalse(actual.isAutoIncrement());
     }
     
-    private void assertRowData(final Collection<Object> actual, final String 
expectedFilePath) {
-        assertThat(actual.size(), is(1));
-        assertThat(actual.iterator().next(), 
is(loadExpectedRow(expectedFilePath)));
+    private void assertRowData(final Collection<Object> data, final String 
expectedFilePath) {
+        assertThat(data.size(), is(1));
+        Object actual = data.iterator().next();
+        assertThat(actual, is(loadExpectedRow(expectedFilePath)));
+        assertParseSQL((String) actual);
+    }
+    
+    private void assertParseSQL(final String actual) {
+        for (String each : Splitter.on(";").trimResults().splitToList(actual)) 
{
+            if (!Strings.isNullOrEmpty(each)) {
+                assertNotNull(sqlParserRule.getSQLParserEngine(new 
MySQLDatabaseType().getType()).parse(each, false));
+            }
+        }
     }
     
     @SneakyThrows(IOException.class)

Reply via email to