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