You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by du...@apache.org on 2022/11/04 05:40:45 UTC

[shardingsphere] branch master updated: Refactor DynamicLoadingSQLParserParameterizedTest (#21950)

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

duanzhengqiang 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 9b046d579f1 Refactor DynamicLoadingSQLParserParameterizedTest (#21950)
9b046d579f1 is described below

commit 9b046d579f107d916fdfc480ce91e2230f6c984c
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Fri Nov 4 13:40:39 2022 +0800

    Refactor DynamicLoadingSQLParserParameterizedTest (#21950)
---
 .../DynamicLoadingSQLParserParameterizedTest.java  | 56 ++++++++++------------
 1 file changed, 25 insertions(+), 31 deletions(-)

diff --git a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/DynamicLoadingSQLParserParameterizedTest.java b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/DynamicLoadingSQLParserParameterizedTest.java
index 369d6fa5473..6fc4c548ecb 100644
--- a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/DynamicLoadingSQLParserParameterizedTest.java
+++ b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/parameterized/engine/DynamicLoadingSQLParserParameterizedTest.java
@@ -32,10 +32,9 @@ import java.io.IOException;
 import java.io.InputStreamReader;
 import java.net.URL;
 import java.util.Collection;
+import java.util.LinkedList;
 import java.util.Map;
 import java.util.Properties;
-import java.util.List;
-import java.util.LinkedList;
 import java.util.stream.Collectors;
 
 @RequiredArgsConstructor
@@ -43,23 +42,26 @@ public abstract class DynamicLoadingSQLParserParameterizedTest {
     
     private final String sqlCaseId;
     
-    private final String sqlCaseValue;
+    private final String sql;
     
     private final String databaseType;
     
-    private static String getContent(final String url) throws IOException {
-        InputStreamReader in = new InputStreamReader(new URL(url).openStream());
-        return new BufferedReader(in).lines().collect(Collectors.joining(System.lineSeparator()));
+    protected static Collection<Object[]> getTestParameters(final String sqlCaseURL) throws IOException {
+        Collection<Object[]> result = new LinkedList<>();
+        for (Map<String, String> each : getResponse(sqlCaseURL)) {
+            result.addAll(getSQLCases(each));
+        }
+        return result;
     }
     
-    private static List<Map<String, String>> getResponse(final String sqlCaseURL) throws IOException {
-        List<Map<String, String>> result = new LinkedList<>();
+    private static Collection<Map<String, String>> getResponse(final String sqlCaseURL) throws IOException {
+        Collection<Map<String, String>> result = new LinkedList<>();
         String[] patches = sqlCaseURL.split("/", 8);
-        String sqlCasesOwner = patches[3];
-        String sqlCasesRepo = patches[4];
-        String sqlCasesDirectory = patches[7];
-        String sqlCasesAPI = "https://api.github.com/repos/" + sqlCasesOwner + "/" + sqlCasesRepo + "/contents/" + sqlCasesDirectory;
-        String[] lines = getContent(sqlCasesAPI).split("\\,");
+        String casesOwner = patches[3];
+        String casesRepo = patches[4];
+        String casesDirectory = patches[7];
+        String casesGitHubApiURL = "https://api.github.com/repos/" + casesOwner + "/" + casesRepo + "/contents/" + casesDirectory;
+        String[] lines = getContent(casesGitHubApiURL).split("\\,");
         String nameItem = null;
         for (String each : lines) {
             if (each.contains("name")) {
@@ -72,16 +74,12 @@ public abstract class DynamicLoadingSQLParserParameterizedTest {
         return result;
     }
     
-    protected static Collection<Object[]> getTestParameters(final String sqlCaseURL) throws IOException {
-        Collection<Object[]> result = new LinkedList<>();
-        List<Map<String, String>> response = getResponse(sqlCaseURL);
-        for (Map<String, String> each : response) {
-            result.addAll(getSqlCases(each));
-        }
-        return result;
+    private static String getContent(final String url) throws IOException {
+        InputStreamReader in = new InputStreamReader(new URL(url).openStream());
+        return new BufferedReader(in).lines().collect(Collectors.joining(System.lineSeparator()));
     }
     
-    private static Collection<Object[]> getSqlCases(final Map<String, String> elements) throws IOException {
+    private static Collection<Object[]> getSQLCases(final Map<String, String> elements) throws IOException {
         Collection<Object[]> result = new LinkedList<>();
         String sqlCaseFileName = elements.get("name");
         String[] lines = getContent(elements.get("download_url")).split("\n");
@@ -92,9 +90,7 @@ public abstract class DynamicLoadingSQLParserParameterizedTest {
             }
             if (Character.isLetter(each.charAt(0)) && each.charAt(each.length() - 1) == ';') {
                 String sqlCaseId = sqlCaseFileName.split("\\.")[0] + sqlCaseEnum;
-                result.add(new Object[]{
-                        sqlCaseId, each,
-                });
+                result.add(new Object[]{sqlCaseId, each});
                 sqlCaseEnum++;
             }
         }
@@ -102,14 +98,12 @@ public abstract class DynamicLoadingSQLParserParameterizedTest {
     }
     
     @Test
-    public final void assertDynamicLoadingSQL() {
+    public final void assertParseSQL() {
         try {
-            CacheOption cacheOption = new CacheOption(128, 1024L);
-            ParseASTNode parseContext = new SQLParserEngine(databaseType, cacheOption).parse(sqlCaseValue, false);
-            new SQLVisitorEngine(databaseType, "STATEMENT", true, new Properties()).visit(parseContext);
-        } catch (SQLParsingException | ClassCastException | NullPointerException
-                | SQLASTVisitorException | NumberFormatException | StringIndexOutOfBoundsException ignore) {
-            System.out.println("ParserError: " + sqlCaseId + " value: " + sqlCaseValue + " db-type: " + databaseType);
+            ParseASTNode parseASTNode = new SQLParserEngine(databaseType, new CacheOption(128, 1024L)).parse(sql, false);
+            new SQLVisitorEngine(databaseType, "STATEMENT", true, new Properties()).visit(parseASTNode);
+        } catch (final SQLParsingException | ClassCastException | NullPointerException | SQLASTVisitorException | NumberFormatException | StringIndexOutOfBoundsException ignore) {
+            System.out.println("ParserError: " + sqlCaseId + " value: " + sql + " db-type: " + databaseType);
         }
     }
 }