This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git

commit 9ff8cce6ccd1267492ad08bac64e36e8a8a26608
Author: Andrus Adamchik <[email protected]>
AuthorDate: Fri May 15 19:14:07 2026 -0400

    tests cleanup
    
    further unwinding weird tests injection
---
 .../org/apache/cayenne/dbsync/merge/MergeCase.java |  6 +-
 .../merge/token/db/SetGeneratedFlagToDbIT.java     | 12 ++--
 .../dbsync/reverse/dbload/BaseLoaderIT.java        |  6 +-
 .../org/apache/cayenne/CDOQualifiedEntitiesIT.java | 31 ++++----
 .../org/apache/cayenne/CircularDependencyIT.java   |  4 +-
 .../cayenne/access/DataContextBinaryPKIT.java      |  4 +-
 .../apache/cayenne/access/DataContextBlobIT.java   |  4 +-
 .../cayenne/access/DataContextCharTypeIT.java      |  2 +-
 .../apache/cayenne/access/DataContextClobIT.java   |  4 +-
 .../cayenne/access/DataContextCrossDBIT.java       |  2 +-
 ...ontextEJBQLDateTimeFunctionalExpressionsIT.java |  2 +-
 .../DataContextEJBQLFunctionalExpressionsIT.java   |  2 +-
 .../cayenne/access/DataContextEJBQLIsNullIT.java   |  6 +-
 .../access/DataContextEJBQLQueryCompoundIT.java    |  6 +-
 .../cayenne/access/DataContextEJBQLQueryIT.java    |  6 +-
 .../cayenne/access/DataContextEJBQLSubqueryIT.java |  6 +-
 .../org/apache/cayenne/access/DataContextIT.java   |  6 +-
 .../access/DataContextPerformQueryAPIIT.java       |  6 +-
 .../access/DataContextProcedureQueryIT.java        | 24 +++----
 .../org/apache/cayenne/access/MiscTypesIT.java     |  2 +-
 .../cayenne/access/ReturnTypesMappingIT.java       | 40 +++++------
 .../cayenne/access/jdbc/SQLTemplateActionIT.java   |  8 +--
 .../apache/cayenne/access/jdbc/SelectActionIT.java |  4 +-
 .../translator/batch/DeleteBatchTranslatorIT.java  |  6 +-
 .../translator/batch/InsertBatchTranslatorIT.java  |  6 +-
 .../batch/SoftDeleteBatchTranslatorIT.java         |  6 +-
 .../translator/batch/UpdateBatchTranslatorIT.java  |  6 +-
 .../select/DefaultSelectTranslatorIT.java          | 16 ++---
 .../cayenne/access/types/DateTimeTypesIT.java      | 14 ++--
 .../cayenne/dba/ConcurrentPkGeneratorIT.java       | 12 ++--
 .../java/org/apache/cayenne/dba/PkGeneratorIT.java |  6 +-
 .../cayenne/dba/sqlserver/SQLServerSnifferIT.java  |  4 +-
 .../apache/cayenne/exp/ExpressionFactoryIT.java    |  4 +-
 .../java/org/apache/cayenne/exp/ExpressionIT.java  |  6 +-
 .../apache/cayenne/exp/parser/ASTExtractIT.java    | 28 ++++----
 .../cayenne/exp/parser/ASTFunctionCallDateIT.java  | 10 +--
 .../exp/parser/ASTFunctionCallStringIT.java        |  6 +-
 .../org/apache/cayenne/query/ColumnSelectIT.java   | 24 +++----
 .../org/apache/cayenne/query/MappedQueryIT.java    |  4 +-
 .../cayenne/query/ObjectSelect_AggregateIT.java    |  6 +-
 .../query/ObjectSelect_PrimitiveColumnsIT.java     | 10 +--
 .../apache/cayenne/query/ObjectSelect_RunIT.java   | 10 +--
 .../org/apache/cayenne/query/ProcedureCallIT.java  | 20 +++---
 .../java/org/apache/cayenne/query/SQLExecIT.java   |  4 +-
 .../org/apache/cayenne/query/SQLTemplateIT.java    | 14 ++--
 .../apache/cayenne/query/SelectQueryClobIT.java    | 10 +--
 .../cayenne/query/SelectQueryReturnTypesIT.java    |  8 +--
 .../apache/cayenne/tx/TransactionIsolationIT.java  |  8 +--
 .../tx/TransactionPropagationRollbackIT.java       |  6 +-
 .../org/apache/cayenne/unit/CayenneTestsEnv.java   | 42 ++++++-----
 ...DB2UnitDbAdapter.java => DB2TestDbAdapter.java} | 12 ++--
 ...yUnitDbAdapter.java => DerbyTestDbAdapter.java} |  7 +-
 ...itDbAdapter.java => FirebirdTestDbAdapter.java} |  4 +-
 ...tDbAdapter.java => FrontBaseTestDbAdapter.java} | 21 ++----
 .../{H2UnitDbAdapter.java => H2TestDbAdapter.java} |  4 +-
 ...UnitDbAdapter.java => HSQLDBTestDbAdapter.java} |  9 +--
 ...UnitDbAdapter.java => IngresTestDbAdapter.java} | 12 +---
 ...LUnitDbAdapter.java => MySQLTestDbAdapter.java} |  6 +-
 .../cayenne/unit/dba/OpenBaseUnitDbAdapter.java    | 58 ---------------
 ...UnitDbAdapter.java => OracleTestDbAdapter.java} | 11 +--
 ...itDbAdapter.java => PostgresTestDbAdapter.java} |  4 +-
 ...tDbAdapter.java => SQLServerTestDbAdapter.java} |  6 +-
 ...UnitDbAdapter.java => SQLiteTestDbAdapter.java} |  4 +-
 ...UnitDbAdapter.java => SybaseTestDbAdapter.java} | 20 +++---
 .../dba/{UnitDbAdapter.java => TestDbAdapter.java} | 66 ++++++++---------
 .../org/apache/cayenne/unit/jira/CAY_115IT.java    |  6 +-
 .../unit/runtime/AllTestsSchemaManager.java        | 28 ++++----
 .../cayenne/unit/runtime/RuntimeCaseModule.java    |  8 ---
 .../unit/runtime/UnitDbAdapterProvider.java        | 83 ----------------------
 .../org/apache/cayenne/value/json/JsonTypeIT.java  |  2 +-
 70 files changed, 331 insertions(+), 529 deletions(-)

diff --git 
a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/MergeCase.java 
b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/MergeCase.java
index 349ec4443..d835e481a 100644
--- 
a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/MergeCase.java
+++ 
b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/MergeCase.java
@@ -43,7 +43,7 @@ import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.EntityResolver;
 import org.apache.cayenne.runtime.CayenneRuntime;
 import org.apache.cayenne.unit.CayenneTestsEnv;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.extension.RegisterExtension;
@@ -75,14 +75,14 @@ public abstract class MergeCase {
     protected DataNode node;
     protected DataMap map;
     private CayenneRuntime runtime;
-    protected UnitDbAdapter accessStackAdapter;
+    protected TestDbAdapter accessStackAdapter;
 
     @BeforeEach
     public void setUp() throws Exception {
         resolver = env.entityResolver();
         node = env.dataNode();
         runtime = env.runtime();
-        accessStackAdapter = env.unitDbAdapter();
+        accessStackAdapter = env.testDbAdapter();
 
         // break circular FK before DBCleaner.clean()
         env.dbHelper().update("ARTGROUP").set("PARENT_GROUP_ID", null, 
Types.INTEGER).execute();
diff --git 
a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/token/db/SetGeneratedFlagToDbIT.java
 
b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/token/db/SetGeneratedFlagToDbIT.java
index 68eac58e3..0443f59da 100644
--- 
a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/token/db/SetGeneratedFlagToDbIT.java
+++ 
b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/merge/token/db/SetGeneratedFlagToDbIT.java
@@ -27,7 +27,7 @@ import org.apache.cayenne.dbsync.merge.MergeCase;
 import org.apache.cayenne.dbsync.merge.token.MergerToken;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -54,17 +54,17 @@ import static org.junit.jupiter.api.Assertions.fail;
  * (here is actually two variants as some DB can only drop whereas some can 
only add generated attribute)
  *
  * @see DbAdapter#supportsGeneratedKeys()
- * @see UnitDbAdapter#supportsGeneratedKeys()
- * @see UnitDbAdapter#supportsGeneratedKeysAdd()
- * @see UnitDbAdapter#supportsGeneratedKeysDrop()
+ * @see TestDbAdapter#supportsGeneratedKeys()
+ * @see TestDbAdapter#supportsGeneratedKeysAdd()
+ * @see TestDbAdapter#supportsGeneratedKeysDrop()
  */
 public class SetGeneratedFlagToDbIT extends MergeCase {
 
-    UnitDbAdapter dbAdapter;
+    TestDbAdapter dbAdapter;
 
     @BeforeEach
     public void setUpDbAdapter() {
-        dbAdapter = env.unitDbAdapter();
+        dbAdapter = env.testDbAdapter();
     }
 
     @Test
diff --git 
a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/BaseLoaderIT.java
 
b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/BaseLoaderIT.java
index 0cc98a2f5..12401bbd9 100644
--- 
a/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/BaseLoaderIT.java
+++ 
b/cayenne-dbsync/src/test/java/org/apache/cayenne/dbsync/reverse/dbload/BaseLoaderIT.java
@@ -24,7 +24,7 @@ import org.apache.cayenne.dbsync.model.DetectedDbEntity;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.runtime.CayenneRuntime;
 import org.apache.cayenne.unit.CayenneTestsEnv;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
@@ -43,7 +43,7 @@ public class BaseLoaderIT {
 
     protected DbAdapter adapter;
     protected CayenneRuntime runtime;
-    protected UnitDbAdapter accessStackAdapter;
+    protected TestDbAdapter accessStackAdapter;
 
     Connection connection;
 
@@ -53,7 +53,7 @@ public class BaseLoaderIT {
     public void before() throws Exception {
         adapter = env.dataNode().getAdapter();
         runtime = env.runtime();
-        accessStackAdapter = env.unitDbAdapter();
+        accessStackAdapter = env.testDbAdapter();
         store = new DbLoadDataStore();
         assertTrue(store.getDbEntities().isEmpty(), "Store is not empty");
         this.connection = 
CayenneTestsEnv.DATA_SOURCES.sharedDataSource().getConnection();
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/CDOQualifiedEntitiesIT.java 
b/cayenne/src/test/java/org/apache/cayenne/CDOQualifiedEntitiesIT.java
index 253663ee5..2cb3946b2 100644
--- a/cayenne/src/test/java/org/apache/cayenne/CDOQualifiedEntitiesIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/CDOQualifiedEntitiesIT.java
@@ -27,7 +27,7 @@ import org.apache.cayenne.testdo.qualified.Qualified1;
 import org.apache.cayenne.testdo.qualified.Qualified2;
 import org.apache.cayenne.testdo.qualified.Qualified3;
 import org.apache.cayenne.testdo.qualified.Qualified4;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.extension.RegisterExtension;
@@ -45,8 +45,7 @@ public class CDOQualifiedEntitiesIT {
     @RegisterExtension
     static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.QUALIFIED_PROJECT);
 
-    private UnitDbAdapter accessStackAdapter;
-
+    private TestDbAdapter testDbAdapter;
     private TableHelper tQualified1;
     private TableHelper tQualified2;
     private TableHelper tQualified3;
@@ -54,8 +53,8 @@ public class CDOQualifiedEntitiesIT {
 
     @BeforeEach
     public void setUp() throws Exception {
-        accessStackAdapter = env.unitDbAdapter();
-        int bool = accessStackAdapter.supportsBoolean() ? Types.BOOLEAN : 
Types.INTEGER;
+        testDbAdapter = env.testDbAdapter();
+        int bool = testDbAdapter.supportsBoolean() ? Types.BOOLEAN : 
Types.INTEGER;
 
         tQualified1 = env.table("TEST_QUALIFIED1")
                 .setColumns("ID", "NAME", "DELETED")
@@ -77,26 +76,26 @@ public class CDOQualifiedEntitiesIT {
     private void createReadToManyDataSet() throws Exception {
         
         tQualified1.insert(1, "OX1", null);
-        tQualified1.insert(2, "OX2", accessStackAdapter.supportsBoolean() ? 
true : 1);
+        tQualified1.insert(2, "OX2", testDbAdapter.supportsBoolean() ? true : 
1);
 
         tQualified2.insert(1, "OY1", null, 1);
-        tQualified2.insert(2, "OY2", accessStackAdapter.supportsBoolean() ? 
true : 1, 1);
+        tQualified2.insert(2, "OY2", testDbAdapter.supportsBoolean() ? true : 
1, 1);
         tQualified2.insert(3, "OY3", null, 2);
-        tQualified2.insert(4, "OY4", accessStackAdapter.supportsBoolean() ? 
true : 1, 2);
+        tQualified2.insert(4, "OY4", testDbAdapter.supportsBoolean() ? true : 
1, 2);
     }
 
     private void createReadToOneDataSet() throws Exception {
         tQualified1.insert(1, "OX1", null);
-        tQualified1.insert(2, "OX2", accessStackAdapter.supportsBoolean() ? 
true : 1);
+        tQualified1.insert(2, "OX2", testDbAdapter.supportsBoolean() ? true : 
1);
 
         tQualified2.insert(1, "OY1", null, 2);
     }
 
     private void createJoinDataSet() throws Exception {
         tQualified3.insert(1, "O1", null);
-        tQualified3.insert(2, "O2", accessStackAdapter.supportsBoolean() ? 
true : 1);
+        tQualified3.insert(2, "O2", testDbAdapter.supportsBoolean() ? true : 
1);
         tQualified3.insert(3, "11", null);
-        tQualified3.insert(4, "12", accessStackAdapter.supportsBoolean() ? 
true : 1);
+        tQualified3.insert(4, "12", testDbAdapter.supportsBoolean() ? true : 
1);
 
         tQualified4.insert(1, "SHOULD_SELECT", null, 1);
         tQualified4.insert(2, "SHOULD_NOT_SELECT", null, 2);
@@ -106,7 +105,7 @@ public class CDOQualifiedEntitiesIT {
 
     @Test
     public void readToMany() throws Exception {
-        if (accessStackAdapter.supportsNullBoolean()) {
+        if (testDbAdapter.supportsNullBoolean()) {
 
             createReadToManyDataSet();
 
@@ -128,7 +127,7 @@ public class CDOQualifiedEntitiesIT {
 
     @Test
     public void jointPrefetchToMany() throws Exception {
-        if (accessStackAdapter.supportsNullBoolean()) {
+        if (testDbAdapter.supportsNullBoolean()) {
 
             createReadToManyDataSet();
 
@@ -152,7 +151,7 @@ public class CDOQualifiedEntitiesIT {
 
     @Test
     public void disjointPrefetchToMany() throws Exception {
-        if (accessStackAdapter.supportsNullBoolean()) {
+        if (testDbAdapter.supportsNullBoolean()) {
 
             createReadToManyDataSet();
 
@@ -176,7 +175,7 @@ public class CDOQualifiedEntitiesIT {
 
     @Test
     public void disjointByIdPrefetchToMany() throws Exception {
-        if (accessStackAdapter.supportsNullBoolean()) {
+        if (testDbAdapter.supportsNullBoolean()) {
 
             createReadToManyDataSet();
 
@@ -200,7 +199,7 @@ public class CDOQualifiedEntitiesIT {
 
     @Test
     public void readToOne() throws Exception {
-        if (accessStackAdapter.supportsNullBoolean()) {
+        if (testDbAdapter.supportsNullBoolean()) {
 
             createReadToOneDataSet();
 
diff --git a/cayenne/src/test/java/org/apache/cayenne/CircularDependencyIT.java 
b/cayenne/src/test/java/org/apache/cayenne/CircularDependencyIT.java
index d37fa34ad..7cb53d453 100644
--- a/cayenne/src/test/java/org/apache/cayenne/CircularDependencyIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/CircularDependencyIT.java
@@ -23,7 +23,7 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.relationships.E1;
 import org.apache.cayenne.testdo.relationships.E2;
 import org.apache.cayenne.testdo.relationships.ReflexiveAndToOne;
-import org.apache.cayenne.unit.dba.OracleUnitDbAdapter;
+import org.apache.cayenne.unit.dba.OracleTestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.extension.RegisterExtension;
@@ -70,7 +70,7 @@ public class CircularDependencyIT {
 
         CayenneRuntimeException ex = 
assertThrows(CayenneRuntimeException.class, () -> 
env.context().commitChanges());
         // TODO: Oracle adapter still does not fully support key generation.
-        if (env.unitDbAdapter() instanceof OracleUnitDbAdapter) {
+        if (env.testDbAdapter() instanceof OracleTestDbAdapter) {
             assertTrue(ex.getCause().getMessage().contains("parent key not 
found"));
         } else {
             assertTrue(ex.getMessage().contains("PK is not generated"),
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextBinaryPKIT.java 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextBinaryPKIT.java
index abe79cc8d..2bdbab7e6 100644
--- a/cayenne/src/test/java/org/apache/cayenne/access/DataContextBinaryPKIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/access/DataContextBinaryPKIT.java
@@ -38,7 +38,7 @@ public class DataContextBinaryPKIT {
 
     @Test
     public void insertBinaryPK() throws Exception {
-        if (!env.unitDbAdapter().supportsBinaryPK()) {
+        if (!env.testDbAdapter().supportsBinaryPK()) {
             return;
         }
 
@@ -56,7 +56,7 @@ public class DataContextBinaryPKIT {
 
     @Test
     public void fetchRelationshipBinaryPK() throws Exception {
-        if (!env.unitDbAdapter().supportsBinaryPK()) {
+        if (!env.testDbAdapter().supportsBinaryPK()) {
             return;
         }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextBlobIT.java 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextBlobIT.java
index fe31eb350..2a56ba19e 100644
--- a/cayenne/src/test/java/org/apache/cayenne/access/DataContextBlobIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/access/DataContextBlobIT.java
@@ -50,11 +50,11 @@ public class DataContextBlobIT {
     }
 
     protected boolean skipTests() {
-        return !env.unitDbAdapter().supportsLobs();
+        return !env.testDbAdapter().supportsLobs();
     }
 
     protected boolean skipEmptyLOBTests() {
-        return !env.unitDbAdapter().handlesNullVsEmptyLOBs();
+        return !env.testDbAdapter().handlesNullVsEmptyLOBs();
     }
 
     @Test
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextCharTypeIT.java 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextCharTypeIT.java
index 2c92006a8..946351539 100644
--- a/cayenne/src/test/java/org/apache/cayenne/access/DataContextCharTypeIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/access/DataContextCharTypeIT.java
@@ -36,7 +36,7 @@ public class DataContextCharTypeIT {
 
     @Test
     public void charTrimming() {
-        if (env.unitDbAdapter().supportsLobs()) {
+        if (env.testDbAdapter().supportsLobs()) {
             DataContext context = env.context();
             ReturnTypesMap1 map1 = context.newObject(ReturnTypesMap1.class);
             map1.setCharColumn("  text   ");
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextClobIT.java 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextClobIT.java
index e48bb626e..938e37595 100644
--- a/cayenne/src/test/java/org/apache/cayenne/access/DataContextClobIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/access/DataContextClobIT.java
@@ -49,11 +49,11 @@ public class DataContextClobIT {
     }
 
     private boolean skipTests() {
-        return !env.unitDbAdapter().supportsLobs();
+        return !env.testDbAdapter().supportsLobs();
     }
 
     private boolean skipEmptyLOBTests() {
-        return !env.unitDbAdapter().handlesNullVsEmptyLOBs();
+        return !env.testDbAdapter().handlesNullVsEmptyLOBs();
     }
 
     @Test
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextCrossDBIT.java 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextCrossDBIT.java
index 938768db9..ba5bfea49 100644
--- a/cayenne/src/test/java/org/apache/cayenne/access/DataContextCrossDBIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/access/DataContextCrossDBIT.java
@@ -34,7 +34,7 @@ public class DataContextCrossDBIT {
 
     @Test
     public void multiDBUpdate() {
-        if (!env.unitDbAdapter().supportsPKGeneratorConcurrency()) {
+        if (!env.testDbAdapter().supportsPKGeneratorConcurrency()) {
             return;
         }
         // for now testing that no exceptions are thrown... wouldn't hurt to 
check the
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLDateTimeFunctionalExpressionsIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLDateTimeFunctionalExpressionsIT.java
index 00c6809af..7115f9433 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLDateTimeFunctionalExpressionsIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLDateTimeFunctionalExpressionsIT.java
@@ -81,7 +81,7 @@ public class DataContextEJBQLDateTimeFunctionalExpressionsIT {
         EJBQLQuery query = new EJBQLQuery(
                 "SELECT d FROM DateTestEntity d WHERE d.timeColumn < 
CURRENT_TIME");
         List<?> objects = env.context().performQuery(query);
-        if(!env.unitDbAdapter().supportsTimeSqlType()) {
+        if(!env.testDbAdapter().supportsTimeSqlType()) {
             // check only that query is executed without error
             // result will be invalid most likely as DB doesn't support TIME 
data type
             return;
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLFunctionalExpressionsIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLFunctionalExpressionsIT.java
index 96e13f9d3..cd0525c32 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLFunctionalExpressionsIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLFunctionalExpressionsIT.java
@@ -236,7 +236,7 @@ public class DataContextEJBQLFunctionalExpressionsIT {
     @Test
     public void tRIMChar() {
 
-        if (!env.unitDbAdapter().supportsTrimChar()) {
+        if (!env.testDbAdapter().supportsTrimChar()) {
             return;
         }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullIT.java 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullIT.java
index 8db4c340a..3eb0d1541 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLIsNullIT.java
@@ -22,7 +22,7 @@ import org.apache.cayenne.Cayenne;
 import org.apache.cayenne.Persistent;
 import org.apache.cayenne.query.EJBQLQuery;
 import org.apache.cayenne.test.jdbc.TableHelper;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -39,7 +39,7 @@ public class DataContextEJBQLIsNullIT {
     @RegisterExtension
     static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.TESTMAP_PROJECT);
 
-    private UnitDbAdapter accessStackAdapter;
+    private TestDbAdapter accessStackAdapter;
 
     protected TableHelper tArtist;
     protected TableHelper tPainting;
@@ -47,7 +47,7 @@ public class DataContextEJBQLIsNullIT {
     
     @BeforeEach
     public void setUp() throws Exception {
-        accessStackAdapter = env.unitDbAdapter();
+        accessStackAdapter = env.testDbAdapter();
         tArtist = env.table("ARTIST", "ARTIST_ID", "ARTIST_NAME");
 
         tPainting = env.table("PAINTING").setColumns(
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryCompoundIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryCompoundIT.java
index 49820b7dd..4651ad8ee 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryCompoundIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryCompoundIT.java
@@ -24,7 +24,7 @@ import org.apache.cayenne.query.EJBQLQuery;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.compound.CompoundFkTestEntity;
 import org.apache.cayenne.testdo.compound.CompoundPkTestEntity;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -42,7 +42,7 @@ public class DataContextEJBQLQueryCompoundIT {
        @RegisterExtension
        static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.COMPOUND_PROJECT);
 
-       private UnitDbAdapter accessStackAdapter;
+       private TestDbAdapter accessStackAdapter;
 
        private TableHelper tCompoundPk;
        private TableHelper tCompoundFk;
@@ -50,7 +50,7 @@ public class DataContextEJBQLQueryCompoundIT {
        
        @BeforeEach
        public void setUp() throws Exception {
-               accessStackAdapter = env.unitDbAdapter();
+               accessStackAdapter = env.testDbAdapter();
                tCompoundPk = env.table("COMPOUND_PK_TEST", "KEY1", "KEY2");
 
                tCompoundFk = env.table("COMPOUND_FK_TEST", "PKEY", "F_KEY1", 
"F_KEY2");
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java
index 8781c6ad4..683b238ac 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLQueryIT.java
@@ -26,7 +26,7 @@ import org.apache.cayenne.reflect.LifecycleCallbackRegistry;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -49,7 +49,7 @@ public class DataContextEJBQLQueryIT {
     @RegisterExtension
     static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.TESTMAP_PROJECT);
 
-    private UnitDbAdapter accessStackAdapter;
+    private TestDbAdapter accessStackAdapter;
 
     private TableHelper tArtist;
     private TableHelper tPainting;
@@ -57,7 +57,7 @@ public class DataContextEJBQLQueryIT {
     
     @BeforeEach
     public void setUp() throws Exception {
-        accessStackAdapter = env.unitDbAdapter();
+        accessStackAdapter = env.testDbAdapter();
         tArtist = env.table("ARTIST", "ARTIST_ID", "ARTIST_NAME");
 
         tPainting = env.table("PAINTING").setColumns(
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java
index 0f5698fec..8d60e0fa4 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextEJBQLSubqueryIT.java
@@ -23,7 +23,7 @@ import org.apache.cayenne.Persistent;
 import org.apache.cayenne.query.EJBQLQuery;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -43,7 +43,7 @@ public class DataContextEJBQLSubqueryIT {
     @RegisterExtension
     static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.TESTMAP_PROJECT);
 
-    private UnitDbAdapter accessStackAdapter;
+    private TestDbAdapter accessStackAdapter;
 
     private TableHelper tArtist;
     private TableHelper tPainting;
@@ -51,7 +51,7 @@ public class DataContextEJBQLSubqueryIT {
     
     @BeforeEach
     public void setUp() throws Exception {
-        accessStackAdapter = env.unitDbAdapter();
+        accessStackAdapter = env.testDbAdapter();
         tArtist = env.table("ARTIST", "ARTIST_ID", "ARTIST_NAME");
 
         tPainting = env.table("PAINTING").setColumns(
diff --git a/cayenne/src/test/java/org/apache/cayenne/access/DataContextIT.java 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextIT.java
index 52ae32361..42e0f2e10 100644
--- a/cayenne/src/test/java/org/apache/cayenne/access/DataContextIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/access/DataContextIT.java
@@ -41,7 +41,7 @@ import org.apache.cayenne.testdo.testmap.NullTestEntity;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.testdo.testmap.ROArtist;
 import org.apache.cayenne.unit.CayenneTestsEnv;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
@@ -65,7 +65,7 @@ public class DataContextIT {
        static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.TESTMAP_PROJECT);
 
        protected DataContext context;
-       protected UnitDbAdapter accessStackAdapter;
+       protected TestDbAdapter accessStackAdapter;
 
        protected TableHelper tArtist;
        protected TableHelper tExhibit;
@@ -75,7 +75,7 @@ public class DataContextIT {
        @BeforeEach
        public void setUp() throws Exception {
                context = env.context();
-               accessStackAdapter = env.unitDbAdapter();
+               accessStackAdapter = env.testDbAdapter();
                tArtist = env.table("ARTIST", "ARTIST_ID", "ARTIST_NAME");
 
                tExhibit = env.table("EXHIBIT", "EXHIBIT_ID", "GALLERY_ID", 
"OPENING_DATE", "CLOSING_DATE");
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPIIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPIIT.java
index 24354081c..0f7035ab2 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPIIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextPerformQueryAPIIT.java
@@ -28,7 +28,7 @@ import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.tx.BaseTransaction;
 import org.apache.cayenne.tx.ExternalTransaction;
 import org.apache.cayenne.tx.Transaction;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -52,7 +52,7 @@ public class DataContextPerformQueryAPIIT {
 
     private DataContext context;
     private DataContext context2;
-    private UnitDbAdapter accessStackAdapter;
+    private TestDbAdapter accessStackAdapter;
     private TableHelper tArtist;
     private TableHelper tPainting;
 
@@ -61,7 +61,7 @@ public class DataContextPerformQueryAPIIT {
     public void setUp() throws Exception {
         context = env.context();
         context2 = (DataContext) env.runtime().newContext();
-        accessStackAdapter = env.unitDbAdapter();
+        accessStackAdapter = env.testDbAdapter();
         tArtist = env.table("ARTIST", "ARTIST_ID", "ARTIST_NAME");
 
         tPainting = env.table("PAINTING").setColumns("PAINTING_ID", 
"ARTIST_ID", "PAINTING_TITLE", "ESTIMATED_PRICE").setColumnTypes(
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java
index 63ea8e331..5da45eec8 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextProcedureQueryIT.java
@@ -56,7 +56,7 @@ public class DataContextProcedureQueryIT  {
 
     @Test
     public void update() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
@@ -93,7 +93,7 @@ public class DataContextProcedureQueryIT  {
 
     @Test
     public void updateNoParam() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
@@ -129,7 +129,7 @@ public class DataContextProcedureQueryIT  {
 
     @Test
     public void select1() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
@@ -155,7 +155,7 @@ public class DataContextProcedureQueryIT  {
 
     @Test
     public void select2() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
@@ -182,7 +182,7 @@ public class DataContextProcedureQueryIT  {
 
     @Test
     public void select3() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
@@ -211,7 +211,7 @@ public class DataContextProcedureQueryIT  {
 
     @Test
     public void fetchLimit() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
@@ -231,7 +231,7 @@ public class DataContextProcedureQueryIT  {
 
     @Test
     public void fetchOffset() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
@@ -251,7 +251,7 @@ public class DataContextProcedureQueryIT  {
 
     @Test
     public void columnNameCapitalization() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
@@ -279,7 +279,7 @@ public class DataContextProcedureQueryIT  {
 
     @Test
     public void outParams() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
@@ -300,11 +300,11 @@ public class DataContextProcedureQueryIT  {
 
     @Test
     public void selectPersistentObject() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
-        if (!env.unitDbAdapter().canMakeObjectsOutOfProcedures()) {
+        if (!env.testDbAdapter().canMakeObjectsOutOfProcedures()) {
             return;
         }
 
@@ -330,7 +330,7 @@ public class DataContextProcedureQueryIT  {
     @Test
     public void selectWithRowDescriptor() throws Exception {
 
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
diff --git a/cayenne/src/test/java/org/apache/cayenne/access/MiscTypesIT.java 
b/cayenne/src/test/java/org/apache/cayenne/access/MiscTypesIT.java
index ec60c8bff..738f0e9d9 100644
--- a/cayenne/src/test/java/org/apache/cayenne/access/MiscTypesIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/access/MiscTypesIT.java
@@ -42,7 +42,7 @@ public class MiscTypesIT {
     public void serializable() throws Exception {
 
         // this test requires BLOB support
-        if(!env.unitDbAdapter().supportsLobs()) {
+        if(!env.testDbAdapter().supportsLobs()) {
             return;
         }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java 
b/cayenne/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java
index 82e0d3443..be4b3bfdf 100644
--- a/cayenne/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/access/ReturnTypesMappingIT.java
@@ -30,7 +30,7 @@ import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.testdo.return_types.ReturnTypesMap1;
 import org.apache.cayenne.testdo.return_types.ReturnTypesMap2;
 import org.apache.cayenne.testdo.return_types.ReturnTypesMapLobs1;
-import org.apache.cayenne.unit.dba.PostgresUnitDbAdapter;
+import org.apache.cayenne.unit.dba.PostgresTestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.extension.RegisterExtension;
@@ -65,7 +65,7 @@ public class ReturnTypesMappingIT {
         DataRow testRead = (DataRow) 
env.context().performQuery(MappedSelect.query("SelectReturnTypesMap1")).get(0);
         Object columnValue = testRead.get(columnName);
         assertNotNull(columnValue);
-        if(env.unitDbAdapter().onlyGenericNumberType()) {
+        if(env.testDbAdapter().onlyGenericNumberType()) {
             assertEquals(BigDecimal.class, columnValue.getClass());
             assertEquals(BigDecimal.valueOf(bigintValue), columnValue);
         } else {
@@ -93,7 +93,7 @@ public class ReturnTypesMappingIT {
 
     @Test
     public void binary() throws Exception {
-        if (env.unitDbAdapter().supportsLobs()) {
+        if (env.testDbAdapter().supportsLobs()) {
             String columnName = "BINARY_COLUMN";
             ReturnTypesMap2 test = 
env.context().newObject(ReturnTypesMap2.class);
 
@@ -113,7 +113,7 @@ public class ReturnTypesMappingIT {
 
     @Test
     public void binary2() throws Exception {
-        if (env.unitDbAdapter().supportsLobs()) {
+        if (env.testDbAdapter().supportsLobs()) {
             ReturnTypesMap2 test = 
env.context().newObject(ReturnTypesMap2.class);
 
             byte[] binaryValue = {
@@ -169,10 +169,10 @@ public class ReturnTypesMappingIT {
 
     @Test
     public void blob() throws Exception {
-        assumeTrue(!(env.unitDbAdapter() instanceof PostgresUnitDbAdapter),
+        assumeTrue(!(env.testDbAdapter() instanceof PostgresTestDbAdapter),
                 "In postresql blob_column has OID type, but in JAVA it 
converts into long not into byte.");
 
-        if (env.unitDbAdapter().supportsLobs()) {
+        if (env.testDbAdapter().supportsLobs()) {
             String columnName = "BLOB_COLUMN";
             ReturnTypesMap2 test = 
env.context().newObject(ReturnTypesMap2.class);
 
@@ -192,7 +192,7 @@ public class ReturnTypesMappingIT {
 
     @Test
     public void blob2() throws Exception {
-        if (env.unitDbAdapter().supportsLobs()) {
+        if (env.testDbAdapter().supportsLobs()) {
             ReturnTypesMap2 test = 
env.context().newObject(ReturnTypesMap2.class);
 
             byte[] blobValue = {
@@ -298,7 +298,7 @@ public class ReturnTypesMappingIT {
 
     @Test
     public void clob() throws Exception {
-        if (env.unitDbAdapter().supportsLobs()) {
+        if (env.testDbAdapter().supportsLobs()) {
             String columnName = "CLOB_COLUMN";
             ReturnTypesMapLobs1 test = 
env.context().newObject(ReturnTypesMapLobs1.class);
 
@@ -323,7 +323,7 @@ public class ReturnTypesMappingIT {
 
     @Test
     public void nclob() throws Exception {
-        if (env.unitDbAdapter().supportsLobs()) {
+        if (env.testDbAdapter().supportsLobs()) {
             String columnName = "NCLOB_COLUMN";
             ReturnTypesMapLobs1 test = 
env.context().newObject(ReturnTypesMapLobs1.class);
 
@@ -349,7 +349,7 @@ public class ReturnTypesMappingIT {
 
     @Test
     public void clob2() throws Exception {
-        if (env.unitDbAdapter().supportsLobs()) {
+        if (env.testDbAdapter().supportsLobs()) {
             ReturnTypesMapLobs1 test = 
env.context().newObject(ReturnTypesMapLobs1.class);
 
             StringBuffer buffer = new StringBuffer();
@@ -454,7 +454,7 @@ public class ReturnTypesMappingIT {
         DataRow testRead = (DataRow) 
env.context().performQuery(MappedSelect.query("SelectReturnTypesMap1")).get(0);
         Object columnValue = testRead.get(columnName);
         assertNotNull(columnValue);
-        if(env.unitDbAdapter().onlyGenericNumberType()) {
+        if(env.testDbAdapter().onlyGenericNumberType()) {
             assertEquals(BigDecimal.class, columnValue.getClass());
             assertEquals(BigDecimal.valueOf(doubleValue), columnValue);
         } else {
@@ -492,7 +492,7 @@ public class ReturnTypesMappingIT {
         DataRow testRead = (DataRow) 
env.context().performQuery(MappedSelect.query("SelectReturnTypesMap1")).get(0);
         Object columnValue = testRead.get(columnName);
         assertNotNull(columnValue);
-        if(env.unitDbAdapter().onlyGenericNumberType()) {
+        if(env.testDbAdapter().onlyGenericNumberType()) {
             assertEquals(BigDecimal.class, columnValue.getClass());
         } else {
             assertTrue(Float.class.equals(columnValue.getClass())
@@ -553,7 +553,7 @@ public class ReturnTypesMappingIT {
 
     @Test
     public void longVarBinary() throws Exception {
-        if (env.unitDbAdapter().supportsLobs()) {
+        if (env.testDbAdapter().supportsLobs()) {
             String columnName = "LONGVARBINARY_COLUMN";
             ReturnTypesMap2 test = 
env.context().newObject(ReturnTypesMap2.class);
 
@@ -573,7 +573,7 @@ public class ReturnTypesMappingIT {
 
     @Test
     public void longVarBinary2() throws Exception {
-        if (env.unitDbAdapter().supportsLobs()) {
+        if (env.testDbAdapter().supportsLobs()) {
             ReturnTypesMap2 test = 
env.context().newObject(ReturnTypesMap2.class);
 
             byte[] longvarbinaryValue = {
@@ -701,10 +701,10 @@ public class ReturnTypesMappingIT {
 
         // MySQL can treat REAL as either DOUBLE or FLOAT depending on the
         // engine settings
-        if(env.unitDbAdapter().onlyGenericNumberType()) {
+        if(env.testDbAdapter().onlyGenericNumberType()) {
             assertEquals(BigDecimal.class, columnValue.getClass());
         } else {
-            if (env.unitDbAdapter().realAsDouble()) {
+            if (env.testDbAdapter().realAsDouble()) {
                 assertEquals(Double.class, columnValue.getClass());
                 assertEquals(Double.valueOf(realValue), (Double) columnValue, 
0.0001);
             } else {
@@ -744,7 +744,7 @@ public class ReturnTypesMappingIT {
         DataRow testRead = (DataRow) 
env.context().performQuery(MappedSelect.query("SelectReturnTypesMap1")).get(0);
         Object columnValue = testRead.get(columnName);
         assertNotNull(columnValue);
-        if(env.unitDbAdapter().onlyGenericNumberType()) {
+        if(env.testDbAdapter().onlyGenericNumberType()) {
             assertEquals(Integer.class, columnValue.getClass());
             assertEquals(intValue, columnValue);
         } else {
@@ -863,7 +863,7 @@ public class ReturnTypesMappingIT {
         DataRow testRead = (DataRow) 
env.context().performQuery(MappedSelect.query("SelectReturnTypesMap1")).get(0);
         Object columnValue = testRead.get(columnName);
         assertNotNull(columnValue);
-        if(env.unitDbAdapter().onlyGenericNumberType()) {
+        if(env.testDbAdapter().onlyGenericNumberType()) {
             assertEquals(Integer.class, columnValue.getClass());
         } else {
             assertEquals(Short.class, columnValue.getClass());
@@ -890,7 +890,7 @@ public class ReturnTypesMappingIT {
 
     @Test
     public void varBinary() throws Exception {
-        if (env.unitDbAdapter().supportsLobs()) {
+        if (env.testDbAdapter().supportsLobs()) {
             String columnName = "VARBINARY_COLUMN";
             ReturnTypesMap2 test = 
env.context().newObject(ReturnTypesMap2.class);
 
@@ -910,7 +910,7 @@ public class ReturnTypesMappingIT {
 
     @Test
     public void varBinary2() throws Exception {
-        if (env.unitDbAdapter().supportsLobs()) {
+        if (env.testDbAdapter().supportsLobs()) {
             ReturnTypesMap2 test = 
env.context().newObject(ReturnTypesMap2.class);
 
             byte[] varbinaryValue = {
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java 
b/cayenne/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java
index d6e6efb93..93b2b10ee 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/jdbc/SQLTemplateActionIT.java
@@ -31,7 +31,7 @@ import org.apache.cayenne.query.SortOrder;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.unit.CayenneTestsEnv;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.util.SQLTemplateCustomizer;
 import org.junit.jupiter.api.BeforeEach;
@@ -54,7 +54,7 @@ public class SQLTemplateActionIT {
     static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.TESTMAP_PROJECT);
 
     private DataNode node;
-    private UnitDbAdapter unitDbAdapter;
+    private TestDbAdapter testDbAdapter;
     private ObjectContext context;
     private SQLTemplateCustomizer sqlTemplateCustomizer;
     private TableHelper tArtist;
@@ -62,7 +62,7 @@ public class SQLTemplateActionIT {
     @BeforeEach
     public void setUp() throws Exception {
         node = env.dataNode();
-        unitDbAdapter = env.unitDbAdapter();
+        testDbAdapter = env.testDbAdapter();
         context = env.context();
         sqlTemplateCustomizer = env.sqlTemplateCustomizer();
         tArtist = env.table("ARTIST", "ARTIST_ID", "ARTIST_NAME", 
"DATE_OF_BIRTH");
@@ -133,7 +133,7 @@ public class SQLTemplateActionIT {
         String templateString = "SELECT * FROM ARTIST";
         SQLTemplate sqlTemplate = new SQLTemplate(Artist.class, 
templateString);
 
-        if (unitDbAdapter.isLowerCaseNames()) {
+        if (testDbAdapter.isLowerCaseNames()) {
             sqlTemplate.setColumnNamesCapitalization(CapsStrategy.UPPER);
         }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/jdbc/SelectActionIT.java 
b/cayenne/src/test/java/org/apache/cayenne/access/jdbc/SelectActionIT.java
index d5756876b..f35edbe8f 100644
--- a/cayenne/src/test/java/org/apache/cayenne/access/jdbc/SelectActionIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/access/jdbc/SelectActionIT.java
@@ -39,7 +39,7 @@ public class SelectActionIT {
 
     @Test
     public void fetchLimit_DistinctResultIterator() {
-        if (env.unitDbAdapter().supportsLobs()) {
+        if (env.testDbAdapter().supportsLobs()) {
 
             insertClobDb();
 
@@ -55,7 +55,7 @@ public class SelectActionIT {
 
     @Test
     public void columnSelect_DistinctResultIterator() {
-        if (env.unitDbAdapter().supportsLobs()) {
+        if (env.testDbAdapter().supportsLobs()) {
 
             insertClobDb();
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/batch/DeleteBatchTranslatorIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/batch/DeleteBatchTranslatorIT.java
index e31dbcea1..51fd1aaff 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/batch/DeleteBatchTranslatorIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/batch/DeleteBatchTranslatorIT.java
@@ -27,7 +27,7 @@ import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.query.DeleteBatchQuery;
 import org.apache.cayenne.runtime.CayenneRuntime;
 import org.apache.cayenne.testdo.locking.SimpleLockingTestEntity;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -49,7 +49,7 @@ public class DeleteBatchTranslatorIT {
 
     private CayenneRuntime runtime;
     private DbAdapter adapter;
-    private UnitDbAdapter unitAdapter;
+    private TestDbAdapter unitAdapter;
     private AdhocObjectFactory objectFactory;
 
 
@@ -57,7 +57,7 @@ public class DeleteBatchTranslatorIT {
     public void setUp() {
         runtime = env.runtime();
         adapter = env.dataNode().getAdapter();
-        unitAdapter = env.unitDbAdapter();
+        unitAdapter = env.testDbAdapter();
         objectFactory = env.adhocObjectFactory();
     }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/batch/InsertBatchTranslatorIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/batch/InsertBatchTranslatorIT.java
index 46542bb76..e755de496 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/batch/InsertBatchTranslatorIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/batch/InsertBatchTranslatorIT.java
@@ -25,7 +25,7 @@ import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.query.InsertBatchQuery;
 import org.apache.cayenne.runtime.CayenneRuntime;
 import org.apache.cayenne.testdo.locking.SimpleLockingTestEntity;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.extension.RegisterExtension;
@@ -44,7 +44,7 @@ public class InsertBatchTranslatorIT {
 
     private CayenneRuntime runtime;
     private DbAdapter adapter;
-    private UnitDbAdapter unitAdapter;
+    private TestDbAdapter unitAdapter;
     private AdhocObjectFactory objectFactory;
 
 
@@ -52,7 +52,7 @@ public class InsertBatchTranslatorIT {
     public void setUp() {
         runtime = env.runtime();
         adapter = env.dataNode().getAdapter();
-        unitAdapter = env.unitDbAdapter();
+        unitAdapter = env.testDbAdapter();
         objectFactory = env.adhocObjectFactory();
     }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/batch/SoftDeleteBatchTranslatorIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/batch/SoftDeleteBatchTranslatorIT.java
index 2f641d47e..e66ff797a 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/batch/SoftDeleteBatchTranslatorIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/batch/SoftDeleteBatchTranslatorIT.java
@@ -32,7 +32,7 @@ import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.test.parallel.ParallelTestContainer;
 import org.apache.cayenne.testdo.soft_delete.SoftDelete;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -53,7 +53,7 @@ public class SoftDeleteBatchTranslatorIT {
     static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.SOFT_DELETE_PROJECT);
 
     private DataNode node;
-    private UnitDbAdapter unitAdapter;
+    private TestDbAdapter unitAdapter;
     private AdhocObjectFactory objectFactory;
 
     private DeleteBatchTranslator createTranslator(DeleteBatchQuery query) {
@@ -68,7 +68,7 @@ public class SoftDeleteBatchTranslatorIT {
     @BeforeEach
     public void setUp() {
         node = env.dataNode();
-        unitAdapter = env.unitDbAdapter();
+        unitAdapter = env.testDbAdapter();
         objectFactory = env.adhocObjectFactory();
     }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/batch/UpdateBatchTranslatorIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/batch/UpdateBatchTranslatorIT.java
index 37a73e80d..968c6f11d 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/batch/UpdateBatchTranslatorIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/batch/UpdateBatchTranslatorIT.java
@@ -27,7 +27,7 @@ import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.query.UpdateBatchQuery;
 import org.apache.cayenne.runtime.CayenneRuntime;
 import org.apache.cayenne.testdo.locking.SimpleLockingTestEntity;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -49,7 +49,7 @@ public class UpdateBatchTranslatorIT {
 
     private CayenneRuntime runtime;
     private DbAdapter adapter;
-    private UnitDbAdapter unitAdapter;
+    private TestDbAdapter unitAdapter;
     private AdhocObjectFactory objectFactory;
 
 
@@ -57,7 +57,7 @@ public class UpdateBatchTranslatorIT {
     public void setUp() {
         runtime = env.runtime();
         adapter = env.dataNode().getAdapter();
-        unitAdapter = env.unitDbAdapter();
+        unitAdapter = env.testDbAdapter();
         objectFactory = env.adhocObjectFactory();
     }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/select/DefaultSelectTranslatorIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/select/DefaultSelectTranslatorIT.java
index 7a37277f6..cd3134e54 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/translator/select/DefaultSelectTranslatorIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/translator/select/DefaultSelectTranslatorIT.java
@@ -496,8 +496,8 @@ public class DefaultSelectTranslatorIT {
                        DbEntity entity = 
env.context().getEntityResolver().getDbEntity("ARTIST");
                        entity.getDataMap().setQuotingSQLIdentifiers(true);
 
-                       String charStart = 
env.unitDbAdapter().getIdentifiersStartQuote();
-                       String charEnd = 
env.unitDbAdapter().getIdentifiersEndQuote();
+                       String charStart = 
env.testDbAdapter().getIdentifiersStartQuote();
+                       String charEnd = 
env.testDbAdapter().getIdentifiersEndQuote();
 
                        String s = new DefaultSelectTranslator(q, 
env.dataNode().getAdapter(), env.dataNode().getEntityResolver()).getSql();
                        assertTrue(s.startsWith("SELECT "));
@@ -535,8 +535,8 @@ public class DefaultSelectTranslatorIT {
                        DbEntity entity = 
env.context().getEntityResolver().getDbEntity("ARTIST");
                        entity.getDataMap().setQuotingSQLIdentifiers(true);
 
-                       String charStart = 
env.unitDbAdapter().getIdentifiersStartQuote();
-                       String charEnd = 
env.unitDbAdapter().getIdentifiersEndQuote();
+                       String charStart = 
env.testDbAdapter().getIdentifiersStartQuote();
+                       String charEnd = 
env.testDbAdapter().getIdentifiersEndQuote();
 
                        String s = new DefaultSelectTranslator(q, 
env.dataNode().getAdapter(), env.dataNode().getEntityResolver()).getSql();
 
@@ -581,8 +581,8 @@ public class DefaultSelectTranslatorIT {
                        DbEntity entity = 
env.context().getEntityResolver().getDbEntity("ARTIST");
                        entity.getDataMap().setQuotingSQLIdentifiers(true);
 
-                       String charStart = 
env.unitDbAdapter().getIdentifiersStartQuote();
-                       String charEnd = 
env.unitDbAdapter().getIdentifiersEndQuote();
+                       String charStart = 
env.testDbAdapter().getIdentifiersStartQuote();
+                       String charEnd = 
env.testDbAdapter().getIdentifiersEndQuote();
 
                        String s = new DefaultSelectTranslator(q, 
env.dataNode().getAdapter(), env.dataNode().getEntityResolver()).getSql();
 
@@ -658,8 +658,8 @@ public class DefaultSelectTranslatorIT {
                        DbEntity entity = 
env.context().getEntityResolver().getDbEntity("PAINTING");
                        entity.getDataMap().setQuotingSQLIdentifiers(true);
 
-                       String charStart = 
env.unitDbAdapter().getIdentifiersStartQuote();
-                       String charEnd = 
env.unitDbAdapter().getIdentifiersEndQuote();
+                       String charStart = 
env.testDbAdapter().getIdentifiersStartQuote();
+                       String charEnd = 
env.testDbAdapter().getIdentifiersEndQuote();
 
                        String s = new DefaultSelectTranslator(q, 
env.dataNode().getAdapter(), env.dataNode().getEntityResolver()).getSql();
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/types/DateTimeTypesIT.java 
b/cayenne/src/test/java/org/apache/cayenne/access/types/DateTimeTypesIT.java
index 5bb9d72a7..9922d87ac 100644
--- a/cayenne/src/test/java/org/apache/cayenne/access/types/DateTimeTypesIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/access/types/DateTimeTypesIT.java
@@ -29,8 +29,8 @@ import org.apache.cayenne.testdo.datetime.LocalDateTestEntity;
 import org.apache.cayenne.testdo.datetime.LocalDateTimeTestEntity;
 import org.apache.cayenne.testdo.datetime.LocalTimeTestEntity;
 import org.apache.cayenne.testdo.datetime.PeriodTestEntity;
-import org.apache.cayenne.unit.dba.MySQLUnitDbAdapter;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.MySQLTestDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.extension.RegisterExtension;
@@ -55,12 +55,12 @@ public class DateTimeTypesIT {
     static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.DATE_TIME_PROJECT);
 
     private DataContext context;
-    private UnitDbAdapter unitDbAdapter;
+    private TestDbAdapter testDbAdapter;
 
     @BeforeEach
     public void before() throws SQLException {
         context = env.context();
-        unitDbAdapter = env.unitDbAdapter();
+        testDbAdapter = env.testDbAdapter();
         DbHelper dbHelper = env.dbHelper();
         dbHelper.deleteAll("LOCAL_DATE_TEST");
         dbHelper.deleteAll("LOCAL_DATETIME_TEST");
@@ -106,7 +106,7 @@ public class DateTimeTypesIT {
 
         LocalTimeTestEntity testRead = 
ObjectSelect.query(LocalTimeTestEntity.class).selectOne(context);
 
-        TemporalField testValue = unitDbAdapter.supportsPreciseTime()
+        TemporalField testValue = testDbAdapter.supportsPreciseTime()
                 ? ChronoField.MILLI_OF_DAY
                 : ChronoField.SECOND_OF_DAY;
 
@@ -137,7 +137,7 @@ public class DateTimeTypesIT {
     @Test
     public void localDateTime_DST_Select() {
 
-        if (!(unitDbAdapter instanceof MySQLUnitDbAdapter)) {
+        if (!(testDbAdapter instanceof MySQLTestDbAdapter)) {
             // skip other DB's for now until we can test across all of them
             return;
         }
@@ -165,7 +165,7 @@ public class DateTimeTypesIT {
     @Test
     public void localDateTime_DST_Insert() {
 
-        if (!(unitDbAdapter instanceof MySQLUnitDbAdapter)) {
+        if (!(testDbAdapter instanceof MySQLTestDbAdapter)) {
             // skip other DB's for now until we can test across all of them
             return;
         }
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java 
b/cayenne/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java
index cdbafbad5..354ddb261 100644
--- a/cayenne/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/dba/ConcurrentPkGeneratorIT.java
@@ -26,8 +26,8 @@ import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.runtime.CayenneRuntime;
 import org.apache.cayenne.testdo.qualified.Qualified1;
-import org.apache.cayenne.unit.dba.DerbyUnitDbAdapter;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.DerbyTestDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -51,14 +51,14 @@ public class ConcurrentPkGeneratorIT {
        static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.QUALIFIED_PROJECT);
 
        private CayenneRuntime runtime;
-       private UnitDbAdapter unitDbAdapter;
+       private TestDbAdapter testDbAdapter;
 
        @BeforeEach
        public void prepareDerbyDb() {
                runtime = env.runtime();
-               unitDbAdapter = env.unitDbAdapter();
+               testDbAdapter = env.testDbAdapter();
                //use to fix random test failures on derby db
-               if(unitDbAdapter instanceof DerbyUnitDbAdapter) {
+               if(testDbAdapter instanceof DerbyTestDbAdapter) {
                        try(Connection connection = 
runtime.getDataDomain().getDataNode("qualified").getDataSource().getConnection()){
                                CallableStatement cs =
                                                connection.prepareCall("CALL 
SYSCS_UTIL.SYSCS_SET_DATABASE_PROPERTY(?, ?)");
@@ -77,7 +77,7 @@ public class ConcurrentPkGeneratorIT {
      */
     @Test
     public void concurrentInserts() {
-       if(!unitDbAdapter.supportsPKGeneratorConcurrency()) {
+       if(!testDbAdapter.supportsPKGeneratorConcurrency()) {
                return;
                }
 
diff --git a/cayenne/src/test/java/org/apache/cayenne/dba/PkGeneratorIT.java 
b/cayenne/src/test/java/org/apache/cayenne/dba/PkGeneratorIT.java
index d36fb8ef6..7c2fb9fe1 100644
--- a/cayenne/src/test/java/org/apache/cayenne/dba/PkGeneratorIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/dba/PkGeneratorIT.java
@@ -21,7 +21,7 @@ package org.apache.cayenne.dba;
 
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -40,7 +40,7 @@ public class PkGeneratorIT {
     @RegisterExtension
     static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.TESTMAP_PROJECT);
 
-    private UnitDbAdapter accessStackAdapter;
+    private TestDbAdapter accessStackAdapter;
     private DataNode node;
 
     private PkGenerator pkGenerator;
@@ -48,7 +48,7 @@ public class PkGeneratorIT {
 
     @BeforeEach
     public void setUp() throws Exception {
-        accessStackAdapter = env.unitDbAdapter();
+        accessStackAdapter = env.testDbAdapter();
         node = env.dataNode();
         pkGenerator = node.getAdapter().getPkGenerator();
         paintingEntity = node.getEntityResolver().getDbEntity("PAINTING");
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/dba/sqlserver/SQLServerSnifferIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/dba/sqlserver/SQLServerSnifferIT.java
index 284a566e0..b58739807 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/dba/sqlserver/SQLServerSnifferIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/dba/sqlserver/SQLServerSnifferIT.java
@@ -20,7 +20,7 @@
 package org.apache.cayenne.dba.sqlserver;
 
 import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.unit.dba.SQLServerUnitDbAdapter;
+import org.apache.cayenne.unit.dba.SQLServerTestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.Test;
@@ -47,7 +47,7 @@ public class SQLServerSnifferIT {
                        adapter = sniffer.createAdapter(c.getMetaData());
                }
 
-               if (env.unitDbAdapter() instanceof SQLServerUnitDbAdapter) {
+               if (env.testDbAdapter() instanceof SQLServerTestDbAdapter) {
                        assertNotNull(adapter);
                } else {
                        assertNull(adapter);
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/exp/ExpressionFactoryIT.java 
b/cayenne/src/test/java/org/apache/cayenne/exp/ExpressionFactoryIT.java
index 8192512ec..4ec76095c 100644
--- a/cayenne/src/test/java/org/apache/cayenne/exp/ExpressionFactoryIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/exp/ExpressionFactoryIT.java
@@ -94,7 +94,7 @@ public class ExpressionFactoryIT {
 
     @Test
     public void escapeCharacter() {
-        if (!env.unitDbAdapter().supportsEscapeInLike()) {
+        if (!env.testDbAdapter().supportsEscapeInLike()) {
             return;
         }
 
@@ -116,7 +116,7 @@ public class ExpressionFactoryIT {
     @Test
     public void contains_Escape() {
 
-        if (!env.unitDbAdapter().supportsEscapeInLike()) {
+        if (!env.testDbAdapter().supportsEscapeInLike()) {
             return;
         }
 
diff --git a/cayenne/src/test/java/org/apache/cayenne/exp/ExpressionIT.java 
b/cayenne/src/test/java/org/apache/cayenne/exp/ExpressionIT.java
index 0ee9ed984..06664ab0a 100644
--- a/cayenne/src/test/java/org/apache/cayenne/exp/ExpressionIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/exp/ExpressionIT.java
@@ -122,7 +122,7 @@ public class ExpressionIT {
                try {
             artists = ObjectSelect.query(Artist.class, 
Artist.ARTIST_NAME.lt((String) null)).select(env.context());
         } catch (CayenneRuntimeException ex) {
-                   if(env.unitDbAdapter().supportsNullComparison()) {
+                   if(env.testDbAdapter().supportsNullComparison()) {
                        throw ex;
             } else {
                        return;
@@ -142,7 +142,7 @@ public class ExpressionIT {
         try {
             artists = ObjectSelect.query(Artist.class, 
Artist.ARTIST_NAME.in("Picasso", (String) null)).select(env.context());
         } catch (CayenneRuntimeException ex) {
-            if(env.unitDbAdapter().supportsNullComparison()) {
+            if(env.testDbAdapter().supportsNullComparison()) {
                 throw ex;
             } else {
                 return;
@@ -191,7 +191,7 @@ public class ExpressionIT {
         */
        @Test
        public void selectWithScalarAsWhereCondition() {
-               if (env.unitDbAdapter().supportScalarAsExpression()){
+               if (env.testDbAdapter().supportScalarAsExpression()){
                        return;
                }
                ObjectSelect<Artist> objectSelect = 
ObjectSelect.query(Artist.class).where(ExpressionFactory.wrapScalarValue("abc"));
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTExtractIT.java 
b/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTExtractIT.java
index 4d3f3c0a3..40b9d3845 100644
--- a/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTExtractIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTExtractIT.java
@@ -27,7 +27,7 @@ import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.testdo.legacy_datetime.DateTestEntity;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -42,11 +42,11 @@ public class ASTExtractIT {
     @RegisterExtension
     static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.LEGACY_DATE_TIME_PROJECT);
 
-    private UnitDbAdapter unitDbAdapter;
+    private TestDbAdapter testDbAdapter;
 
     @BeforeEach
     public void createDataSet() throws Exception {
-        unitDbAdapter = env.unitDbAdapter();
+        testDbAdapter = env.testDbAdapter();
         Calendar cal = Calendar.getInstance();
         cal.set(Calendar.MILLISECOND, 0);
 
@@ -85,7 +85,7 @@ public class ASTExtractIT {
             long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
-            
if(unitDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.YEAR)) {
+            
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.YEAR)) {
                 throw e;
             } // else ok
         }
@@ -99,7 +99,7 @@ public class ASTExtractIT {
             long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
-            
if(unitDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.MONTH)) {
+            
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.MONTH)) {
                 throw e;
             } // else ok
         }
@@ -113,7 +113,7 @@ public class ASTExtractIT {
             long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
-            
if(unitDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.WEEK)) {
+            
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.WEEK)) {
                 throw e;
             } // else ok
         }
@@ -127,7 +127,7 @@ public class ASTExtractIT {
             long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
-            
if(unitDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.DAY_OF_YEAR)) {
+            
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.DAY_OF_YEAR)) {
                 throw e;
             } // else ok
         }
@@ -142,7 +142,7 @@ public class ASTExtractIT {
             assertTrue(res.contains(59));
             assertTrue(res.contains(89));
         } catch (CayenneRuntimeException e) {
-            
if(unitDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.DAY_OF_YEAR)) {
+            
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.DAY_OF_YEAR)) {
                 throw e;
             } // else ok
         }
@@ -155,7 +155,7 @@ public class ASTExtractIT {
             long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
-            if(unitDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.DAY)) 
{
+            if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.DAY)) 
{
                 throw e;
             } // else ok
         }
@@ -168,7 +168,7 @@ public class ASTExtractIT {
             long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
-            
if(unitDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.DAY_OF_MONTH)) {
+            
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.DAY_OF_MONTH)) {
                 throw e;
             } // else ok
         }
@@ -181,7 +181,7 @@ public class ASTExtractIT {
             long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
-            
if(unitDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.DAY_OF_WEEK)) {
+            
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.DAY_OF_WEEK)) {
                 throw e;
             }
         }
@@ -194,7 +194,7 @@ public class ASTExtractIT {
             long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
-            
if(unitDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.HOUR)) {
+            
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.HOUR)) {
                 throw e;
             } // else ok
         }
@@ -207,7 +207,7 @@ public class ASTExtractIT {
             long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
-            
if(unitDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.MINUTE)) {
+            
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.MINUTE)) {
                 throw e;
             }
         }
@@ -220,7 +220,7 @@ public class ASTExtractIT {
             long res = ObjectSelect.query(DateTestEntity.class, 
exp).selectCount(env.context());
             assertEquals(1, res);
         } catch (CayenneRuntimeException e) {
-            
if(unitDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.SECOND)) {
+            
if(testDbAdapter.supportsExtractPart(ASTExtract.DateTimePart.SECOND)) {
                 throw e;
             }
         }
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTFunctionCallDateIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTFunctionCallDateIT.java
index 80ab01484..c95276ba9 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTFunctionCallDateIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTFunctionCallDateIT.java
@@ -25,7 +25,7 @@ import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.testdo.legacy_datetime.DateTestEntity;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -41,11 +41,11 @@ public class ASTFunctionCallDateIT {
     @RegisterExtension
     static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.LEGACY_DATE_TIME_PROJECT);
 
-    private UnitDbAdapter unitDbAdapter;
+    private TestDbAdapter testDbAdapter;
 
     @BeforeEach
     public void createDataSet() throws Exception {
-        unitDbAdapter = env.unitDbAdapter();
+        testDbAdapter = env.testDbAdapter();
         Calendar cal = Calendar.getInstance();
         cal.set(Calendar.MILLISECOND, 0);
 
@@ -89,7 +89,7 @@ public class ASTFunctionCallDateIT {
     public void currentTime() throws Exception {
         Expression exp = ExpressionFactory.greaterOrEqualExp("timeColumn", new 
ASTCurrentTime());
         List<DateTestEntity> res = ObjectSelect.query(DateTestEntity.class, 
exp).select(env.context());
-        if(!unitDbAdapter.supportsTimeSqlType()) {
+        if(!testDbAdapter.supportsTimeSqlType()) {
             // check only that query is executed without error
             // result will be invalid most likely as DB doesn't support TIME 
data type
             return;
@@ -128,7 +128,7 @@ public class ASTFunctionCallDateIT {
     public void aSTCurrentTimeParse() {
         Expression exp = ExpressionFactory.exp("timeColumn > currentTime()");
         DateTestEntity res = ObjectSelect.query(DateTestEntity.class, 
exp).selectOne(env.context());
-        if(!unitDbAdapter.supportsTimeSqlType()) {
+        if(!testDbAdapter.supportsTimeSqlType()) {
             return;
         }
         assertNotNull(res);
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTFunctionCallStringIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTFunctionCallStringIT.java
index d127b16d9..7cb9fd592 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTFunctionCallStringIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/exp/parser/ASTFunctionCallStringIT.java
@@ -25,7 +25,7 @@ import org.apache.cayenne.exp.Expression;
 import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.testdo.testmap.Artist;
-import org.apache.cayenne.unit.dba.OracleUnitDbAdapter;
+import org.apache.cayenne.unit.dba.OracleTestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.Test;
@@ -61,7 +61,7 @@ public class ASTFunctionCallStringIT {
         // TODO: This will fail for Oracle, so skip for now.
         //       It is necessary to provide connection with "fixedString=true" 
property somehow.
         //       Also see CAY-1470.
-        assumeFalse(env.unitDbAdapter() instanceof OracleUnitDbAdapter);
+        assumeFalse(env.testDbAdapter() instanceof OracleTestDbAdapter);
         Artist a1 = createArtist("name");
         Artist a2 = ObjectSelect.query(Artist.class)
                 
.where(Artist.ARTIST_NAME.upper().eq("NAME")).selectOne(env.context());
@@ -73,7 +73,7 @@ public class ASTFunctionCallStringIT {
         // TODO: This will fail for Oracle, so skip for now.
         //       It is necessary to provide connection with "fixedString=true" 
property somehow.
         //       Also see CAY-1470.
-        assumeFalse(env.unitDbAdapter() instanceof OracleUnitDbAdapter);
+        assumeFalse(env.testDbAdapter() instanceof OracleTestDbAdapter);
         Artist a1 = createArtist("NAME");
         Artist a2 = ObjectSelect.query(Artist.class)
                 
.where(Artist.ARTIST_NAME.lower().eq("name")).selectOne(env.context());
diff --git a/cayenne/src/test/java/org/apache/cayenne/query/ColumnSelectIT.java 
b/cayenne/src/test/java/org/apache/cayenne/query/ColumnSelectIT.java
index 24d439ec6..1ca26e100 100644
--- a/cayenne/src/test/java/org/apache/cayenne/query/ColumnSelectIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/query/ColumnSelectIT.java
@@ -45,8 +45,8 @@ import org.apache.cayenne.testdo.testmap.Exhibit;
 import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
 import org.apache.cayenne.testdo.testmap.PaintingInfo;
-import org.apache.cayenne.unit.dba.PostgresUnitDbAdapter;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.PostgresTestDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -63,7 +63,7 @@ public class ColumnSelectIT {
 
     private DataContext context;
     private CayenneRuntime runtime;
-    private UnitDbAdapter unitDbAdapter;
+    private TestDbAdapter testDbAdapter;
 
     // Format: d/m/YY
     private static final DateFormat dateFormat = 
DateFormat.getDateInstance(DateFormat.SHORT, Locale.US);
@@ -74,7 +74,7 @@ public class ColumnSelectIT {
     public void createArtistsDataSet() throws Exception {
         context = env.context();
         runtime = env.runtime();
-        unitDbAdapter = env.unitDbAdapter();
+        testDbAdapter = env.testDbAdapter();
         tArtist = env.table("ARTIST", "ARTIST_ID", "ARTIST_NAME", 
"DATE_OF_BIRTH");
         tArtist.setColumnTypes(Types.INTEGER, Types.VARCHAR, Types.DATE);
 
@@ -143,7 +143,7 @@ public class ColumnSelectIT {
                     .having(PropertyFactory.COUNT.gt(10L))
                     .selectOne(context);
         } catch (CayenneRuntimeException ex) {
-            if(unitDbAdapter.supportsExpressionInHaving()) {
+            if(testDbAdapter.supportsExpressionInHaving()) {
                 fail();
             } else {
                 return;
@@ -163,7 +163,7 @@ public class ColumnSelectIT {
                     .having(PropertyFactory.COUNT.gt(10L))
                     .selectOne(context);
         } catch (CayenneRuntimeException ex) {
-            if(unitDbAdapter.supportsExpressionInHaving()) {
+            if(testDbAdapter.supportsExpressionInHaving()) {
                 fail();
             } else {
                 return;
@@ -182,7 +182,7 @@ public class ColumnSelectIT {
                     .having(PropertyFactory.COUNT.gt(10L))
                     .selectOne(context);
         } catch (CayenneRuntimeException ex) {
-            if(unitDbAdapter.supportsExpressionInHaving()) {
+            if(testDbAdapter.supportsExpressionInHaving()) {
                 fail();
             } else {
                 return;
@@ -231,7 +231,7 @@ public class ColumnSelectIT {
                     .having(Artist.PAINTING_ARRAY.count().gt(4L))
                     .selectOne(context);
         } catch (CayenneRuntimeException ex) {
-            if(unitDbAdapter.supportsExpressionInHaving()) {
+            if(testDbAdapter.supportsExpressionInHaving()) {
                 fail();
             } else {
                 return;
@@ -251,7 +251,7 @@ public class ColumnSelectIT {
                 .having(paintingCount.gt(4L))
                 .selectOne(context);
         } catch (CayenneRuntimeException ex) {
-            if(unitDbAdapter.supportsExpressionInHaving()) {
+            if(testDbAdapter.supportsExpressionInHaving()) {
                 fail();
             } else {
                 return;
@@ -263,7 +263,7 @@ public class ColumnSelectIT {
 
     @Test
     public void selectWithQuoting() {
-        if(unitDbAdapter instanceof PostgresUnitDbAdapter) {
+        if(testDbAdapter instanceof PostgresTestDbAdapter) {
             // we need to convert somehow all names to lowercase on postgres, 
so skip it for now
             return;
         }
@@ -277,7 +277,7 @@ public class ColumnSelectIT {
                     .having(paintingCount.gt(4L))
                     .selectOne(context);
         } catch (CayenneRuntimeException ex) {
-            if(unitDbAdapter.supportsExpressionInHaving()) {
+            if(testDbAdapter.supportsExpressionInHaving()) {
                 fail();
             } else {
                 return;
@@ -291,7 +291,7 @@ public class ColumnSelectIT {
 
     @Test
     public void selectGroupByWithQuoting() throws Exception {
-        if(unitDbAdapter instanceof PostgresUnitDbAdapter) {
+        if(testDbAdapter instanceof PostgresTestDbAdapter) {
             // we need to convert somehow all names to lowercase on postgres, 
so skip it for now
             return;
         }
diff --git a/cayenne/src/test/java/org/apache/cayenne/query/MappedQueryIT.java 
b/cayenne/src/test/java/org/apache/cayenne/query/MappedQueryIT.java
index e6c9bab7f..0c5399b91 100644
--- a/cayenne/src/test/java/org/apache/cayenne/query/MappedQueryIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/query/MappedQueryIT.java
@@ -107,11 +107,11 @@ public class MappedQueryIT {
 
     @Test
     public void procedureQuery() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
-        if (!env.unitDbAdapter().canMakeObjectsOutOfProcedures()) {
+        if (!env.testDbAdapter().canMakeObjectsOutOfProcedures()) {
             return;
         }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_AggregateIT.java 
b/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_AggregateIT.java
index 0f1a7e357..6608501c6 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_AggregateIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_AggregateIT.java
@@ -33,7 +33,7 @@ import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.AfterEach;
@@ -51,7 +51,7 @@ public class ObjectSelect_AggregateIT {
     static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.TESTMAP_PROJECT);
 
     private DataContext context;
-    private UnitDbAdapter dbAdapter;
+    private TestDbAdapter dbAdapter;
 
     // Format: d/m/YY
     DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, 
Locale.US);
@@ -59,7 +59,7 @@ public class ObjectSelect_AggregateIT {
     @BeforeEach
     public void createArtistsDataSet() throws Exception {
         context = env.context();
-        dbAdapter = env.unitDbAdapter();
+        dbAdapter = env.testDbAdapter();
         TableHelper tArtist = env.table("ARTIST", "ARTIST_ID", "ARTIST_NAME", 
"DATE_OF_BIRTH");
         tArtist.setColumnTypes(Types.INTEGER, Types.VARCHAR, Types.DATE);
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_PrimitiveColumnsIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_PrimitiveColumnsIT.java
index c658c68b6..c77404d69 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_PrimitiveColumnsIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_PrimitiveColumnsIT.java
@@ -28,7 +28,7 @@ import org.apache.cayenne.exp.property.NumericProperty;
 import org.apache.cayenne.exp.property.PropertyFactory;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.primitive.PrimitivesTestEntity;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -45,14 +45,14 @@ public class ObjectSelect_PrimitiveColumnsIT {
     static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.PRIMITIVE_PROJECT);
 
     private DataContext context;
-    private UnitDbAdapter unitDbAdapter;
+    private TestDbAdapter testDbAdapter;
 
     private TableHelper tPrimitives;
 
     @BeforeEach
     public void createTestRecords() throws Exception {
         context = env.context();
-        unitDbAdapter = env.unitDbAdapter();
+        testDbAdapter = env.testDbAdapter();
         tPrimitives = env.table("PRIMITIVES_TEST", "ID", "BOOLEAN_COLUMN", 
"INT_COLUMN");
         for (int i = 1; i <= 20; i++) {
             tPrimitives.insert(i, (i % 2 == 0), i * 10);
@@ -111,7 +111,7 @@ public class ObjectSelect_PrimitiveColumnsIT {
 
     @Test
     public void selectBooleanExpColumn() {
-        if(!unitDbAdapter.supportsSelectBooleanExpression()) {
+        if(!testDbAdapter.supportsSelectBooleanExpression()) {
             return;
         }
 
@@ -139,7 +139,7 @@ public class ObjectSelect_PrimitiveColumnsIT {
 
     @Test
     public void selectColumnsExpList() {
-        if(!unitDbAdapter.supportsSelectBooleanExpression()) {
+        if(!testDbAdapter.supportsSelectBooleanExpression()) {
             return;
         }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java 
b/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
index a5c58af0f..b9e4061c0 100644
--- a/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/query/ObjectSelect_RunIT.java
@@ -28,8 +28,8 @@ import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
-import org.apache.cayenne.unit.dba.OracleUnitDbAdapter;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.OracleTestDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -44,12 +44,12 @@ public class ObjectSelect_RunIT {
        @RegisterExtension
        static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.TESTMAP_PROJECT);
 
-       private UnitDbAdapter unitDbAdapter;
+       private TestDbAdapter testDbAdapter;
        private DataContext context;
 
        @BeforeEach
        public void createArtistsDataSet() throws Exception {
-               unitDbAdapter = env.unitDbAdapter();
+               testDbAdapter = env.testDbAdapter();
                context = env.context();
                TableHelper tArtist = env.table("ARTIST", "ARTIST_ID", 
"ARTIST_NAME", "DATE_OF_BIRTH");
 
@@ -198,7 +198,7 @@ public class ObjectSelect_RunIT {
                // TODO: This will fail for Oracle, so skip for now.
                //       It is necessary to provide connection with 
"fixedString=true" property somehow.
                //       Also see CAY-1470.
-               assumeFalse(unitDbAdapter instanceof OracleUnitDbAdapter);
+               assumeFalse(testDbAdapter instanceof OracleTestDbAdapter);
                Artist a = ObjectSelect.query(Artist.class)
                                .where(Artist.ARTIST_NAME.function("UPPER", 
String.class).eq("ARTIST1"))
                                .selectOne(context);
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/query/ProcedureCallIT.java 
b/cayenne/src/test/java/org/apache/cayenne/query/ProcedureCallIT.java
index cc0e0a581..1fd938032 100644
--- a/cayenne/src/test/java/org/apache/cayenne/query/ProcedureCallIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/query/ProcedureCallIT.java
@@ -50,7 +50,7 @@ public class ProcedureCallIT {
 
     @Test
     public void update() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
@@ -70,7 +70,7 @@ public class ProcedureCallIT {
 
     @Test
     public void updateNoParam() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
@@ -90,7 +90,7 @@ public class ProcedureCallIT {
 
     @Test
     public void select() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
@@ -117,7 +117,7 @@ public class ProcedureCallIT {
 
     @Test
     public void fetchLimit() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
@@ -138,7 +138,7 @@ public class ProcedureCallIT {
 
     @Test
     public void fetchOffset() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
@@ -159,7 +159,7 @@ public class ProcedureCallIT {
 
     @Test
     public void columnNameCapitalization() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
@@ -187,7 +187,7 @@ public class ProcedureCallIT {
 
     @Test
     public void outParams() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
@@ -202,11 +202,11 @@ public class ProcedureCallIT {
 
     @Test
     public void selectPersistentObject() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
-        if (!env.unitDbAdapter().canMakeObjectsOutOfProcedures()) {
+        if (!env.testDbAdapter().canMakeObjectsOutOfProcedures()) {
             return;
         }
 
@@ -230,7 +230,7 @@ public class ProcedureCallIT {
 
     @Test
     public void selectWithRowDescriptor() throws Exception {
-        if (!env.unitDbAdapter().supportsStoredProcedures()) {
+        if (!env.testDbAdapter().supportsStoredProcedures()) {
             return;
         }
 
diff --git a/cayenne/src/test/java/org/apache/cayenne/query/SQLExecIT.java 
b/cayenne/src/test/java/org/apache/cayenne/query/SQLExecIT.java
index dbead87d9..d6efd1f21 100644
--- a/cayenne/src/test/java/org/apache/cayenne/query/SQLExecIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/query/SQLExecIT.java
@@ -51,7 +51,7 @@ public class SQLExecIT {
 
     @Test
     public void returnGeneratedKeys() {
-        if(env.unitDbAdapter().supportsGeneratedKeys()) {
+        if(env.testDbAdapter().supportsGeneratedKeys()) {
             QueryResult response = SQLExec.query("testmap", "INSERT INTO 
GENERATED_COLUMN (NAME) VALUES ('Surikov')")
                     .returnGeneratedKeys(true)
                     .execute(env.context());
@@ -85,7 +85,7 @@ public class SQLExecIT {
         assertEquals(1, result.firstList().size());
 
         DataRow row = (DataRow)result.firstList().get(0);
-        if(env.unitDbAdapter().isLowerCaseNames()) {
+        if(env.testDbAdapter().isLowerCaseNames()) {
             assertTrue(row.containsKey("artist_id"));
             assertEquals(1L, ((Number)row.get("artist_id")).longValue());
             assertEquals("a", row.get("artist_name"));
diff --git a/cayenne/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java 
b/cayenne/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java
index 20ff00e9e..b991d2d59 100644
--- a/cayenne/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/query/SQLTemplateIT.java
@@ -29,8 +29,8 @@ import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Gallery;
 import org.apache.cayenne.testdo.testmap.Painting;
-import org.apache.cayenne.unit.dba.OracleUnitDbAdapter;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.OracleTestDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -51,7 +51,7 @@ public class SQLTemplateIT {
        static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.TESTMAP_PROJECT);
 
        private DataContext context;
-       protected UnitDbAdapter unitDbAdapter;
+       protected TestDbAdapter testDbAdapter;
 
        private TableHelper tPainting;
        private TableHelper tArtist;
@@ -60,7 +60,7 @@ public class SQLTemplateIT {
        @BeforeEach
        public void setUp() throws Exception {
                context = env.context();
-               unitDbAdapter = env.unitDbAdapter();
+               testDbAdapter = env.testDbAdapter();
                tArtist = env.table("ARTIST", "ARTIST_ID", "ARTIST_NAME", 
"DATE_OF_BIRTH");
 
                tPainting = env.table("PAINTING", "PAINTING_ID", "ARTIST_ID", 
"PAINTING_TITLE", "ESTIMATED_PRICE");
@@ -93,7 +93,7 @@ public class SQLTemplateIT {
 
        @Test
        public void testReturnGeneratedKeys() {
-               if(unitDbAdapter.supportsGeneratedKeys()) {
+               if(testDbAdapter.supportsGeneratedKeys()) {
                        DataMap testDataMap = 
context.getEntityResolver().getDataMap("testmap");
                        String sql = "INSERT INTO GENERATED_COLUMN (NAME) 
VALUES ('Surikov')";
                        SQLTemplate q1 = new SQLTemplate(testDataMap, sql, 
true);
@@ -313,7 +313,7 @@ public class SQLTemplateIT {
                assertTrue(artists.get(0) instanceof Object[]);
 
         // TODO: JDBC's BIGINT matches Oracle's NUMERIC, which matches 
BigDecimal.
-        Class<?> idType = unitDbAdapter instanceof OracleUnitDbAdapter ? 
BigDecimal.class : Long.class;
+        Class<?> idType = testDbAdapter instanceof OracleTestDbAdapter ? 
BigDecimal.class : Long.class;
         assertInstanceOf(idType, artists.get(0)[0]);
        }
 
@@ -330,7 +330,7 @@ public class SQLTemplateIT {
                assertTrue(artists.get(0) instanceof Object[]);
 
         // JDBC's BIGINT matches Oracle's NUMERIC, which matches BigDecimal.
-        Class<?> idType = unitDbAdapter instanceof OracleUnitDbAdapter ? 
BigDecimal.class : Long.class;
+        Class<?> idType = testDbAdapter instanceof OracleTestDbAdapter ? 
BigDecimal.class : Long.class;
                assertInstanceOf(idType, artists.get(0)[0]);
        }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/query/SelectQueryClobIT.java 
b/cayenne/src/test/java/org/apache/cayenne/query/SelectQueryClobIT.java
index badc5cd3f..5eb5b3828 100644
--- a/cayenne/src/test/java/org/apache/cayenne/query/SelectQueryClobIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/query/SelectQueryClobIT.java
@@ -50,7 +50,7 @@ public class SelectQueryClobIT {
      */
     @Test
     public void selectLikeIgnoreCaseClob() throws Exception {
-        if (env.unitDbAdapter().supportsLobs()) {
+        if (env.testDbAdapter().supportsLobs()) {
             createClobDataSet();
             List<?> objects = ObjectSelect.query(ClobTestEntity.class)
                     .where(ClobTestEntity.CLOB_COL.likeIgnoreCase("clob%"))
@@ -61,7 +61,7 @@ public class SelectQueryClobIT {
 
     @Test
     public void selectFetchLimit_Offset_DistinctClob() throws Exception {
-        if (env.unitDbAdapter().supportsLobs()) {
+        if (env.testDbAdapter().supportsLobs()) {
             createClobDataSet();
 
             // see CAY-1539... CLOB column causes suppression of DISTINCT in
@@ -78,7 +78,7 @@ public class SelectQueryClobIT {
 
     @Test
     public void selectEqualsClob() throws Exception {
-        if (env.unitDbAdapter().supportsLobComparisons()) {
+        if (env.testDbAdapter().supportsLobComparisons()) {
             createClobDataSet();
             List<?> objects = ObjectSelect.query(ClobTestEntity.class)
                     .where(ClobTestEntity.CLOB_COL.eq("clob1"))
@@ -89,7 +89,7 @@ public class SelectQueryClobIT {
 
     @Test
     public void selectNotEqualsClob() throws Exception {
-        if (env.unitDbAdapter().supportsLobComparisons()) {
+        if (env.testDbAdapter().supportsLobComparisons()) {
             createClobDataSet();
             List<?> objects = ObjectSelect.query(ClobTestEntity.class)
                     .where(ClobTestEntity.CLOB_COL.ne("clob1"))
@@ -100,7 +100,7 @@ public class SelectQueryClobIT {
 
     @Test
     public void selectNotEqualsEmptyClob() throws Exception {
-        if (env.unitDbAdapter().supportsLobComparisons()) {
+        if (env.testDbAdapter().supportsLobComparisons()) {
             createClobDataSet();
             List<?> objects = ObjectSelect.query(ClobTestEntity.class)
                     .where(ClobTestEntity.CLOB_COL.ne(""))
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/query/SelectQueryReturnTypesIT.java 
b/cayenne/src/test/java/org/apache/cayenne/query/SelectQueryReturnTypesIT.java
index 0ec98b39a..dfe104711 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/query/SelectQueryReturnTypesIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/query/SelectQueryReturnTypesIT.java
@@ -57,7 +57,7 @@ public class SelectQueryReturnTypesIT {
     @Test
     public void selectBitwiseNot() throws Exception {
 
-        if (!env.unitDbAdapter().supportsBitwiseOps()) {
+        if (!env.testDbAdapter().supportsBitwiseOps()) {
             return;
         }
 
@@ -77,7 +77,7 @@ public class SelectQueryReturnTypesIT {
     @Test
     public void selectBitwiseOr() throws Exception {
 
-        if (!env.unitDbAdapter().supportsBitwiseOps()) {
+        if (!env.testDbAdapter().supportsBitwiseOps()) {
             return;
         }
 
@@ -98,7 +98,7 @@ public class SelectQueryReturnTypesIT {
     @Test
     public void selectBitwiseAnd() throws Exception {
 
-        if (!env.unitDbAdapter().supportsBitwiseOps()) {
+        if (!env.testDbAdapter().supportsBitwiseOps()) {
             return;
         }
 
@@ -119,7 +119,7 @@ public class SelectQueryReturnTypesIT {
     @Test
     public void selectBitwiseXor() throws Exception {
 
-        if (!env.unitDbAdapter().supportsBitwiseOps()) {
+        if (!env.testDbAdapter().supportsBitwiseOps()) {
             return;
         }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/tx/TransactionIsolationIT.java 
b/cayenne/src/test/java/org/apache/cayenne/tx/TransactionIsolationIT.java
index 2be39552e..f7bad3ec0 100644
--- a/cayenne/src/test/java/org/apache/cayenne/tx/TransactionIsolationIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/tx/TransactionIsolationIT.java
@@ -30,7 +30,7 @@ import org.apache.cayenne.access.DataContext;
 import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.runtime.CayenneRuntime;
 import org.apache.cayenne.testdo.testmap.Artist;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -50,7 +50,7 @@ public class TransactionIsolationIT {
 
     DataContext context;
     CayenneRuntime runtime;
-    UnitDbAdapter unitDbAdapter;
+    TestDbAdapter testDbAdapter;
 
     TransactionManager manager;
 
@@ -58,7 +58,7 @@ public class TransactionIsolationIT {
     public void initTransactionManager() {
         context = env.context();
         runtime = env.runtime();
-        unitDbAdapter = env.unitDbAdapter();
+        testDbAdapter = env.testDbAdapter();
         // no binding in test container, get it from runtime
         manager = runtime.getInjector().getInstance(TransactionManager.class);
     }
@@ -66,7 +66,7 @@ public class TransactionIsolationIT {
     @Test
     public void isolationLevel() throws Exception {
 
-        if(!unitDbAdapter.supportsSerializableTransactionIsolation()) {
+        if(!testDbAdapter.supportsSerializableTransactionIsolation()) {
             return;
         }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/tx/TransactionPropagationRollbackIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/tx/TransactionPropagationRollbackIT.java
index 8a73ca0c7..aacbebbf9 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/tx/TransactionPropagationRollbackIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/tx/TransactionPropagationRollbackIT.java
@@ -24,7 +24,7 @@ import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.runtime.CayenneRuntime;
 import org.apache.cayenne.testdo.testmap.Artist;
 import org.apache.cayenne.testdo.testmap.Painting;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -49,7 +49,7 @@ public class TransactionPropagationRollbackIT {
 
     DataContext context;
     CayenneRuntime runtime;
-    UnitDbAdapter unitDbAdapter;
+    TestDbAdapter testDbAdapter;
 
     TransactionManager manager;
 
@@ -57,7 +57,7 @@ public class TransactionPropagationRollbackIT {
     public void initTransactionManager() {
         context = env.context();
         runtime = env.runtime();
-        unitDbAdapter = env.unitDbAdapter();
+        testDbAdapter = env.testDbAdapter();
         // no binding in test container, get it from runtime
         manager = runtime.getInjector().getInstance(TransactionManager.class);
     }
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java
index 8e5048f5e..6f2e05ef2 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java
@@ -44,7 +44,7 @@ import org.apache.cayenne.map.Procedure;
 import org.apache.cayenne.runtime.CayenneRuntime;
 import org.apache.cayenne.test.jdbc.DbHelper;
 import org.apache.cayenne.test.jdbc.TableHelper;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.AllTestsSchemaManager;
 import org.apache.cayenne.unit.runtime.DbCleaner;
 import org.apache.cayenne.unit.runtime.FlavoredDbHelper;
@@ -70,7 +70,6 @@ public class CayenneTestsEnv implements BeforeEachCallback, 
AfterEachCallback {
     // shared stack parts... use these directly from the tests
     public static final TestDataSources DATA_SOURCES;
     public static final AllTestsSchemaManager SCHEMAS;
-    public static final UnitDbAdapter UNIT_DB_ADAPTER;
 
     static {
         INJECTOR = DIBootstrap.createInjector(new RuntimeCaseModule());
@@ -79,11 +78,9 @@ public class CayenneTestsEnv implements BeforeEachCallback, 
AfterEachCallback {
                 INJECTOR.getInstance(DataSourceDescriptor.class),
                 INJECTOR.getInstance(AdhocObjectFactory.class));
 
-        UNIT_DB_ADAPTER = 
UnitDbAdapter.of(INJECTOR.getInstance(DbAdapter.class));
-
         SCHEMAS = new AllTestsSchemaManager(
                 DATA_SOURCES,
-                UNIT_DB_ADAPTER,
+                INJECTOR.getInstance(DbAdapter.class),
                 INJECTOR.getInstance(JdbcEventLogger.class),
                 INJECTOR.getInstance(DataMapLoader.class));
 
@@ -100,6 +97,7 @@ public class CayenneTestsEnv implements BeforeEachCallback, 
AfterEachCallback {
     private DbHelper dbHelper;
     private DbCleaner dbCleaner;
     private CayenneRuntime runtime;
+    private TestDbAdapter testDbAdapter;
 
     private CayenneTestsEnv(String project, Module[] extraModules, boolean 
autoClean, String retainStrategy) {
         this.project = project;
@@ -134,12 +132,16 @@ public class CayenneTestsEnv implements 
BeforeEachCallback, AfterEachCallback {
         this.runtime = buildRuntime();
         this.context = (DataContext) runtime.newContext();
 
-        DataNode node = 
runtime.getDataDomain().getDataNodes().iterator().next();
-        DataMap firstMap = 
context.getEntityResolver().getDataMaps().iterator().next();
+        DbAdapter firstAdapter = 
runtime.getDataDomain().getDataNodes().iterator().next().getAdapter();
+
+        this.testDbAdapter = TestDbAdapter.of(firstAdapter);
+
+        tweakProcedures(runtime, testDbAdapter);
+
         this.dbHelper = new FlavoredDbHelper(
                 DATA_SOURCES.sharedDataSource(),
-                node.getAdapter().getQuotingStrategy(),
-                firstMap);
+                firstAdapter.getQuotingStrategy(),
+                context.getEntityResolver().getDataMaps().iterator().next());
 
         this.dbCleaner = new DbCleaner(
                 SCHEMAS,
@@ -160,6 +162,7 @@ public class CayenneTestsEnv implements BeforeEachCallback, 
AfterEachCallback {
         this.dbHelper = null;
         this.dbCleaner = null;
         this.runtime = null;
+        this.testDbAdapter = null;
     }
 
     private CayenneRuntime buildRuntime() {
@@ -174,13 +177,11 @@ public class CayenneTestsEnv implements 
BeforeEachCallback, AfterEachCallback {
                 .build();
 
         synthesizeDataNodes(runtime);
-
         return runtime;
     }
 
-    private void synthesizeDataNodes(CayenneRuntime runtime) {
+    private static void synthesizeDataNodes(CayenneRuntime runtime) {
 
-        UnitDbAdapter unitDbAdapter = unitDbAdapter();
         DataDomain domain = runtime.getDataDomain();
         Injector runtimeInjector = runtime.getInjector();
 
@@ -211,11 +212,6 @@ public class CayenneTestsEnv implements 
BeforeEachCallback, AfterEachCallback {
             node.setSqlTemplateProcessor(sqlTemplateProcessor);
 
             node.addDataMap(dataMap);
-
-            for (Procedure proc : dataMap.getProcedures()) {
-                unitDbAdapter.tweakProcedure(proc);
-            }
-
             domain.addNode(node);
         }
 
@@ -224,6 +220,14 @@ public class CayenneTestsEnv implements 
BeforeEachCallback, AfterEachCallback {
         }
     }
 
+    private static void tweakProcedures(CayenneRuntime runtime, TestDbAdapter 
adapter) {
+        for (DataMap dataMap : runtime.getDataDomain().getDataMaps()) {
+            for (Procedure proc : dataMap.getProcedures()) {
+                adapter.tweakProcedure(proc);
+            }
+        }
+    }
+
     public DataContext context() {
         return context;
     }
@@ -240,8 +244,8 @@ public class CayenneTestsEnv implements BeforeEachCallback, 
AfterEachCallback {
         return runtime;
     }
 
-    public UnitDbAdapter unitDbAdapter() {
-        return INJECTOR.getInstance(UnitDbAdapter.class);
+    public TestDbAdapter testDbAdapter() {
+        return testDbAdapter;
     }
 
     public EntityResolver entityResolver() {
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/DB2UnitDbAdapter.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/DB2TestDbAdapter.java
similarity index 94%
rename from 
cayenne/src/test/java/org/apache/cayenne/unit/dba/DB2UnitDbAdapter.java
rename to 
cayenne/src/test/java/org/apache/cayenne/unit/dba/DB2TestDbAdapter.java
index 283e7504b..088fe372e 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/dba/DB2UnitDbAdapter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/dba/DB2TestDbAdapter.java
@@ -20,17 +20,15 @@
 
 package org.apache.cayenne.unit.dba;
 
-import java.sql.Connection;
-import java.util.Collection;
-
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.map.DataMap;
 
-/**
- */
-public class DB2UnitDbAdapter extends UnitDbAdapter {
+import java.sql.Connection;
+import java.util.Collection;
+
+public class DB2TestDbAdapter extends TestDbAdapter {
 
-    public DB2UnitDbAdapter(DbAdapter adapter) {
+    public DB2TestDbAdapter(DbAdapter adapter) {
         super(adapter);
     }
     
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/DerbyUnitDbAdapter.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/DerbyTestDbAdapter.java
similarity index 94%
rename from 
cayenne/src/test/java/org/apache/cayenne/unit/dba/DerbyUnitDbAdapter.java
rename to 
cayenne/src/test/java/org/apache/cayenne/unit/dba/DerbyTestDbAdapter.java
index 9147d67b4..08b8c045e 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/dba/DerbyUnitDbAdapter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/dba/DerbyTestDbAdapter.java
@@ -22,10 +22,7 @@ package org.apache.cayenne.unit.dba;
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.exp.parser.ASTExtract;
 
-/**
- * 
- */
-public class DerbyUnitDbAdapter extends UnitDbAdapter {
+public class DerbyTestDbAdapter extends TestDbAdapter {
 
     static {
         // as of Derby 10.1 Alpha, this is needed for Mac OS X:
@@ -33,7 +30,7 @@ public class DerbyUnitDbAdapter extends UnitDbAdapter {
         System.setProperty("derby.storage.fileSyncTransactionLog", "true");
     }
 
-    public DerbyUnitDbAdapter(DbAdapter adapter) {
+    public DerbyTestDbAdapter(DbAdapter adapter) {
         super(adapter);
     }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/FirebirdUnitDbAdapter.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/FirebirdTestDbAdapter.java
similarity index 93%
rename from 
cayenne/src/test/java/org/apache/cayenne/unit/dba/FirebirdUnitDbAdapter.java
rename to 
cayenne/src/test/java/org/apache/cayenne/unit/dba/FirebirdTestDbAdapter.java
index 63b5c8c1e..5cacecf96 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/FirebirdUnitDbAdapter.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/FirebirdTestDbAdapter.java
@@ -21,9 +21,9 @@ package org.apache.cayenne.unit.dba;
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.map.DbEntity;
 
-public class FirebirdUnitDbAdapter extends UnitDbAdapter {
+public class FirebirdTestDbAdapter extends TestDbAdapter {
 
-    public FirebirdUnitDbAdapter(DbAdapter adapter) {
+    public FirebirdTestDbAdapter(DbAdapter adapter) {
         super(adapter);
     }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/FrontBaseUnitDbAdapter.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/FrontBaseTestDbAdapter.java
similarity index 83%
rename from 
cayenne/src/test/java/org/apache/cayenne/unit/dba/FrontBaseUnitDbAdapter.java
rename to 
cayenne/src/test/java/org/apache/cayenne/unit/dba/FrontBaseTestDbAdapter.java
index 04ba091df..a558383bf 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/FrontBaseUnitDbAdapter.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/FrontBaseTestDbAdapter.java
@@ -19,18 +19,16 @@
 
 package org.apache.cayenne.unit.dba;
 
-import java.sql.Connection;
-import java.util.Collection;
-
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.exp.parser.ASTExtract;
 import org.apache.cayenne.map.DataMap;
 
-/**
- */
-public class FrontBaseUnitDbAdapter extends UnitDbAdapter {
+import java.sql.Connection;
+import java.util.Collection;
+
+public class FrontBaseTestDbAdapter extends TestDbAdapter {
 
-    public FrontBaseUnitDbAdapter(DbAdapter adapter) {
+    public FrontBaseTestDbAdapter(DbAdapter adapter) {
         super(adapter);
     }
 
@@ -60,15 +58,6 @@ public class FrontBaseUnitDbAdapter extends UnitDbAdapter {
         return false;
     }
 
-    @Override
-    public boolean supportsHaving() {
-        // FrontBase DOES support HAVING, however it doesn't support aggegate 
expressions
-        // in HAVING, and requires using column aliases instead. As HAVING is 
used for old
-        // and ugly derived DbEntities, no point in implementing special 
support at the
-        // adapter level.
-        return false;
-    }
-
     @Override
     public boolean supportsCaseInsensitiveOrder() {
         // TODO, Andrus 11/8/2005: FrontBase does support UPPER() in ordering 
clause,
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/H2UnitDbAdapter.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/H2TestDbAdapter.java
similarity index 92%
rename from 
cayenne/src/test/java/org/apache/cayenne/unit/dba/H2UnitDbAdapter.java
rename to cayenne/src/test/java/org/apache/cayenne/unit/dba/H2TestDbAdapter.java
index cf0f881aa..79817b4a1 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/dba/H2UnitDbAdapter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/dba/H2TestDbAdapter.java
@@ -22,9 +22,9 @@ package org.apache.cayenne.unit.dba;
 import org.apache.cayenne.dba.DbAdapter;
 
 
-public class H2UnitDbAdapter extends UnitDbAdapter {
+public class H2TestDbAdapter extends TestDbAdapter {
 
-    public H2UnitDbAdapter(DbAdapter adapter) {
+    public H2TestDbAdapter(DbAdapter adapter) {
         super(adapter);
     }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/HSQLDBUnitDbAdapter.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/HSQLDBTestDbAdapter.java
similarity index 92%
rename from 
cayenne/src/test/java/org/apache/cayenne/unit/dba/HSQLDBUnitDbAdapter.java
rename to 
cayenne/src/test/java/org/apache/cayenne/unit/dba/HSQLDBTestDbAdapter.java
index 44d7a0e34..25da80230 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/dba/HSQLDBUnitDbAdapter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/dba/HSQLDBTestDbAdapter.java
@@ -24,9 +24,9 @@ import org.apache.cayenne.map.DataMap;
 
 import java.sql.Connection;
 
-public class HSQLDBUnitDbAdapter extends UnitDbAdapter {
+public class HSQLDBTestDbAdapter extends TestDbAdapter {
 
-    public HSQLDBUnitDbAdapter(DbAdapter adapter) {
+    public HSQLDBTestDbAdapter(DbAdapter adapter) {
         super(adapter);
     }
 
@@ -45,11 +45,6 @@ public class HSQLDBUnitDbAdapter extends UnitDbAdapter {
         return false;
     }
 
-    @Override
-    public boolean supportsHaving() {
-        return false;
-    }
-
     @Override
     public void createdTables(Connection con, DataMap map) throws Exception {
         if (map.getProcedureMap().containsKey("cayenne_tst_select_proc")) {
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/IngresUnitDbAdapter.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/IngresTestDbAdapter.java
similarity index 82%
rename from 
cayenne/src/test/java/org/apache/cayenne/unit/dba/IngresUnitDbAdapter.java
rename to 
cayenne/src/test/java/org/apache/cayenne/unit/dba/IngresTestDbAdapter.java
index d1228253a..f81379c9e 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/dba/IngresUnitDbAdapter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/dba/IngresTestDbAdapter.java
@@ -21,19 +21,11 @@ package org.apache.cayenne.unit.dba;
 
 import org.apache.cayenne.dba.DbAdapter;
 
-/**
- * Ingress doesn't support sorting by an aggregate expression (ORDER BY 
COUNT(some_field))
- */
-public class IngresUnitDbAdapter extends UnitDbAdapter {
+public class IngresTestDbAdapter extends TestDbAdapter {
 
-    public IngresUnitDbAdapter(DbAdapter adapter) {
+    public IngresTestDbAdapter(DbAdapter adapter) {
         super(adapter);
     }
-//    
-//    @Override
-//    public boolean supportsFKConstraints() {
-//        return false;
-//    }
     
     @Override
     public boolean supportsBoolean() {
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/MySQLUnitDbAdapter.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/MySQLTestDbAdapter.java
similarity index 97%
rename from 
cayenne/src/test/java/org/apache/cayenne/unit/dba/MySQLUnitDbAdapter.java
rename to 
cayenne/src/test/java/org/apache/cayenne/unit/dba/MySQLTestDbAdapter.java
index a971cfab5..ec8d4a989 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/dba/MySQLUnitDbAdapter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/dba/MySQLTestDbAdapter.java
@@ -28,16 +28,14 @@ import java.sql.Connection;
 import java.util.Arrays;
 import java.util.Collection;
 
-/**
- */
-public class MySQLUnitDbAdapter extends UnitDbAdapter {
+public class MySQLTestDbAdapter extends TestDbAdapter {
 
     static final Collection<String> NO_CONSTRAINTS_TABLES = Arrays.asList(
             "REFLEXIVE_AND_TO_ONE",
             "ARTGROUP",
             "FK_OF_DIFFERENT_TYPE");
 
-    public MySQLUnitDbAdapter(DbAdapter adapter) {
+    public MySQLTestDbAdapter(DbAdapter adapter) {
         super(adapter);
     }
     
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/OpenBaseUnitDbAdapter.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/OpenBaseUnitDbAdapter.java
deleted file mode 100644
index 4f79138f2..000000000
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/OpenBaseUnitDbAdapter.java
+++ /dev/null
@@ -1,58 +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
- *
- *    https://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.cayenne.unit.dba;
-
-import java.sql.Connection;
-import java.util.Collection;
-
-import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.map.DataMap;
-
-/**
- */
-public class OpenBaseUnitDbAdapter extends UnitDbAdapter {
-
-    public OpenBaseUnitDbAdapter(DbAdapter adapter) {
-        super(adapter);
-    }
-
-    @Override
-    public void willDropTables(Connection conn, DataMap map, Collection 
tablesToDrop)
-            throws Exception {
-        // avoid dropping constraints...
-    }
-
-    @Override
-    public boolean supportsHaving() {
-        return false;
-    }
-
-    @Override
-    public boolean supportsReverseComparison() {
-        // TODO: andrus, 7/1/2007 I am trying to follow up with openbase on 
this...
-        return false;
-    }
-
-    @Override
-    public boolean supportNullRowForAggregateFunctions() {
-        // TODO: andrus, 7/1/2007 I am trying to follow up with openbase on 
this...
-        return false;
-    }
-}
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/OracleUnitDbAdapter.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/OracleTestDbAdapter.java
similarity index 95%
rename from 
cayenne/src/test/java/org/apache/cayenne/unit/dba/OracleUnitDbAdapter.java
rename to 
cayenne/src/test/java/org/apache/cayenne/unit/dba/OracleTestDbAdapter.java
index af11f47ac..ea3d05134 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/dba/OracleUnitDbAdapter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/dba/OracleTestDbAdapter.java
@@ -35,16 +35,9 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 
-/**
- */
-public class OracleUnitDbAdapter extends UnitDbAdapter {
+public class OracleTestDbAdapter extends TestDbAdapter {
 
-    /**
-     * Constructor for OracleDelegate.
-     * 
-     * @param adapter
-     */
-    public OracleUnitDbAdapter(DbAdapter adapter) {
+    public OracleTestDbAdapter(DbAdapter adapter) {
         super(adapter);
     }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/PostgresUnitDbAdapter.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/PostgresTestDbAdapter.java
similarity index 95%
rename from 
cayenne/src/test/java/org/apache/cayenne/unit/dba/PostgresUnitDbAdapter.java
rename to 
cayenne/src/test/java/org/apache/cayenne/unit/dba/PostgresTestDbAdapter.java
index c87669fd1..00b788ed7 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/PostgresUnitDbAdapter.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/PostgresTestDbAdapter.java
@@ -25,9 +25,9 @@ import org.apache.cayenne.map.DataMap;
 import java.sql.Connection;
 import java.util.Collection;
 
-public class PostgresUnitDbAdapter extends UnitDbAdapter {
+public class PostgresTestDbAdapter extends TestDbAdapter {
 
-    public PostgresUnitDbAdapter(DbAdapter adapter) {
+    public PostgresTestDbAdapter(DbAdapter adapter) {
         super(adapter);
     }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/SQLServerUnitDbAdapter.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/SQLServerTestDbAdapter.java
similarity index 93%
rename from 
cayenne/src/test/java/org/apache/cayenne/unit/dba/SQLServerUnitDbAdapter.java
rename to 
cayenne/src/test/java/org/apache/cayenne/unit/dba/SQLServerTestDbAdapter.java
index 25ff25132..af59a5da9 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/SQLServerUnitDbAdapter.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/SQLServerTestDbAdapter.java
@@ -25,9 +25,9 @@ import org.apache.cayenne.map.DataMap;
 import java.sql.Connection;
 import java.util.Collection;
 
-public class SQLServerUnitDbAdapter extends SybaseUnitDbAdapter {
+public class SQLServerTestDbAdapter extends SybaseTestDbAdapter {
 
-    public SQLServerUnitDbAdapter(DbAdapter adapter) {
+    public SQLServerTestDbAdapter(DbAdapter adapter) {
         super(adapter);
     }
 
@@ -37,7 +37,7 @@ public class SQLServerUnitDbAdapter extends 
SybaseUnitDbAdapter {
     }
 
     @Override
-    public void willCreateTables(Connection con, DataMap map) throws Exception 
{
+    public void willCreateTables(Connection con, DataMap map) {
     }
 
     @Override
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/SQLiteUnitDbAdapter.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/SQLiteTestDbAdapter.java
similarity index 92%
rename from 
cayenne/src/test/java/org/apache/cayenne/unit/dba/SQLiteUnitDbAdapter.java
rename to 
cayenne/src/test/java/org/apache/cayenne/unit/dba/SQLiteTestDbAdapter.java
index 833d44fda..d471c5783 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/dba/SQLiteUnitDbAdapter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/dba/SQLiteTestDbAdapter.java
@@ -20,9 +20,9 @@ package org.apache.cayenne.unit.dba;
 
 import org.apache.cayenne.dba.DbAdapter;
 
-public class SQLiteUnitDbAdapter extends UnitDbAdapter {
+public class SQLiteTestDbAdapter extends TestDbAdapter {
 
-    public SQLiteUnitDbAdapter(DbAdapter adapter) {
+    public SQLiteTestDbAdapter(DbAdapter adapter) {
         super(adapter);
     }
     
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/SybaseUnitDbAdapter.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/SybaseTestDbAdapter.java
similarity index 91%
rename from 
cayenne/src/test/java/org/apache/cayenne/unit/dba/SybaseUnitDbAdapter.java
rename to 
cayenne/src/test/java/org/apache/cayenne/unit/dba/SybaseTestDbAdapter.java
index 1ea57fa3e..f91cccf25 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/dba/SybaseUnitDbAdapter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/dba/SybaseTestDbAdapter.java
@@ -29,14 +29,11 @@ import java.sql.ResultSet;
 import java.sql.Statement;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Iterator;
 import java.util.List;
 
-/**
- */
-public class SybaseUnitDbAdapter extends UnitDbAdapter {
+public class SybaseTestDbAdapter extends TestDbAdapter {
 
-       public SybaseUnitDbAdapter(DbAdapter adapter) {
+       public SybaseTestDbAdapter(DbAdapter adapter) {
                super(adapter);
        }
 
@@ -65,7 +62,7 @@ public class SybaseUnitDbAdapter extends UnitDbAdapter {
        }
 
        @Override
-       public void willCreateTables(Connection con, DataMap map) throws 
Exception {
+       public void willCreateTables(Connection con, DataMap map) {
 
                // Sybase does not support NULLable BIT columns...
                DbEntity e = map.getDbEntity("PRIMITIVES_TEST");
@@ -107,10 +104,9 @@ public class SybaseUnitDbAdapter extends UnitDbAdapter {
        @Override
        public void willDropTables(Connection con, DataMap map, Collection 
tablesToDrop) throws Exception {
 
-               Iterator it = tablesToDrop.iterator();
-               while (it.hasNext()) {
-                       dropConstraints(con, (String) it.next());
-               }
+        for (Object o : tablesToDrop) {
+            dropConstraints(con, (String) o);
+        }
 
                dropProcedures(con, map);
        }
@@ -128,11 +124,11 @@ public class SybaseUnitDbAdapter extends UnitDbAdapter {
        protected void dropConstraints(Connection con, String tableName) throws 
Exception {
                List<String> names = new ArrayList<>(3);
 
-               try (Statement select = con.createStatement();) {
+               try (Statement select = con.createStatement()) {
 
                        try (ResultSet rs = select.executeQuery("SELECT t0.name 
"
                                        + "FROM sysobjects t0, sysconstraints 
t1, sysobjects t2 "
-                                       + "WHERE t0.id = t1.constrid and 
t1.tableid = t2.id and t2.name = '" + tableName + "'");) {
+                                       + "WHERE t0.id = t1.constrid and 
t1.tableid = t2.id and t2.name = '" + tableName + "'")) {
 
                                while (rs.next()) {
                                        names.add(rs.getString("name"));
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/dba/UnitDbAdapter.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/dba/TestDbAdapter.java
similarity index 87%
rename from cayenne/src/test/java/org/apache/cayenne/unit/dba/UnitDbAdapter.java
rename to cayenne/src/test/java/org/apache/cayenne/unit/dba/TestDbAdapter.java
index 0a9c905a3..aceb813fc 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/dba/UnitDbAdapter.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/dba/TestDbAdapter.java
@@ -64,43 +64,41 @@ import java.util.Objects;
  * differently. Many things implemented in subclasses may become future
  * candidates for inclusion in the corresponding adapter code.
  */
-public abstract class UnitDbAdapter {
+public abstract class TestDbAdapter {
 
-    private static final Logger LOGGER = 
LoggerFactory.getLogger(UnitDbAdapter.class);
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(TestDbAdapter.class);
 
-    public static UnitDbAdapter of(DbAdapter adapter) {
+    public static TestDbAdapter of(DbAdapter adapter) {
+
+        DbAdapter realAdapter = adapter.unwrap();
 
         // the order of cases is important due to random adapter subclasses
-        return switch (adapter) {
-            case FirebirdAdapter a -> new FirebirdUnitDbAdapter(a);
-            case Oracle8Adapter a -> new OracleUnitDbAdapter(a);
-            case OracleAdapter a -> new OracleUnitDbAdapter(a);
-            case DerbyAdapter a -> new DerbyUnitDbAdapter(a);
-            case SQLServerAdapter a -> new SQLServerUnitDbAdapter(a);
-            case SybaseAdapter a -> new SybaseUnitDbAdapter(a);
-            case MySQLAdapter a -> new MySQLUnitDbAdapter(a);
-            case PostgresAdapter a -> new PostgresUnitDbAdapter(a);
-            case DB2Adapter a -> new DB2UnitDbAdapter(a);
-            case HSQLDBAdapter a -> new HSQLDBUnitDbAdapter(a);
-            case H2Adapter a -> new H2UnitDbAdapter(a);
-            case FrontBaseAdapter a -> new FrontBaseUnitDbAdapter(a);
-            case IngresAdapter a -> new IngresUnitDbAdapter(a);
-            case SQLiteAdapter a -> new SQLiteUnitDbAdapter(a);
-
-            default -> throw new IllegalStateException("Unmapped adapter type: 
" + adapter.getClass().getName());
+        return switch (realAdapter) {
+            case FirebirdAdapter a -> new FirebirdTestDbAdapter(a);
+            case Oracle8Adapter a -> new OracleTestDbAdapter(a);
+            case OracleAdapter a -> new OracleTestDbAdapter(a);
+            case DerbyAdapter a -> new DerbyTestDbAdapter(a);
+            case SQLServerAdapter a -> new SQLServerTestDbAdapter(a);
+            case SybaseAdapter a -> new SybaseTestDbAdapter(a);
+            case MySQLAdapter a -> new MySQLTestDbAdapter(a);
+            case PostgresAdapter a -> new PostgresTestDbAdapter(a);
+            case DB2Adapter a -> new DB2TestDbAdapter(a);
+            case HSQLDBAdapter a -> new HSQLDBTestDbAdapter(a);
+            case H2Adapter a -> new H2TestDbAdapter(a);
+            case FrontBaseAdapter a -> new FrontBaseTestDbAdapter(a);
+            case IngresAdapter a -> new IngresTestDbAdapter(a);
+            case SQLiteAdapter a -> new SQLiteTestDbAdapter(a);
+
+            default -> throw new IllegalStateException("Unmapped adapter type: 
" + realAdapter.getClass().getName());
         };
     }
 
     protected final DbAdapter adapter;
 
-    protected UnitDbAdapter(DbAdapter adapter) {
+    protected TestDbAdapter(DbAdapter adapter) {
         this.adapter = Objects.requireNonNull(adapter);
     }
 
-    public DbAdapter getAdapter() {
-        return adapter;
-    }
-
     public boolean supportsPKGeneratorConcurrency() {
         return true;
     }
@@ -249,10 +247,6 @@ public abstract class UnitDbAdapter {
         return true;
     }
 
-    public boolean supportsHaving() {
-        return true;
-    }
-
     public boolean supportsCaseInsensitiveOrder() {
         return true;
     }
@@ -286,7 +280,7 @@ public abstract class UnitDbAdapter {
      * database.
      */
     private String ddlString(String database, String name) {
-        StringBuffer location = new StringBuffer();
+        StringBuilder location = new StringBuilder();
         location.append("ddl/").append(database).append("/").append(name);
 
         InputStream resource = 
Thread.currentThread().getContextClassLoader().getResourceAsStream(location.toString());
@@ -296,7 +290,7 @@ public abstract class UnitDbAdapter {
         }
 
         BufferedReader in = new BufferedReader(new 
InputStreamReader(resource));
-        StringBuffer buf = new StringBuffer();
+        StringBuilder buf = new StringBuilder();
         try {
             String line;
             while ((line = in.readLine()) != null) {
@@ -345,13 +339,9 @@ public abstract class UnitDbAdapter {
                     String fkTable = rs.getString("FKTABLE_NAME");
 
                     if (fk != null && fkTable != null) {
-                        Collection<String> constraints = 
constraintMap.get(fkTable);
-                        if (constraints == null) {
-                            // use a set to avoid duplicate constraints
-                            constraints = new HashSet<String>();
-                            constraintMap.put(fkTable, constraints);
-                        }
-
+                        Collection<String> constraints = constraintMap
+                                .computeIfAbsent(fkTable, k -> new 
HashSet<String>());
+                        // use a set to avoid duplicate constraints
                         constraints.add(strategy.quotedIdentifier(entity, fk));
                     }
                 }
diff --git a/cayenne/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java
index c45397594..69b085c28 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/jira/CAY_115IT.java
@@ -25,7 +25,7 @@ import org.apache.cayenne.exp.ExpressionFactory;
 import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.test.jdbc.TableHelper;
 import org.apache.cayenne.testdo.relationships_clob.ClobMaster;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.BeforeEach;
@@ -44,7 +44,7 @@ public class CAY_115IT {
     static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.RELATIONSHIPS_CLOB_PROJECT);
 
     protected DataContext context;
-    protected UnitDbAdapter accessStackAdapter;
+    protected TestDbAdapter accessStackAdapter;
 
     protected TableHelper tClobMaster;
     protected TableHelper tClobDetail;
@@ -52,7 +52,7 @@ public class CAY_115IT {
     @BeforeEach
     public void setUp() throws Exception {
         context = env.context();
-        accessStackAdapter = env.unitDbAdapter();
+        accessStackAdapter = env.testDbAdapter();
         tClobMaster = env.table("CLOB_MASTER", "CLOB_MASTER_ID", 
"CLOB_COLUMN", "NAME");
         
         tClobDetail = env.table("CLOB_DETAIL", "CLOB_DETAIL_ID", 
"CLOB_MASTER_ID", "NAME");
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/AllTestsSchemaManager.java
 
b/cayenne/src/test/java/org/apache/cayenne/unit/runtime/AllTestsSchemaManager.java
index b343ec5d8..b4f8de24a 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/AllTestsSchemaManager.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/unit/runtime/AllTestsSchemaManager.java
@@ -38,7 +38,7 @@ import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.Procedure;
 import org.apache.cayenne.resource.URLResource;
 import org.apache.cayenne.unit.TestDataSources;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
+import org.apache.cayenne.unit.dba.TestDbAdapter;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -87,22 +87,22 @@ public class AllTestsSchemaManager {
     private static final Set<String> EXTRA_EXCLUDED_FOR_NO_NATIVE_JSON = 
Set.of("JSON_OTHER");
 
     private final TestDataSources dataSourceFactory;
-    private final UnitDbAdapter unitDbAdapter;
+    private final TestDbAdapter testDbAdapter;
     private final JdbcEventLogger jdbcEventLogger;
     private final DataDomain domain;
 
     public AllTestsSchemaManager(
             TestDataSources dataSourceFactory,
-            UnitDbAdapter unitDbAdapter,
+            DbAdapter dbAdapter,
             JdbcEventLogger jdbcEventLogger,
             DataMapLoader loader) {
 
         this.dataSourceFactory = dataSourceFactory;
-        this.unitDbAdapter = unitDbAdapter;
+        this.testDbAdapter = TestDbAdapter.of(dbAdapter);
         this.jdbcEventLogger = jdbcEventLogger;
 
         // TODO: just create a normal CayenneRuntime with all the defaults
-        this.domain = initDomain(loader, unitDbAdapter.getAdapter());
+        this.domain = initDomain(loader, dbAdapter);
     }
 
     private DataDomain initDomain(DataMapLoader loader, DbAdapter dbAdapter) {
@@ -127,7 +127,7 @@ public class AllTestsSchemaManager {
         
         // tweak mapping with a delegate
         for (Procedure proc : map.getProcedures()) {
-            unitDbAdapter.tweakProcedure(proc);
+            testDbAdapter.tweakProcedure(proc);
         }
         filterDataMap(map);
 
@@ -164,7 +164,7 @@ public class AllTestsSchemaManager {
     }
 
     private void filterDataMap(DataMap map) {
-        boolean supportsBinaryPK = unitDbAdapter.supportsBinaryPK();
+        boolean supportsBinaryPK = testDbAdapter.supportsBinaryPK();
 
         if (supportsBinaryPK) {
             return;
@@ -259,9 +259,9 @@ public class AllTestsSchemaManager {
     private List<DbEntity> excludeEntities(Collection<DbEntity> entities) {
         // exclude various unsupported tests...
 
-        boolean excludeLOB = !unitDbAdapter.supportsLobs();
-        boolean excludeNativeJson = !unitDbAdapter.supportsJsonType();
-        boolean excludeBinaryPK = !unitDbAdapter.supportsBinaryPK();
+        boolean excludeLOB = !testDbAdapter.supportsLobs();
+        boolean excludeNativeJson = !testDbAdapter.supportsJsonType();
+        boolean excludeBinaryPK = !testDbAdapter.supportsBinaryPK();
         if (!excludeLOB && !excludeNativeJson && !excludeBinaryPK) {
             return Collections.emptyList();
         }
@@ -328,7 +328,7 @@ public class AllTestsSchemaManager {
                 }
             }
 
-            unitDbAdapter.willDropTables(conn, map, allTables);
+            testDbAdapter.willDropTables(conn, map, allTables);
 
             // drop all tables in the map
             try (Statement stmt = conn.createStatement()) {
@@ -366,7 +366,7 @@ public class AllTestsSchemaManager {
     private void createSchema(DataNode node, DataMap map) throws Exception {
 
         try (Connection conn = 
dataSourceFactory.sharedDataSource().getConnection()) {
-            unitDbAdapter.willCreateTables(conn, map);
+            testDbAdapter.willCreateTables(conn, map);
             try (Statement stmt = conn.createStatement()) {
 
                 for (String query : tableCreateQueries(node, map)) {
@@ -374,7 +374,7 @@ public class AllTestsSchemaManager {
                     stmt.execute(query);
                 }
             }
-            unitDbAdapter.createdTables(conn, map);
+            testDbAdapter.createdTables(conn, map);
         }
     }
 
@@ -396,7 +396,7 @@ public class AllTestsSchemaManager {
 
         // FK constraints
         for (DbEntity ent : orderedEntities) {
-            if (!unitDbAdapter.supportsFKConstraints(ent)) {
+            if (!testDbAdapter.supportsFKConstraints(ent)) {
                 continue;
             }
 
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/RuntimeCaseModule.java 
b/cayenne/src/test/java/org/apache/cayenne/unit/runtime/RuntimeCaseModule.java
index 7889557f3..8f564ce84 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/RuntimeCaseModule.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/unit/runtime/RuntimeCaseModule.java
@@ -95,20 +95,12 @@ public class RuntimeCaseModule implements Module {
 
     public void configure(Binder binder) {
 
-        // these are the objects injectable in unit tests that subclass from 
RuntimeCase.
-
-
-
         
binder.bind(PkGeneratorFactoryProvider.class).to(PkGeneratorFactoryProvider.class);
         binder.bind(PkGenerator.class).to(JdbcPkGenerator.class);
 
         new RuntimeCaseModuleExtender(binder)
                 .initAllExtensions()
 
-                // Use soft references instead of default weak.
-                // Should remove problems with random-failing tests (those 
that are GC-sensitive).
-                .setProperty(Constants.OBJECT_RETAIN_STRATEGY_PROPERTY, "soft")
-
                 .addPkGenerator(DB2Adapter.class, DB2PkGenerator.class)
                 .addPkGenerator(DerbyAdapter.class, DerbyPkGenerator.class)
                 .addPkGenerator(FrontBaseAdapter.class, 
FrontBasePkGenerator.class)
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/UnitDbAdapterProvider.java
 
b/cayenne/src/test/java/org/apache/cayenne/unit/runtime/UnitDbAdapterProvider.java
deleted file mode 100644
index 37db3e6d9..000000000
--- 
a/cayenne/src/test/java/org/apache/cayenne/unit/runtime/UnitDbAdapterProvider.java
+++ /dev/null
@@ -1,83 +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
- *
- *    https://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.cayenne.unit.runtime;
-
-import org.apache.cayenne.CayenneRuntimeException;
-import org.apache.cayenne.ConfigurationException;
-import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.di.Inject;
-import org.apache.cayenne.di.Injector;
-import org.apache.cayenne.di.Provider;
-import org.apache.cayenne.unit.dba.UnitDbAdapter;
-import org.apache.cayenne.util.Util;
-
-import java.lang.reflect.Constructor;
-import java.util.Map;
-
-public class UnitDbAdapterProvider implements Provider<UnitDbAdapter> {
-
-    static final String TEST_ADAPTERS_MAP = 
"org.apache.cayenne.unit.di.server.CayenneResourcesAccessStackAdapterProvider.adapters";
-
-    private final Injector injector;
-    private final DbAdapter adapter;
-    private final Map<String, String> adapterTypesMap;
-
-    public UnitDbAdapterProvider(
-            @Inject(TEST_ADAPTERS_MAP) Map<String, String> adapterTypesMap,
-            @Inject DbAdapter adapter,
-            @Inject Injector injector) {
-        this.adapterTypesMap = adapterTypesMap;
-        this.adapter = adapter;
-        this.injector = injector;
-    }
-
-    public UnitDbAdapter get() throws ConfigurationException {
-
-        String testAdapterType = adapterTypesMap
-                .get(adapter.getClass().getName());
-        if (testAdapterType == null) {
-            throw new IllegalStateException("Unmapped adapter type: " + 
adapter.getClass().getName());
-        }
-
-        Class<UnitDbAdapter> type;
-        try {
-            type = (Class<UnitDbAdapter>) Util.getJavaClass(testAdapterType);
-        } catch (ClassNotFoundException e) {
-            throw new CayenneRuntimeException(
-                    "Invalid class %s of type AccessStackAdapter",
-                    e,
-                    testAdapterType);
-        }
-
-        if (!UnitDbAdapter.class.isAssignableFrom(type)) {
-            throw new CayenneRuntimeException(
-                    "Class %s is not assignable to AccessStackAdapter",
-                    testAdapterType);
-        }
-
-        try {
-            Constructor<UnitDbAdapter> c = 
type.getConstructor(DbAdapter.class);
-            UnitDbAdapter unitAdapter = c.newInstance(adapter);
-            injector.injectMembers(unitAdapter);
-            return unitAdapter;
-        } catch (Exception e) {
-            throw new ConfigurationException("Error instantiating " + 
testAdapterType, e);
-        }
-    }
-}
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/value/json/JsonTypeIT.java 
b/cayenne/src/test/java/org/apache/cayenne/value/json/JsonTypeIT.java
index b2759d53b..46cb2a2c1 100644
--- a/cayenne/src/test/java/org/apache/cayenne/value/json/JsonTypeIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/value/json/JsonTypeIT.java
@@ -650,7 +650,7 @@ public class JsonTypeIT {
 
     private void testJson(String jsonString) {
         testJsonVarchar(jsonString);
-        if (env.unitDbAdapter().supportsJsonType()) {
+        if (env.testDbAdapter().supportsJsonType()) {
             testJsonOther(jsonString);
         }
     }


Reply via email to