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 2024/08/01 02:23:20 UTC
(shardingsphere) branch master updated: Remove the dependency on E2ETestParameter from E2EContainerComposer. (#32345)
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 2c3d56a23f5 Remove the dependency on E2ETestParameter from E2EContainerComposer. (#32345)
2c3d56a23f5 is described below
commit 2c3d56a23f52017e47f713f786244bc68b489234
Author: Cong Hu <ia...@gmail.com>
AuthorDate: Thu Aug 1 10:23:13 2024 +0800
Remove the dependency on E2ETestParameter from E2EContainerComposer. (#32345)
---
.../engine/composer/BatchE2EContainerComposer.java | 112 --------------
.../e2e/engine/composer/E2EContainerComposer.java | 17 +--
.../SingleE2EContext.java} | 19 +--
.../test/e2e/engine/type/DALE2EIT.java | 36 +++--
.../test/e2e/engine/type/DCLE2EIT.java | 29 ++--
.../test/e2e/engine/type/DDLE2EIT.java | 91 +++++------
.../test/e2e/engine/type/RALE2EIT.java | 71 +++++----
.../test/e2e/engine/type/RDLE2EIT.java | 63 ++++----
.../test/e2e/engine/type/RQLE2EIT.java | 27 ++--
.../e2e/engine/type/dml/AdditionalDMLE2EIT.java | 167 ++++++++++++---------
.../test/e2e/engine/type/dml/BaseDMLE2EIT.java | 109 +++++++++++---
.../test/e2e/engine/type/dml/BatchDMLE2EIT.java | 54 ++++---
.../test/e2e/engine/type/dml/GeneralDMLE2EIT.java | 49 +++---
.../e2e/engine/type/dql/AdditionalDQLE2EIT.java | 113 ++++++++------
.../test/e2e/engine/type/dql/BaseDQLE2EIT.java | 28 ++--
.../test/e2e/engine/type/dql/GeneralDQLE2EIT.java | 90 ++++++-----
16 files changed, 562 insertions(+), 513 deletions(-)
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/BatchE2EContainerComposer.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/BatchE2EContainerComposer.java
deleted file mode 100644
index 301df6d0557..00000000000
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/BatchE2EContainerComposer.java
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.shardingsphere.test.e2e.engine.composer;
-
-import org.apache.shardingsphere.test.e2e.cases.casse.assertion.E2ETestCaseAssertion;
-import org.apache.shardingsphere.test.e2e.cases.dataset.DataSet;
-import org.apache.shardingsphere.test.e2e.cases.dataset.DataSetLoader;
-import org.apache.shardingsphere.test.e2e.cases.dataset.row.DataSetRow;
-import org.apache.shardingsphere.test.e2e.env.DataSetEnvironmentManager;
-import org.apache.shardingsphere.test.e2e.env.runtime.scenario.path.ScenarioDataPath;
-import org.apache.shardingsphere.test.e2e.env.runtime.scenario.path.ScenarioDataPath.Type;
-import org.apache.shardingsphere.test.e2e.framework.param.model.CaseTestParameter;
-
-import javax.xml.bind.JAXBException;
-import java.io.IOException;
-import java.sql.Statement;
-import java.util.Collection;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.Set;
-
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-
-/**
- * Batch E2E container composer.
- */
-public final class BatchE2EContainerComposer extends E2EContainerComposer implements AutoCloseable {
-
- private final Collection<DataSet> dataSets = new LinkedList<>();
-
- private final DataSetEnvironmentManager dataSetEnvironmentManager;
-
- public BatchE2EContainerComposer(final CaseTestParameter testParam) throws JAXBException, IOException {
- super(testParam);
- for (E2ETestCaseAssertion each : testParam.getTestCaseContext().getTestCase().getAssertions()) {
- dataSets.add(DataSetLoader.load(testParam.getTestCaseContext().getParentPath(), testParam.getScenario(), testParam.getDatabaseType(), testParam.getMode(), each.getExpectedDataFile()));
- }
- dataSetEnvironmentManager = new DataSetEnvironmentManager(new ScenarioDataPath(testParam.getScenario()).getDataSetFile(Type.ACTUAL), getActualDataSourceMap(), testParam.getDatabaseType());
- dataSetEnvironmentManager.fillData();
- }
-
- /**
- * Get data set.
- *
- * @param actualUpdateCounts actual update counts
- * @return data set
- */
- public DataSet getDataSet(final int[] actualUpdateCounts) {
- Collection<DataSet> dataSets = new LinkedList<>();
- assertThat(actualUpdateCounts.length, is(this.dataSets.size()));
- int count = 0;
- for (DataSet each : this.dataSets) {
- if (Statement.SUCCESS_NO_INFO != actualUpdateCounts[count]) {
- assertThat(actualUpdateCounts[count], is(each.getUpdateCount()));
- }
- dataSets.add(each);
- count++;
- }
- return mergeDataSets(dataSets);
- }
-
- private DataSet mergeDataSets(final Collection<DataSet> dataSets) {
- DataSet result = new DataSet();
- Set<DataSetRow> existedRows = new HashSet<>();
- for (DataSet each : dataSets) {
- mergeMetaData(each, result);
- mergeRow(each, result, existedRows);
- }
- sortRow(result);
- return result;
- }
-
- private void mergeMetaData(final DataSet original, final DataSet dist) {
- if (dist.getMetaDataList().isEmpty()) {
- dist.getMetaDataList().addAll(original.getMetaDataList());
- }
- }
-
- private void mergeRow(final DataSet original, final DataSet dist, final Set<DataSetRow> existedRows) {
- for (DataSetRow each : original.getRows()) {
- if (existedRows.add(each)) {
- dist.getRows().add(each);
- }
- }
- }
-
- private void sortRow(final DataSet dataSet) {
- dataSet.getRows().sort(Comparator.comparingLong(o -> Long.parseLong(o.splitValues(",").get(0))));
- }
-
- @Override
- public void close() {
- dataSetEnvironmentManager.cleanData();
- }
-}
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/E2EContainerComposer.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/E2EContainerComposer.java
index c1e036f2d55..d39bc6b82f9 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/E2EContainerComposer.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/E2EContainerComposer.java
@@ -21,13 +21,13 @@ import lombok.AccessLevel;
import lombok.Getter;
import lombok.SneakyThrows;
import org.apache.shardingsphere.infra.database.core.DefaultDatabase;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.test.e2e.container.compose.ContainerComposer;
import org.apache.shardingsphere.test.e2e.container.compose.ContainerComposerRegistry;
import org.apache.shardingsphere.test.e2e.engine.TotalSuitesCountCalculator;
import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterMode;
import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterType;
import org.apache.shardingsphere.test.e2e.env.runtime.scenario.path.ScenarioDataPath;
-import org.apache.shardingsphere.test.e2e.framework.param.model.E2ETestParameter;
import org.h2.tools.RunScript;
import javax.sql.DataSource;
@@ -45,7 +45,7 @@ import java.util.concurrent.atomic.AtomicInteger;
* E2E container composer.
*/
@Getter
-public abstract class E2EContainerComposer {
+public final class E2EContainerComposer {
public static final String NOT_VERIFY_FLAG = "NOT_VERIFY";
@@ -66,23 +66,22 @@ public abstract class E2EContainerComposer {
private final Map<String, DataSource> expectedDataSourceMap;
- protected E2EContainerComposer(final E2ETestParameter testParam) {
- containerComposer = CONTAINER_COMPOSER_REGISTRY.getContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
- AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ public E2EContainerComposer(final String key, final String scenario, final DatabaseType databaseType, final AdapterMode adapterMode, final AdapterType adapterType) {
+ containerComposer = CONTAINER_COMPOSER_REGISTRY.getContainerComposer(key, scenario, databaseType, adapterMode, adapterType);
containerComposer.start();
actualDataSourceMap = containerComposer.getActualDataSourceMap();
targetDataSource = containerComposer.getTargetDataSource();
expectedDataSourceMap = containerComposer.getExpectedDataSourceMap();
- executeLogicDatabaseInitSQLFileOnlyOnce(testParam, targetDataSource);
+ executeLogicDatabaseInitSQLFileOnlyOnce(key, scenario, databaseType, targetDataSource);
}
@SneakyThrows({SQLException.class, IOException.class})
- private void executeLogicDatabaseInitSQLFileOnlyOnce(final E2ETestParameter testParam, final DataSource targetDataSource) {
- Optional<String> logicDatabaseInitSQLFile = new ScenarioDataPath(testParam.getScenario()).findActualDatabaseInitSQLFile(DefaultDatabase.LOGIC_NAME, testParam.getDatabaseType());
+ private void executeLogicDatabaseInitSQLFileOnlyOnce(final String key, final String scenario, final DatabaseType databaseType, final DataSource targetDataSource) {
+ Optional<String> logicDatabaseInitSQLFile = new ScenarioDataPath(scenario).findActualDatabaseInitSQLFile(DefaultDatabase.LOGIC_NAME, databaseType);
if (!logicDatabaseInitSQLFile.isPresent()) {
return;
}
- String cacheKey = testParam.getKey() + "-" + System.identityHashCode(targetDataSource);
+ String cacheKey = key + "-" + System.identityHashCode(targetDataSource);
if (!INITIALIZED_SUITES.contains(cacheKey)) {
synchronized (INITIALIZED_SUITES) {
if (!INITIALIZED_SUITES.contains(cacheKey)) {
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/SingleE2EContainerComposer.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/context/SingleE2EContext.java
similarity index 79%
rename from test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/SingleE2EContainerComposer.java
rename to test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/context/SingleE2EContext.java
index 69d3f687a5e..869a09409c7 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/composer/SingleE2EContainerComposer.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/context/SingleE2EContext.java
@@ -15,25 +15,22 @@
* limitations under the License.
*/
-package org.apache.shardingsphere.test.e2e.engine.composer;
+package org.apache.shardingsphere.test.e2e.engine.context;
import lombok.Getter;
-import org.apache.shardingsphere.test.e2e.framework.type.SQLExecuteType;
import org.apache.shardingsphere.test.e2e.cases.casse.assertion.E2ETestCaseAssertion;
import org.apache.shardingsphere.test.e2e.cases.dataset.DataSet;
import org.apache.shardingsphere.test.e2e.cases.dataset.DataSetLoader;
import org.apache.shardingsphere.test.e2e.cases.value.SQLValue;
import org.apache.shardingsphere.test.e2e.framework.param.model.AssertionTestParameter;
+import org.apache.shardingsphere.test.e2e.framework.type.SQLExecuteType;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
-/**
- * Single E2E container composer.
- */
@Getter
-public final class SingleE2EContainerComposer extends E2EContainerComposer {
+public class SingleE2EContext {
private final String sql;
@@ -43,20 +40,13 @@ public final class SingleE2EContainerComposer extends E2EContainerComposer {
private final DataSet dataSet;
- private final DataSet generatedKeyDataSet;
-
- public SingleE2EContainerComposer(final AssertionTestParameter testParam) {
- super(testParam);
+ public SingleE2EContext(final AssertionTestParameter testParam) {
sql = testParam.getTestCaseContext().getTestCase().getSql();
sqlExecuteType = testParam.getSqlExecuteType();
assertion = testParam.getAssertion();
dataSet = null == assertion || null == assertion.getExpectedDataFile()
? null
: DataSetLoader.load(testParam.getTestCaseContext().getParentPath(), testParam.getScenario(), testParam.getDatabaseType(), testParam.getMode(), assertion.getExpectedDataFile());
- generatedKeyDataSet = null == assertion || null == assertion.getExpectedGeneratedKeyDataFile()
- ? null
- : DataSetLoader.load(
- testParam.getTestCaseContext().getParentPath(), testParam.getScenario(), testParam.getDatabaseType(), testParam.getMode(), assertion.getExpectedGeneratedKeyDataFile());
}
/**
@@ -72,4 +62,5 @@ public final class SingleE2EContainerComposer extends E2EContainerComposer {
List<Object> params = null == assertion ? Collections.emptyList() : assertion.getSQLValues().stream().map(SQLValue::toString).collect(Collectors.toList());
return params.isEmpty() ? sql : String.format(sql.replace("%", "ÿ").replace("?", "%s"), params.toArray()).replace("ÿ", "%").replace("%%", "%").replace("'%'", "'%%'");
}
+
}
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/DALE2EIT.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/DALE2EIT.java
index fdbb7bbd767..df611de5395 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/DALE2EIT.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/DALE2EIT.java
@@ -18,6 +18,9 @@
package org.apache.shardingsphere.test.e2e.engine.type;
import org.apache.shardingsphere.infra.util.datetime.DateTimeFormatterFactory;
+import org.apache.shardingsphere.test.e2e.engine.context.SingleE2EContext;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterMode;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterType;
import org.apache.shardingsphere.test.e2e.framework.type.SQLCommandType;
import org.apache.shardingsphere.test.e2e.cases.dataset.metadata.DataSetColumn;
import org.apache.shardingsphere.test.e2e.cases.dataset.metadata.DataSetMetaData;
@@ -25,7 +28,6 @@ import org.apache.shardingsphere.test.e2e.cases.dataset.row.DataSetRow;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseArgumentsProvider;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseSettings;
import org.apache.shardingsphere.test.e2e.engine.composer.E2EContainerComposer;
-import org.apache.shardingsphere.test.e2e.engine.composer.SingleE2EContainerComposer;
import org.apache.shardingsphere.test.e2e.framework.param.array.E2ETestParameterFactory;
import org.apache.shardingsphere.test.e2e.framework.param.model.AssertionTestParameter;
import org.junit.jupiter.api.condition.EnabledIf;
@@ -57,40 +59,42 @@ class DALE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
- assertExecute(containerComposer);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
+ assertExecute(containerComposer, singleE2EContext);
}
- private void assertExecute(final SingleE2EContainerComposer containerComposer) throws SQLException {
+ private void assertExecute(final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext) throws SQLException {
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
try (Statement statement = connection.createStatement()) {
- statement.execute(containerComposer.getSQL());
- assertExecuteResult(containerComposer, statement);
+ statement.execute(singleE2EContext.getSQL());
+ assertExecuteResult(singleE2EContext, statement);
}
}
}
- private void assertExecuteResult(final SingleE2EContainerComposer containerComposer, final Statement statement) throws SQLException {
+ private void assertExecuteResult(final SingleE2EContext singleE2EContext, final Statement statement) throws SQLException {
try (ResultSet resultSet = statement.getResultSet()) {
- if (null == containerComposer.getAssertion().getAssertionSQL()) {
- assertResultSet(containerComposer, resultSet);
+ if (null == singleE2EContext.getAssertion().getAssertionSQL()) {
+ assertResultSet(singleE2EContext, resultSet);
} else {
- statement.execute(containerComposer.getAssertion().getAssertionSQL().getSql());
+ statement.execute(singleE2EContext.getAssertion().getAssertionSQL().getSql());
try (ResultSet assertionSQLResultSet = statement.getResultSet()) {
- assertResultSet(containerComposer, assertionSQLResultSet);
+ assertResultSet(singleE2EContext, assertionSQLResultSet);
}
}
}
}
- private void assertResultSet(final SingleE2EContainerComposer containerComposer, final ResultSet resultSet) throws SQLException {
- assertMetaData(resultSet.getMetaData(), getExpectedColumns(containerComposer));
- assertRows(resultSet, containerComposer.getDataSet().getRows());
+ private void assertResultSet(final SingleE2EContext singleE2EContext, final ResultSet resultSet) throws SQLException {
+ assertMetaData(resultSet.getMetaData(), getExpectedColumns(singleE2EContext));
+ assertRows(resultSet, singleE2EContext.getDataSet().getRows());
}
- private Collection<DataSetColumn> getExpectedColumns(final SingleE2EContainerComposer containerComposer) {
+ private Collection<DataSetColumn> getExpectedColumns(final SingleE2EContext singleE2EContext) {
Collection<DataSetColumn> result = new LinkedList<>();
- for (DataSetMetaData each : containerComposer.getDataSet().getMetaDataList()) {
+ for (DataSetMetaData each : singleE2EContext.getDataSet().getMetaDataList()) {
result.addAll(each.getColumns());
}
return result;
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/DCLE2EIT.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/DCLE2EIT.java
index e326ffdfc0c..bc92a33e460 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/DCLE2EIT.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/DCLE2EIT.java
@@ -17,11 +17,14 @@
package org.apache.shardingsphere.test.e2e.engine.type;
+import org.apache.shardingsphere.test.e2e.engine.context.SingleE2EContext;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterMode;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterType;
import org.apache.shardingsphere.test.e2e.framework.type.SQLCommandType;
import org.apache.shardingsphere.test.e2e.framework.type.SQLExecuteType;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseArgumentsProvider;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseSettings;
-import org.apache.shardingsphere.test.e2e.engine.composer.SingleE2EContainerComposer;
+import org.apache.shardingsphere.test.e2e.engine.composer.E2EContainerComposer;
import org.apache.shardingsphere.test.e2e.env.runtime.scenario.authority.AuthorityEnvironmentManager;
import org.apache.shardingsphere.test.e2e.env.runtime.scenario.path.ScenarioCommonPath;
import org.apache.shardingsphere.test.e2e.framework.param.array.E2ETestParameterFactory;
@@ -48,18 +51,20 @@ class DCLE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
try (
AuthorityEnvironmentManager ignored = new AuthorityEnvironmentManager(
new ScenarioCommonPath(testParam.getScenario()).getAuthorityFile(), containerComposer.getActualDataSourceMap(), testParam.getDatabaseType())) {
- assertExecuteUpdate(containerComposer);
+ assertExecuteUpdate(containerComposer, singleE2EContext);
}
}
- private void assertExecuteUpdate(final SingleE2EContainerComposer containerComposer) throws SQLException {
- String sql = containerComposer.getSQL();
+ private void assertExecuteUpdate(final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext) throws SQLException {
+ String sql = singleE2EContext.getSQL();
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- if (SQLExecuteType.Literal == containerComposer.getSqlExecuteType()) {
+ if (SQLExecuteType.Literal == singleE2EContext.getSqlExecuteType()) {
try (Statement statement = connection.createStatement()) {
statement.executeUpdate(sql);
}
@@ -79,18 +84,20 @@ class DCLE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
try (
AuthorityEnvironmentManager ignored = new AuthorityEnvironmentManager(
new ScenarioCommonPath(testParam.getScenario()).getAuthorityFile(), containerComposer.getActualDataSourceMap(), testParam.getDatabaseType())) {
- assertExecute(containerComposer);
+ assertExecute(containerComposer, singleE2EContext);
}
}
- private void assertExecute(final SingleE2EContainerComposer containerComposer) throws SQLException {
- String sql = containerComposer.getSQL();
+ private void assertExecute(final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext) throws SQLException {
+ String sql = singleE2EContext.getSQL();
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- if (SQLExecuteType.Literal == containerComposer.getSqlExecuteType()) {
+ if (SQLExecuteType.Literal == singleE2EContext.getSqlExecuteType()) {
try (Statement statement = connection.createStatement()) {
statement.execute(sql);
}
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/DDLE2EIT.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/DDLE2EIT.java
index 09437b5bd92..fd3f12e52d4 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/DDLE2EIT.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/DDLE2EIT.java
@@ -20,6 +20,9 @@ package org.apache.shardingsphere.test.e2e.engine.type;
import com.google.common.base.Splitter;
import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.infra.expr.core.InlineExpressionParserFactory;
+import org.apache.shardingsphere.test.e2e.engine.context.SingleE2EContext;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterMode;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterType;
import org.apache.shardingsphere.test.e2e.framework.type.SQLCommandType;
import org.apache.shardingsphere.test.e2e.framework.type.SQLExecuteType;
import org.apache.shardingsphere.test.e2e.cases.dataset.metadata.DataSetColumn;
@@ -27,7 +30,7 @@ import org.apache.shardingsphere.test.e2e.cases.dataset.metadata.DataSetIndex;
import org.apache.shardingsphere.test.e2e.cases.dataset.metadata.DataSetMetaData;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseArgumentsProvider;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseSettings;
-import org.apache.shardingsphere.test.e2e.engine.composer.SingleE2EContainerComposer;
+import org.apache.shardingsphere.test.e2e.engine.composer.E2EContainerComposer;
import org.apache.shardingsphere.test.e2e.framework.param.array.E2ETestParameterFactory;
import org.apache.shardingsphere.test.e2e.framework.param.model.AssertionTestParameter;
import org.junit.jupiter.api.condition.EnabledIf;
@@ -65,28 +68,30 @@ class DDLE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
- init(containerComposer);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
+ init(containerComposer, singleE2EContext);
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- if (SQLExecuteType.Literal == containerComposer.getSqlExecuteType()) {
- executeUpdateForStatement(containerComposer, connection);
+ if (SQLExecuteType.Literal == singleE2EContext.getSqlExecuteType()) {
+ executeUpdateForStatement(singleE2EContext, connection);
} else {
- executeUpdateForPreparedStatement(containerComposer, connection);
+ executeUpdateForPreparedStatement(singleE2EContext, connection);
}
- assertTableMetaData(testParam, containerComposer);
+ assertTableMetaData(testParam, containerComposer, singleE2EContext);
}
- tearDown(containerComposer);
+ tearDown(containerComposer, singleE2EContext);
}
- private void executeUpdateForStatement(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
+ private void executeUpdateForStatement(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
try (Statement statement = connection.createStatement()) {
- assertFalse(statement.executeUpdate(containerComposer.getSQL()) > 0, "Not a DDL statement.");
+ assertFalse(statement.executeUpdate(singleE2EContext.getSQL()) > 0, "Not a DDL statement.");
}
waitCompleted();
}
- private void executeUpdateForPreparedStatement(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- try (PreparedStatement preparedStatement = connection.prepareStatement(containerComposer.getSQL())) {
+ private void executeUpdateForPreparedStatement(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
+ try (PreparedStatement preparedStatement = connection.prepareStatement(singleE2EContext.getSQL())) {
assertFalse(preparedStatement.executeUpdate() > 0, "Not a DDL statement.");
}
waitCompleted();
@@ -100,46 +105,48 @@ class DDLE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
- init(containerComposer);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
+ init(containerComposer, singleE2EContext);
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- if (SQLExecuteType.Literal == containerComposer.getSqlExecuteType()) {
- executeForStatement(containerComposer, connection);
+ if (SQLExecuteType.Literal == singleE2EContext.getSqlExecuteType()) {
+ executeForStatement(singleE2EContext, connection);
} else {
- executeForPreparedStatement(containerComposer, connection);
+ executeForPreparedStatement(singleE2EContext, connection);
}
- assertTableMetaData(testParam, containerComposer);
+ assertTableMetaData(testParam, containerComposer, singleE2EContext);
}
- tearDown(containerComposer);
+ tearDown(containerComposer, singleE2EContext);
}
- private void executeForStatement(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
+ private void executeForStatement(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
try (Statement statement = connection.createStatement()) {
- assertFalse(statement.execute(containerComposer.getSQL()), "Not a DDL statement.");
+ assertFalse(statement.execute(singleE2EContext.getSQL()), "Not a DDL statement.");
}
waitCompleted();
}
- private void executeForPreparedStatement(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- try (PreparedStatement preparedStatement = connection.prepareStatement(containerComposer.getSQL())) {
+ private void executeForPreparedStatement(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
+ try (PreparedStatement preparedStatement = connection.prepareStatement(singleE2EContext.getSQL())) {
assertFalse(preparedStatement.execute(), "Not a DDL statement.");
}
waitCompleted();
}
- private void init(final SingleE2EContainerComposer containerComposer) throws SQLException {
- assertNotNull(containerComposer.getAssertion().getInitialSQL(), "Init SQL is required");
- assertNotNull(containerComposer.getAssertion().getInitialSQL().getAffectedTable(), "Expected affected table is required");
+ private void init(final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext) throws SQLException {
+ assertNotNull(singleE2EContext.getAssertion().getInitialSQL(), "Init SQL is required");
+ assertNotNull(singleE2EContext.getAssertion().getInitialSQL().getAffectedTable(), "Expected affected table is required");
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- executeInitSQLs(containerComposer, connection);
+ executeInitSQLs(singleE2EContext, connection);
}
}
- private void executeInitSQLs(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- if (null == containerComposer.getAssertion().getInitialSQL().getSql()) {
+ private void executeInitSQLs(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
+ if (null == singleE2EContext.getAssertion().getInitialSQL().getSql()) {
return;
}
- for (String each : Splitter.on(";").trimResults().omitEmptyStrings().splitToList(containerComposer.getAssertion().getInitialSQL().getSql())) {
+ for (String each : Splitter.on(";").trimResults().omitEmptyStrings().splitToList(singleE2EContext.getAssertion().getInitialSQL().getSql())) {
try (PreparedStatement preparedStatement = connection.prepareStatement(each)) {
preparedStatement.executeUpdate();
}
@@ -147,19 +154,19 @@ class DDLE2EIT {
}
}
- private void tearDown(final SingleE2EContainerComposer containerComposer) throws SQLException {
- if (null != containerComposer.getAssertion().getDestroySQL()) {
+ private void tearDown(final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext) throws SQLException {
+ if (null != singleE2EContext.getAssertion().getDestroySQL()) {
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- executeDestroySQLs(containerComposer, connection);
+ executeDestroySQLs(singleE2EContext, connection);
}
}
}
- private void executeDestroySQLs(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- if (null == containerComposer.getAssertion().getDestroySQL().getSql()) {
+ private void executeDestroySQLs(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
+ if (null == singleE2EContext.getAssertion().getDestroySQL().getSql()) {
return;
}
- for (String each : Splitter.on(";").trimResults().omitEmptyStrings().splitToList(containerComposer.getAssertion().getDestroySQL().getSql())) {
+ for (String each : Splitter.on(";").trimResults().omitEmptyStrings().splitToList(singleE2EContext.getAssertion().getDestroySQL().getSql())) {
try (PreparedStatement preparedStatement = connection.prepareStatement(each)) {
preparedStatement.executeUpdate();
}
@@ -167,9 +174,9 @@ class DDLE2EIT {
}
}
- private void assertTableMetaData(final AssertionTestParameter testParam, final SingleE2EContainerComposer containerComposer) throws SQLException {
- String tableName = containerComposer.getAssertion().getInitialSQL().getAffectedTable();
- DataSetMetaData expected = containerComposer.getDataSet().findMetaData(tableName);
+ private void assertTableMetaData(final AssertionTestParameter testParam, final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext) throws SQLException {
+ String tableName = singleE2EContext.getAssertion().getInitialSQL().getAffectedTable();
+ DataSetMetaData expected = singleE2EContext.getDataSet().findMetaData(tableName);
Collection<DataNode> dataNodes = InlineExpressionParserFactory.newInstance(expected.getDataNodes()).splitAndEvaluate().stream().map(DataNode::new).collect(Collectors.toList());
if (expected.getColumns().isEmpty()) {
assertNotContainsTable(containerComposer, dataNodes);
@@ -183,7 +190,7 @@ class DDLE2EIT {
assertIndexMetaData(actualIndexes, expected.getIndexes());
}
- private void assertNotContainsTable(final SingleE2EContainerComposer containerComposer, final Collection<DataNode> dataNodes) throws SQLException {
+ private void assertNotContainsTable(final E2EContainerComposer containerComposer, final Collection<DataNode> dataNodes) throws SQLException {
for (DataNode each : dataNodes) {
try (Connection connection = containerComposer.getActualDataSourceMap().get(each.getDataSourceName()).getConnection()) {
assertNotContainsTable(connection, each.getTableName());
@@ -195,7 +202,7 @@ class DDLE2EIT {
assertFalse(connection.getMetaData().getTables(null, null, tableName, new String[]{"TABLE"}).next(), String.format("Table `%s` should not existed", tableName));
}
- private List<DataSetColumn> getActualColumns(final SingleE2EContainerComposer containerComposer, final Collection<DataNode> dataNodes) throws SQLException {
+ private List<DataSetColumn> getActualColumns(final E2EContainerComposer containerComposer, final Collection<DataNode> dataNodes) throws SQLException {
Set<DataSetColumn> result = new LinkedHashSet<>();
for (DataNode each : dataNodes) {
try (Connection connection = containerComposer.getActualDataSourceMap().get(each.getDataSourceName()).getConnection()) {
@@ -220,7 +227,7 @@ class DDLE2EIT {
}
}
- private List<DataSetIndex> getActualIndexes(final SingleE2EContainerComposer containerComposer, final Collection<DataNode> dataNodes) throws SQLException {
+ private List<DataSetIndex> getActualIndexes(final E2EContainerComposer containerComposer, final Collection<DataNode> dataNodes) throws SQLException {
Set<DataSetIndex> result = new LinkedHashSet<>();
for (DataNode each : dataNodes) {
try (Connection connection = containerComposer.getActualDataSourceMap().get(each.getDataSourceName()).getConnection()) {
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RALE2EIT.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RALE2EIT.java
index ea0383c0dab..4490fe970e2 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RALE2EIT.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RALE2EIT.java
@@ -18,13 +18,16 @@
package org.apache.shardingsphere.test.e2e.engine.type;
import com.google.common.base.Splitter;
+import org.apache.shardingsphere.test.e2e.engine.context.SingleE2EContext;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterMode;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterType;
import org.apache.shardingsphere.test.e2e.framework.type.SQLCommandType;
import org.apache.shardingsphere.test.e2e.cases.dataset.metadata.DataSetColumn;
import org.apache.shardingsphere.test.e2e.cases.dataset.metadata.DataSetMetaData;
import org.apache.shardingsphere.test.e2e.cases.dataset.row.DataSetRow;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseArgumentsProvider;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseSettings;
-import org.apache.shardingsphere.test.e2e.engine.composer.SingleE2EContainerComposer;
+import org.apache.shardingsphere.test.e2e.engine.composer.E2EContainerComposer;
import org.apache.shardingsphere.test.e2e.framework.param.array.E2ETestParameterFactory;
import org.apache.shardingsphere.test.e2e.framework.param.model.AssertionTestParameter;
import org.junit.jupiter.api.condition.EnabledIf;
@@ -59,33 +62,35 @@ class RALE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
- init(containerComposer);
- assertExecute(containerComposer);
- tearDown(containerComposer);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
+ init(containerComposer, singleE2EContext);
+ assertExecute(containerComposer, singleE2EContext);
+ tearDown(containerComposer, singleE2EContext);
}
- private void assertExecute(final SingleE2EContainerComposer containerComposer) throws SQLException {
+ private void assertExecute(final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext) throws SQLException {
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
try (Statement statement = connection.createStatement()) {
- assertResultSet(containerComposer, statement);
+ assertResultSet(singleE2EContext, statement);
}
}
}
- private void init(final SingleE2EContainerComposer containerComposer) throws SQLException {
- if (null != containerComposer.getAssertion().getInitialSQL()) {
+ private void init(final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext) throws SQLException {
+ if (null != singleE2EContext.getAssertion().getInitialSQL()) {
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- executeInitSQLs(containerComposer, connection);
+ executeInitSQLs(singleE2EContext, connection);
}
}
}
- private void executeInitSQLs(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- if (null == containerComposer.getAssertion().getInitialSQL().getSql()) {
+ private void executeInitSQLs(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
+ if (null == singleE2EContext.getAssertion().getInitialSQL().getSql()) {
return;
}
- for (String each : Splitter.on(";").trimResults().omitEmptyStrings().splitToList(containerComposer.getAssertion().getInitialSQL().getSql())) {
+ for (String each : Splitter.on(";").trimResults().omitEmptyStrings().splitToList(singleE2EContext.getAssertion().getInitialSQL().getSql())) {
try (PreparedStatement preparedStatement = connection.prepareStatement(each)) {
preparedStatement.executeUpdate();
}
@@ -93,19 +98,19 @@ class RALE2EIT {
Awaitility.await().pollDelay(1L, TimeUnit.SECONDS).until(() -> true);
}
- private void tearDown(final SingleE2EContainerComposer containerComposer) throws SQLException {
- if (null != containerComposer.getAssertion().getDestroySQL()) {
+ private void tearDown(final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext) throws SQLException {
+ if (null != singleE2EContext.getAssertion().getDestroySQL()) {
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- executeDestroySQLs(containerComposer, connection);
+ executeDestroySQLs(singleE2EContext, connection);
}
}
}
- private void executeDestroySQLs(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- if (null == containerComposer.getAssertion().getDestroySQL().getSql()) {
+ private void executeDestroySQLs(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
+ if (null == singleE2EContext.getAssertion().getDestroySQL().getSql()) {
return;
}
- for (String each : Splitter.on(";").trimResults().omitEmptyStrings().splitToList(containerComposer.getAssertion().getDestroySQL().getSql())) {
+ for (String each : Splitter.on(";").trimResults().omitEmptyStrings().splitToList(singleE2EContext.getAssertion().getDestroySQL().getSql())) {
try (PreparedStatement preparedStatement = connection.prepareStatement(each)) {
preparedStatement.executeUpdate();
}
@@ -113,39 +118,39 @@ class RALE2EIT {
Awaitility.await().pollDelay(1L, TimeUnit.SECONDS).until(() -> true);
}
- private void assertResultSet(final SingleE2EContainerComposer containerComposer, final Statement statement) throws SQLException {
- if (null == containerComposer.getAssertion().getAssertionSQL()) {
- assertResultSet(containerComposer, statement, containerComposer.getSQL());
+ private void assertResultSet(final SingleE2EContext singleE2EContext, final Statement statement) throws SQLException {
+ if (null == singleE2EContext.getAssertion().getAssertionSQL()) {
+ assertResultSet(singleE2EContext, statement, singleE2EContext.getSQL());
} else {
- statement.execute(containerComposer.getSQL());
+ statement.execute(singleE2EContext.getSQL());
Awaitility.await().pollDelay(2L, TimeUnit.SECONDS).until(() -> true);
- assertResultSet(containerComposer, statement, containerComposer.getAssertion().getAssertionSQL().getSql());
+ assertResultSet(singleE2EContext, statement, singleE2EContext.getAssertion().getAssertionSQL().getSql());
}
}
- private void assertResultSet(final SingleE2EContainerComposer containerComposer, final Statement statement, final String sql) throws SQLException {
+ private void assertResultSet(final SingleE2EContext singleE2EContext, final Statement statement, final String sql) throws SQLException {
statement.execute(sql);
try (ResultSet resultSet = statement.getResultSet()) {
- assertResultSet(containerComposer, resultSet);
+ assertResultSet(singleE2EContext, resultSet);
}
}
- private void assertResultSet(final SingleE2EContainerComposer containerComposer, final ResultSet resultSet) throws SQLException {
- assertMetaData(resultSet.getMetaData(), getExpectedColumns(containerComposer));
- assertRows(resultSet, getIgnoreAssertColumns(containerComposer), containerComposer.getDataSet().getRows());
+ private void assertResultSet(final SingleE2EContext singleE2EContext, final ResultSet resultSet) throws SQLException {
+ assertMetaData(resultSet.getMetaData(), getExpectedColumns(singleE2EContext));
+ assertRows(resultSet, getIgnoreAssertColumns(singleE2EContext), singleE2EContext.getDataSet().getRows());
}
- private Collection<DataSetColumn> getExpectedColumns(final SingleE2EContainerComposer containerComposer) {
+ private Collection<DataSetColumn> getExpectedColumns(final SingleE2EContext singleE2EContext) {
Collection<DataSetColumn> result = new LinkedList<>();
- for (DataSetMetaData each : containerComposer.getDataSet().getMetaDataList()) {
+ for (DataSetMetaData each : singleE2EContext.getDataSet().getMetaDataList()) {
result.addAll(each.getColumns());
}
return result;
}
- private Collection<String> getIgnoreAssertColumns(final SingleE2EContainerComposer containerComposer) {
+ private Collection<String> getIgnoreAssertColumns(final SingleE2EContext singleE2EContext) {
Collection<String> result = new LinkedList<>();
- for (DataSetMetaData each : containerComposer.getDataSet().getMetaDataList()) {
+ for (DataSetMetaData each : singleE2EContext.getDataSet().getMetaDataList()) {
result.addAll(each.getColumns().stream().filter(DataSetColumn::isIgnoreAssertData).map(DataSetColumn::getName).collect(Collectors.toList()));
}
return result;
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RDLE2EIT.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RDLE2EIT.java
index 22c3ffe1388..d8a83a15b0d 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RDLE2EIT.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RDLE2EIT.java
@@ -18,13 +18,16 @@
package org.apache.shardingsphere.test.e2e.engine.type;
import com.google.common.base.Splitter;
+import org.apache.shardingsphere.test.e2e.engine.context.SingleE2EContext;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterMode;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterType;
import org.apache.shardingsphere.test.e2e.framework.type.SQLCommandType;
import org.apache.shardingsphere.test.e2e.cases.dataset.metadata.DataSetColumn;
import org.apache.shardingsphere.test.e2e.cases.dataset.metadata.DataSetMetaData;
import org.apache.shardingsphere.test.e2e.cases.dataset.row.DataSetRow;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseArgumentsProvider;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseSettings;
-import org.apache.shardingsphere.test.e2e.engine.composer.SingleE2EContainerComposer;
+import org.apache.shardingsphere.test.e2e.engine.composer.E2EContainerComposer;
import org.apache.shardingsphere.test.e2e.framework.param.array.E2ETestParameterFactory;
import org.apache.shardingsphere.test.e2e.framework.param.model.AssertionTestParameter;
import org.junit.jupiter.api.condition.EnabledIf;
@@ -59,47 +62,49 @@ class RDLE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
- init(containerComposer);
- assertExecute(testParam, containerComposer);
- tearDown(containerComposer);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
+ init(containerComposer, singleE2EContext);
+ assertExecute(testParam, containerComposer, singleE2EContext);
+ tearDown(containerComposer, singleE2EContext);
}
- private void assertExecute(final AssertionTestParameter testParam, final SingleE2EContainerComposer containerComposer) throws SQLException {
+ private void assertExecute(final AssertionTestParameter testParam, final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext) throws SQLException {
assertNotNull(testParam.getAssertion().getAssertionSQL(), "Assertion SQL is required");
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
try (Statement statement = connection.createStatement()) {
- executeSQLCase(containerComposer, statement);
+ executeSQLCase(singleE2EContext, statement);
Awaitility.await().pollDelay(2L, TimeUnit.SECONDS).until(() -> true);
- assertResultSet(containerComposer, statement);
+ assertResultSet(singleE2EContext, statement);
}
}
}
- private void executeSQLCase(final SingleE2EContainerComposer containerComposer, final Statement statement) throws SQLException {
- statement.execute(containerComposer.getSQL());
+ private void executeSQLCase(final SingleE2EContext singleE2EContext, final Statement statement) throws SQLException {
+ statement.execute(singleE2EContext.getSQL());
}
- private void init(final SingleE2EContainerComposer containerComposer) throws SQLException {
+ private void init(final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext) throws SQLException {
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- executeInitSQLs(containerComposer, connection);
+ executeInitSQLs(singleE2EContext, connection);
}
}
- private void tearDown(final SingleE2EContainerComposer containerComposer) throws SQLException {
- if (null != containerComposer.getAssertion().getDestroySQL()) {
+ private void tearDown(final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext) throws SQLException {
+ if (null != singleE2EContext.getAssertion().getDestroySQL()) {
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- executeDestroySQLs(containerComposer, connection);
+ executeDestroySQLs(singleE2EContext, connection);
}
}
Awaitility.await().pollDelay(2L, TimeUnit.SECONDS).until(() -> true);
}
- private void executeInitSQLs(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- if (null == containerComposer.getAssertion().getInitialSQL() || null == containerComposer.getAssertion().getInitialSQL().getSql()) {
+ private void executeInitSQLs(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
+ if (null == singleE2EContext.getAssertion().getInitialSQL() || null == singleE2EContext.getAssertion().getInitialSQL().getSql()) {
return;
}
- for (String each : Splitter.on(";").trimResults().omitEmptyStrings().splitToList(containerComposer.getAssertion().getInitialSQL().getSql())) {
+ for (String each : Splitter.on(";").trimResults().omitEmptyStrings().splitToList(singleE2EContext.getAssertion().getInitialSQL().getSql())) {
try (PreparedStatement preparedStatement = connection.prepareStatement(each)) {
preparedStatement.executeUpdate();
Awaitility.await().pollDelay(2L, TimeUnit.SECONDS).until(() -> true);
@@ -107,11 +112,11 @@ class RDLE2EIT {
}
}
- private void executeDestroySQLs(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- if (null == containerComposer.getAssertion().getDestroySQL().getSql()) {
+ private void executeDestroySQLs(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
+ if (null == singleE2EContext.getAssertion().getDestroySQL().getSql()) {
return;
}
- for (String each : Splitter.on(";").trimResults().omitEmptyStrings().splitToList(containerComposer.getAssertion().getDestroySQL().getSql())) {
+ for (String each : Splitter.on(";").trimResults().omitEmptyStrings().splitToList(singleE2EContext.getAssertion().getDestroySQL().getSql())) {
try (PreparedStatement preparedStatement = connection.prepareStatement(each)) {
preparedStatement.executeUpdate();
Awaitility.await().pollDelay(2L, TimeUnit.SECONDS).until(() -> true);
@@ -119,20 +124,20 @@ class RDLE2EIT {
}
}
- private void assertResultSet(final SingleE2EContainerComposer containerComposer, final Statement statement) throws SQLException {
- try (ResultSet resultSet = statement.executeQuery(containerComposer.getAssertion().getAssertionSQL().getSql())) {
- assertResultSet(containerComposer, resultSet);
+ private void assertResultSet(final SingleE2EContext singleE2EContext, final Statement statement) throws SQLException {
+ try (ResultSet resultSet = statement.executeQuery(singleE2EContext.getAssertion().getAssertionSQL().getSql())) {
+ assertResultSet(singleE2EContext, resultSet);
}
}
- private void assertResultSet(final SingleE2EContainerComposer containerComposer, final ResultSet resultSet) throws SQLException {
- assertMetaData(resultSet.getMetaData(), getExpectedColumns(containerComposer));
- assertRows(resultSet, containerComposer.getDataSet().getRows());
+ private void assertResultSet(final SingleE2EContext singleE2EContext, final ResultSet resultSet) throws SQLException {
+ assertMetaData(resultSet.getMetaData(), getExpectedColumns(singleE2EContext));
+ assertRows(resultSet, singleE2EContext.getDataSet().getRows());
}
- private Collection<DataSetColumn> getExpectedColumns(final SingleE2EContainerComposer containerComposer) {
+ private Collection<DataSetColumn> getExpectedColumns(final SingleE2EContext singleE2EContext) {
Collection<DataSetColumn> result = new LinkedList<>();
- for (DataSetMetaData each : containerComposer.getDataSet().getMetaDataList()) {
+ for (DataSetMetaData each : singleE2EContext.getDataSet().getMetaDataList()) {
result.addAll(each.getColumns());
}
return result;
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RQLE2EIT.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RQLE2EIT.java
index 1868ebf61d9..a99a5b7b111 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RQLE2EIT.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/RQLE2EIT.java
@@ -17,13 +17,16 @@
package org.apache.shardingsphere.test.e2e.engine.type;
+import org.apache.shardingsphere.test.e2e.engine.context.SingleE2EContext;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterMode;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterType;
import org.apache.shardingsphere.test.e2e.framework.type.SQLCommandType;
import org.apache.shardingsphere.test.e2e.cases.dataset.metadata.DataSetColumn;
import org.apache.shardingsphere.test.e2e.cases.dataset.metadata.DataSetMetaData;
import org.apache.shardingsphere.test.e2e.cases.dataset.row.DataSetRow;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseArgumentsProvider;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseSettings;
-import org.apache.shardingsphere.test.e2e.engine.composer.SingleE2EContainerComposer;
+import org.apache.shardingsphere.test.e2e.engine.composer.E2EContainerComposer;
import org.apache.shardingsphere.test.e2e.framework.param.array.E2ETestParameterFactory;
import org.apache.shardingsphere.test.e2e.framework.param.model.AssertionTestParameter;
import org.junit.jupiter.api.condition.EnabledIf;
@@ -54,29 +57,31 @@ class RQLE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
- assertExecute(containerComposer);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
+ assertExecute(containerComposer, singleE2EContext);
}
- private void assertExecute(final SingleE2EContainerComposer containerComposer) throws SQLException {
+ private void assertExecute(final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext) throws SQLException {
try (
Connection connection = containerComposer.getTargetDataSource().getConnection();
Statement statement = connection.createStatement()) {
- statement.execute(containerComposer.getSQL());
+ statement.execute(singleE2EContext.getSQL());
try (ResultSet resultSet = statement.getResultSet()) {
- assertResultSet(containerComposer, resultSet);
+ assertResultSet(singleE2EContext, resultSet);
}
}
}
- private void assertResultSet(final SingleE2EContainerComposer containerComposer, final ResultSet resultSet) throws SQLException {
- assertMetaData(resultSet.getMetaData(), getExpectedColumns(containerComposer));
- assertRows(resultSet, containerComposer.getDataSet().getRows());
+ private void assertResultSet(final SingleE2EContext singleE2EContext, final ResultSet resultSet) throws SQLException {
+ assertMetaData(resultSet.getMetaData(), getExpectedColumns(singleE2EContext));
+ assertRows(resultSet, singleE2EContext.getDataSet().getRows());
}
- private Collection<DataSetColumn> getExpectedColumns(final SingleE2EContainerComposer containerComposer) {
+ private Collection<DataSetColumn> getExpectedColumns(final SingleE2EContext singleE2EContext) {
Collection<DataSetColumn> result = new LinkedList<>();
- for (DataSetMetaData each : containerComposer.getDataSet().getMetaDataList()) {
+ for (DataSetMetaData each : singleE2EContext.getDataSet().getMetaDataList()) {
result.addAll(each.getColumns());
}
return result;
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/AdditionalDMLE2EIT.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/AdditionalDMLE2EIT.java
index ad2f4964516..06d2312849a 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/AdditionalDMLE2EIT.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/AdditionalDMLE2EIT.java
@@ -17,12 +17,15 @@
package org.apache.shardingsphere.test.e2e.engine.type.dml;
+import org.apache.shardingsphere.test.e2e.engine.context.SingleE2EContext;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterMode;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterType;
import org.apache.shardingsphere.test.e2e.framework.type.SQLCommandType;
import org.apache.shardingsphere.test.e2e.framework.type.SQLExecuteType;
import org.apache.shardingsphere.test.e2e.cases.value.SQLValue;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseArgumentsProvider;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseSettings;
-import org.apache.shardingsphere.test.e2e.engine.composer.SingleE2EContainerComposer;
+import org.apache.shardingsphere.test.e2e.engine.composer.E2EContainerComposer;
import org.apache.shardingsphere.test.e2e.env.runtime.E2ETestEnvironment;
import org.apache.shardingsphere.test.e2e.framework.param.array.E2ETestParameterFactory;
import org.apache.shardingsphere.test.e2e.framework.param.model.AssertionTestParameter;
@@ -54,15 +57,17 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
if (isPostgreSQLOrOpenGauss(testParam.getDatabaseType().getType()) || isOracleInsertStatement(testParam.getDatabaseType().getType(), testParam.getTestCaseContext().getTestCase().getSql())) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
init(testParam, containerComposer);
int actualUpdateCount;
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- actualUpdateCount = SQLExecuteType.Literal == containerComposer.getSqlExecuteType()
- ? executeUpdateForStatementWithAutoGeneratedKeys(testParam, containerComposer, connection)
- : executeUpdateForPreparedStatementWithAutoGeneratedKeys(testParam, containerComposer, connection);
+ actualUpdateCount = SQLExecuteType.Literal == singleE2EContext.getSqlExecuteType()
+ ? executeUpdateForStatementWithAutoGeneratedKeys(testParam, singleE2EContext, connection)
+ : executeUpdateForPreparedStatementWithAutoGeneratedKeys(testParam, singleE2EContext, connection);
}
- assertDataSet(containerComposer, actualUpdateCount, testParam);
+ assertDataSet(containerComposer, singleE2EContext, actualUpdateCount, testParam);
}
// TODO support oracle insert statement return auto generated keys
@@ -75,22 +80,22 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
}
private int executeUpdateForStatementWithAutoGeneratedKeys(final AssertionTestParameter testParam,
- final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
+ final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
try (Statement statement = connection.createStatement()) {
- int result = statement.executeUpdate(containerComposer.getSQL(), Statement.RETURN_GENERATED_KEYS);
- assertGeneratedKeys(containerComposer, statement.getGeneratedKeys(), testParam.getDatabaseType());
+ int result = statement.executeUpdate(singleE2EContext.getSQL(), Statement.RETURN_GENERATED_KEYS);
+ assertGeneratedKeys(testParam, statement.getGeneratedKeys(), testParam.getDatabaseType());
return result;
}
}
private int executeUpdateForPreparedStatementWithAutoGeneratedKeys(final AssertionTestParameter testParam,
- final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- try (PreparedStatement preparedStatement = connection.prepareStatement(containerComposer.getSQL(), Statement.RETURN_GENERATED_KEYS)) {
- for (SQLValue each : containerComposer.getAssertion().getSQLValues()) {
+ final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
+ try (PreparedStatement preparedStatement = connection.prepareStatement(singleE2EContext.getSQL(), Statement.RETURN_GENERATED_KEYS)) {
+ for (SQLValue each : singleE2EContext.getAssertion().getSQLValues()) {
preparedStatement.setObject(each.getIndex(), each.getValue());
}
int result = preparedStatement.executeUpdate();
- assertGeneratedKeys(containerComposer, preparedStatement.getGeneratedKeys(), testParam.getDatabaseType());
+ assertGeneratedKeys(testParam, preparedStatement.getGeneratedKeys(), testParam.getDatabaseType());
return result;
}
}
@@ -104,26 +109,28 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
if (isPostgreSQLOrOpenGauss(testParam.getDatabaseType().getType())) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
init(testParam, containerComposer);
int actualUpdateCount;
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- actualUpdateCount = SQLExecuteType.Literal == containerComposer.getSqlExecuteType()
- ? executeUpdateForStatementWithColumnIndexes(containerComposer, connection)
- : executeUpdateForPreparedStatementWithColumnIndexes(containerComposer, connection);
+ actualUpdateCount = SQLExecuteType.Literal == singleE2EContext.getSqlExecuteType()
+ ? executeUpdateForStatementWithColumnIndexes(singleE2EContext, connection)
+ : executeUpdateForPreparedStatementWithColumnIndexes(singleE2EContext, connection);
}
- assertDataSet(containerComposer, actualUpdateCount, testParam);
+ assertDataSet(containerComposer, singleE2EContext, actualUpdateCount, testParam);
}
- private int executeUpdateForStatementWithColumnIndexes(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
+ private int executeUpdateForStatementWithColumnIndexes(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
try (Statement statement = connection.createStatement()) {
- return statement.executeUpdate(containerComposer.getSQL(), new int[]{1});
+ return statement.executeUpdate(singleE2EContext.getSQL(), new int[]{1});
}
}
- private int executeUpdateForPreparedStatementWithColumnIndexes(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- try (PreparedStatement preparedStatement = connection.prepareStatement(containerComposer.getSQL(), new int[]{1})) {
- for (SQLValue each : containerComposer.getAssertion().getSQLValues()) {
+ private int executeUpdateForPreparedStatementWithColumnIndexes(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
+ try (PreparedStatement preparedStatement = connection.prepareStatement(singleE2EContext.getSQL(), new int[]{1})) {
+ for (SQLValue each : singleE2EContext.getAssertion().getSQLValues()) {
preparedStatement.setObject(each.getIndex(), each.getValue());
}
return preparedStatement.executeUpdate();
@@ -139,26 +146,28 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
if (isPostgreSQLOrOpenGauss(testParam.getDatabaseType().getType())) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
init(testParam, containerComposer);
int actualUpdateCount;
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- actualUpdateCount = SQLExecuteType.Literal == containerComposer.getSqlExecuteType()
- ? executeUpdateForStatementWithColumnNames(containerComposer, connection)
- : executeUpdateForPreparedStatementWithColumnNames(containerComposer, connection);
+ actualUpdateCount = SQLExecuteType.Literal == singleE2EContext.getSqlExecuteType()
+ ? executeUpdateForStatementWithColumnNames(singleE2EContext, connection)
+ : executeUpdateForPreparedStatementWithColumnNames(singleE2EContext, connection);
}
- assertDataSet(containerComposer, actualUpdateCount, testParam);
+ assertDataSet(containerComposer, singleE2EContext, actualUpdateCount, testParam);
}
- private int executeUpdateForStatementWithColumnNames(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
+ private int executeUpdateForStatementWithColumnNames(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
try (Statement statement = connection.createStatement()) {
- return statement.executeUpdate(containerComposer.getSQL());
+ return statement.executeUpdate(singleE2EContext.getSQL());
}
}
- private int executeUpdateForPreparedStatementWithColumnNames(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- try (PreparedStatement preparedStatement = connection.prepareStatement(containerComposer.getSQL(), new String[]{"TODO"})) {
- for (SQLValue each : containerComposer.getAssertion().getSQLValues()) {
+ private int executeUpdateForPreparedStatementWithColumnNames(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
+ try (PreparedStatement preparedStatement = connection.prepareStatement(singleE2EContext.getSQL(), new String[]{"TODO"})) {
+ for (SQLValue each : singleE2EContext.getAssertion().getSQLValues()) {
preparedStatement.setObject(each.getIndex(), each.getValue());
}
return preparedStatement.executeUpdate();
@@ -176,27 +185,29 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
if (isPostgreSQLOrOpenGauss(testParam.getDatabaseType().getType())) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
init(testParam, containerComposer);
int actualUpdateCount;
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- actualUpdateCount = SQLExecuteType.Literal == containerComposer.getSqlExecuteType()
- ? executeForStatementWithoutAutoGeneratedKeys(containerComposer, connection)
- : executeForPreparedStatementWithoutAutoGeneratedKeys(containerComposer, connection);
+ actualUpdateCount = SQLExecuteType.Literal == singleE2EContext.getSqlExecuteType()
+ ? executeForStatementWithoutAutoGeneratedKeys(singleE2EContext, connection)
+ : executeForPreparedStatementWithoutAutoGeneratedKeys(singleE2EContext, connection);
}
- assertDataSet(containerComposer, actualUpdateCount, testParam);
+ assertDataSet(containerComposer, singleE2EContext, actualUpdateCount, testParam);
}
- private int executeForStatementWithoutAutoGeneratedKeys(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
+ private int executeForStatementWithoutAutoGeneratedKeys(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
try (Statement statement = connection.createStatement()) {
- assertFalse(statement.execute(containerComposer.getSQL(), Statement.NO_GENERATED_KEYS), "Not a DML statement.");
+ assertFalse(statement.execute(singleE2EContext.getSQL(), Statement.NO_GENERATED_KEYS), "Not a DML statement.");
return statement.getUpdateCount();
}
}
- private int executeForPreparedStatementWithoutAutoGeneratedKeys(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- try (PreparedStatement preparedStatement = connection.prepareStatement(containerComposer.getSQL(), Statement.NO_GENERATED_KEYS)) {
- for (SQLValue each : containerComposer.getAssertion().getSQLValues()) {
+ private int executeForPreparedStatementWithoutAutoGeneratedKeys(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
+ try (PreparedStatement preparedStatement = connection.prepareStatement(singleE2EContext.getSQL(), Statement.NO_GENERATED_KEYS)) {
+ for (SQLValue each : singleE2EContext.getAssertion().getSQLValues()) {
preparedStatement.setObject(each.getIndex(), each.getValue());
}
assertFalse(preparedStatement.execute(), "Not a DML statement.");
@@ -215,34 +226,36 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
if (isPostgreSQLOrOpenGauss(testParam.getDatabaseType().getType()) || isOracleInsertStatement(testParam.getDatabaseType().getType(), testParam.getTestCaseContext().getTestCase().getSql())) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
init(testParam, containerComposer);
int actualUpdateCount;
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- actualUpdateCount = SQLExecuteType.Literal == containerComposer.getSqlExecuteType()
- ? executeForStatementWithAutoGeneratedKeys(testParam, containerComposer, connection)
- : executeForPreparedStatementWithAutoGeneratedKeys(testParam, containerComposer, connection);
+ actualUpdateCount = SQLExecuteType.Literal == singleE2EContext.getSqlExecuteType()
+ ? executeForStatementWithAutoGeneratedKeys(testParam, singleE2EContext, connection)
+ : executeForPreparedStatementWithAutoGeneratedKeys(testParam, singleE2EContext, connection);
}
- assertDataSet(containerComposer, actualUpdateCount, testParam);
+ assertDataSet(containerComposer, singleE2EContext, actualUpdateCount, testParam);
}
private int executeForStatementWithAutoGeneratedKeys(final AssertionTestParameter testParam,
- final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
+ final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
try (Statement statement = connection.createStatement()) {
- assertFalse(statement.execute(containerComposer.getSQL(), Statement.RETURN_GENERATED_KEYS), "Not a DML statement.");
- assertGeneratedKeys(containerComposer, statement.getGeneratedKeys(), testParam.getDatabaseType());
+ assertFalse(statement.execute(singleE2EContext.getSQL(), Statement.RETURN_GENERATED_KEYS), "Not a DML statement.");
+ assertGeneratedKeys(testParam, statement.getGeneratedKeys(), testParam.getDatabaseType());
return statement.getUpdateCount();
}
}
private int executeForPreparedStatementWithAutoGeneratedKeys(final AssertionTestParameter testParam,
- final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- try (PreparedStatement preparedStatement = connection.prepareStatement(containerComposer.getSQL(), Statement.RETURN_GENERATED_KEYS)) {
- for (SQLValue each : containerComposer.getAssertion().getSQLValues()) {
+ final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
+ try (PreparedStatement preparedStatement = connection.prepareStatement(singleE2EContext.getSQL(), Statement.RETURN_GENERATED_KEYS)) {
+ for (SQLValue each : singleE2EContext.getAssertion().getSQLValues()) {
preparedStatement.setObject(each.getIndex(), each.getValue());
}
assertFalse(preparedStatement.execute(), "Not a DML statement.");
- assertGeneratedKeys(containerComposer, preparedStatement.getGeneratedKeys(), testParam.getDatabaseType());
+ assertGeneratedKeys(testParam, preparedStatement.getGeneratedKeys(), testParam.getDatabaseType());
return preparedStatement.getUpdateCount();
}
}
@@ -256,27 +269,29 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
if (isPostgreSQLOrOpenGauss(testParam.getDatabaseType().getType())) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
init(testParam, containerComposer);
int actualUpdateCount;
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- actualUpdateCount = SQLExecuteType.Literal == containerComposer.getSqlExecuteType()
- ? executeForStatementWithColumnIndexes(containerComposer, connection)
- : executeForPreparedStatementWithColumnIndexes(containerComposer, connection);
+ actualUpdateCount = SQLExecuteType.Literal == singleE2EContext.getSqlExecuteType()
+ ? executeForStatementWithColumnIndexes(singleE2EContext, connection)
+ : executeForPreparedStatementWithColumnIndexes(singleE2EContext, connection);
}
- assertDataSet(containerComposer, actualUpdateCount, testParam);
+ assertDataSet(containerComposer, singleE2EContext, actualUpdateCount, testParam);
}
- private int executeForStatementWithColumnIndexes(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
+ private int executeForStatementWithColumnIndexes(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
try (Statement statement = connection.createStatement()) {
- assertFalse(statement.execute(containerComposer.getSQL(), new int[]{1}), "Not a DML statement.");
+ assertFalse(statement.execute(singleE2EContext.getSQL(), new int[]{1}), "Not a DML statement.");
return statement.getUpdateCount();
}
}
- private int executeForPreparedStatementWithColumnIndexes(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- try (PreparedStatement preparedStatement = connection.prepareStatement(containerComposer.getSQL(), new int[]{1})) {
- for (SQLValue each : containerComposer.getAssertion().getSQLValues()) {
+ private int executeForPreparedStatementWithColumnIndexes(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
+ try (PreparedStatement preparedStatement = connection.prepareStatement(singleE2EContext.getSQL(), new int[]{1})) {
+ for (SQLValue each : singleE2EContext.getAssertion().getSQLValues()) {
preparedStatement.setObject(each.getIndex(), each.getValue());
}
assertFalse(preparedStatement.execute(), "Not a DML statement.");
@@ -293,27 +308,29 @@ class AdditionalDMLE2EIT extends BaseDMLE2EIT {
if (isPostgreSQLOrOpenGauss(testParam.getDatabaseType().getType())) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
init(testParam, containerComposer);
int actualUpdateCount;
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- actualUpdateCount = SQLExecuteType.Literal == containerComposer.getSqlExecuteType()
- ? executeForStatementWithColumnNames(containerComposer, connection)
- : executeForPreparedStatementWithColumnNames(containerComposer, connection);
+ actualUpdateCount = SQLExecuteType.Literal == singleE2EContext.getSqlExecuteType()
+ ? executeForStatementWithColumnNames(singleE2EContext, connection)
+ : executeForPreparedStatementWithColumnNames(singleE2EContext, connection);
}
- assertDataSet(containerComposer, actualUpdateCount, testParam);
+ assertDataSet(containerComposer, singleE2EContext, actualUpdateCount, testParam);
}
- private int executeForStatementWithColumnNames(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
+ private int executeForStatementWithColumnNames(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
try (Statement statement = connection.createStatement()) {
- assertFalse(statement.execute(containerComposer.getSQL(), new String[]{"TODO"}), "Not a DML statement.");
+ assertFalse(statement.execute(singleE2EContext.getSQL(), new String[]{"TODO"}), "Not a DML statement.");
return statement.getUpdateCount();
}
}
- private int executeForPreparedStatementWithColumnNames(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- try (PreparedStatement preparedStatement = connection.prepareStatement(containerComposer.getSQL(), new String[]{"TODO"})) {
- for (SQLValue each : containerComposer.getAssertion().getSQLValues()) {
+ private int executeForPreparedStatementWithColumnNames(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
+ try (PreparedStatement preparedStatement = connection.prepareStatement(singleE2EContext.getSQL(), new String[]{"TODO"})) {
+ for (SQLValue each : singleE2EContext.getAssertion().getSQLValues()) {
preparedStatement.setObject(each.getIndex(), each.getValue());
}
assertFalse(preparedStatement.execute(), "Not a DML statement.");
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/BaseDMLE2EIT.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/BaseDMLE2EIT.java
index f7b222f516e..5a8a5b0096b 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/BaseDMLE2EIT.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/BaseDMLE2EIT.java
@@ -21,12 +21,14 @@ import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
import org.apache.shardingsphere.infra.datanode.DataNode;
import org.apache.shardingsphere.infra.expr.core.InlineExpressionParserFactory;
import org.apache.shardingsphere.infra.util.datetime.DateTimeFormatterFactory;
+import org.apache.shardingsphere.test.e2e.cases.casse.assertion.E2ETestCaseAssertion;
+import org.apache.shardingsphere.test.e2e.cases.dataset.DataSet;
+import org.apache.shardingsphere.test.e2e.cases.dataset.DataSetLoader;
import org.apache.shardingsphere.test.e2e.cases.dataset.metadata.DataSetColumn;
import org.apache.shardingsphere.test.e2e.cases.dataset.metadata.DataSetMetaData;
import org.apache.shardingsphere.test.e2e.cases.dataset.row.DataSetRow;
-import org.apache.shardingsphere.test.e2e.engine.composer.BatchE2EContainerComposer;
import org.apache.shardingsphere.test.e2e.engine.composer.E2EContainerComposer;
-import org.apache.shardingsphere.test.e2e.engine.composer.SingleE2EContainerComposer;
+import org.apache.shardingsphere.test.e2e.engine.context.SingleE2EContext;
import org.apache.shardingsphere.test.e2e.env.DataSetEnvironmentManager;
import org.apache.shardingsphere.test.e2e.env.runtime.scenario.database.DatabaseEnvironmentManager;
import org.apache.shardingsphere.test.e2e.env.runtime.scenario.path.ScenarioDataPath;
@@ -46,12 +48,17 @@ import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
+import java.sql.Statement;
import java.sql.Types;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
+import java.util.Set;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.MatcherAssert.assertThat;
@@ -71,7 +78,7 @@ public abstract class BaseDMLE2EIT {
* @throws IOException IO exception
* @throws JAXBException JAXB exception
*/
- public final void init(final AssertionTestParameter testParam, final SingleE2EContainerComposer containerComposer) throws SQLException, IOException, JAXBException {
+ public final void init(final AssertionTestParameter testParam, final E2EContainerComposer containerComposer) throws SQLException, IOException, JAXBException {
dataSetEnvironmentManager =
new DataSetEnvironmentManager(new ScenarioDataPath(testParam.getScenario()).getDataSetFile(Type.ACTUAL), containerComposer.getActualDataSourceMap(), testParam.getDatabaseType());
dataSetEnvironmentManager.fillData();
@@ -85,14 +92,66 @@ public abstract class BaseDMLE2EIT {
}
}
- protected final void assertDataSet(final SingleE2EContainerComposer containerComposer, final int actualUpdateCount, final AssertionTestParameter testParam) throws SQLException {
- assertThat(actualUpdateCount, is(containerComposer.getDataSet().getUpdateCount()));
- for (DataSetMetaData each : containerComposer.getDataSet().getMetaDataList()) {
- assertDataSet(containerComposer, each, testParam);
+ /**
+ * Get data set.
+ *
+ * @param actualUpdateCounts actual update counts
+ * @param dataSets data sets
+ * @return data set
+ */
+ public DataSet getDataSet(final int[] actualUpdateCounts, final Collection<DataSet> dataSets) {
+ Collection<DataSet> result = new LinkedList<>();
+ assertThat(actualUpdateCounts.length, is(dataSets.size()));
+ int count = 0;
+ for (DataSet each : dataSets) {
+ if (Statement.SUCCESS_NO_INFO != actualUpdateCounts[count]) {
+ assertThat(actualUpdateCounts[count], is(each.getUpdateCount()));
+ }
+ result.add(each);
+ count++;
+ }
+ return mergeDataSets(result);
+ }
+
+ private DataSet mergeDataSets(final Collection<DataSet> dataSets) {
+ DataSet result = new DataSet();
+ Set<DataSetRow> existedRows = new HashSet<>();
+ for (DataSet each : dataSets) {
+ mergeMetaData(each, result);
+ mergeRow(each, result, existedRows);
+ }
+ sortRow(result);
+ return result;
+ }
+
+ private void mergeMetaData(final DataSet original, final DataSet dist) {
+ if (dist.getMetaDataList().isEmpty()) {
+ dist.getMetaDataList().addAll(original.getMetaDataList());
}
}
- private void assertDataSet(final SingleE2EContainerComposer containerComposer, final DataSetMetaData expectedDataSetMetaData, final AssertionTestParameter testParam) throws SQLException {
+ private void mergeRow(final DataSet original, final DataSet dist, final Set<DataSetRow> existedRows) {
+ for (DataSetRow each : original.getRows()) {
+ if (existedRows.add(each)) {
+ dist.getRows().add(each);
+ }
+ }
+ }
+
+ private void sortRow(final DataSet dataSet) {
+ dataSet.getRows().sort(Comparator.comparingLong(o -> Long.parseLong(o.splitValues(",").get(0))));
+ }
+
+ protected final void assertDataSet(final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext, final int actualUpdateCount,
+ final AssertionTestParameter testParam) throws SQLException {
+ assertThat(actualUpdateCount, is(singleE2EContext.getDataSet().getUpdateCount()));
+ for (DataSetMetaData each : singleE2EContext.getDataSet().getMetaDataList()) {
+ assertDataSet(containerComposer, singleE2EContext, each, testParam);
+ }
+ }
+
+ private void assertDataSet(final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext, final DataSetMetaData expectedDataSetMetaData,
+ final AssertionTestParameter testParam) throws SQLException {
Map<String, DatabaseType> databaseTypes = DatabaseEnvironmentManager.getDatabaseTypes(testParam.getScenario(), testParam.getDatabaseType());
for (String each : InlineExpressionParserFactory.newInstance(expectedDataSetMetaData.getDataNodes()).splitAndEvaluate()) {
DataNode dataNode = new DataNode(each);
@@ -101,7 +160,7 @@ public abstract class BaseDMLE2EIT {
try (
Connection connection = dataSource.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(generateFetchActualDataSQL(containerComposer.getActualDataSourceMap(), dataNode, databaseType))) {
- assertDataSet(preparedStatement, expectedDataSetMetaData, containerComposer.getDataSet().findRows(dataNode), databaseType);
+ assertDataSet(preparedStatement, expectedDataSetMetaData, singleE2EContext.getDataSet().findRows(dataNode), databaseType);
}
}
}
@@ -114,14 +173,19 @@ public abstract class BaseDMLE2EIT {
}
}
- protected final void assertDataSet(final BatchE2EContainerComposer containerComposer, final int[] actualUpdateCounts, final CaseTestParameter testParam) throws SQLException {
- for (DataSetMetaData each : containerComposer.getDataSet(actualUpdateCounts).getMetaDataList()) {
- assertDataSet(containerComposer, actualUpdateCounts, each, testParam);
+ protected final void assertDataSet(final E2EContainerComposer containerComposer, final int[] actualUpdateCounts, final CaseTestParameter testParam) throws SQLException {
+ Collection<DataSet> dataSets = new LinkedList<>();
+ for (E2ETestCaseAssertion each : testParam.getTestCaseContext().getTestCase().getAssertions()) {
+ dataSets.add(DataSetLoader.load(testParam.getTestCaseContext().getParentPath(), testParam.getScenario(), testParam.getDatabaseType(), testParam.getMode(), each.getExpectedDataFile()));
+ }
+ DataSet dataSet = getDataSet(actualUpdateCounts, dataSets);
+ for (DataSetMetaData each : dataSet.getMetaDataList()) {
+ assertDataSet(containerComposer, each, testParam, dataSet);
}
}
- private void assertDataSet(final BatchE2EContainerComposer containerComposer, final int[] actualUpdateCounts, final DataSetMetaData expectedDataSetMetaData,
- final CaseTestParameter testParam) throws SQLException {
+ private void assertDataSet(final E2EContainerComposer containerComposer, final DataSetMetaData expectedDataSetMetaData, final CaseTestParameter testParam,
+ final DataSet dataSet) throws SQLException {
Map<String, DatabaseType> databaseTypes = DatabaseEnvironmentManager.getDatabaseTypes(testParam.getScenario(), testParam.getDatabaseType());
for (String each : InlineExpressionParserFactory.newInstance(expectedDataSetMetaData.getDataNodes()).splitAndEvaluate()) {
DataNode dataNode = new DataNode(each);
@@ -130,7 +194,7 @@ public abstract class BaseDMLE2EIT {
try (
Connection connection = dataSource.getConnection();
PreparedStatement preparedStatement = connection.prepareStatement(generateFetchActualDataSQL(containerComposer.getActualDataSourceMap(), dataNode, databaseType))) {
- assertDataSet(preparedStatement, expectedDataSetMetaData, containerComposer.getDataSet(actualUpdateCounts).findRows(dataNode), databaseType);
+ assertDataSet(preparedStatement, expectedDataSetMetaData, dataSet.findRows(dataNode), databaseType);
}
}
}
@@ -196,12 +260,17 @@ public abstract class BaseDMLE2EIT {
return "money".equalsIgnoreCase(columnTypeName) && ("PostgreSQL".equals(databaseType.getType()) || "openGauss".equals(databaseType.getType()));
}
- protected void assertGeneratedKeys(final SingleE2EContainerComposer containerComposer, final ResultSet generatedKeys, final DatabaseType databaseType) throws SQLException {
- if (null == containerComposer.getGeneratedKeyDataSet()) {
+ protected void assertGeneratedKeys(final AssertionTestParameter testParam, final ResultSet generatedKeys, final DatabaseType databaseType) throws SQLException {
+ DataSet generatedKeyDataSet = null == testParam.getAssertion() || null == testParam.getAssertion().getExpectedGeneratedKeyDataFile()
+ ? null
+ : DataSetLoader.load(
+ testParam.getTestCaseContext().getParentPath(), testParam.getScenario(), testParam.getDatabaseType(), testParam.getMode(),
+ testParam.getAssertion().getExpectedGeneratedKeyDataFile());
+ if (null == generatedKeyDataSet) {
return;
}
- assertThat("Only support single table for DML.", containerComposer.getGeneratedKeyDataSet().getMetaDataList().size(), is(1));
- assertMetaData(generatedKeys.getMetaData(), containerComposer.getGeneratedKeyDataSet().getMetaDataList().get(0).getColumns());
- assertRows(generatedKeys, containerComposer.getGeneratedKeyDataSet().getRows(), databaseType);
+ assertThat("Only support single table for DML.", generatedKeyDataSet.getMetaDataList().size(), is(1));
+ assertMetaData(generatedKeys.getMetaData(), generatedKeyDataSet.getMetaDataList().get(0).getColumns());
+ assertRows(generatedKeys, generatedKeyDataSet.getRows(), databaseType);
}
}
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/BatchDMLE2EIT.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/BatchDMLE2EIT.java
index aec207b21ae..3bc7e85c857 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/BatchDMLE2EIT.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/BatchDMLE2EIT.java
@@ -17,14 +17,19 @@
package org.apache.shardingsphere.test.e2e.engine.type.dml;
-import org.apache.shardingsphere.test.e2e.framework.type.SQLCommandType;
import org.apache.shardingsphere.test.e2e.cases.casse.assertion.E2ETestCaseAssertion;
import org.apache.shardingsphere.test.e2e.cases.value.SQLValue;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseArgumentsProvider;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseSettings;
-import org.apache.shardingsphere.test.e2e.engine.composer.BatchE2EContainerComposer;
+import org.apache.shardingsphere.test.e2e.engine.composer.E2EContainerComposer;
+import org.apache.shardingsphere.test.e2e.env.DataSetEnvironmentManager;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterMode;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterType;
+import org.apache.shardingsphere.test.e2e.env.runtime.scenario.path.ScenarioDataPath;
import org.apache.shardingsphere.test.e2e.framework.param.array.E2ETestParameterFactory;
import org.apache.shardingsphere.test.e2e.framework.param.model.CaseTestParameter;
+import org.apache.shardingsphere.test.e2e.framework.type.SQLCommandType;
+import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.condition.EnabledIf;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ArgumentsSource;
@@ -41,6 +46,15 @@ import static org.hamcrest.MatcherAssert.assertThat;
@E2ETestCaseSettings(value = SQLCommandType.DML, batch = true)
class BatchDMLE2EIT extends BaseDMLE2EIT {
+ private DataSetEnvironmentManager dataSetEnvironmentManager;
+
+ @AfterEach
+ void tearDown() {
+ if (null != dataSetEnvironmentManager) {
+ dataSetEnvironmentManager.cleanData();
+ }
+ }
+
@ParameterizedTest(name = "{0}")
@EnabledIf("isEnabled")
@ArgumentsSource(E2ETestCaseArgumentsProvider.class)
@@ -49,13 +63,16 @@ class BatchDMLE2EIT extends BaseDMLE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- try (BatchE2EContainerComposer containerComposer = new BatchE2EContainerComposer(testParam)) {
- int[] actualUpdateCounts;
- try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- actualUpdateCounts = executeBatchForPreparedStatement(testParam, connection);
- }
- assertDataSet(containerComposer, actualUpdateCounts, testParam);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ dataSetEnvironmentManager = new DataSetEnvironmentManager(new ScenarioDataPath(testParam.getScenario()).getDataSetFile(ScenarioDataPath.Type.ACTUAL),
+ containerComposer.getActualDataSourceMap(), testParam.getDatabaseType());
+ dataSetEnvironmentManager.fillData();
+ int[] actualUpdateCounts;
+ try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
+ actualUpdateCounts = executeBatchForPreparedStatement(testParam, connection);
}
+ assertDataSet(containerComposer, actualUpdateCounts, testParam);
}
private int[] executeBatchForPreparedStatement(final CaseTestParameter testParam, final Connection connection) throws SQLException {
@@ -82,16 +99,19 @@ class BatchDMLE2EIT extends BaseDMLE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- try (BatchE2EContainerComposer containerComposer = new BatchE2EContainerComposer(testParam)) {
- try (
- Connection connection = containerComposer.getTargetDataSource().getConnection();
- PreparedStatement preparedStatement = connection.prepareStatement(testParam.getTestCaseContext().getTestCase().getSql())) {
- for (E2ETestCaseAssertion each : testParam.getTestCaseContext().getTestCase().getAssertions()) {
- addBatch(preparedStatement, each);
- }
- preparedStatement.clearBatch();
- assertThat(preparedStatement.executeBatch().length, is(0));
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ dataSetEnvironmentManager = new DataSetEnvironmentManager(new ScenarioDataPath(testParam.getScenario()).getDataSetFile(ScenarioDataPath.Type.ACTUAL),
+ containerComposer.getActualDataSourceMap(), testParam.getDatabaseType());
+ dataSetEnvironmentManager.fillData();
+ try (
+ Connection connection = containerComposer.getTargetDataSource().getConnection();
+ PreparedStatement preparedStatement = connection.prepareStatement(testParam.getTestCaseContext().getTestCase().getSql())) {
+ for (E2ETestCaseAssertion each : testParam.getTestCaseContext().getTestCase().getAssertions()) {
+ addBatch(preparedStatement, each);
}
+ preparedStatement.clearBatch();
+ assertThat(preparedStatement.executeBatch().length, is(0));
}
}
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/GeneralDMLE2EIT.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/GeneralDMLE2EIT.java
index 6a2fc6048ad..26c8e240eb0 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/GeneralDMLE2EIT.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dml/GeneralDMLE2EIT.java
@@ -17,12 +17,15 @@
package org.apache.shardingsphere.test.e2e.engine.type.dml;
+import org.apache.shardingsphere.test.e2e.engine.context.SingleE2EContext;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterMode;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterType;
import org.apache.shardingsphere.test.e2e.framework.type.SQLCommandType;
import org.apache.shardingsphere.test.e2e.framework.type.SQLExecuteType;
import org.apache.shardingsphere.test.e2e.cases.value.SQLValue;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseArgumentsProvider;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseSettings;
-import org.apache.shardingsphere.test.e2e.engine.composer.SingleE2EContainerComposer;
+import org.apache.shardingsphere.test.e2e.engine.composer.E2EContainerComposer;
import org.apache.shardingsphere.test.e2e.framework.param.array.E2ETestParameterFactory;
import org.apache.shardingsphere.test.e2e.framework.param.model.AssertionTestParameter;
import org.junit.jupiter.api.condition.EnabledIf;
@@ -49,26 +52,28 @@ class GeneralDMLE2EIT extends BaseDMLE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
init(testParam, containerComposer);
int actualUpdateCount;
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- actualUpdateCount = SQLExecuteType.Literal == containerComposer.getSqlExecuteType()
- ? executeUpdateForStatement(containerComposer, connection)
- : executeUpdateForPreparedStatement(containerComposer, connection);
+ actualUpdateCount = SQLExecuteType.Literal == singleE2EContext.getSqlExecuteType()
+ ? executeUpdateForStatement(singleE2EContext, connection)
+ : executeUpdateForPreparedStatement(singleE2EContext, connection);
}
- assertDataSet(containerComposer, actualUpdateCount, testParam);
+ assertDataSet(containerComposer, singleE2EContext, actualUpdateCount, testParam);
}
- private int executeUpdateForStatement(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
+ private int executeUpdateForStatement(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
try (Statement statement = connection.createStatement()) {
- return statement.executeUpdate(containerComposer.getSQL());
+ return statement.executeUpdate(singleE2EContext.getSQL());
}
}
- private int executeUpdateForPreparedStatement(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- try (PreparedStatement preparedStatement = connection.prepareStatement(containerComposer.getSQL())) {
- for (SQLValue each : containerComposer.getAssertion().getSQLValues()) {
+ private int executeUpdateForPreparedStatement(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
+ try (PreparedStatement preparedStatement = connection.prepareStatement(singleE2EContext.getSQL())) {
+ for (SQLValue each : singleE2EContext.getAssertion().getSQLValues()) {
preparedStatement.setObject(each.getIndex(), each.getValue());
}
return preparedStatement.executeUpdate();
@@ -83,27 +88,29 @@ class GeneralDMLE2EIT extends BaseDMLE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
init(testParam, containerComposer);
int actualUpdateCount;
try (Connection connection = containerComposer.getTargetDataSource().getConnection()) {
- actualUpdateCount = SQLExecuteType.Literal == containerComposer.getSqlExecuteType()
- ? executeForStatement(containerComposer, connection)
- : executeForPreparedStatement(containerComposer, connection);
+ actualUpdateCount = SQLExecuteType.Literal == singleE2EContext.getSqlExecuteType()
+ ? executeForStatement(singleE2EContext, connection)
+ : executeForPreparedStatement(singleE2EContext, connection);
}
- assertDataSet(containerComposer, actualUpdateCount, testParam);
+ assertDataSet(containerComposer, singleE2EContext, actualUpdateCount, testParam);
}
- private int executeForStatement(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
+ private int executeForStatement(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
try (Statement statement = connection.createStatement()) {
- assertFalse(statement.execute(containerComposer.getSQL()), "Not a DML statement.");
+ assertFalse(statement.execute(singleE2EContext.getSQL()), "Not a DML statement.");
return statement.getUpdateCount();
}
}
- private int executeForPreparedStatement(final SingleE2EContainerComposer containerComposer, final Connection connection) throws SQLException {
- try (PreparedStatement preparedStatement = connection.prepareStatement(containerComposer.getSQL())) {
- for (SQLValue each : containerComposer.getAssertion().getSQLValues()) {
+ private int executeForPreparedStatement(final SingleE2EContext singleE2EContext, final Connection connection) throws SQLException {
+ try (PreparedStatement preparedStatement = connection.prepareStatement(singleE2EContext.getSQL())) {
+ for (SQLValue each : singleE2EContext.getAssertion().getSQLValues()) {
preparedStatement.setObject(each.getIndex(), each.getValue());
}
assertFalse(preparedStatement.execute(), "Not a DML statement.");
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dql/AdditionalDQLE2EIT.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dql/AdditionalDQLE2EIT.java
index 74c9f7c61dd..5a72d5767e8 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dql/AdditionalDQLE2EIT.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dql/AdditionalDQLE2EIT.java
@@ -17,15 +17,18 @@
package org.apache.shardingsphere.test.e2e.engine.type.dql;
-import org.apache.shardingsphere.test.e2e.framework.type.SQLCommandType;
-import org.apache.shardingsphere.test.e2e.framework.type.SQLExecuteType;
import org.apache.shardingsphere.test.e2e.cases.value.SQLValue;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseArgumentsProvider;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseSettings;
-import org.apache.shardingsphere.test.e2e.engine.composer.SingleE2EContainerComposer;
+import org.apache.shardingsphere.test.e2e.engine.composer.E2EContainerComposer;
+import org.apache.shardingsphere.test.e2e.engine.context.SingleE2EContext;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterMode;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterType;
import org.apache.shardingsphere.test.e2e.env.runtime.E2ETestEnvironment;
import org.apache.shardingsphere.test.e2e.framework.param.array.E2ETestParameterFactory;
import org.apache.shardingsphere.test.e2e.framework.param.model.AssertionTestParameter;
+import org.apache.shardingsphere.test.e2e.framework.type.SQLCommandType;
+import org.apache.shardingsphere.test.e2e.framework.type.SQLExecuteType;
import org.junit.jupiter.api.condition.EnabledIf;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ArgumentsSource;
@@ -51,16 +54,18 @@ class AdditionalDQLE2EIT extends BaseDQLE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
- init(testParam, containerComposer);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
+ init(testParam, containerComposer, singleE2EContext);
// TODO fix e2e test blocked exception with PostgreSQL or openGauss in #23643
if (isPostgreSQLOrOpenGauss(testParam.getDatabaseType().getType())) {
return;
}
if (isUseXMLAsExpectedDataset()) {
- assertExecuteQueryWithXMLExpected(testParam, containerComposer, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
+ assertExecuteQueryWithXMLExpected(testParam, containerComposer, singleE2EContext, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
} else {
- assertExecuteQueryWithExpectedDataSource(testParam, containerComposer, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
+ assertExecuteQueryWithExpectedDataSource(testParam, containerComposer, singleE2EContext, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
}
}
@@ -72,16 +77,18 @@ class AdditionalDQLE2EIT extends BaseDQLE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
- init(testParam, containerComposer);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
+ init(testParam, containerComposer, singleE2EContext);
// TODO fix e2e test blocked exception with PostgreSQL or openGauss in #23643
if (isPostgreSQLOrOpenGauss(testParam.getDatabaseType().getType())) {
return;
}
if (isUseXMLAsExpectedDataset()) {
- assertExecuteQueryWithXMLExpected(testParam, containerComposer, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
+ assertExecuteQueryWithXMLExpected(testParam, containerComposer, singleE2EContext, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
} else {
- assertExecuteQueryWithExpectedDataSource(testParam, containerComposer, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
+ assertExecuteQueryWithExpectedDataSource(testParam, containerComposer, singleE2EContext, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
}
}
@@ -93,16 +100,18 @@ class AdditionalDQLE2EIT extends BaseDQLE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
- init(testParam, containerComposer);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
+ init(testParam, containerComposer, singleE2EContext);
// TODO fix e2e test blocked exception with PostgreSQL or openGauss in #23643
if (isPostgreSQLOrOpenGauss(testParam.getDatabaseType().getType())) {
return;
}
if (isUseXMLAsExpectedDataset()) {
- assertExecuteWithXMLExpected(testParam, containerComposer, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
+ assertExecuteWithXMLExpected(testParam, containerComposer, singleE2EContext, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
} else {
- assertExecuteWithExpectedDataSource(testParam, containerComposer, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
+ assertExecuteWithExpectedDataSource(testParam, containerComposer, singleE2EContext, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
}
}
@@ -114,16 +123,18 @@ class AdditionalDQLE2EIT extends BaseDQLE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
- init(testParam, containerComposer);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
+ init(testParam, containerComposer, singleE2EContext);
// TODO fix e2e test blocked exception with PostgreSQL or openGauss in #23643
if (isPostgreSQLOrOpenGauss(testParam.getDatabaseType().getType())) {
return;
}
if (isUseXMLAsExpectedDataset()) {
- assertExecuteWithXMLExpected(testParam, containerComposer, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
+ assertExecuteWithXMLExpected(testParam, containerComposer, singleE2EContext, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
} else {
- assertExecuteWithExpectedDataSource(testParam, containerComposer, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
+ assertExecuteWithExpectedDataSource(testParam, containerComposer, singleE2EContext, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY, ResultSet.HOLD_CURSORS_OVER_COMMIT);
}
}
@@ -132,7 +143,7 @@ class AdditionalDQLE2EIT extends BaseDQLE2EIT {
}
private void assertExecuteQueryWithXMLExpected(final AssertionTestParameter testParam,
- final SingleE2EContainerComposer containerComposer, final int... resultSetTypes) throws SQLException {
+ final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext, final int... resultSetTypes) throws SQLException {
// TODO Fix jdbc adapter
if ("jdbc".equals(testParam.getAdapter())) {
return;
@@ -141,45 +152,46 @@ class AdditionalDQLE2EIT extends BaseDQLE2EIT {
Connection connection = containerComposer.getTargetDataSource().getConnection();
Statement statement = 2 == resultSetTypes.length ? connection.createStatement(resultSetTypes[0], resultSetTypes[1])
: connection.createStatement(resultSetTypes[0], resultSetTypes[1], resultSetTypes[2]);
- ResultSet resultSet = statement.executeQuery(containerComposer.getSQL())) {
- assertResultSet(containerComposer, resultSet);
+ ResultSet resultSet = statement.executeQuery(singleE2EContext.getSQL())) {
+ assertResultSet(singleE2EContext, resultSet);
}
}
- private void assertExecuteQueryWithExpectedDataSource(final AssertionTestParameter testParam, final SingleE2EContainerComposer containerComposer, final int... resultSetTypes) throws SQLException {
+ private void assertExecuteQueryWithExpectedDataSource(final AssertionTestParameter testParam, final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext,
+ final int... resultSetTypes) throws SQLException {
try (
Connection actualConnection = containerComposer.getTargetDataSource().getConnection();
Connection expectedConnection = getExpectedDataSource().getConnection()) {
- if (SQLExecuteType.Literal == containerComposer.getSqlExecuteType()) {
- assertExecuteQueryForStatementWithResultSetTypes(containerComposer, actualConnection, expectedConnection, testParam, resultSetTypes);
+ if (SQLExecuteType.Literal == singleE2EContext.getSqlExecuteType()) {
+ assertExecuteQueryForStatementWithResultSetTypes(singleE2EContext, actualConnection, expectedConnection, testParam, resultSetTypes);
} else {
- assertExecuteQueryForPreparedStatementWithResultSetTypes(containerComposer, actualConnection, expectedConnection, testParam, resultSetTypes);
+ assertExecuteQueryForPreparedStatementWithResultSetTypes(singleE2EContext, actualConnection, expectedConnection, testParam, resultSetTypes);
}
}
}
- private void assertExecuteQueryForStatementWithResultSetTypes(final SingleE2EContainerComposer containerComposer,
+ private void assertExecuteQueryForStatementWithResultSetTypes(final SingleE2EContext singleE2EContext,
final Connection actualConnection, final Connection expectedConnection,
final AssertionTestParameter testParam, final int... resultSetTypes) throws SQLException {
try (
Statement actualStatement = 2 == resultSetTypes.length ? actualConnection.createStatement(resultSetTypes[0], resultSetTypes[1])
: actualConnection.createStatement(resultSetTypes[0], resultSetTypes[1], resultSetTypes[2]);
- ResultSet actualResultSet = actualStatement.executeQuery(containerComposer.getSQL());
+ ResultSet actualResultSet = actualStatement.executeQuery(singleE2EContext.getSQL());
Statement expectedStatement = 2 == resultSetTypes.length ? expectedConnection.createStatement(resultSetTypes[0], resultSetTypes[1])
: expectedConnection.createStatement(resultSetTypes[0], resultSetTypes[1], resultSetTypes[2]);
- ResultSet expectedResultSet = expectedStatement.executeQuery(containerComposer.getSQL())) {
+ ResultSet expectedResultSet = expectedStatement.executeQuery(singleE2EContext.getSQL())) {
assertResultSet(actualResultSet, expectedResultSet, testParam);
}
}
- private void assertExecuteQueryForPreparedStatementWithResultSetTypes(final SingleE2EContainerComposer containerComposer, final Connection actualConnection, final Connection expectedConnection,
+ private void assertExecuteQueryForPreparedStatementWithResultSetTypes(final SingleE2EContext singleE2EContext, final Connection actualConnection, final Connection expectedConnection,
final AssertionTestParameter testParam, final int... resultSetTypes) throws SQLException {
try (
- PreparedStatement actualPreparedStatement = 2 == resultSetTypes.length ? actualConnection.prepareStatement(containerComposer.getSQL(), resultSetTypes[0], resultSetTypes[1])
- : actualConnection.prepareStatement(containerComposer.getSQL(), resultSetTypes[0], resultSetTypes[1], resultSetTypes[2]);
- PreparedStatement expectedPreparedStatement = 2 == resultSetTypes.length ? expectedConnection.prepareStatement(containerComposer.getSQL(), resultSetTypes[0], resultSetTypes[1])
- : expectedConnection.prepareStatement(containerComposer.getSQL(), resultSetTypes[0], resultSetTypes[1], resultSetTypes[2])) {
- for (SQLValue each : containerComposer.getAssertion().getSQLValues()) {
+ PreparedStatement actualPreparedStatement = 2 == resultSetTypes.length ? actualConnection.prepareStatement(singleE2EContext.getSQL(), resultSetTypes[0], resultSetTypes[1])
+ : actualConnection.prepareStatement(singleE2EContext.getSQL(), resultSetTypes[0], resultSetTypes[1], resultSetTypes[2]);
+ PreparedStatement expectedPreparedStatement = 2 == resultSetTypes.length ? expectedConnection.prepareStatement(singleE2EContext.getSQL(), resultSetTypes[0], resultSetTypes[1])
+ : expectedConnection.prepareStatement(singleE2EContext.getSQL(), resultSetTypes[0], resultSetTypes[1], resultSetTypes[2])) {
+ for (SQLValue each : singleE2EContext.getAssertion().getSQLValues()) {
actualPreparedStatement.setObject(each.getIndex(), each.getValue());
expectedPreparedStatement.setObject(each.getIndex(), each.getValue());
}
@@ -192,7 +204,7 @@ class AdditionalDQLE2EIT extends BaseDQLE2EIT {
}
private void assertExecuteWithXMLExpected(final AssertionTestParameter testParam,
- final SingleE2EContainerComposer containerComposer, final int... resultSetTypes) throws SQLException {
+ final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext, final int... resultSetTypes) throws SQLException {
// TODO Fix jdbc adapter
if ("jdbc".equals(testParam.getAdapter())) {
return;
@@ -201,32 +213,33 @@ class AdditionalDQLE2EIT extends BaseDQLE2EIT {
Connection connection = containerComposer.getTargetDataSource().getConnection();
Statement statement = 2 == resultSetTypes.length ? connection.createStatement(resultSetTypes[0], resultSetTypes[1])
: connection.createStatement(resultSetTypes[0], resultSetTypes[1], resultSetTypes[2])) {
- assertTrue(statement.execute(containerComposer.getSQL()), "Not a query statement.");
+ assertTrue(statement.execute(singleE2EContext.getSQL()), "Not a query statement.");
ResultSet resultSet = statement.getResultSet();
- assertResultSet(containerComposer, resultSet);
+ assertResultSet(singleE2EContext, resultSet);
}
}
- private void assertExecuteWithExpectedDataSource(final AssertionTestParameter testParam, final SingleE2EContainerComposer containerComposer, final int... resultSetTypes) throws SQLException {
+ private void assertExecuteWithExpectedDataSource(final AssertionTestParameter testParam, final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext,
+ final int... resultSetTypes) throws SQLException {
try (
Connection actualConnection = containerComposer.getTargetDataSource().getConnection();
Connection expectedConnection = getExpectedDataSource().getConnection()) {
- if (SQLExecuteType.Literal == containerComposer.getSqlExecuteType()) {
- assertExecuteForStatementWithResultSetTypes(containerComposer, actualConnection, expectedConnection, testParam, resultSetTypes);
+ if (SQLExecuteType.Literal == singleE2EContext.getSqlExecuteType()) {
+ assertExecuteForStatementWithResultSetTypes(singleE2EContext, actualConnection, expectedConnection, testParam, resultSetTypes);
} else {
- assertExecuteForPreparedStatementWithResultSetTypes(containerComposer, actualConnection, expectedConnection, testParam, resultSetTypes);
+ assertExecuteForPreparedStatementWithResultSetTypes(singleE2EContext, actualConnection, expectedConnection, testParam, resultSetTypes);
}
}
}
- private void assertExecuteForStatementWithResultSetTypes(final SingleE2EContainerComposer containerComposer, final Connection actualConnection, final Connection expectedConnection,
+ private void assertExecuteForStatementWithResultSetTypes(final SingleE2EContext singleE2EContext, final Connection actualConnection, final Connection expectedConnection,
final AssertionTestParameter testParam, final int... resultSetTypes) throws SQLException {
try (
Statement actualStatement = 2 == resultSetTypes.length ? actualConnection.createStatement(resultSetTypes[0], resultSetTypes[1])
: actualConnection.createStatement(resultSetTypes[0], resultSetTypes[1], resultSetTypes[2]);
Statement expectedStatement = 2 == resultSetTypes.length ? expectedConnection.createStatement(resultSetTypes[0], resultSetTypes[1])
: expectedConnection.createStatement(resultSetTypes[0], resultSetTypes[1], resultSetTypes[2])) {
- assertTrue(actualStatement.execute(containerComposer.getSQL()) && expectedStatement.execute(containerComposer.getSQL()), "Not a query statement.");
+ assertTrue(actualStatement.execute(singleE2EContext.getSQL()) && expectedStatement.execute(singleE2EContext.getSQL()), "Not a query statement.");
try (
ResultSet actualResultSet = actualStatement.getResultSet();
ResultSet expectedResultSet = expectedStatement.getResultSet()) {
@@ -235,14 +248,14 @@ class AdditionalDQLE2EIT extends BaseDQLE2EIT {
}
}
- private void assertExecuteForPreparedStatementWithResultSetTypes(final SingleE2EContainerComposer containerComposer, final Connection actualConnection, final Connection expectedConnection,
+ private void assertExecuteForPreparedStatementWithResultSetTypes(final SingleE2EContext singleE2EContext, final Connection actualConnection, final Connection expectedConnection,
final AssertionTestParameter testParam, final int... resultSetTypes) throws SQLException {
try (
- PreparedStatement actualPreparedStatement = 2 == resultSetTypes.length ? actualConnection.prepareStatement(containerComposer.getSQL(), resultSetTypes[0], resultSetTypes[1])
- : actualConnection.prepareStatement(containerComposer.getSQL(), resultSetTypes[0], resultSetTypes[1], resultSetTypes[2]);
- PreparedStatement expectedPreparedStatement = 2 == resultSetTypes.length ? expectedConnection.prepareStatement(containerComposer.getSQL(), resultSetTypes[0], resultSetTypes[1])
- : expectedConnection.prepareStatement(containerComposer.getSQL(), resultSetTypes[0], resultSetTypes[1], resultSetTypes[2])) {
- for (SQLValue each : containerComposer.getAssertion().getSQLValues()) {
+ PreparedStatement actualPreparedStatement = 2 == resultSetTypes.length ? actualConnection.prepareStatement(singleE2EContext.getSQL(), resultSetTypes[0], resultSetTypes[1])
+ : actualConnection.prepareStatement(singleE2EContext.getSQL(), resultSetTypes[0], resultSetTypes[1], resultSetTypes[2]);
+ PreparedStatement expectedPreparedStatement = 2 == resultSetTypes.length ? expectedConnection.prepareStatement(singleE2EContext.getSQL(), resultSetTypes[0], resultSetTypes[1])
+ : expectedConnection.prepareStatement(singleE2EContext.getSQL(), resultSetTypes[0], resultSetTypes[1], resultSetTypes[2])) {
+ for (SQLValue each : singleE2EContext.getAssertion().getSQLValues()) {
actualPreparedStatement.setObject(each.getIndex(), each.getValue());
expectedPreparedStatement.setObject(each.getIndex(), each.getValue());
}
diff --git a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dql/BaseDQLE2EIT.java b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dql/BaseDQLE2EIT.java
index c6addd239e0..a136d1dfdb2 100644
--- a/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dql/BaseDQLE2EIT.java
+++ b/test/e2e/sql/src/test/java/org/apache/shardingsphere/test/e2e/engine/type/dql/BaseDQLE2EIT.java
@@ -23,7 +23,8 @@ import org.apache.shardingsphere.infra.util.datetime.DateTimeFormatterFactory;
import org.apache.shardingsphere.test.e2e.cases.dataset.metadata.DataSetColumn;
import org.apache.shardingsphere.test.e2e.cases.dataset.metadata.DataSetMetaData;
import org.apache.shardingsphere.test.e2e.cases.dataset.row.DataSetRow;
-import org.apache.shardingsphere.test.e2e.engine.composer.SingleE2EContainerComposer;
+import org.apache.shardingsphere.test.e2e.engine.composer.E2EContainerComposer;
+import org.apache.shardingsphere.test.e2e.engine.context.SingleE2EContext;
import org.apache.shardingsphere.test.e2e.env.DataSetEnvironmentManager;
import org.apache.shardingsphere.test.e2e.env.runtime.scenario.path.ScenarioDataPath;
import org.apache.shardingsphere.test.e2e.env.runtime.scenario.path.ScenarioDataPath.Type;
@@ -63,18 +64,19 @@ public abstract class BaseDQLE2EIT {
private boolean useXMLAsExpectedDataset;
- protected final void init(final AssertionTestParameter testParam, final SingleE2EContainerComposer containerComposer) throws SQLException, IOException, JAXBException {
+ protected final void init(final AssertionTestParameter testParam, final E2EContainerComposer containerComposer,
+ final SingleE2EContext singleE2EContext) throws SQLException, IOException, JAXBException {
fillDataOnlyOnce(testParam, containerComposer);
- expectedDataSource = null == containerComposer.getAssertion().getExpectedDataSourceName() || 1 == containerComposer.getExpectedDataSourceMap().size()
+ expectedDataSource = null == singleE2EContext.getAssertion().getExpectedDataSourceName() || 1 == containerComposer.getExpectedDataSourceMap().size()
? getFirstExpectedDataSource(containerComposer.getExpectedDataSourceMap().values())
- : containerComposer.getExpectedDataSourceMap().get(containerComposer.getAssertion().getExpectedDataSourceName());
- useXMLAsExpectedDataset = null != containerComposer.getAssertion().getExpectedDataFile();
+ : containerComposer.getExpectedDataSourceMap().get(singleE2EContext.getAssertion().getExpectedDataSourceName());
+ useXMLAsExpectedDataset = null != singleE2EContext.getAssertion().getExpectedDataFile();
if (0 != testParam.getTestCaseContext().getTestCase().getDelayAssertionSeconds()) {
Awaitility.await().atMost(Duration.ofMinutes(5L)).pollDelay(testParam.getTestCaseContext().getTestCase().getDelayAssertionSeconds(), TimeUnit.SECONDS).until(() -> true);
}
}
- private void fillDataOnlyOnce(final AssertionTestParameter testParam, final SingleE2EContainerComposer containerComposer) throws IOException, JAXBException {
+ private void fillDataOnlyOnce(final AssertionTestParameter testParam, final E2EContainerComposer containerComposer) throws IOException, JAXBException {
String cacheKey = testParam.getKey() + "-" + System.identityHashCode(containerComposer.getActualDataSourceMap());
if (!FILLED_SUITES.contains(cacheKey)) {
synchronized (FILLED_SUITES) {
@@ -98,22 +100,22 @@ public abstract class BaseDQLE2EIT {
assertRows(actualResultSet, expectedResultSet);
}
- protected final void assertResultSet(final SingleE2EContainerComposer containerComposer, final ResultSet resultSet) throws SQLException {
- assertMetaData(resultSet.getMetaData(), getExpectedColumns(containerComposer));
- assertRows(resultSet, getIgnoreAssertColumns(containerComposer), containerComposer.getDataSet().getRows());
+ protected final void assertResultSet(final SingleE2EContext singleE2EContext, final ResultSet resultSet) throws SQLException {
+ assertMetaData(resultSet.getMetaData(), getExpectedColumns(singleE2EContext));
+ assertRows(resultSet, getIgnoreAssertColumns(singleE2EContext), singleE2EContext.getDataSet().getRows());
}
- private Collection<DataSetColumn> getExpectedColumns(final SingleE2EContainerComposer containerComposer) {
+ private Collection<DataSetColumn> getExpectedColumns(final SingleE2EContext singleE2EContext) {
Collection<DataSetColumn> result = new LinkedList<>();
- for (DataSetMetaData each : containerComposer.getDataSet().getMetaDataList()) {
+ for (DataSetMetaData each : singleE2EContext.getDataSet().getMetaDataList()) {
result.addAll(each.getColumns());
}
return result;
}
- private Collection<String> getIgnoreAssertColumns(final SingleE2EContainerComposer containerComposer) {
+ private Collection<String> getIgnoreAssertColumns(final SingleE2EContext singleE2EContext) {
Collection<String> result = new LinkedList<>();
- for (DataSetMetaData each : containerComposer.getDataSet().getMetaDataList()) {
+ for (DataSetMetaData each : singleE2EContext.getDataSet().getMetaDataList()) {
result.addAll(each.getColumns().stream().filter(DataSetColumn::isIgnoreAssertData).map(DataSetColumn::getName).collect(Collectors.toList()));
}
return result;
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 6e09226755d..576bcc71212 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
@@ -17,12 +17,15 @@
package org.apache.shardingsphere.test.e2e.engine.type.dql;
+import org.apache.shardingsphere.test.e2e.engine.context.SingleE2EContext;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterMode;
+import org.apache.shardingsphere.test.e2e.env.container.atomic.enums.AdapterType;
import org.apache.shardingsphere.test.e2e.framework.type.SQLCommandType;
import org.apache.shardingsphere.test.e2e.framework.type.SQLExecuteType;
import org.apache.shardingsphere.test.e2e.cases.value.SQLValue;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseArgumentsProvider;
import org.apache.shardingsphere.test.e2e.engine.arg.E2ETestCaseSettings;
-import org.apache.shardingsphere.test.e2e.engine.composer.SingleE2EContainerComposer;
+import org.apache.shardingsphere.test.e2e.engine.composer.E2EContainerComposer;
import org.apache.shardingsphere.test.e2e.framework.param.array.E2ETestParameterFactory;
import org.apache.shardingsphere.test.e2e.framework.param.model.AssertionTestParameter;
import org.junit.jupiter.api.condition.EnabledIf;
@@ -50,20 +53,23 @@ class GeneralDQLE2EIT extends BaseDQLE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
- init(testParam, containerComposer);
- assertExecuteQuery(testParam, containerComposer);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
+ init(testParam, containerComposer, singleE2EContext);
+ assertExecuteQuery(testParam, containerComposer, singleE2EContext);
}
- private void assertExecuteQuery(final AssertionTestParameter testParam, final SingleE2EContainerComposer containerComposer) throws SQLException {
+ private void assertExecuteQuery(final AssertionTestParameter testParam, final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext) throws SQLException {
if (isUseXMLAsExpectedDataset()) {
- assertExecuteQueryWithXmlExpected(testParam, containerComposer);
+ assertExecuteQueryWithXmlExpected(testParam, containerComposer, singleE2EContext);
} else {
- assertExecuteQueryWithExpectedDataSource(testParam, containerComposer);
+ assertExecuteQueryWithExpectedDataSource(testParam, containerComposer, singleE2EContext);
}
}
- private void assertExecuteQueryWithXmlExpected(final AssertionTestParameter testParam, final SingleE2EContainerComposer containerComposer) throws SQLException {
+ private void assertExecuteQueryWithXmlExpected(final AssertionTestParameter testParam, final E2EContainerComposer containerComposer,
+ final SingleE2EContext singleE2EContext) throws SQLException {
// TODO Fix jdbc adapter and empty_storage_units proxy adapter
if ("jdbc".equals(testParam.getAdapter()) && !"empty_storage_units".equalsIgnoreCase(testParam.getScenario())
|| "proxy".equals(testParam.getAdapter()) && "empty_storage_units".equalsIgnoreCase(testParam.getScenario())) {
@@ -72,40 +78,41 @@ class GeneralDQLE2EIT extends BaseDQLE2EIT {
try (
Connection connection = containerComposer.getTargetDataSource().getConnection();
Statement statement = connection.createStatement();
- ResultSet resultSet = statement.executeQuery(containerComposer.getSQL())) {
- assertResultSet(containerComposer, resultSet);
+ ResultSet resultSet = statement.executeQuery(singleE2EContext.getSQL())) {
+ assertResultSet(singleE2EContext, resultSet);
}
}
- private void assertExecuteQueryWithExpectedDataSource(final AssertionTestParameter testParam, final SingleE2EContainerComposer containerComposer) throws SQLException {
+ private void assertExecuteQueryWithExpectedDataSource(final AssertionTestParameter testParam, final E2EContainerComposer containerComposer,
+ final SingleE2EContext singleE2EContext) throws SQLException {
try (
Connection actualConnection = containerComposer.getTargetDataSource().getConnection();
Connection expectedConnection = getExpectedDataSource().getConnection()) {
- if (SQLExecuteType.Literal == containerComposer.getSqlExecuteType()) {
- assertExecuteQueryForStatement(containerComposer, actualConnection, expectedConnection, testParam);
+ if (SQLExecuteType.Literal == singleE2EContext.getSqlExecuteType()) {
+ assertExecuteQueryForStatement(singleE2EContext, actualConnection, expectedConnection, testParam);
} else {
- assertExecuteQueryForPreparedStatement(containerComposer, actualConnection, expectedConnection, testParam);
+ assertExecuteQueryForPreparedStatement(singleE2EContext, actualConnection, expectedConnection, testParam);
}
}
}
- private void assertExecuteQueryForStatement(final SingleE2EContainerComposer containerComposer, final Connection actualConnection, final Connection expectedConnection,
+ private void assertExecuteQueryForStatement(final SingleE2EContext singleE2EContext, final Connection actualConnection, final Connection expectedConnection,
final AssertionTestParameter testParam) throws SQLException {
try (
Statement actualStatement = actualConnection.createStatement();
- ResultSet actualResultSet = actualStatement.executeQuery(containerComposer.getSQL());
+ ResultSet actualResultSet = actualStatement.executeQuery(singleE2EContext.getSQL());
Statement expectedStatement = expectedConnection.createStatement();
- ResultSet expectedResultSet = expectedStatement.executeQuery(containerComposer.getSQL())) {
+ ResultSet expectedResultSet = expectedStatement.executeQuery(singleE2EContext.getSQL())) {
assertResultSet(actualResultSet, expectedResultSet, testParam);
}
}
- private void assertExecuteQueryForPreparedStatement(final SingleE2EContainerComposer containerComposer, final Connection actualConnection, final Connection expectedConnection,
+ private void assertExecuteQueryForPreparedStatement(final SingleE2EContext singleE2EContext, final Connection actualConnection, final Connection expectedConnection,
final AssertionTestParameter testParam) throws SQLException {
try (
- PreparedStatement actualPreparedStatement = actualConnection.prepareStatement(containerComposer.getSQL());
- PreparedStatement expectedPreparedStatement = expectedConnection.prepareStatement(containerComposer.getSQL())) {
- for (SQLValue each : containerComposer.getAssertion().getSQLValues()) {
+ PreparedStatement actualPreparedStatement = actualConnection.prepareStatement(singleE2EContext.getSQL());
+ PreparedStatement expectedPreparedStatement = expectedConnection.prepareStatement(singleE2EContext.getSQL())) {
+ for (SQLValue each : singleE2EContext.getAssertion().getSQLValues()) {
actualPreparedStatement.setObject(each.getIndex(), each.getValue());
expectedPreparedStatement.setObject(each.getIndex(), each.getValue());
}
@@ -125,20 +132,22 @@ class GeneralDQLE2EIT extends BaseDQLE2EIT {
if (null == testParam.getTestCaseContext()) {
return;
}
- SingleE2EContainerComposer containerComposer = new SingleE2EContainerComposer(testParam);
- init(testParam, containerComposer);
- assertExecute(testParam, containerComposer);
+ E2EContainerComposer containerComposer = new E2EContainerComposer(testParam.getKey(), testParam.getScenario(), testParam.getDatabaseType(),
+ AdapterMode.valueOf(testParam.getMode().toUpperCase()), AdapterType.valueOf(testParam.getAdapter().toUpperCase()));
+ SingleE2EContext singleE2EContext = new SingleE2EContext(testParam);
+ init(testParam, containerComposer, singleE2EContext);
+ assertExecute(testParam, containerComposer, singleE2EContext);
}
- private void assertExecute(final AssertionTestParameter testParam, final SingleE2EContainerComposer containerComposer) throws SQLException {
+ private void assertExecute(final AssertionTestParameter testParam, final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext) throws SQLException {
if (isUseXMLAsExpectedDataset()) {
- assertExecuteWithXmlExpected(testParam, containerComposer);
+ assertExecuteWithXmlExpected(testParam, containerComposer, singleE2EContext);
} else {
- assertExecuteWithExpectedDataSource(testParam, containerComposer);
+ assertExecuteWithExpectedDataSource(testParam, containerComposer, singleE2EContext);
}
}
- private void assertExecuteWithXmlExpected(final AssertionTestParameter testParam, final SingleE2EContainerComposer containerComposer) throws SQLException {
+ private void assertExecuteWithXmlExpected(final AssertionTestParameter testParam, final E2EContainerComposer containerComposer, final SingleE2EContext singleE2EContext) throws SQLException {
// TODO Fix jdbc adapter
if ("jdbc".equals(testParam.getAdapter())) {
return;
@@ -146,30 +155,31 @@ class GeneralDQLE2EIT extends BaseDQLE2EIT {
try (
Connection connection = containerComposer.getTargetDataSource().getConnection();
Statement statement = connection.createStatement()) {
- assertTrue(statement.execute(containerComposer.getSQL()), "Not a query statement.");
+ assertTrue(statement.execute(singleE2EContext.getSQL()), "Not a query statement.");
ResultSet resultSet = statement.getResultSet();
- assertResultSet(containerComposer, resultSet);
+ assertResultSet(singleE2EContext, resultSet);
}
}
- private void assertExecuteWithExpectedDataSource(final AssertionTestParameter testParam, final SingleE2EContainerComposer containerComposer) throws SQLException {
+ private void assertExecuteWithExpectedDataSource(final AssertionTestParameter testParam, final E2EContainerComposer containerComposer,
+ final SingleE2EContext singleE2EContext) throws SQLException {
try (
Connection actualConnection = containerComposer.getTargetDataSource().getConnection();
Connection expectedConnection = getExpectedDataSource().getConnection()) {
- if (SQLExecuteType.Literal == containerComposer.getSqlExecuteType()) {
- assertExecuteForStatement(containerComposer, actualConnection, expectedConnection, testParam);
+ if (SQLExecuteType.Literal == singleE2EContext.getSqlExecuteType()) {
+ assertExecuteForStatement(singleE2EContext, actualConnection, expectedConnection, testParam);
} else {
- assertExecuteForPreparedStatement(containerComposer, actualConnection, expectedConnection, testParam);
+ assertExecuteForPreparedStatement(singleE2EContext, actualConnection, expectedConnection, testParam);
}
}
}
- private void assertExecuteForStatement(final SingleE2EContainerComposer containerComposer, final Connection actualConnection, final Connection expectedConnection,
+ private void assertExecuteForStatement(final SingleE2EContext singleE2EContext, final Connection actualConnection, final Connection expectedConnection,
final AssertionTestParameter testParam) throws SQLException {
try (
Statement actualStatement = actualConnection.createStatement();
Statement expectedStatement = expectedConnection.createStatement()) {
- assertTrue(actualStatement.execute(containerComposer.getSQL()) && expectedStatement.execute(containerComposer.getSQL()), "Not a query statement.");
+ assertTrue(actualStatement.execute(singleE2EContext.getSQL()) && expectedStatement.execute(singleE2EContext.getSQL()), "Not a query statement.");
try (
ResultSet actualResultSet = actualStatement.getResultSet();
ResultSet expectedResultSet = expectedStatement.getResultSet()) {
@@ -178,12 +188,12 @@ class GeneralDQLE2EIT extends BaseDQLE2EIT {
}
}
- private void assertExecuteForPreparedStatement(final SingleE2EContainerComposer containerComposer, final Connection actualConnection, final Connection expectedConnection,
+ private void assertExecuteForPreparedStatement(final SingleE2EContext singleE2EContext, final Connection actualConnection, final Connection expectedConnection,
final AssertionTestParameter testParam) throws SQLException {
try (
- PreparedStatement actualPreparedStatement = actualConnection.prepareStatement(containerComposer.getSQL());
- PreparedStatement expectedPreparedStatement = expectedConnection.prepareStatement(containerComposer.getSQL())) {
- for (SQLValue each : containerComposer.getAssertion().getSQLValues()) {
+ PreparedStatement actualPreparedStatement = actualConnection.prepareStatement(singleE2EContext.getSQL());
+ PreparedStatement expectedPreparedStatement = expectedConnection.prepareStatement(singleE2EContext.getSQL())) {
+ for (SQLValue each : singleE2EContext.getAssertion().getSQLValues()) {
actualPreparedStatement.setObject(each.getIndex(), each.getValue());
expectedPreparedStatement.setObject(each.getIndex(), each.getValue());
}