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 2023/03/02 09:21:42 UTC
[shardingsphere] branch master updated: Use junit 5.x's API to refactor InternalUnsupportedSQLParserIT (#24421)
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 d0ef4801ee4 Use junit 5.x's API to refactor InternalUnsupportedSQLParserIT (#24421)
d0ef4801ee4 is described below
commit d0ef4801ee4cb498e461a67966f7bb6a7823996c
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Thu Mar 2 17:21:34 2023 +0800
Use junit 5.x's API to refactor InternalUnsupportedSQLParserIT (#24421)
---
.../internal/InternalUnsupportedMySQLParserIT.java | 18 +------
.../InternalUnsupportedOpenGaussParserIT.java | 18 +------
.../InternalUnsupportedOracleParserIT.java | 18 +------
.../InternalUnsupportedPostgreSQLParserIT.java | 18 +------
.../internal/InternalUnsupportedSQL92ParserIT.java | 18 +------
.../InternalUnsupportedSQLServerParserIT.java | 18 +------
.../internal/InternalUnsupportedSQLParserIT.java | 57 +++++++++++-----------
7 files changed, 41 insertions(+), 124 deletions(-)
diff --git a/sql-parser/dialect/mysql/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/mysql/internal/InternalUnsupportedMySQLParserIT.java b/sql-parser/dialect/mysql/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/mysql/internal/InternalUnsupportedMySQLParserIT.java
index 3562a17d3a1..6754b9e400d 100644
--- a/sql-parser/dialect/mysql/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/mysql/internal/InternalUnsupportedMySQLParserIT.java
+++ b/sql-parser/dialect/mysql/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/mysql/internal/InternalUnsupportedMySQLParserIT.java
@@ -17,23 +17,9 @@
package org.apache.shardingsphere.test.it.sql.parser.it.mysql.internal;
+import org.apache.shardingsphere.test.it.sql.parser.internal.InternalSQLParserITSettings;
import org.apache.shardingsphere.test.it.sql.parser.internal.InternalUnsupportedSQLParserIT;
-import org.apache.shardingsphere.test.it.sql.parser.internal.InternalSQLParserTestParameter;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
-import java.util.Collection;
-
-@RunWith(Parameterized.class)
+@InternalSQLParserITSettings("MySQL")
public final class InternalUnsupportedMySQLParserIT extends InternalUnsupportedSQLParserIT {
-
- public InternalUnsupportedMySQLParserIT(final InternalSQLParserTestParameter testParam) {
- super(testParam);
- }
-
- @Parameters(name = "{0}")
- public static Collection<InternalSQLParserTestParameter> getTestParameters() {
- return getTestParameters("MySQL");
- }
}
diff --git a/sql-parser/dialect/opengauss/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/opengauss/internal/InternalUnsupportedOpenGaussParserIT.java b/sql-parser/dialect/opengauss/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/opengauss/internal/InternalUnsupportedOpenGaussParserIT.java
index ccca7a27ff0..fa6fd40a05a 100644
--- a/sql-parser/dialect/opengauss/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/opengauss/internal/InternalUnsupportedOpenGaussParserIT.java
+++ b/sql-parser/dialect/opengauss/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/opengauss/internal/InternalUnsupportedOpenGaussParserIT.java
@@ -17,23 +17,9 @@
package org.apache.shardingsphere.test.it.sql.parser.it.opengauss.internal;
+import org.apache.shardingsphere.test.it.sql.parser.internal.InternalSQLParserITSettings;
import org.apache.shardingsphere.test.it.sql.parser.internal.InternalUnsupportedSQLParserIT;
-import org.apache.shardingsphere.test.it.sql.parser.internal.InternalSQLParserTestParameter;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
-import java.util.Collection;
-
-@RunWith(Parameterized.class)
+@InternalSQLParserITSettings("openGauss")
public final class InternalUnsupportedOpenGaussParserIT extends InternalUnsupportedSQLParserIT {
-
- public InternalUnsupportedOpenGaussParserIT(final InternalSQLParserTestParameter testParam) {
- super(testParam);
- }
-
- @Parameters(name = "{0}")
- public static Collection<InternalSQLParserTestParameter> getTestParameters() {
- return getTestParameters("openGauss");
- }
}
diff --git a/sql-parser/dialect/oracle/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/oracle/internal/InternalUnsupportedOracleParserIT.java b/sql-parser/dialect/oracle/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/oracle/internal/InternalUnsupportedOracleParserIT.java
index 9f9db2affd1..286f9910fbd 100644
--- a/sql-parser/dialect/oracle/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/oracle/internal/InternalUnsupportedOracleParserIT.java
+++ b/sql-parser/dialect/oracle/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/oracle/internal/InternalUnsupportedOracleParserIT.java
@@ -17,23 +17,9 @@
package org.apache.shardingsphere.test.it.sql.parser.it.oracle.internal;
+import org.apache.shardingsphere.test.it.sql.parser.internal.InternalSQLParserITSettings;
import org.apache.shardingsphere.test.it.sql.parser.internal.InternalUnsupportedSQLParserIT;
-import org.apache.shardingsphere.test.it.sql.parser.internal.InternalSQLParserTestParameter;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
-import java.util.Collection;
-
-@RunWith(Parameterized.class)
+@InternalSQLParserITSettings("Oracle")
public final class InternalUnsupportedOracleParserIT extends InternalUnsupportedSQLParserIT {
-
- public InternalUnsupportedOracleParserIT(final InternalSQLParserTestParameter testParam) {
- super(testParam);
- }
-
- @Parameters(name = "{0}")
- public static Collection<InternalSQLParserTestParameter> getTestParameters() {
- return getTestParameters("Oracle");
- }
}
diff --git a/sql-parser/dialect/postgresql/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/postgresql/internal/InternalUnsupportedPostgreSQLParserIT.java b/sql-parser/dialect/postgresql/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/postgresql/internal/InternalUnsupportedPostgreSQLParserIT.java
index 9911992c5ac..70d8799f4f6 100644
--- a/sql-parser/dialect/postgresql/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/postgresql/internal/InternalUnsupportedPostgreSQLParserIT.java
+++ b/sql-parser/dialect/postgresql/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/postgresql/internal/InternalUnsupportedPostgreSQLParserIT.java
@@ -17,23 +17,9 @@
package org.apache.shardingsphere.test.it.sql.parser.it.postgresql.internal;
+import org.apache.shardingsphere.test.it.sql.parser.internal.InternalSQLParserITSettings;
import org.apache.shardingsphere.test.it.sql.parser.internal.InternalUnsupportedSQLParserIT;
-import org.apache.shardingsphere.test.it.sql.parser.internal.InternalSQLParserTestParameter;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
-import java.util.Collection;
-
-@RunWith(Parameterized.class)
+@InternalSQLParserITSettings("PostgreSQL")
public final class InternalUnsupportedPostgreSQLParserIT extends InternalUnsupportedSQLParserIT {
-
- public InternalUnsupportedPostgreSQLParserIT(final InternalSQLParserTestParameter testParam) {
- super(testParam);
- }
-
- @Parameters(name = "{0}")
- public static Collection<InternalSQLParserTestParameter> getTestParameters() {
- return getTestParameters("PostgreSQL");
- }
}
diff --git a/sql-parser/dialect/sql92/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/sql92/internal/InternalUnsupportedSQL92ParserIT.java b/sql-parser/dialect/sql92/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/sql92/internal/InternalUnsupportedSQL92ParserIT.java
index 2b1dada83ce..752a09f286a 100644
--- a/sql-parser/dialect/sql92/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/sql92/internal/InternalUnsupportedSQL92ParserIT.java
+++ b/sql-parser/dialect/sql92/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/sql92/internal/InternalUnsupportedSQL92ParserIT.java
@@ -17,23 +17,9 @@
package org.apache.shardingsphere.test.it.sql.parser.it.sql92.internal;
+import org.apache.shardingsphere.test.it.sql.parser.internal.InternalSQLParserITSettings;
import org.apache.shardingsphere.test.it.sql.parser.internal.InternalUnsupportedSQLParserIT;
-import org.apache.shardingsphere.test.it.sql.parser.internal.InternalSQLParserTestParameter;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
-import java.util.Collection;
-
-@RunWith(Parameterized.class)
+@InternalSQLParserITSettings("SQL92")
public final class InternalUnsupportedSQL92ParserIT extends InternalUnsupportedSQLParserIT {
-
- public InternalUnsupportedSQL92ParserIT(final InternalSQLParserTestParameter testParam) {
- super(testParam);
- }
-
- @Parameters(name = "{0}")
- public static Collection<InternalSQLParserTestParameter> getTestParameters() {
- return getTestParameters("SQL92");
- }
}
diff --git a/sql-parser/dialect/sqlserver/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/sqlserver/internal/InternalUnsupportedSQLServerParserIT.java b/sql-parser/dialect/sqlserver/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/sqlserver/internal/InternalUnsupportedSQLServerParserIT.java
index 4ec4588ff0e..f1d121af2e0 100644
--- a/sql-parser/dialect/sqlserver/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/sqlserver/internal/InternalUnsupportedSQLServerParserIT.java
+++ b/sql-parser/dialect/sqlserver/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/sqlserver/internal/InternalUnsupportedSQLServerParserIT.java
@@ -17,23 +17,9 @@
package org.apache.shardingsphere.test.it.sql.parser.it.sqlserver.internal;
+import org.apache.shardingsphere.test.it.sql.parser.internal.InternalSQLParserITSettings;
import org.apache.shardingsphere.test.it.sql.parser.internal.InternalUnsupportedSQLParserIT;
-import org.apache.shardingsphere.test.it.sql.parser.internal.InternalSQLParserTestParameter;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-import org.junit.runners.Parameterized.Parameters;
-import java.util.Collection;
-
-@RunWith(Parameterized.class)
+@InternalSQLParserITSettings("SQLServer")
public final class InternalUnsupportedSQLServerParserIT extends InternalUnsupportedSQLParserIT {
-
- public InternalUnsupportedSQLServerParserIT(final InternalSQLParserTestParameter testParam) {
- super(testParam);
- }
-
- @Parameters(name = "{0}")
- public static Collection<InternalSQLParserTestParameter> getTestParameters() {
- return getTestParameters("SQLServer");
- }
}
diff --git a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/InternalUnsupportedSQLParserIT.java b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/InternalUnsupportedSQLParserIT.java
index 1e78503149e..c36601ee8b6 100644
--- a/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/InternalUnsupportedSQLParserIT.java
+++ b/test/it/parser/src/main/java/org/apache/shardingsphere/test/it/sql/parser/internal/InternalUnsupportedSQLParserIT.java
@@ -19,46 +19,47 @@ package org.apache.shardingsphere.test.it.sql.parser.internal;
import org.apache.shardingsphere.sql.parser.api.CacheOption;
import org.apache.shardingsphere.sql.parser.api.SQLParserEngine;
-import org.apache.shardingsphere.sql.parser.api.SQLVisitorEngine;
-import org.apache.shardingsphere.sql.parser.core.ParseASTNode;
-import org.apache.shardingsphere.sql.parser.sql.common.statement.SQLStatement;
+import org.apache.shardingsphere.sql.parser.exception.SQLParsingException;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.sql.SQLCases;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.sql.registry.UnsupportedSQLCasesRegistry;
import org.apache.shardingsphere.test.it.sql.parser.internal.cases.sql.type.SQLCaseType;
-import org.junit.Test;
+import org.junit.jupiter.api.extension.ExtensionContext;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.ArgumentsProvider;
+import org.junit.jupiter.params.provider.ArgumentsSource;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-import java.util.Properties;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import static org.junit.jupiter.api.Assertions.assertThrows;
public abstract class InternalUnsupportedSQLParserIT {
private static final SQLCases SQL_CASES = UnsupportedSQLCasesRegistry.getInstance().getCases();
- private final String sqlCaseId;
-
- private final String databaseType;
-
- private final SQLCaseType sqlCaseType;
-
- public InternalUnsupportedSQLParserIT(final InternalSQLParserTestParameter testParam) {
- sqlCaseId = testParam.getSqlCaseId();
- databaseType = testParam.getDatabaseType();
- sqlCaseType = testParam.getSqlCaseType();
- }
-
- protected static Collection<InternalSQLParserTestParameter> getTestParameters(final String databaseType) {
- return SQL_CASES.generateTestParameters(Collections.singleton(databaseType));
- }
-
- @Test(expected = Exception.class)
- // TODO should expect SQLParsingException only
- public final void assertUnsupportedSQL() {
+ @ParameterizedTest(name = "{0} ({1}) -> {2}")
+ @ArgumentsSource(TestCaseArgumentsProvider.class)
+ public final void assertUnsupportedSQL(final String sqlCaseId, final SQLCaseType sqlCaseType, final String databaseType) {
String sql = SQL_CASES.getSQL(sqlCaseId, sqlCaseType, Collections.emptyList());
- String databaseType = "H2".equals(this.databaseType) ? "MySQL" : this.databaseType;
CacheOption cacheOption = new CacheOption(128, 1024L);
- ParseASTNode parseContext = new SQLParserEngine(databaseType, cacheOption).parse(sql, false);
- // TODO remove SQLStatement sqlStatement =
- SQLStatement sqlStatement = new SQLVisitorEngine(databaseType, "STATEMENT", true, new Properties()).visit(parseContext);
+ assertThrows(SQLParsingException.class, () -> new SQLParserEngine("H2".equals(databaseType) ? "MySQL" : databaseType, cacheOption).parse(sql, false));
+ }
+
+ private static class TestCaseArgumentsProvider implements ArgumentsProvider {
+
+ @Override
+ public Stream<? extends Arguments> provideArguments(final ExtensionContext extensionContext) {
+ InternalSQLParserITSettings settings = extensionContext.getRequiredTestClass().getAnnotation(InternalSQLParserITSettings.class);
+ return null == settings ? Stream.empty() : getTestParameters(Arrays.asList(settings.value())).stream();
+ }
+
+ private Collection<Arguments> getTestParameters(final Collection<String> databaseTypes) {
+ return SQL_CASES.generateTestParameters(databaseTypes).stream()
+ .map(each -> Arguments.arguments(each.getSqlCaseId(), each.getSqlCaseType(), each.getDatabaseType())).collect(Collectors.toList());
+ }
}
}