This is an automated email from the ASF dual-hosted git repository.
sunnianjun 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 adde802b70b Refactor SQLCaseAssertContext (#22421)
adde802b70b is described below
commit adde802b70bb7bec29d6f5a502567e7fe4f606e9
Author: Liang Zhang <[email protected]>
AuthorDate: Fri Nov 25 20:24:55 2022 +0800
Refactor SQLCaseAssertContext (#22421)
---
.../internal/asserts/SQLCaseAssertContext.java | 25 ++++++++++------------
.../internal/asserts/segment/SQLSegmentAssert.java | 4 ++--
.../segment/expression/ExpressionAssert.java | 4 ++--
.../asserts/segment/limit/LimitClauseAssert.java | 2 +-
.../segment/parameter/ParameterMarkerAssert.java | 2 +-
.../segment/projection/ProjectionAssert.java | 4 ++--
.../engine/InternalSQLParserParameterizedIT.java | 6 +++---
7 files changed, 22 insertions(+), 25 deletions(-)
diff --git
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/SQLCaseAssertContext.java
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/SQLCaseAssertContext.java
index 9d75c1f209e..ddc8712a4e9 100644
---
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/SQLCaseAssertContext.java
+++
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/SQLCaseAssertContext.java
@@ -19,12 +19,9 @@ package
org.apache.shardingsphere.test.sql.parser.internal.asserts;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
-import
org.apache.shardingsphere.test.sql.parser.internal.cases.parser.registry.SQLParserTestCasesRegistry;
-import
org.apache.shardingsphere.test.sql.parser.internal.cases.parser.registry.SQLParserTestCasesRegistryFactory;
import
org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
-import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCases;
-import java.util.Collections;
+import java.util.List;
/**
* SQL case assert context.
@@ -32,20 +29,20 @@ import java.util.Collections;
@RequiredArgsConstructor
public final class SQLCaseAssertContext {
- private static final SQLParserTestCasesRegistry
SQL_PARSER_TEST_CASES_REGISTRY =
SQLParserTestCasesRegistryFactory.getInstance().getRegistry();
+ private final String caseId;
- private final SQLCases sqlCasesRegistry;
+ private final String sql;
- private final String sqlCaseId;
+ private final List<String> params;
@Getter
- private final SQLCaseType sqlCaseType;
+ private final SQLCaseType caseType;
/**
* Get message text.
*
* @param failureMessage failure message
- * @return message text
+ * @return got message text
*/
public String getText(final String failureMessage) {
StringBuilder result = new StringBuilder(System.lineSeparator());
@@ -57,20 +54,20 @@ public final class SQLCaseAssertContext {
private void appendSQLCaseId(final StringBuilder builder) {
builder.append("SQL Case ID : ");
- builder.append(sqlCaseId);
+ builder.append(caseId);
builder.append(System.lineSeparator());
}
private void appendSQL(final StringBuilder builder) {
builder.append("SQL : ");
- if (SQLCaseType.Placeholder == sqlCaseType) {
- builder.append(sqlCasesRegistry.getSQL(sqlCaseId, sqlCaseType,
Collections.emptyList()));
+ if (SQLCaseType.Placeholder == caseType) {
+ builder.append(sql);
builder.append(System.lineSeparator());
builder.append("SQL Params : ");
-
builder.append(SQL_PARSER_TEST_CASES_REGISTRY.get(sqlCaseId).getParameters());
+ builder.append(params);
builder.append(System.lineSeparator());
} else {
- builder.append(sqlCasesRegistry.getSQL(sqlCaseId, sqlCaseType,
SQL_PARSER_TEST_CASES_REGISTRY.get(sqlCaseId).getParameters()));
+ builder.append(sql);
}
}
diff --git
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/SQLSegmentAssert.java
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/SQLSegmentAssert.java
index 1e541aeddc6..45080e74178 100644
---
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/SQLSegmentAssert.java
+++
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/SQLSegmentAssert.java
@@ -46,12 +46,12 @@ public final class SQLSegmentAssert {
}
private static void assertStartIndex(final SQLCaseAssertContext
assertContext, final SQLSegment actual, final ExpectedSQLSegment expected) {
- int expectedStartIndex = SQLCaseType.Literal ==
assertContext.getSqlCaseType() && null != expected.getLiteralStartIndex() ?
expected.getLiteralStartIndex() : expected.getStartIndex();
+ int expectedStartIndex = SQLCaseType.Literal ==
assertContext.getCaseType() && null != expected.getLiteralStartIndex() ?
expected.getLiteralStartIndex() : expected.getStartIndex();
assertThat(assertContext.getText(String.format("`%s`'s start index
assertion error: ", actual.getClass().getSimpleName())),
actual.getStartIndex(), is(expectedStartIndex));
}
private static void assertStopIndex(final SQLCaseAssertContext
assertContext, final SQLSegment actual, final ExpectedSQLSegment expected) {
- int expectedStopIndex = SQLCaseType.Literal ==
assertContext.getSqlCaseType() && null != expected.getLiteralStopIndex() ?
expected.getLiteralStopIndex() : expected.getStopIndex();
+ int expectedStopIndex = SQLCaseType.Literal ==
assertContext.getCaseType() && null != expected.getLiteralStopIndex() ?
expected.getLiteralStopIndex() : expected.getStopIndex();
assertThat(assertContext.getText(String.format("`%s`'s stop index
assertion error: ", actual.getClass().getSimpleName())), actual.getStopIndex(),
is(expectedStopIndex));
}
}
diff --git
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/expression/ExpressionAssert.java
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/expression/ExpressionAssert.java
index 1730b327c66..cab4bc18737 100644
---
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/expression/ExpressionAssert.java
+++
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/expression/ExpressionAssert.java
@@ -124,7 +124,7 @@ public final class ExpressionAssert {
assertNull(assertContext.getText("Actual common expression should
not exist."), actual);
} else {
assertNotNull(assertContext.getText("Actual common expression
should exist."), actual);
- String expectedText = SQLCaseType.Literal ==
assertContext.getSqlCaseType() && null != expected.getLiteralText() ?
expected.getLiteralText() : expected.getText();
+ String expectedText = SQLCaseType.Literal ==
assertContext.getCaseType() && null != expected.getLiteralText() ?
expected.getLiteralText() : expected.getText();
assertThat(assertContext.getText("Common expression text assertion
error: "), actual.getText(), is(expectedText));
SQLSegmentAssert.assertIs(assertContext, actual, expected);
}
@@ -296,7 +296,7 @@ public final class ExpressionAssert {
public static void assertFunction(final SQLCaseAssertContext
assertContext, final FunctionSegment actual, final ExpectedFunction expected) {
SQLSegmentAssert.assertIs(assertContext, actual, expected);
assertThat(assertContext.getText("Function method name assertion
error: "), actual.getFunctionName(), is(expected.getFunctionName()));
- String expectedText = SQLCaseType.Literal ==
assertContext.getSqlCaseType() && null != expected.getLiteralText()
+ String expectedText = SQLCaseType.Literal ==
assertContext.getCaseType() && null != expected.getLiteralText()
? expected.getLiteralText()
: expected.getText();
assertThat(assertContext.getText("Function text name assertion error:
"), actual.getText(), is(expectedText));
diff --git
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/limit/LimitClauseAssert.java
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/limit/LimitClauseAssert.java
index 400326427f0..fb99ef07461 100644
---
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/limit/LimitClauseAssert.java
+++
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/limit/LimitClauseAssert.java
@@ -70,7 +70,7 @@ public final class LimitClauseAssert {
assertNull(assertContext.getText("Row count should not exist."),
expected);
return;
}
- if (SQLCaseType.Placeholder == assertContext.getSqlCaseType()) {
+ if (SQLCaseType.Placeholder == assertContext.getCaseType()) {
assertThat(assertContext.getText("Row count index assertion error:
"),
((ParameterMarkerPaginationValueSegment)
actual).getParameterIndex(), is(expected.getParameterIndex()));
} else {
diff --git
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java
index 63978cd07b9..0573db2b621 100644
---
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java
+++
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/parameter/ParameterMarkerAssert.java
@@ -39,7 +39,7 @@ public final class ParameterMarkerAssert {
* @param expected expected parameter markers count
*/
public static void assertCount(final SQLCaseAssertContext assertContext,
final int actual, final int expected) {
- if (SQLCaseType.Placeholder == assertContext.getSqlCaseType()) {
+ if (SQLCaseType.Placeholder == assertContext.getCaseType()) {
assertThat(assertContext.getText("Parameter markers count
assertion error: "), actual, is(expected));
} else {
assertThat(assertContext.getText("Parameter markers count
assertion error: "), actual, is(0));
diff --git
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/projection/ProjectionAssert.java
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/projection/ProjectionAssert.java
index c4ef6481c71..9bd9090ad26 100644
---
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/projection/ProjectionAssert.java
+++
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/asserts/segment/projection/ProjectionAssert.java
@@ -115,7 +115,7 @@ public final class ProjectionAssert {
private static void assertSubqueryProjection(final SQLCaseAssertContext
assertContext, final SubqueryProjectionSegment actual, final
ExpectedSubqueryProjection expected) {
assertThat(assertContext.getText("Subquery projection alias assertion
error: "), actual.getAlias().orElse(null), is(expected.getAlias()));
- String expectedText = SQLCaseType.Literal ==
assertContext.getSqlCaseType() && null != expected.getLiteralText() ?
expected.getLiteralText() : expected.getText();
+ String expectedText = SQLCaseType.Literal ==
assertContext.getCaseType() && null != expected.getLiteralText() ?
expected.getLiteralText() : expected.getText();
assertThat(assertContext.getText("Subquery projection text assertion
error: "), actual.getText(), is(expectedText));
SelectStatementAssert.assertIs(assertContext,
actual.getSubquery().getSelect(), expected.getSubquery().getSelectTestCases());
}
@@ -154,7 +154,7 @@ public final class ProjectionAssert {
private static void assertExpressionProjection(final SQLCaseAssertContext
assertContext, final ExpressionProjectionSegment actual, final
ExpectedExpressionProjection expected) {
assertThat(assertContext.getText("Expression projection alias
assertion error: "),
actual.getAlias().orElse(null), is(expected.getAlias()));
- String expectedText = SQLCaseType.Literal ==
assertContext.getSqlCaseType() && null != expected.getLiteralText()
+ String expectedText = SQLCaseType.Literal ==
assertContext.getCaseType() && null != expected.getLiteralText()
? expected.getLiteralText()
: expected.getText();
assertThat(assertContext.getText("Expression projection text assertion
error: "),
diff --git
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/engine/InternalSQLParserParameterizedIT.java
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/engine/InternalSQLParserParameterizedIT.java
index 255861e9ff7..63d773ae6a0 100644
---
a/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/engine/InternalSQLParserParameterizedIT.java
+++
b/test/parser/src/main/java/org/apache/shardingsphere/test/sql/parser/internal/engine/InternalSQLParserParameterizedIT.java
@@ -29,8 +29,8 @@ import
org.apache.shardingsphere.test.sql.parser.internal.cases.parser.domain.st
import
org.apache.shardingsphere.test.sql.parser.internal.cases.parser.registry.SQLParserTestCasesRegistry;
import
org.apache.shardingsphere.test.sql.parser.internal.cases.parser.registry.SQLParserTestCasesRegistryFactory;
import
org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCaseType;
-import
org.apache.shardingsphere.test.sql.parser.internal.cases.sql.registry.SQLCasesRegistry;
import org.apache.shardingsphere.test.sql.parser.internal.cases.sql.SQLCases;
+import
org.apache.shardingsphere.test.sql.parser.internal.cases.sql.registry.SQLCasesRegistry;
import org.junit.Test;
import java.util.Arrays;
@@ -67,10 +67,10 @@ public abstract class InternalSQLParserParameterizedIT {
@Test
public final void assertSupportedSQL() {
- SQLParserTestCase expected =
SQL_PARSER_TEST_CASES_REGISTRY.get(sqlCaseId);
String sql = SQL_CASES.getSQL(sqlCaseId, sqlCaseType,
SQL_PARSER_TEST_CASES_REGISTRY.get(sqlCaseId).getParameters());
SQLStatement actual = parseSQLStatement("H2".equals(databaseType) ?
"MySQL" : databaseType, sql);
- SQLStatementAssert.assertIs(new SQLCaseAssertContext(SQL_CASES,
sqlCaseId, sqlCaseType), actual, expected);
+ SQLParserTestCase expected =
SQL_PARSER_TEST_CASES_REGISTRY.get(sqlCaseId);
+ SQLStatementAssert.assertIs(new SQLCaseAssertContext(sqlCaseId, sql,
expected.getParameters(), sqlCaseType), actual, expected);
}
private SQLStatement parseSQLStatement(final String databaseType, final
String sql) {