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 3a9a490d289 Add prepared statement query for xml assertions (#34111)
3a9a490d289 is described below
commit 3a9a490d28979b5640c5f9d3178ed0d016368321
Author: ZhangCheng <[email protected]>
AuthorDate: Fri Dec 20 18:22:10 2024 +0800
Add prepared statement query for xml assertions (#34111)
---
.../test/e2e/engine/type/dql/GeneralDQLE2EIT.java | 43 ++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dql/GeneralDQLE2EIT.java
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dql/GeneralDQLE2EIT.java
index 4d5dc311b09..3fb3f146b52 100644
---
a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dql/GeneralDQLE2EIT.java
+++
b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dql/GeneralDQLE2EIT.java
@@ -69,6 +69,14 @@ class GeneralDQLE2EIT extends BaseDQLE2EIT {
|| "proxy".equals(testParam.getAdapter()) &&
"empty_storage_units".equalsIgnoreCase(testParam.getScenario())) {
return;
}
+ if (SQLExecuteType.LITERAL == context.getSqlExecuteType()) {
+ assertQueryForStatementWithXmlExpected(context);
+ } else {
+ assertQueryForPreparedStatementWithXmlExpected(context);
+ }
+ }
+
+ private void assertQueryForStatementWithXmlExpected(final E2ETestContext
context) throws SQLException {
try (
Connection connection =
getEnvironmentEngine().getTargetDataSource().getConnection();
Statement statement = connection.createStatement();
@@ -77,6 +85,19 @@ class GeneralDQLE2EIT extends BaseDQLE2EIT {
}
}
+ private void assertQueryForPreparedStatementWithXmlExpected(final
E2ETestContext context) throws SQLException {
+ try (
+ Connection connection =
getEnvironmentEngine().getTargetDataSource().getConnection();
+ PreparedStatement preparedStatement =
connection.prepareStatement(context.getSQL())) {
+ for (SQLValue each : context.getAssertion().getSQLValues()) {
+ preparedStatement.setObject(each.getIndex(), each.getValue());
+ }
+ try (ResultSet resultSet = preparedStatement.executeQuery()) {
+ assertResultSet(context, resultSet);
+ }
+ }
+ }
+
private void assertExecuteQueryWithExpectedDataSource(final
AssertionTestParameter testParam, final E2ETestContext context) throws
SQLException {
try (
Connection actualConnection =
getEnvironmentEngine().getTargetDataSource().getConnection();
@@ -143,6 +164,14 @@ class GeneralDQLE2EIT extends BaseDQLE2EIT {
if ("jdbc".equals(testParam.getAdapter())) {
return;
}
+ if (SQLExecuteType.LITERAL == context.getSqlExecuteType()) {
+ assertExecuteForStatementWithXmlExpected(context);
+ } else {
+ assertExecuteForPreparedStatementWithXmlExpected(context);
+ }
+ }
+
+ private void assertExecuteForStatementWithXmlExpected(final E2ETestContext
context) throws SQLException {
try (
Connection connection =
getEnvironmentEngine().getTargetDataSource().getConnection();
Statement statement = connection.createStatement()) {
@@ -152,6 +181,20 @@ class GeneralDQLE2EIT extends BaseDQLE2EIT {
}
}
+ private void assertExecuteForPreparedStatementWithXmlExpected(final
E2ETestContext context) throws SQLException {
+ try (
+ Connection connection =
getEnvironmentEngine().getTargetDataSource().getConnection();
+ PreparedStatement preparedStatement =
connection.prepareStatement(context.getSQL())) {
+ for (SQLValue each : context.getAssertion().getSQLValues()) {
+ preparedStatement.setObject(each.getIndex(), each.getValue());
+ }
+ assertTrue(preparedStatement.execute(), "Not a query
preparedStatement.");
+ try (ResultSet resultSet = preparedStatement.getResultSet()) {
+ assertResultSet(context, resultSet);
+ }
+ }
+ }
+
private void assertExecuteWithExpectedDataSource(final
AssertionTestParameter testParam, final E2ETestContext context) throws
SQLException {
try (
Connection actualConnection =
getEnvironmentEngine().getTargetDataSource().getConnection();