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 0f7fdb51cab61226f4f4ad138d54ee492ff64c4b
Author: Andrus Adamchik <[email protected]>
AuthorDate: Fri May 15 18:13:41 2026 -0400

    Test cleanup...
    
    * using AutoAdapter for tests instead of manually matching the DB
---
 .../access/DataContextExtendedTypeOperationsIT.java    | 16 ++++++++++------
 .../org/apache/cayenne/access/DataContextExtrasIT.java |  3 ++-
 .../translator/batch/DeleteBatchTranslatorIT.java      |  3 ---
 .../translator/batch/InsertBatchTranslatorIT.java      |  2 --
 .../translator/batch/UpdateBatchTranslatorIT.java      |  8 ++------
 .../java/org/apache/cayenne/dba/AutoAdapterIT.java     | 14 ++++++--------
 .../java/org/apache/cayenne/unit/CayenneTestsEnv.java  | 18 ++++++++++++------
 .../cayenne/unit/runtime/AllTestsSchemaManager.java    |  6 +-----
 8 files changed, 33 insertions(+), 37 deletions(-)

diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextExtendedTypeOperationsIT.java
 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextExtendedTypeOperationsIT.java
index 0c61738dd..f89ba571d 100644
--- 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextExtendedTypeOperationsIT.java
+++ 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextExtendedTypeOperationsIT.java
@@ -18,30 +18,34 @@
  ****************************************************************/
 package org.apache.cayenne.access;
 
-import java.util.Arrays;
-
+import org.apache.cayenne.configuration.runtime.CoreModule;
 import org.apache.cayenne.query.CapsStrategy;
 import org.apache.cayenne.query.ObjectSelect;
 import org.apache.cayenne.query.SQLTemplate;
 import org.apache.cayenne.testdo.extended_type.ExtendedTypeEntity;
 import org.apache.cayenne.testdo.extended_type.StringET1;
-import org.apache.cayenne.unit.runtime.CayenneProjects;
+import org.apache.cayenne.testdo.extended_type.StringET1ExtendedType;
 import org.apache.cayenne.unit.CayenneTestsEnv;
+import org.apache.cayenne.unit.runtime.CayenneProjects;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
+import java.util.Arrays;
+
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 public class DataContextExtendedTypeOperationsIT {
 
     @RegisterExtension
-    static final CayenneTestsEnv env = 
CayenneTestsEnv.forProject(CayenneProjects.EXTENDED_TYPE_PROJECT);
+    static final CayenneTestsEnv env = CayenneTestsEnv
+            .forProject(CayenneProjects.EXTENDED_TYPE_PROJECT)
+            .withExtraModules(b ->  
CoreModule.extend(b).addUserExtendedType(StringET1ExtendedType.class));
 
     @Test
     public void storeExtendedType() {
         ExtendedTypeEntity e1 = 
env.context().newObject(ExtendedTypeEntity.class);
         e1.setName(new StringET1("X"));
-        e1.getObjectContext().commitChanges();
+        env.context().commitChanges();
 
         SQLTemplate checkQ = new SQLTemplate(
                 ExtendedTypeEntity.class,
@@ -62,7 +66,7 @@ public class DataContextExtendedTypeOperationsIT {
         ExtendedTypeEntity e3 = 
e1.getObjectContext().newObject(ExtendedTypeEntity.class);
         e3.setName(new StringET1("Z"));
 
-        e1.getObjectContext().commitChanges();
+        env.context().commitChanges();
 
         ObjectSelect<ExtendedTypeEntity> query = 
ObjectSelect.query(ExtendedTypeEntity.class)
                 .where(ExtendedTypeEntity.NAME.in(new StringET1("X"), new 
StringET1("Y")));
diff --git 
a/cayenne/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java 
b/cayenne/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java
index 6852efa4e..503fd3fee 100644
--- a/cayenne/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/access/DataContextExtrasIT.java
@@ -25,6 +25,7 @@ import org.apache.cayenne.DataRow;
 import org.apache.cayenne.ObjectId;
 import org.apache.cayenne.PersistenceState;
 import org.apache.cayenne.Persistent;
+import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.JdbcAdapter;
 import org.apache.cayenne.dba.JdbcPkGenerator;
 import org.apache.cayenne.dba.PkGenerator;
@@ -263,7 +264,7 @@ public class DataContextExtrasIT {
                 .next()
                 .getAdapter()
                 .getPkGenerator();
-        JdbcAdapter adapter = (JdbcAdapter) domain
+        DbAdapter adapter = domain
                 .getDataNodes()
                 .iterator()
                 .next()
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 a351f11dd..e31dbcea1 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
@@ -117,7 +117,6 @@ public class DeleteBatchTranslatorIT {
             List<DbAttribute> idAttributes = 
Collections.singletonList(entity.getAttribute("LOCKING_TEST_ID"));
 
             DeleteBatchQuery deleteQuery = new DeleteBatchQuery(entity, 
idAttributes, Collections.emptySet(), 1);
-            JdbcAdapter adapter = (JdbcAdapter) this.adapter;
             DeleteBatchTranslator builder = new 
DeleteBatchTranslator(deleteQuery, adapter);
             String generatedSql = builder.getSql();
 
@@ -148,8 +147,6 @@ public class DeleteBatchTranslatorIT {
 
             DeleteBatchQuery deleteQuery = new DeleteBatchQuery(entity, 
idAttributes, nullAttributes, 1);
 
-            JdbcAdapter adapter = (JdbcAdapter) this.adapter;
-
             DeleteBatchTranslator builder = new 
DeleteBatchTranslator(deleteQuery, adapter);
             String generatedSql = builder.getSql();
 
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 b4471a522..46542bb76 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
@@ -91,8 +91,6 @@ public class InsertBatchTranslatorIT {
 
             entity.getDataMap().setQuotingSQLIdentifiers(true);
 
-            JdbcAdapter adapter = (JdbcAdapter) this.adapter;
-
             InsertBatchQuery insertQuery = new InsertBatchQuery(entity, 1);
             InsertBatchTranslator builder = new 
InsertBatchTranslator(insertQuery, adapter);
             String generatedSql = builder.getSql();
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 a5a25c8df..37a73e80d 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
@@ -121,9 +121,7 @@ public class UpdateBatchTranslatorIT {
             List<DbAttribute> idAttributes = 
Collections.singletonList(entity.getAttribute("LOCKING_TEST_ID"));
             List<DbAttribute> updatedAttributes = 
Collections.singletonList(entity.getAttribute("DESCRIPTION"));
 
-            UpdateBatchQuery updateQuery = new UpdateBatchQuery(entity, 
idAttributes, updatedAttributes,
-                    Collections.emptySet(), 1);
-            JdbcAdapter adapter = (JdbcAdapter) this.adapter;
+            UpdateBatchQuery updateQuery = new UpdateBatchQuery(entity, 
idAttributes, updatedAttributes, Collections.emptySet(), 1);
 
             UpdateBatchTranslator builder = new 
UpdateBatchTranslator(updateQuery, adapter);
             String generatedSql = builder.getSql();
@@ -153,9 +151,7 @@ public class UpdateBatchTranslatorIT {
 
             Collection<String> nullAttributes = Collections.singleton("NAME");
 
-            UpdateBatchQuery updateQuery = new UpdateBatchQuery(entity, 
idAttributes, updatedAttributes,
-                    nullAttributes, 1);
-            JdbcAdapter adapter = (JdbcAdapter) this.adapter;
+            UpdateBatchQuery updateQuery = new UpdateBatchQuery(entity, 
idAttributes, updatedAttributes, nullAttributes, 1);
 
             UpdateBatchTranslator builder = new 
UpdateBatchTranslator(updateQuery, adapter);
             String generatedSql = builder.getSql();
diff --git a/cayenne/src/test/java/org/apache/cayenne/dba/AutoAdapterIT.java 
b/cayenne/src/test/java/org/apache/cayenne/dba/AutoAdapterIT.java
index 920237f4f..5d0c012d8 100644
--- a/cayenne/src/test/java/org/apache/cayenne/dba/AutoAdapterIT.java
+++ b/cayenne/src/test/java/org/apache/cayenne/dba/AutoAdapterIT.java
@@ -29,10 +29,7 @@ import org.apache.cayenne.unit.CayenneTestsEnv;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertFalse;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.junit.jupiter.api.Assertions.*;
 
 public class AutoAdapterIT {
 
@@ -48,16 +45,17 @@ public class AutoAdapterIT {
 
     @Test
     public void createSQLTemplateAction() {
-        AutoAdapter autoAdapter = new AutoAdapter(() -> 
env.dataNode().getAdapter(), NoopJdbcEventLogger.getInstance());
 
-        SQLTemplateAction action = (SQLTemplateAction) 
autoAdapter.getAction(new SQLTemplate(Artist.class,
-                "select * from artist"), env.dataNode());
+        assertInstanceOf(AutoAdapter.class, env.dataNode().getAdapter());
+        AutoAdapter autoAdapter = (AutoAdapter) env.dataNode().getAdapter();
+
+        SQLTemplateAction action = (SQLTemplateAction) autoAdapter
+                .getAction(new SQLTemplate(Artist.class, "select * from 
artist"), env.dataNode());
 
         // it is important for SQLTemplateAction to be used with unwrapped 
adapter,
         // as the adapter class name is used as a key to the correct SQL 
template.
         assertNotNull(action.getAdapter());
         assertFalse(action.getAdapter() instanceof AutoAdapter);
-        assertSame(env.dataNode().getAdapter(), action.getAdapter());
     }
 
     @Test
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 074793fa0..45210734c 100644
--- a/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java
+++ b/cayenne/src/test/java/org/apache/cayenne/unit/CayenneTestsEnv.java
@@ -28,8 +28,10 @@ import 
org.apache.cayenne.access.translator.batch.BatchTranslatorFactory;
 import org.apache.cayenne.access.translator.select.SelectTranslatorFactory;
 import org.apache.cayenne.configuration.Constants;
 import org.apache.cayenne.configuration.DataMapLoader;
+import org.apache.cayenne.configuration.DataNodeDescriptor;
 import org.apache.cayenne.configuration.DataSourceDescriptor;
 import org.apache.cayenne.configuration.runtime.CoreModule;
+import org.apache.cayenne.configuration.runtime.DbAdapterFactory;
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.di.AdhocObjectFactory;
 import org.apache.cayenne.di.Binder;
@@ -53,6 +55,7 @@ import org.junit.jupiter.api.extension.AfterEachCallback;
 import org.junit.jupiter.api.extension.BeforeEachCallback;
 import org.junit.jupiter.api.extension.ExtensionContext;
 
+import javax.sql.DataSource;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -183,17 +186,24 @@ public class CayenneTestsEnv implements 
BeforeEachCallback, AfterEachCallback {
         BatchTranslatorFactory batchTranslatorFactory = 
runtimeInjector.getInstance(BatchTranslatorFactory.class);
         SelectTranslatorFactory selectTranslatorFactory = 
runtimeInjector.getInstance(SelectTranslatorFactory.class);
         SQLTemplateProcessor sqlTemplateProcessor = 
runtimeInjector.getInstance(SQLTemplateProcessor.class);
-        DbAdapter adapter = runtimeInjector.getInstance(DbAdapter.class);
 
         DataNode lastNode = null;
         for (DataMap dataMap : domain.getDataMaps()) {
+
+            DataSource dataSource = DATA_SOURCES.dataSource(dataMap.getName());
+
             DataNode node = new TestTelemetryDataNode(dataMap.getName());
 
             node.setJdbcEventLogger(jdbcEventLogger);
             node.setRowReaderFactory(rowReaderFactory);
             node.setBatchTranslatorFactory(batchTranslatorFactory);
             node.setSelectTranslatorFactory(selectTranslatorFactory);
-            node.setDataSource(DATA_SOURCES.dataSource(dataMap.getName()));
+            node.setDataSource(dataSource);
+
+            // this gives us AutoAdapter
+            DbAdapter adapter = 
runtimeInjector.getInstance(DbAdapterFactory.class)
+                    .createAdapter(new DataNodeDescriptor(), dataSource);
+
             node.setAdapter(adapter);
             node.setSchemaUpdateStrategy(new SkipSchemaUpdateStrategy());
             node.setSqlTemplateProcessor(sqlTemplateProcessor);
@@ -278,10 +288,6 @@ public class CayenneTestsEnv implements 
BeforeEachCallback, AfterEachCallback {
         @Override
         public void configure(Binder binder) {
 
-            // TODO: factor it out of INJECTOR
-            // a fresh DbAdapter per call — RuntimeCaseDbAdapterProvider is 
unscoped in the test injector
-            binder.bind(DbAdapter.class).toProviderInstance(() -> 
INJECTOR.getInstance(DbAdapter.class));
-
             
binder.bind(UnitDbAdapter.class).toInstance(INJECTOR.getInstance(UnitDbAdapter.class));
             binder.bind(TestDataSources.class).toInstance(DATA_SOURCES);
 
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 12ca7dc28..367c222ce 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
@@ -37,7 +37,6 @@ import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.Procedure;
 import org.apache.cayenne.resource.URLResource;
-import org.apache.cayenne.testdo.extended_type.StringET1ExtendedType;
 import org.apache.cayenne.unit.TestDataSources;
 import org.apache.cayenne.unit.dba.UnitDbAdapter;
 import org.slf4j.Logger;
@@ -124,10 +123,7 @@ public class AllTestsSchemaManager {
         node.setJdbcEventLogger(jdbcEventLogger);
         node.setAdapter(dbAdapter);
         node.setDataSource(dataSourceFactory.sharedDataSource());
-
-        // setup test extended types
-        node.getAdapter().getExtendedTypes().registerType(new 
StringET1ExtendedType());
-
+        
         // tweak mapping with a delegate
         for (Procedure proc : map.getProcedures()) {
             unitDbAdapter.tweakProcedure(proc);

Reply via email to