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/12 15:32:16 UTC

[shardingsphere] branch master updated: Add SQLCaseFileSummary (#22127)

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 3034cb8c83e Add SQLCaseFileSummary (#22127)
3034cb8c83e is described below

commit 3034cb8c83e4f6d8066e4c12e64355d7bec8d646
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Sat Nov 12 23:32:09 2022 +0800

    Add SQLCaseFileSummary (#22127)
---
 ...seLoadStrategy.java => SQLCaseFileSummary.java} | 27 +++++++---------------
 .../sql/parser/loader/SQLCaseLoadStrategy.java     |  6 ++---
 .../sql/parser/loader/SQLCaseLoader.java           | 12 +++++-----
 .../loader/impl/GitHubSQLCaseLoadStrategy.java     | 21 +++++++----------
 .../loader/impl/LocalFileSQLCaseLoadStrategy.java  |  3 ++-
 5 files changed, 27 insertions(+), 42 deletions(-)

diff --git a/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/SQLCaseLoadStrategy.java b/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/SQLCaseFileSummary.java
similarity index 64%
copy from test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/SQLCaseLoadStrategy.java
copy to test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/SQLCaseFileSummary.java
index 054eef96531..dbefefab780 100644
--- a/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/SQLCaseLoadStrategy.java
+++ b/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/SQLCaseFileSummary.java
@@ -17,28 +17,17 @@
 
 package org.apache.shardingsphere.test.integration.sql.parser.loader;
 
-import java.net.URI;
-import java.util.Collection;
-import java.util.Map;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
 
 /**
- * SQL case load strategy.
+ * SQL case file summary.
  */
-public interface SQLCaseLoadStrategy {
+@RequiredArgsConstructor
+@Getter
+public final class SQLCaseFileSummary {
     
-    /**
-     * Load SQL cases.
-     * 
-     * @param uri URL to be loaded
-     * @return loaded SQL cases
-     */
-    Collection<Map<String, String>> loadSQLCases(URI uri);
+    private final String fileName;
     
-    /**
-     * Load SQL cases result.
-     * 
-     * @param uri URL to be loaded
-     * @return loaded SQL case results
-     */
-    Map<String, String> loadSQLCaseResults(URI uri);
+    private final String accessURL;
 }
diff --git a/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/SQLCaseLoadStrategy.java b/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/SQLCaseLoadStrategy.java
index 054eef96531..96239b22843 100644
--- a/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/SQLCaseLoadStrategy.java
+++ b/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/SQLCaseLoadStrategy.java
@@ -27,12 +27,12 @@ import java.util.Map;
 public interface SQLCaseLoadStrategy {
     
     /**
-     * Load SQL cases.
+     * Load SQL case file summaries.
      * 
      * @param uri URL to be loaded
-     * @return loaded SQL cases
+     * @return loaded SQL file summaries
      */
-    Collection<Map<String, String>> loadSQLCases(URI uri);
+    Collection<SQLCaseFileSummary> loadSQLCaseFileSummaries(URI uri);
     
     /**
      * Load SQL cases result.
diff --git a/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/SQLCaseLoader.java b/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/SQLCaseLoader.java
index c107b6cefa9..f4424e4fc58 100644
--- a/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/SQLCaseLoader.java
+++ b/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/SQLCaseLoader.java
@@ -53,13 +53,13 @@ public final class SQLCaseLoader {
             return Collections.emptyList();
         }
         Collection<Object[]> result = new LinkedList<>();
-        Collection<Map<String, String>> sqlCases = loadStrategy.loadSQLCases(sqlCaseURI);
+        Collection<SQLCaseFileSummary> sqlCases = loadStrategy.loadSQLCaseFileSummaries(sqlCaseURI);
         Map<String, String> resultResponse = loadStrategy.loadSQLCaseResults(sqlCaseResultURI);
-        for (Map<String, String> each : sqlCases) {
-            String sqlCaseFileName = each.get("name").split("\\.")[0];
-            String sqlCaseTestFileContent = loadContent(URI.create(each.get("download_url")));
-            String sqlCaseResultFileContent = resultResponse.containsKey(sqlCaseFileName) ? loadContent(URI.create(resultResponse.get(sqlCaseFileName))) : "";
-            result.addAll(createSQLCases(sqlCaseFileName, sqlCaseTestFileContent, sqlCaseResultFileContent));
+        for (SQLCaseFileSummary each : sqlCases) {
+            String fileName = each.getFileName();
+            String sqlCaseTestFileContent = loadContent(URI.create(each.getAccessURL()));
+            String sqlCaseResultFileContent = resultResponse.containsKey(fileName) ? loadContent(URI.create(resultResponse.get(fileName))) : "";
+            result.addAll(createSQLCases(fileName, sqlCaseTestFileContent, sqlCaseResultFileContent));
         }
         if (result.isEmpty()) {
             result.add(new Object[]{"", ""});
diff --git a/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/impl/GitHubSQLCaseLoadStrategy.java b/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/impl/GitHubSQLCaseLoadStrategy.java
index 6f59dd11392..6c1bbcc4bc9 100644
--- a/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/impl/GitHubSQLCaseLoadStrategy.java
+++ b/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/impl/GitHubSQLCaseLoadStrategy.java
@@ -17,9 +17,9 @@
 
 package org.apache.shardingsphere.test.integration.sql.parser.loader.impl;
 
-import com.google.common.collect.ImmutableMap;
 import com.jayway.jsonpath.JsonPath;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.shardingsphere.test.integration.sql.parser.loader.SQLCaseFileSummary;
 import org.apache.shardingsphere.test.integration.sql.parser.loader.SQLCaseLoadStrategy;
 
 import java.io.BufferedReader;
@@ -28,7 +28,6 @@ import java.io.InputStreamReader;
 import java.net.URI;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -41,22 +40,22 @@ import java.util.stream.Collectors;
 public final class GitHubSQLCaseLoadStrategy implements SQLCaseLoadStrategy {
     
     @Override
-    public Collection<Map<String, String>> loadSQLCases(final URI uri) {
+    public Collection<SQLCaseFileSummary> loadSQLCaseFileSummaries(final URI uri) {
         String caseContent = loadContent(getGitHubApiUri(uri));
         if (caseContent.isEmpty()) {
             return Collections.emptyList();
         }
-        Collection<Map<String, String>> result = new LinkedList<>();
-        List<String> casesName = JsonPath.parse(caseContent).read("$..name");
-        List<String> casesDownloadURL = JsonPath.parse(caseContent).read("$..download_url");
+        Collection<SQLCaseFileSummary> result = new LinkedList<>();
+        List<String> fileName = JsonPath.parse(caseContent).read("$..name");
+        List<String> downloadURL = JsonPath.parse(caseContent).read("$..download_url");
         List<String> casesHtmlURL = JsonPath.parse(caseContent).read("$..html_url");
         List<String> casesType = JsonPath.parse(caseContent).read("$..type");
         int bound = JsonPath.parse(caseContent).read("$.length()");
         for (int each = 0; each < bound; each++) {
             if ("file".equals(casesType.get(each))) {
-                result.add(ImmutableMap.of("name", casesName.get(each), "download_url", casesDownloadURL.get(each)));
+                result.add(new SQLCaseFileSummary(fileName.get(each).split("\\.")[0], downloadURL.get(each)));
             } else if ("dir".equals(casesType.get(each))) {
-                result.addAll(loadSQLCases(URI.create(casesHtmlURL.get(each))));
+                result.addAll(loadSQLCaseFileSummaries(URI.create(casesHtmlURL.get(each))));
             }
         }
         return result;
@@ -82,10 +81,6 @@ public final class GitHubSQLCaseLoadStrategy implements SQLCaseLoadStrategy {
     
     @Override
     public Map<String, String> loadSQLCaseResults(final URI uri) {
-        Map<String, String> result = new HashMap<>();
-        for (Map<String, String> each : loadSQLCases(uri)) {
-            result.put(each.get("name").split("\\.")[0], each.get("download_url"));
-        }
-        return result;
+        return loadSQLCaseFileSummaries(uri).stream().collect(Collectors.toMap(SQLCaseFileSummary::getFileName, SQLCaseFileSummary::getAccessURL, (a, b) -> b));
     }
 }
diff --git a/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/impl/LocalFileSQLCaseLoadStrategy.java b/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/impl/LocalFileSQLCaseLoadStrategy.java
index 115ead58f2c..8d65e7d41c8 100644
--- a/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/impl/LocalFileSQLCaseLoadStrategy.java
+++ b/test/integration-test/sql-parser/src/test/java/org/apache/shardingsphere/test/integration/sql/parser/loader/impl/LocalFileSQLCaseLoadStrategy.java
@@ -17,6 +17,7 @@
 
 package org.apache.shardingsphere.test.integration.sql.parser.loader.impl;
 
+import org.apache.shardingsphere.test.integration.sql.parser.loader.SQLCaseFileSummary;
 import org.apache.shardingsphere.test.integration.sql.parser.loader.SQLCaseLoadStrategy;
 
 import java.net.URI;
@@ -30,7 +31,7 @@ import java.util.Map;
 public final class LocalFileSQLCaseLoadStrategy implements SQLCaseLoadStrategy {
     
     @Override
-    public Collection<Map<String, String>> loadSQLCases(final URI uri) {
+    public Collection<SQLCaseFileSummary> loadSQLCaseFileSummaries(final URI uri) {
         // TODO
         return Collections.emptyList();
     }