You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by su...@apache.org on 2022/11/25 12:25:06 UTC
[shardingsphere] branch master updated: Refactor SQLCaseAssertContext (#22421)
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 <zh...@apache.org>
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) {