From 09b90820198faa3c087c7a0cddb2b5fdebb2cf77 Mon Sep 17 00:00:00 2001 From: "hannes.oswald" Date: Mon, 17 Nov 2025 19:30:56 +0100 Subject: [PATCH 01/12] change tests --- transact/build.gradle.kts | 1 + .../java/dev/dbos/transact/RealBaseTest.java | 34 +++++++++++++++ .../dev/dbos/transact/client/ClientTest.java | 32 +++++--------- .../dev/dbos/transact/config/ConfigTest.java | 43 +++++-------------- .../transact/database/ExternalStateTest.java | 9 +--- .../transact/database/SystemDatabaseTest.java | 22 +++------- .../transact/execution/DBOSExecutorTest.java | 14 +----- .../transact/execution/LifecycleTest.java | 14 +----- .../execution/RecoveryServiceTest.java | 15 +------ .../transact/invocation/CustomSchemaTest.java | 11 ++--- .../invocation/DirectInvocationTest.java | 15 +------ .../transact/invocation/MultiInstTest.java | 20 ++------- .../invocation/StartWorkflowTest.java | 15 +------ .../transact/migrations/BackCompatTest.java | 24 ++++------- .../migrations/MigrationManagerTest.java | 10 ++--- .../transact/notifications/EventsTest.java | 15 +------ .../NotificationServiceTest.java | 16 +------ .../dev/dbos/transact/queue/QueuesTest.java | 17 +------- .../scheduled/SchedulerServiceTest.java | 15 +------ .../dev/dbos/transact/step/StepsTest.java | 15 +------ .../transact/workflow/AsyncWorkflowTest.java | 16 +------ .../workflow/QueueChildWorkflowTest.java | 16 +------ .../transact/workflow/SyncWorkflowTest.java | 16 +------ .../dbos/transact/workflow/TimeoutTest.java | 15 +------ .../transact/workflow/UnifiedProxyTest.java | 16 +------ .../transact/workflow/WorkflowMgmtTest.java | 16 +------ 26 files changed, 114 insertions(+), 338 deletions(-) create mode 100644 transact/src/test/java/dev/dbos/transact/RealBaseTest.java diff --git a/transact/build.gradle.kts b/transact/build.gradle.kts index 311d56b4..c74cf27f 100644 --- a/transact/build.gradle.kts +++ b/transact/build.gradle.kts @@ -43,6 +43,7 @@ dependencies { testImplementation("io.rest-assured:rest-assured:5.4.0") testImplementation("io.rest-assured:json-path:5.4.0") testImplementation("io.rest-assured:xml-path:5.4.0") + testImplementation("org.testcontainers:postgresql:1.21.3") } tasks.test { diff --git a/transact/src/test/java/dev/dbos/transact/RealBaseTest.java b/transact/src/test/java/dev/dbos/transact/RealBaseTest.java new file mode 100644 index 00000000..25f1a346 --- /dev/null +++ b/transact/src/test/java/dev/dbos/transact/RealBaseTest.java @@ -0,0 +1,34 @@ +package dev.dbos.transact; + +import dev.dbos.transact.config.DBOSConfig; + +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.testcontainers.containers.PostgreSQLContainer; + +public class RealBaseTest { + + protected static final PostgreSQLContainer postgres = new PostgreSQLContainer<>("postgres:18"); + + protected static DBOSConfig dbosConfig; + + @BeforeAll + static void onetimeSetup() throws Exception { + postgres.start(); + dbosConfig = + DBOSConfig.defaults("systemdbtest") + .withDatabaseUrl(postgres.getJdbcUrl()) + .withDbUser(postgres.getUsername()) + .withDbPassword(postgres.getPassword()) + .withMaximumPoolSize(2); + } + + @AfterAll + static void afterAll() { + postgres.stop(); + } + + protected DBOSClient getDBOSClient() { + return new DBOSClient(postgres.getJdbcUrl(), postgres.getUsername(), postgres.getPassword()); + } +} diff --git a/transact/src/test/java/dev/dbos/transact/client/ClientTest.java b/transact/src/test/java/dev/dbos/transact/client/ClientTest.java index d41e277a..2fb83e1a 100644 --- a/transact/src/test/java/dev/dbos/transact/client/ClientTest.java +++ b/transact/src/test/java/dev/dbos/transact/client/ClientTest.java @@ -8,7 +8,7 @@ import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSClient; import dev.dbos.transact.DBOSTestAccess; -import dev.dbos.transact.config.DBOSConfig; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.exceptions.DBOSAwaitedWorkflowCancelledException; import dev.dbos.transact.utils.DBUtils; @@ -21,28 +21,14 @@ import java.util.concurrent.TimeUnit; import com.zaxxer.hikari.HikariDataSource; +import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.*; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class ClientTest { - private static DBOSConfig dbosConfig; - private static final String dbUrl = "jdbc:postgresql://localhost:5432/dbos_java_sys"; - private static final String dbUser = "postgres"; - private static final String dbPassword = System.getenv("PGPASSWORD"); - +public class ClientTest extends RealBaseTest { private ClientService service; private HikariDataSource dataSource; - @BeforeAll - static void onetimeSetup() throws Exception { - dbosConfig = - DBOSConfig.defaults("systemdbtest") - .withDatabaseUrl(dbUrl) - .withDbUser(dbUser) - .withDbPassword(dbPassword) - .withMaximumPoolSize(2); - } - @BeforeEach void beforeEachTest() throws SQLException { DBUtils.recreateDB(dbosConfig); @@ -66,7 +52,7 @@ public void clientEnqueue() throws Exception { var qs = DBOSTestAccess.getQueueService(); qs.pause(); - try (var client = new DBOSClient(dbUrl, dbUser, dbPassword)) { + try (var client = getDbosClient()) { var options = new DBOSClient.EnqueueOptions( "dev.dbos.transact.client.ClientServiceImpl", "enqueueTest", "testQueue"); @@ -95,7 +81,7 @@ public void clientEnqueueDeDupe() throws Exception { var qs = DBOSTestAccess.getQueueService(); qs.pause(); - try (var client = new DBOSClient(dbUrl, dbUser, dbPassword)) { + try (var client = getDbosClient()) { var options = new DBOSClient.EnqueueOptions( "dev.dbos.transact.client.ClientServiceImpl", "enqueueTest", "testQueue") @@ -115,7 +101,7 @@ public void clientSend() throws Exception { var idempotencyKey = UUID.randomUUID().toString(); - try (var client = new DBOSClient(dbUrl, dbUser, dbPassword)) { + try (var client = getDbosClient()) { client.send(handle.workflowId(), "test.message", "test-topic", idempotencyKey); } @@ -131,7 +117,7 @@ public void clientSend() throws Exception { @Test public void clientEnqueueTimeouts() throws Exception { - try (var client = new DBOSClient(dbUrl, dbUser, dbPassword)) { + try (var client = getDbosClient()) { var options = new DBOSClient.EnqueueOptions( "dev.dbos.transact.client.ClientServiceImpl", "sleep", "testQueue"); @@ -163,4 +149,8 @@ public void clientEnqueueTimeouts() throws Exception { stat2.orElseThrow(() -> new AssertionError("Workflow status not found")).status()); } } + + private static @NotNull DBOSClient getDbosClient() { + return new DBOSClient(postgres.getJdbcUrl(), postgres.getUsername(), postgres.getPassword()); + } } diff --git a/transact/src/test/java/dev/dbos/transact/config/ConfigTest.java b/transact/src/test/java/dev/dbos/transact/config/ConfigTest.java index eccba947..71739e6b 100644 --- a/transact/src/test/java/dev/dbos/transact/config/ConfigTest.java +++ b/transact/src/test/java/dev/dbos/transact/config/ConfigTest.java @@ -5,9 +5,9 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; -import dev.dbos.transact.Constants; import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSTestAccess; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.database.DBTestAccess; import dev.dbos.transact.invocation.HawkService; import dev.dbos.transact.invocation.HawkServiceImpl; @@ -26,19 +26,13 @@ import uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension; @ExtendWith(SystemStubsExtension.class) -public class ConfigTest { +public class ConfigTest extends RealBaseTest { @SystemStub private EnvironmentVariables envVars = new EnvironmentVariables(); @Test public void setExecutorAndAppVersionViaConfig() throws Exception { - var config = - DBOSConfig.defaults("config-test") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withDbUser("postgres") - .withDbPassword(System.getenv("PGPASSWORD")) - .withAppVersion("test-app-version") - .withExecutorId("test-executor-id"); + var config = dbosConfig.withAppVersion("test-app-version").withExecutorId("test-executor-id"); DBOS.reinitialize(config); try { @@ -57,13 +51,7 @@ public void setExecutorAndAppVersionViaEnv() throws Exception { envVars.set("DBOS__VMID", "test-env-executor-id"); envVars.set("DBOS__APPVERSION", "test-env-app-version"); - var config = - DBOSConfig.defaults("config-test") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withDbUser("postgres") - .withDbPassword(System.getenv("PGPASSWORD")) - .withAppVersion("test-app-version") - .withExecutorId("test-executor-id"); + var config = dbosConfig.withAppVersion("test-app-version").withExecutorId("test-executor-id"); DBOS.reinitialize(config); try { @@ -78,11 +66,7 @@ public void setExecutorAndAppVersionViaEnv() throws Exception { @Test public void localExecutorId() throws Exception { - var config = - DBOSConfig.defaults("config-test") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withDbUser("postgres") - .withDbPassword(System.getenv("PGPASSWORD")); + var config = dbosConfig; DBOS.reinitialize(config); try { @@ -96,10 +80,7 @@ public void localExecutorId() throws Exception { @Test public void conductorExecutorId() throws Exception { - var config = - DBOSConfig.defaultsFromEnv("config-test") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withConductorKey("test-conductor-key"); + var config = dbosConfig.withConductorKey("test-conductor-key"); DBOS.reinitialize(config); try { @@ -114,11 +95,7 @@ public void conductorExecutorId() throws Exception { @Test public void calcAppVersion() throws Exception { - var config = - DBOSConfig.defaults("config-test") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withDbUser("postgres") - .withDbPassword(System.getenv(Constants.POSTGRES_PASSWORD_ENV_VAR)); + var config = dbosConfig; DBOS.reinitialize(config); try { @@ -136,9 +113,9 @@ public void calcAppVersion() throws Exception { public void configDataSource() throws Exception { var poolName = "dbos-configDataSource"; - var url = "jdbc:postgresql://localhost:5432/dbos_java_sys"; - var user = "postgres"; - var password = System.getenv(Constants.POSTGRES_PASSWORD_ENV_VAR); + var url = dbosConfig.databaseUrl(); + var user = dbosConfig.dbUser(); + var password = dbosConfig.dbPassword(); DBUtils.recreateDB(url, user, password); diff --git a/transact/src/test/java/dev/dbos/transact/database/ExternalStateTest.java b/transact/src/test/java/dev/dbos/transact/database/ExternalStateTest.java index 2975642d..0f5368f4 100644 --- a/transact/src/test/java/dev/dbos/transact/database/ExternalStateTest.java +++ b/transact/src/test/java/dev/dbos/transact/database/ExternalStateTest.java @@ -4,7 +4,7 @@ import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; -import dev.dbos.transact.config.DBOSConfig; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.migrations.MigrationManager; import dev.dbos.transact.utils.DBUtils; @@ -17,17 +17,12 @@ import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class ExternalStateTest { +public class ExternalStateTest extends RealBaseTest { private static SystemDatabase systemDatabase; - private static DBOSConfig dbosConfig; @BeforeAll static void onetimeSetup() throws Exception { - dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys"); - DBUtils.recreateDB(dbosConfig); MigrationManager.runMigrations(dbosConfig); systemDatabase = new SystemDatabase(dbosConfig); diff --git a/transact/src/test/java/dev/dbos/transact/database/SystemDatabaseTest.java b/transact/src/test/java/dev/dbos/transact/database/SystemDatabaseTest.java index dd71a27a..506b7c19 100644 --- a/transact/src/test/java/dev/dbos/transact/database/SystemDatabaseTest.java +++ b/transact/src/test/java/dev/dbos/transact/database/SystemDatabaseTest.java @@ -6,7 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import dev.dbos.transact.DBOS; -import dev.dbos.transact.config.DBOSConfig; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.exceptions.DBOSMaxRecoveryAttemptsExceededException; import dev.dbos.transact.exceptions.DBOSQueueDuplicatedException; import dev.dbos.transact.migrations.MigrationManager; @@ -20,30 +20,20 @@ import com.zaxxer.hikari.HikariDataSource; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class SystemDatabaseTest { - private static DBOSConfig config; +public class SystemDatabaseTest extends RealBaseTest { private SystemDatabase sysdb; private HikariDataSource dataSource; - @BeforeAll - static void onetimeSetup() throws Exception { - config = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(10); - } - @BeforeEach void beforeEachTest() throws SQLException { - DBUtils.recreateDB(config); - MigrationManager.runMigrations(config); - sysdb = new SystemDatabase(config); - dataSource = SystemDatabase.createDataSource(config); + DBUtils.recreateDB(dbosConfig); + MigrationManager.runMigrations(dbosConfig); + sysdb = new SystemDatabase(dbosConfig); + dataSource = SystemDatabase.createDataSource(dbosConfig); } @AfterEach diff --git a/transact/src/test/java/dev/dbos/transact/execution/DBOSExecutorTest.java b/transact/src/test/java/dev/dbos/transact/execution/DBOSExecutorTest.java index 02af37fb..4056162c 100644 --- a/transact/src/test/java/dev/dbos/transact/execution/DBOSExecutorTest.java +++ b/transact/src/test/java/dev/dbos/transact/execution/DBOSExecutorTest.java @@ -4,7 +4,7 @@ import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSTestAccess; -import dev.dbos.transact.config.DBOSConfig; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.exceptions.DBOSNonExistentWorkflowException; @@ -20,24 +20,14 @@ import javax.sql.DataSource; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -class DBOSExecutorTest { +class DBOSExecutorTest extends RealBaseTest { - private static DBOSConfig dbosConfig; private static DataSource dataSource; - @BeforeAll - public static void onetimeBefore() { - DBOSExecutorTest.dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - } - @BeforeEach void setUp() throws SQLException { DBUtils.recreateDB(dbosConfig); diff --git a/transact/src/test/java/dev/dbos/transact/execution/LifecycleTest.java b/transact/src/test/java/dev/dbos/transact/execution/LifecycleTest.java index df1d9460..089f9f1a 100644 --- a/transact/src/test/java/dev/dbos/transact/execution/LifecycleTest.java +++ b/transact/src/test/java/dev/dbos/transact/execution/LifecycleTest.java @@ -3,29 +3,19 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import dev.dbos.transact.DBOS; -import dev.dbos.transact.config.DBOSConfig; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.utils.DBUtils; import java.sql.SQLException; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -public class LifecycleTest { - private static DBOSConfig dbosConfig; +public class LifecycleTest extends RealBaseTest { private static LifecycleTestWorkflowsImpl impl; private static TestLifecycleService svc; - @BeforeAll - static void onetimeSetup() throws Exception { - dbosConfig = - DBOSConfig.defaultsFromEnv("lifecycletest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - } - @BeforeEach void beforeEachTest() throws SQLException { DBUtils.recreateDB(dbosConfig); diff --git a/transact/src/test/java/dev/dbos/transact/execution/RecoveryServiceTest.java b/transact/src/test/java/dev/dbos/transact/execution/RecoveryServiceTest.java index 8a844343..f94b167d 100644 --- a/transact/src/test/java/dev/dbos/transact/execution/RecoveryServiceTest.java +++ b/transact/src/test/java/dev/dbos/transact/execution/RecoveryServiceTest.java @@ -4,8 +4,8 @@ import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSTestAccess; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.StartWorkflowOptions; -import dev.dbos.transact.config.DBOSConfig; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.utils.DBUtils; @@ -22,16 +22,14 @@ import javax.sql.DataSource; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -class RecoveryServiceTest { +class RecoveryServiceTest extends RealBaseTest { - private static DBOSConfig dbosConfig; private static DataSource dataSource; private Queue testQueue; private SystemDatabase systemDatabase; @@ -40,15 +38,6 @@ class RecoveryServiceTest { private ExecutingService executingService; private static final Logger logger = LoggerFactory.getLogger(RecoveryServiceTest.class); - @BeforeAll - public static void onetimeBefore() { - - RecoveryServiceTest.dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - } - @BeforeEach void setUp() throws SQLException { DBUtils.recreateDB(dbosConfig); diff --git a/transact/src/test/java/dev/dbos/transact/invocation/CustomSchemaTest.java b/transact/src/test/java/dev/dbos/transact/invocation/CustomSchemaTest.java index cfacd928..52a4563c 100644 --- a/transact/src/test/java/dev/dbos/transact/invocation/CustomSchemaTest.java +++ b/transact/src/test/java/dev/dbos/transact/invocation/CustomSchemaTest.java @@ -6,7 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertNull; import dev.dbos.transact.DBOS; -import dev.dbos.transact.config.DBOSConfig; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.utils.DBUtils; @@ -23,8 +23,7 @@ import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class CustomSchemaTest { - private static DBOSConfig dbosConfig; +public class CustomSchemaTest extends RealBaseTest { private static final String schema = "C$+0m'"; private HawkService proxy; private HikariDataSource dataSource; @@ -33,11 +32,7 @@ public class CustomSchemaTest { @BeforeAll static void onetimeSetup() throws Exception { - dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withDatabaseSchema(schema) - .withMaximumPoolSize(2); + dbosConfig = dbosConfig.withDatabaseSchema(schema); } @BeforeEach diff --git a/transact/src/test/java/dev/dbos/transact/invocation/DirectInvocationTest.java b/transact/src/test/java/dev/dbos/transact/invocation/DirectInvocationTest.java index 85832933..34ab4f09 100644 --- a/transact/src/test/java/dev/dbos/transact/invocation/DirectInvocationTest.java +++ b/transact/src/test/java/dev/dbos/transact/invocation/DirectInvocationTest.java @@ -7,7 +7,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import dev.dbos.transact.DBOS; -import dev.dbos.transact.config.DBOSConfig; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.utils.DBUtils; @@ -24,26 +24,15 @@ import com.zaxxer.hikari.HikariDataSource; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class DirectInvocationTest { - private static DBOSConfig dbosConfig; +public class DirectInvocationTest extends RealBaseTest { private HawkService proxy; private HikariDataSource dataSource; private String localDate = LocalDate.now().format(DateTimeFormatter.ISO_DATE); - @BeforeAll - static void onetimeSetup() throws Exception { - - dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - } - @BeforeEach void beforeEachTest() throws SQLException { DBUtils.recreateDB(dbosConfig); diff --git a/transact/src/test/java/dev/dbos/transact/invocation/MultiInstTest.java b/transact/src/test/java/dev/dbos/transact/invocation/MultiInstTest.java index 2e875a0a..a7542a07 100644 --- a/transact/src/test/java/dev/dbos/transact/invocation/MultiInstTest.java +++ b/transact/src/test/java/dev/dbos/transact/invocation/MultiInstTest.java @@ -5,7 +5,7 @@ import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSClient; import dev.dbos.transact.DBOSTestAccess; -import dev.dbos.transact.config.DBOSConfig; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.utils.DBUtils; import dev.dbos.transact.workflow.ListWorkflowsInput; @@ -20,13 +20,11 @@ import java.util.concurrent.TimeUnit; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class MultiInstTest { - private static DBOSConfig dbosConfig; +public class MultiInstTest extends RealBaseTest { HawkServiceImpl himpl; BearServiceImpl bimpla; BearServiceImpl bimpl1; @@ -35,14 +33,6 @@ public class MultiInstTest { private BearService bproxy1; private String localDate = LocalDate.now().format(DateTimeFormatter.ISO_DATE); - @BeforeAll - static void onetimeSetup() throws Exception { - dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - } - @BeforeEach void beforeEachTest() throws SQLException { DBUtils.recreateDB(dbosConfig); @@ -161,13 +151,9 @@ void startWorkflow() throws Exception { assertEquals(1, browsjust1.size()); } - private static final String dbUrl = "jdbc:postgresql://localhost:5432/dbos_java_sys"; - private static final String dbUser = "postgres"; - private static final String dbPassword = System.getenv("PGPASSWORD"); - @Test public void enqueueForSpecificInstance() throws Exception { - try (var client = new DBOSClient(dbUrl, dbUser, dbPassword)) { + try (var client = getDBOSClient()) { var options = new DBOSClient.EnqueueOptions( "dev.dbos.transact.invocation.BearServiceImpl", "stepWorkflow", "testQueue") diff --git a/transact/src/test/java/dev/dbos/transact/invocation/StartWorkflowTest.java b/transact/src/test/java/dev/dbos/transact/invocation/StartWorkflowTest.java index 540d7f5a..11bd134d 100644 --- a/transact/src/test/java/dev/dbos/transact/invocation/StartWorkflowTest.java +++ b/transact/src/test/java/dev/dbos/transact/invocation/StartWorkflowTest.java @@ -5,8 +5,8 @@ import static org.junit.jupiter.api.Assertions.assertNull; import dev.dbos.transact.DBOS; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.StartWorkflowOptions; -import dev.dbos.transact.config.DBOSConfig; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.utils.DBUtils; @@ -17,26 +17,15 @@ import com.zaxxer.hikari.HikariDataSource; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class StartWorkflowTest { - private static DBOSConfig dbosConfig; +public class StartWorkflowTest extends RealBaseTest { private HawkService proxy; private HikariDataSource dataSource; private String localDate = LocalDate.now().format(DateTimeFormatter.ISO_DATE); - @BeforeAll - static void onetimeSetup() throws Exception { - - dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - } - @BeforeEach void beforeEachTest() throws SQLException { DBUtils.recreateDB(dbosConfig); diff --git a/transact/src/test/java/dev/dbos/transact/migrations/BackCompatTest.java b/transact/src/test/java/dev/dbos/transact/migrations/BackCompatTest.java index 94e39eea..784864cc 100644 --- a/transact/src/test/java/dev/dbos/transact/migrations/BackCompatTest.java +++ b/transact/src/test/java/dev/dbos/transact/migrations/BackCompatTest.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import dev.dbos.transact.DBOS; -import dev.dbos.transact.config.DBOSConfig; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.invocation.HawkService; import dev.dbos.transact.invocation.HawkServiceImpl; @@ -19,20 +19,14 @@ import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class BackCompatTest { - private DBOSConfig config; +public class BackCompatTest extends RealBaseTest { @BeforeEach void onetimeSetup() throws Exception { - - config = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - - var pair = MigrationManager.extractDbAndPostgresUrl(config.databaseUrl()); + var pair = MigrationManager.extractDbAndPostgresUrl(dbosConfig.databaseUrl()); var dropDbSql = String.format("DROP DATABASE IF EXISTS %s WITH (FORCE)", pair.database()); - try (var conn = DriverManager.getConnection(pair.url(), config.dbUser(), config.dbPassword()); + try (var conn = + DriverManager.getConnection(pair.url(), dbosConfig.dbUser(), dbosConfig.dbPassword()); var stmt = conn.createStatement()) { stmt.execute(dropDbSql); } @@ -43,7 +37,7 @@ void testInitialRun() throws Exception { runDbos(); - var dataSource = SystemDatabase.createDataSource(config); + var dataSource = SystemDatabase.createDataSource(dbosConfig); try (Connection conn = dataSource.getConnection()) { DatabaseMetaData metaData = conn.getMetaData(); @@ -58,7 +52,7 @@ void testInitialRun() throws Exception { void testWayFutureVersion() throws Exception { testInitialRun(); - var dataSource = SystemDatabase.createDataSource(config); + var dataSource = SystemDatabase.createDataSource(dbosConfig); try (var conn = dataSource.getConnection(); var stmt = conn.createStatement()) { stmt.executeUpdate("UPDATE \"dbos\".\"dbos_migrations\" SET \"version\" = 10000;"); @@ -71,7 +65,7 @@ void testWayFutureVersion() throws Exception { void testIdempotence() throws Exception { testWayFutureVersion(); - var dataSource = SystemDatabase.createDataSource(config); + var dataSource = SystemDatabase.createDataSource(dbosConfig); try (var conn = dataSource.getConnection(); var stmt = conn.createStatement()) { stmt.executeUpdate("UPDATE \"dbos\".\"dbos_migrations\" SET \"version\" = 0;"); @@ -82,7 +76,7 @@ void testIdempotence() throws Exception { void runDbos() { try { - DBOS.reinitialize(config); + DBOS.reinitialize(dbosConfig); var impl = new HawkServiceImpl(); var proxy = DBOS.registerWorkflows(HawkService.class, impl); impl.setProxy(proxy); diff --git a/transact/src/test/java/dev/dbos/transact/migrations/MigrationManagerTest.java b/transact/src/test/java/dev/dbos/transact/migrations/MigrationManagerTest.java index a0fed868..80099ff2 100644 --- a/transact/src/test/java/dev/dbos/transact/migrations/MigrationManagerTest.java +++ b/transact/src/test/java/dev/dbos/transact/migrations/MigrationManagerTest.java @@ -6,6 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import dev.dbos.transact.Constants; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.config.DBOSConfig; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.utils.DBUtils; @@ -25,18 +26,13 @@ import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -class MigrationManagerTest { +class MigrationManagerTest extends RealBaseTest { private DataSource testDataSource; - private DBOSConfig dbosConfig; @BeforeEach void setup() throws Exception { - - dbosConfig = - DBOSConfig.defaultsFromEnv("migrationtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys_mm_test") - .withMaximumPoolSize(3); + dbosConfig = dbosConfig.defaultsFromEnv("migrationtest"); DBUtils.recreateDB(dbosConfig); testDataSource = SystemDatabase.createDataSource(dbosConfig); diff --git a/transact/src/test/java/dev/dbos/transact/notifications/EventsTest.java b/transact/src/test/java/dev/dbos/transact/notifications/EventsTest.java index 1ef953fa..6ce974e3 100644 --- a/transact/src/test/java/dev/dbos/transact/notifications/EventsTest.java +++ b/transact/src/test/java/dev/dbos/transact/notifications/EventsTest.java @@ -6,8 +6,8 @@ import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSTestAccess; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.StartWorkflowOptions; -import dev.dbos.transact.config.DBOSConfig; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.utils.DBUtils; @@ -25,25 +25,14 @@ import javax.sql.DataSource; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class EventsTest { +public class EventsTest extends RealBaseTest { - private static DBOSConfig dbosConfig; private static DataSource dataSource; - @BeforeAll - static void onetimeSetup() throws Exception { - - EventsTest.dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - } - @BeforeEach void beforeEachTest() throws SQLException { DBUtils.recreateDB(dbosConfig); diff --git a/transact/src/test/java/dev/dbos/transact/notifications/NotificationServiceTest.java b/transact/src/test/java/dev/dbos/transact/notifications/NotificationServiceTest.java index 35b89d9c..3ae87556 100644 --- a/transact/src/test/java/dev/dbos/transact/notifications/NotificationServiceTest.java +++ b/transact/src/test/java/dev/dbos/transact/notifications/NotificationServiceTest.java @@ -3,8 +3,8 @@ import static org.junit.jupiter.api.Assertions.*; import dev.dbos.transact.DBOS; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.StartWorkflowOptions; -import dev.dbos.transact.config.DBOSConfig; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.utils.DBUtils; import dev.dbos.transact.workflow.*; @@ -19,23 +19,11 @@ import java.util.concurrent.TimeUnit; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -class NotificationServiceTest { - - private static DBOSConfig dbosConfig; - - @BeforeAll - static void onetimeSetup() throws Exception { - - NotificationServiceTest.dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - } +class NotificationServiceTest extends RealBaseTest { @BeforeEach void beforeEachTest() throws SQLException { diff --git a/transact/src/test/java/dev/dbos/transact/queue/QueuesTest.java b/transact/src/test/java/dev/dbos/transact/queue/QueuesTest.java index a0ed8a4e..58f9636e 100644 --- a/transact/src/test/java/dev/dbos/transact/queue/QueuesTest.java +++ b/transact/src/test/java/dev/dbos/transact/queue/QueuesTest.java @@ -4,11 +4,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; -import dev.dbos.transact.Constants; -import dev.dbos.transact.DBOS; -import dev.dbos.transact.DBOSTestAccess; -import dev.dbos.transact.StartWorkflowOptions; -import dev.dbos.transact.config.DBOSConfig; +import dev.dbos.transact.*; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.utils.DBUtils; import dev.dbos.transact.workflow.ListWorkflowsInput; @@ -36,21 +32,12 @@ import org.slf4j.LoggerFactory; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class QueuesTest { +public class QueuesTest extends RealBaseTest { private static final Logger logger = LoggerFactory.getLogger(QueuesTest.class); - private static DBOSConfig dbosConfig; private static DataSource dataSource; - @BeforeAll - static void onetimeSetup() throws Exception { - QueuesTest.dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - } - @BeforeEach void beforeEachTest() throws SQLException { DBUtils.recreateDB(dbosConfig); diff --git a/transact/src/test/java/dev/dbos/transact/scheduled/SchedulerServiceTest.java b/transact/src/test/java/dev/dbos/transact/scheduled/SchedulerServiceTest.java index 7b6f37e7..2f1a8228 100644 --- a/transact/src/test/java/dev/dbos/transact/scheduled/SchedulerServiceTest.java +++ b/transact/src/test/java/dev/dbos/transact/scheduled/SchedulerServiceTest.java @@ -5,7 +5,7 @@ import dev.dbos.transact.Constants; import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSTestAccess; -import dev.dbos.transact.config.DBOSConfig; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.utils.DBUtils; import dev.dbos.transact.workflow.ListWorkflowsInput; import dev.dbos.transact.workflow.Queue; @@ -15,23 +15,12 @@ import java.util.concurrent.TimeUnit; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junitpioneer.jupiter.RetryingTest; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -class SchedulerServiceTest { - - private static DBOSConfig dbosConfig; - - @BeforeAll - static void onetimeSetup() throws Exception { - SchedulerServiceTest.dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - } +class SchedulerServiceTest extends RealBaseTest { @BeforeEach void beforeEachTest() throws SQLException { diff --git a/transact/src/test/java/dev/dbos/transact/step/StepsTest.java b/transact/src/test/java/dev/dbos/transact/step/StepsTest.java index 1e73fe49..acae0499 100644 --- a/transact/src/test/java/dev/dbos/transact/step/StepsTest.java +++ b/transact/src/test/java/dev/dbos/transact/step/StepsTest.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.*; import dev.dbos.transact.DBOS; -import dev.dbos.transact.config.DBOSConfig; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.utils.DBUtils; import dev.dbos.transact.workflow.*; @@ -15,18 +15,7 @@ import org.junit.jupiter.api.*; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class StepsTest { - - private static DBOSConfig dbosConfig; - - @BeforeAll - static void onetimeSetup() throws Exception { - - StepsTest.dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - } +public class StepsTest extends RealBaseTest { @BeforeEach void beforeEachTest() throws SQLException { diff --git a/transact/src/test/java/dev/dbos/transact/workflow/AsyncWorkflowTest.java b/transact/src/test/java/dev/dbos/transact/workflow/AsyncWorkflowTest.java index 38d7a361..946f3a31 100644 --- a/transact/src/test/java/dev/dbos/transact/workflow/AsyncWorkflowTest.java +++ b/transact/src/test/java/dev/dbos/transact/workflow/AsyncWorkflowTest.java @@ -5,8 +5,8 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import dev.dbos.transact.DBOS; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.StartWorkflowOptions; -import dev.dbos.transact.config.DBOSConfig; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.utils.DBUtils; @@ -17,19 +17,7 @@ import org.junit.jupiter.api.*; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class AsyncWorkflowTest { - - private static DBOSConfig dbosConfig; - - @BeforeAll - static void onetimeSetup() throws Exception { - - AsyncWorkflowTest.dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2) - .withAdminServer(true); - } +public class AsyncWorkflowTest extends RealBaseTest { @BeforeEach void beforeEachTest() throws SQLException { diff --git a/transact/src/test/java/dev/dbos/transact/workflow/QueueChildWorkflowTest.java b/transact/src/test/java/dev/dbos/transact/workflow/QueueChildWorkflowTest.java index d25f1828..26e8060c 100644 --- a/transact/src/test/java/dev/dbos/transact/workflow/QueueChildWorkflowTest.java +++ b/transact/src/test/java/dev/dbos/transact/workflow/QueueChildWorkflowTest.java @@ -3,8 +3,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import dev.dbos.transact.DBOS; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.StartWorkflowOptions; -import dev.dbos.transact.config.DBOSConfig; import dev.dbos.transact.utils.DBUtils; import java.sql.SQLException; @@ -12,23 +12,11 @@ import java.util.concurrent.TimeUnit; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class QueueChildWorkflowTest { - - private static DBOSConfig dbosConfig; - - @BeforeAll - static void onetimeSetup() throws Exception { - - QueueChildWorkflowTest.dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - } +public class QueueChildWorkflowTest extends RealBaseTest { @BeforeEach void beforeEachTest() throws SQLException { diff --git a/transact/src/test/java/dev/dbos/transact/workflow/SyncWorkflowTest.java b/transact/src/test/java/dev/dbos/transact/workflow/SyncWorkflowTest.java index 1165b7d0..a1b71bb4 100644 --- a/transact/src/test/java/dev/dbos/transact/workflow/SyncWorkflowTest.java +++ b/transact/src/test/java/dev/dbos/transact/workflow/SyncWorkflowTest.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.*; import dev.dbos.transact.DBOS; -import dev.dbos.transact.config.DBOSConfig; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.utils.DBUtils; @@ -14,19 +14,7 @@ import org.junit.jupiter.api.*; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class SyncWorkflowTest { - - private static DBOSConfig dbosConfig; - - @BeforeAll - static void onetimeSetup() throws Exception { - - SyncWorkflowTest.dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2) - .withAdminServer(true); - } +public class SyncWorkflowTest extends RealBaseTest { @BeforeEach void beforeEachTest() throws SQLException { diff --git a/transact/src/test/java/dev/dbos/transact/workflow/TimeoutTest.java b/transact/src/test/java/dev/dbos/transact/workflow/TimeoutTest.java index e7566678..ad09778f 100644 --- a/transact/src/test/java/dev/dbos/transact/workflow/TimeoutTest.java +++ b/transact/src/test/java/dev/dbos/transact/workflow/TimeoutTest.java @@ -4,8 +4,8 @@ import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSTestAccess; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.StartWorkflowOptions; -import dev.dbos.transact.config.DBOSConfig; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.exceptions.DBOSAwaitedWorkflowCancelledException; @@ -20,26 +20,15 @@ import javax.sql.DataSource; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junitpioneer.jupiter.RetryingTest; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class TimeoutTest { +public class TimeoutTest extends RealBaseTest { - private static DBOSConfig dbosConfig; private static DataSource dataSource; - @BeforeAll - static void onetimeSetup() throws Exception { - - TimeoutTest.dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - } - @BeforeEach void beforeEachTest() throws SQLException { DBUtils.recreateDB(dbosConfig); diff --git a/transact/src/test/java/dev/dbos/transact/workflow/UnifiedProxyTest.java b/transact/src/test/java/dev/dbos/transact/workflow/UnifiedProxyTest.java index 20ff273f..71815e59 100644 --- a/transact/src/test/java/dev/dbos/transact/workflow/UnifiedProxyTest.java +++ b/transact/src/test/java/dev/dbos/transact/workflow/UnifiedProxyTest.java @@ -3,8 +3,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import dev.dbos.transact.DBOS; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.StartWorkflowOptions; -import dev.dbos.transact.config.DBOSConfig; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.utils.DBUtils; @@ -13,23 +13,11 @@ import java.util.concurrent.TimeUnit; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class UnifiedProxyTest { - - private static DBOSConfig dbosConfig; - - @BeforeAll - static void onetimeSetup() throws Exception { - - UnifiedProxyTest.dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - } +public class UnifiedProxyTest extends RealBaseTest { @BeforeEach void beforeEachTest() throws SQLException { diff --git a/transact/src/test/java/dev/dbos/transact/workflow/WorkflowMgmtTest.java b/transact/src/test/java/dev/dbos/transact/workflow/WorkflowMgmtTest.java index 4fc537a6..88edd521 100644 --- a/transact/src/test/java/dev/dbos/transact/workflow/WorkflowMgmtTest.java +++ b/transact/src/test/java/dev/dbos/transact/workflow/WorkflowMgmtTest.java @@ -4,8 +4,8 @@ import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSTestAccess; +import dev.dbos.transact.RealBaseTest; import dev.dbos.transact.StartWorkflowOptions; -import dev.dbos.transact.config.DBOSConfig; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.exceptions.DBOSAwaitedWorkflowCancelledException; import dev.dbos.transact.exceptions.DBOSNonExistentWorkflowException; @@ -20,7 +20,6 @@ import java.util.concurrent.TimeUnit; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junitpioneer.jupiter.RetryingTest; @@ -28,21 +27,10 @@ import org.slf4j.LoggerFactory; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class WorkflowMgmtTest { +public class WorkflowMgmtTest extends RealBaseTest { private static final Logger logger = LoggerFactory.getLogger(WorkflowMgmtTest.class); - private static DBOSConfig dbosConfig; - - @BeforeAll - static void onetimeSetup() throws Exception { - - WorkflowMgmtTest.dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - } - @BeforeEach void beforeEachTest() throws SQLException { DBUtils.recreateDB(dbosConfig); From 9376a1a8e8caaf6317daf5a77745f50d510580ac Mon Sep 17 00:00:00 2001 From: "hannes.oswald" Date: Wed, 19 Nov 2025 19:19:34 +0100 Subject: [PATCH 02/12] change tests --- transact/src/test/java/dev/dbos/transact/RealBaseTest.java | 2 +- .../dev/dbos/transact/migrations/MigrationManagerTest.java | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/transact/src/test/java/dev/dbos/transact/RealBaseTest.java b/transact/src/test/java/dev/dbos/transact/RealBaseTest.java index 25f1a346..fd0da01a 100644 --- a/transact/src/test/java/dev/dbos/transact/RealBaseTest.java +++ b/transact/src/test/java/dev/dbos/transact/RealBaseTest.java @@ -13,7 +13,7 @@ public class RealBaseTest { protected static DBOSConfig dbosConfig; @BeforeAll - static void onetimeSetup() throws Exception { + static void onetimeSetup() { postgres.start(); dbosConfig = DBOSConfig.defaults("systemdbtest") diff --git a/transact/src/test/java/dev/dbos/transact/migrations/MigrationManagerTest.java b/transact/src/test/java/dev/dbos/transact/migrations/MigrationManagerTest.java index 80099ff2..42cd3cea 100644 --- a/transact/src/test/java/dev/dbos/transact/migrations/MigrationManagerTest.java +++ b/transact/src/test/java/dev/dbos/transact/migrations/MigrationManagerTest.java @@ -32,7 +32,11 @@ class MigrationManagerTest extends RealBaseTest { @BeforeEach void setup() throws Exception { - dbosConfig = dbosConfig.defaultsFromEnv("migrationtest"); + dbosConfig = DBOSConfig.defaultsFromEnv("migrationtest") + .withDatabaseUrl(postgres.getJdbcUrl()) + .withDbUser(postgres.getUsername()) + .withDbPassword(postgres.getPassword()) + .withMaximumPoolSize(2); DBUtils.recreateDB(dbosConfig); testDataSource = SystemDatabase.createDataSource(dbosConfig); From 43860635dc6be57156e68ff11a20ca591ea28eda Mon Sep 17 00:00:00 2001 From: "hannes.oswald" Date: Wed, 19 Nov 2025 19:22:44 +0100 Subject: [PATCH 03/12] renaming --- .../{RealBaseTest.java => DbSetupTestBase.java} | 2 +- .../java/dev/dbos/transact/client/ClientTest.java | 4 ++-- .../java/dev/dbos/transact/config/ConfigTest.java | 4 ++-- .../dbos/transact/database/ExternalStateTest.java | 4 ++-- .../transact/database/SystemDatabaseTest.java | 4 ++-- .../dbos/transact/execution/DBOSExecutorTest.java | 4 ++-- .../dbos/transact/execution/LifecycleTest.java | 4 ++-- .../transact/execution/RecoveryServiceTest.java | 4 ++-- .../transact/invocation/CustomSchemaTest.java | 4 ++-- .../transact/invocation/DirectInvocationTest.java | 4 ++-- .../dbos/transact/invocation/MultiInstTest.java | 4 ++-- .../transact/invocation/StartWorkflowTest.java | 4 ++-- .../dbos/transact/migrations/BackCompatTest.java | 4 ++-- .../transact/migrations/MigrationManagerTest.java | 15 ++++++++------- .../dbos/transact/notifications/EventsTest.java | 4 ++-- .../notifications/NotificationServiceTest.java | 4 ++-- .../java/dev/dbos/transact/queue/QueuesTest.java | 2 +- .../transact/scheduled/SchedulerServiceTest.java | 4 ++-- .../java/dev/dbos/transact/step/StepsTest.java | 4 ++-- .../dbos/transact/workflow/AsyncWorkflowTest.java | 4 ++-- .../transact/workflow/QueueChildWorkflowTest.java | 4 ++-- .../dbos/transact/workflow/SyncWorkflowTest.java | 4 ++-- .../dev/dbos/transact/workflow/TimeoutTest.java | 4 ++-- .../dbos/transact/workflow/UnifiedProxyTest.java | 4 ++-- .../dbos/transact/workflow/WorkflowMgmtTest.java | 4 ++-- 25 files changed, 54 insertions(+), 53 deletions(-) rename transact/src/test/java/dev/dbos/transact/{RealBaseTest.java => DbSetupTestBase.java} (96%) diff --git a/transact/src/test/java/dev/dbos/transact/RealBaseTest.java b/transact/src/test/java/dev/dbos/transact/DbSetupTestBase.java similarity index 96% rename from transact/src/test/java/dev/dbos/transact/RealBaseTest.java rename to transact/src/test/java/dev/dbos/transact/DbSetupTestBase.java index fd0da01a..819fa10d 100644 --- a/transact/src/test/java/dev/dbos/transact/RealBaseTest.java +++ b/transact/src/test/java/dev/dbos/transact/DbSetupTestBase.java @@ -6,7 +6,7 @@ import org.junit.jupiter.api.BeforeAll; import org.testcontainers.containers.PostgreSQLContainer; -public class RealBaseTest { +public class DbSetupTestBase { protected static final PostgreSQLContainer postgres = new PostgreSQLContainer<>("postgres:18"); diff --git a/transact/src/test/java/dev/dbos/transact/client/ClientTest.java b/transact/src/test/java/dev/dbos/transact/client/ClientTest.java index 2fb83e1a..490e197b 100644 --- a/transact/src/test/java/dev/dbos/transact/client/ClientTest.java +++ b/transact/src/test/java/dev/dbos/transact/client/ClientTest.java @@ -8,7 +8,7 @@ import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSClient; import dev.dbos.transact.DBOSTestAccess; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.exceptions.DBOSAwaitedWorkflowCancelledException; import dev.dbos.transact.utils.DBUtils; @@ -25,7 +25,7 @@ import org.junit.jupiter.api.*; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class ClientTest extends RealBaseTest { +public class ClientTest extends DbSetupTestBase { private ClientService service; private HikariDataSource dataSource; diff --git a/transact/src/test/java/dev/dbos/transact/config/ConfigTest.java b/transact/src/test/java/dev/dbos/transact/config/ConfigTest.java index 71739e6b..88c0ea52 100644 --- a/transact/src/test/java/dev/dbos/transact/config/ConfigTest.java +++ b/transact/src/test/java/dev/dbos/transact/config/ConfigTest.java @@ -7,7 +7,7 @@ import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSTestAccess; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.database.DBTestAccess; import dev.dbos.transact.invocation.HawkService; import dev.dbos.transact.invocation.HawkServiceImpl; @@ -26,7 +26,7 @@ import uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension; @ExtendWith(SystemStubsExtension.class) -public class ConfigTest extends RealBaseTest { +public class ConfigTest extends DbSetupTestBase { @SystemStub private EnvironmentVariables envVars = new EnvironmentVariables(); diff --git a/transact/src/test/java/dev/dbos/transact/database/ExternalStateTest.java b/transact/src/test/java/dev/dbos/transact/database/ExternalStateTest.java index 0f5368f4..ed593767 100644 --- a/transact/src/test/java/dev/dbos/transact/database/ExternalStateTest.java +++ b/transact/src/test/java/dev/dbos/transact/database/ExternalStateTest.java @@ -4,7 +4,7 @@ import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.migrations.MigrationManager; import dev.dbos.transact.utils.DBUtils; @@ -17,7 +17,7 @@ import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class ExternalStateTest extends RealBaseTest { +public class ExternalStateTest extends DbSetupTestBase { private static SystemDatabase systemDatabase; @BeforeAll diff --git a/transact/src/test/java/dev/dbos/transact/database/SystemDatabaseTest.java b/transact/src/test/java/dev/dbos/transact/database/SystemDatabaseTest.java index 506b7c19..3fc5cff4 100644 --- a/transact/src/test/java/dev/dbos/transact/database/SystemDatabaseTest.java +++ b/transact/src/test/java/dev/dbos/transact/database/SystemDatabaseTest.java @@ -6,7 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import dev.dbos.transact.DBOS; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.exceptions.DBOSMaxRecoveryAttemptsExceededException; import dev.dbos.transact.exceptions.DBOSQueueDuplicatedException; import dev.dbos.transact.migrations.MigrationManager; @@ -24,7 +24,7 @@ import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class SystemDatabaseTest extends RealBaseTest { +public class SystemDatabaseTest extends DbSetupTestBase { private SystemDatabase sysdb; private HikariDataSource dataSource; diff --git a/transact/src/test/java/dev/dbos/transact/execution/DBOSExecutorTest.java b/transact/src/test/java/dev/dbos/transact/execution/DBOSExecutorTest.java index 4056162c..791d1505 100644 --- a/transact/src/test/java/dev/dbos/transact/execution/DBOSExecutorTest.java +++ b/transact/src/test/java/dev/dbos/transact/execution/DBOSExecutorTest.java @@ -4,7 +4,7 @@ import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSTestAccess; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.exceptions.DBOSNonExistentWorkflowException; @@ -24,7 +24,7 @@ import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -class DBOSExecutorTest extends RealBaseTest { +class DBOSExecutorTest extends DbSetupTestBase { private static DataSource dataSource; diff --git a/transact/src/test/java/dev/dbos/transact/execution/LifecycleTest.java b/transact/src/test/java/dev/dbos/transact/execution/LifecycleTest.java index 089f9f1a..5ca925ad 100644 --- a/transact/src/test/java/dev/dbos/transact/execution/LifecycleTest.java +++ b/transact/src/test/java/dev/dbos/transact/execution/LifecycleTest.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import dev.dbos.transact.DBOS; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.utils.DBUtils; import java.sql.SQLException; @@ -12,7 +12,7 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -public class LifecycleTest extends RealBaseTest { +public class LifecycleTest extends DbSetupTestBase { private static LifecycleTestWorkflowsImpl impl; private static TestLifecycleService svc; diff --git a/transact/src/test/java/dev/dbos/transact/execution/RecoveryServiceTest.java b/transact/src/test/java/dev/dbos/transact/execution/RecoveryServiceTest.java index f94b167d..90096053 100644 --- a/transact/src/test/java/dev/dbos/transact/execution/RecoveryServiceTest.java +++ b/transact/src/test/java/dev/dbos/transact/execution/RecoveryServiceTest.java @@ -4,7 +4,7 @@ import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSTestAccess; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.StartWorkflowOptions; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.database.SystemDatabase; @@ -28,7 +28,7 @@ import org.slf4j.LoggerFactory; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -class RecoveryServiceTest extends RealBaseTest { +class RecoveryServiceTest extends DbSetupTestBase { private static DataSource dataSource; private Queue testQueue; diff --git a/transact/src/test/java/dev/dbos/transact/invocation/CustomSchemaTest.java b/transact/src/test/java/dev/dbos/transact/invocation/CustomSchemaTest.java index 52a4563c..b93d265a 100644 --- a/transact/src/test/java/dev/dbos/transact/invocation/CustomSchemaTest.java +++ b/transact/src/test/java/dev/dbos/transact/invocation/CustomSchemaTest.java @@ -6,7 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertNull; import dev.dbos.transact.DBOS; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.utils.DBUtils; @@ -23,7 +23,7 @@ import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class CustomSchemaTest extends RealBaseTest { +public class CustomSchemaTest extends DbSetupTestBase { private static final String schema = "C$+0m'"; private HawkService proxy; private HikariDataSource dataSource; diff --git a/transact/src/test/java/dev/dbos/transact/invocation/DirectInvocationTest.java b/transact/src/test/java/dev/dbos/transact/invocation/DirectInvocationTest.java index 34ab4f09..09f119dd 100644 --- a/transact/src/test/java/dev/dbos/transact/invocation/DirectInvocationTest.java +++ b/transact/src/test/java/dev/dbos/transact/invocation/DirectInvocationTest.java @@ -7,7 +7,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import dev.dbos.transact.DBOS; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.utils.DBUtils; @@ -28,7 +28,7 @@ import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class DirectInvocationTest extends RealBaseTest { +public class DirectInvocationTest extends DbSetupTestBase { private HawkService proxy; private HikariDataSource dataSource; private String localDate = LocalDate.now().format(DateTimeFormatter.ISO_DATE); diff --git a/transact/src/test/java/dev/dbos/transact/invocation/MultiInstTest.java b/transact/src/test/java/dev/dbos/transact/invocation/MultiInstTest.java index a7542a07..bf350d5c 100644 --- a/transact/src/test/java/dev/dbos/transact/invocation/MultiInstTest.java +++ b/transact/src/test/java/dev/dbos/transact/invocation/MultiInstTest.java @@ -5,7 +5,7 @@ import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSClient; import dev.dbos.transact.DBOSTestAccess; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.utils.DBUtils; import dev.dbos.transact.workflow.ListWorkflowsInput; @@ -24,7 +24,7 @@ import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class MultiInstTest extends RealBaseTest { +public class MultiInstTest extends DbSetupTestBase { HawkServiceImpl himpl; BearServiceImpl bimpla; BearServiceImpl bimpl1; diff --git a/transact/src/test/java/dev/dbos/transact/invocation/StartWorkflowTest.java b/transact/src/test/java/dev/dbos/transact/invocation/StartWorkflowTest.java index 11bd134d..2bb6ae79 100644 --- a/transact/src/test/java/dev/dbos/transact/invocation/StartWorkflowTest.java +++ b/transact/src/test/java/dev/dbos/transact/invocation/StartWorkflowTest.java @@ -5,7 +5,7 @@ import static org.junit.jupiter.api.Assertions.assertNull; import dev.dbos.transact.DBOS; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.StartWorkflowOptions; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.utils.DBUtils; @@ -21,7 +21,7 @@ import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class StartWorkflowTest extends RealBaseTest { +public class StartWorkflowTest extends DbSetupTestBase { private HawkService proxy; private HikariDataSource dataSource; private String localDate = LocalDate.now().format(DateTimeFormatter.ISO_DATE); diff --git a/transact/src/test/java/dev/dbos/transact/migrations/BackCompatTest.java b/transact/src/test/java/dev/dbos/transact/migrations/BackCompatTest.java index 784864cc..81c58f95 100644 --- a/transact/src/test/java/dev/dbos/transact/migrations/BackCompatTest.java +++ b/transact/src/test/java/dev/dbos/transact/migrations/BackCompatTest.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import dev.dbos.transact.DBOS; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.invocation.HawkService; import dev.dbos.transact.invocation.HawkServiceImpl; @@ -19,7 +19,7 @@ import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class BackCompatTest extends RealBaseTest { +public class BackCompatTest extends DbSetupTestBase { @BeforeEach void onetimeSetup() throws Exception { diff --git a/transact/src/test/java/dev/dbos/transact/migrations/MigrationManagerTest.java b/transact/src/test/java/dev/dbos/transact/migrations/MigrationManagerTest.java index 42cd3cea..7c39f150 100644 --- a/transact/src/test/java/dev/dbos/transact/migrations/MigrationManagerTest.java +++ b/transact/src/test/java/dev/dbos/transact/migrations/MigrationManagerTest.java @@ -6,7 +6,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import dev.dbos.transact.Constants; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.config.DBOSConfig; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.utils.DBUtils; @@ -26,17 +26,18 @@ import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -class MigrationManagerTest extends RealBaseTest { +class MigrationManagerTest extends DbSetupTestBase { private DataSource testDataSource; @BeforeEach void setup() throws Exception { - dbosConfig = DBOSConfig.defaultsFromEnv("migrationtest") - .withDatabaseUrl(postgres.getJdbcUrl()) - .withDbUser(postgres.getUsername()) - .withDbPassword(postgres.getPassword()) - .withMaximumPoolSize(2); + dbosConfig = + DBOSConfig.defaultsFromEnv("migrationtest") + .withDatabaseUrl(postgres.getJdbcUrl()) + .withDbUser(postgres.getUsername()) + .withDbPassword(postgres.getPassword()) + .withMaximumPoolSize(2); DBUtils.recreateDB(dbosConfig); testDataSource = SystemDatabase.createDataSource(dbosConfig); diff --git a/transact/src/test/java/dev/dbos/transact/notifications/EventsTest.java b/transact/src/test/java/dev/dbos/transact/notifications/EventsTest.java index 6ce974e3..f9ba397b 100644 --- a/transact/src/test/java/dev/dbos/transact/notifications/EventsTest.java +++ b/transact/src/test/java/dev/dbos/transact/notifications/EventsTest.java @@ -6,7 +6,7 @@ import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSTestAccess; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.StartWorkflowOptions; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.database.SystemDatabase; @@ -29,7 +29,7 @@ import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class EventsTest extends RealBaseTest { +public class EventsTest extends DbSetupTestBase { private static DataSource dataSource; diff --git a/transact/src/test/java/dev/dbos/transact/notifications/NotificationServiceTest.java b/transact/src/test/java/dev/dbos/transact/notifications/NotificationServiceTest.java index 3ae87556..77f10b46 100644 --- a/transact/src/test/java/dev/dbos/transact/notifications/NotificationServiceTest.java +++ b/transact/src/test/java/dev/dbos/transact/notifications/NotificationServiceTest.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.*; import dev.dbos.transact.DBOS; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.StartWorkflowOptions; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.utils.DBUtils; @@ -23,7 +23,7 @@ import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -class NotificationServiceTest extends RealBaseTest { +class NotificationServiceTest extends DbSetupTestBase { @BeforeEach void beforeEachTest() throws SQLException { diff --git a/transact/src/test/java/dev/dbos/transact/queue/QueuesTest.java b/transact/src/test/java/dev/dbos/transact/queue/QueuesTest.java index 58f9636e..6557d86b 100644 --- a/transact/src/test/java/dev/dbos/transact/queue/QueuesTest.java +++ b/transact/src/test/java/dev/dbos/transact/queue/QueuesTest.java @@ -32,7 +32,7 @@ import org.slf4j.LoggerFactory; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class QueuesTest extends RealBaseTest { +public class QueuesTest extends DbSetupTestBase { private static final Logger logger = LoggerFactory.getLogger(QueuesTest.class); diff --git a/transact/src/test/java/dev/dbos/transact/scheduled/SchedulerServiceTest.java b/transact/src/test/java/dev/dbos/transact/scheduled/SchedulerServiceTest.java index 2f1a8228..be3942cb 100644 --- a/transact/src/test/java/dev/dbos/transact/scheduled/SchedulerServiceTest.java +++ b/transact/src/test/java/dev/dbos/transact/scheduled/SchedulerServiceTest.java @@ -5,7 +5,7 @@ import dev.dbos.transact.Constants; import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSTestAccess; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.utils.DBUtils; import dev.dbos.transact.workflow.ListWorkflowsInput; import dev.dbos.transact.workflow.Queue; @@ -20,7 +20,7 @@ import org.junitpioneer.jupiter.RetryingTest; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -class SchedulerServiceTest extends RealBaseTest { +class SchedulerServiceTest extends DbSetupTestBase { @BeforeEach void beforeEachTest() throws SQLException { diff --git a/transact/src/test/java/dev/dbos/transact/step/StepsTest.java b/transact/src/test/java/dev/dbos/transact/step/StepsTest.java index acae0499..ad610c2c 100644 --- a/transact/src/test/java/dev/dbos/transact/step/StepsTest.java +++ b/transact/src/test/java/dev/dbos/transact/step/StepsTest.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.*; import dev.dbos.transact.DBOS; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.utils.DBUtils; import dev.dbos.transact.workflow.*; @@ -15,7 +15,7 @@ import org.junit.jupiter.api.*; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class StepsTest extends RealBaseTest { +public class StepsTest extends DbSetupTestBase { @BeforeEach void beforeEachTest() throws SQLException { diff --git a/transact/src/test/java/dev/dbos/transact/workflow/AsyncWorkflowTest.java b/transact/src/test/java/dev/dbos/transact/workflow/AsyncWorkflowTest.java index 946f3a31..5b790744 100644 --- a/transact/src/test/java/dev/dbos/transact/workflow/AsyncWorkflowTest.java +++ b/transact/src/test/java/dev/dbos/transact/workflow/AsyncWorkflowTest.java @@ -5,7 +5,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import dev.dbos.transact.DBOS; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.StartWorkflowOptions; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.utils.DBUtils; @@ -17,7 +17,7 @@ import org.junit.jupiter.api.*; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class AsyncWorkflowTest extends RealBaseTest { +public class AsyncWorkflowTest extends DbSetupTestBase { @BeforeEach void beforeEachTest() throws SQLException { diff --git a/transact/src/test/java/dev/dbos/transact/workflow/QueueChildWorkflowTest.java b/transact/src/test/java/dev/dbos/transact/workflow/QueueChildWorkflowTest.java index 26e8060c..ea0f41a6 100644 --- a/transact/src/test/java/dev/dbos/transact/workflow/QueueChildWorkflowTest.java +++ b/transact/src/test/java/dev/dbos/transact/workflow/QueueChildWorkflowTest.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import dev.dbos.transact.DBOS; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.StartWorkflowOptions; import dev.dbos.transact.utils.DBUtils; @@ -16,7 +16,7 @@ import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class QueueChildWorkflowTest extends RealBaseTest { +public class QueueChildWorkflowTest extends DbSetupTestBase { @BeforeEach void beforeEachTest() throws SQLException { diff --git a/transact/src/test/java/dev/dbos/transact/workflow/SyncWorkflowTest.java b/transact/src/test/java/dev/dbos/transact/workflow/SyncWorkflowTest.java index a1b71bb4..25218877 100644 --- a/transact/src/test/java/dev/dbos/transact/workflow/SyncWorkflowTest.java +++ b/transact/src/test/java/dev/dbos/transact/workflow/SyncWorkflowTest.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.*; import dev.dbos.transact.DBOS; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.utils.DBUtils; @@ -14,7 +14,7 @@ import org.junit.jupiter.api.*; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class SyncWorkflowTest extends RealBaseTest { +public class SyncWorkflowTest extends DbSetupTestBase { @BeforeEach void beforeEachTest() throws SQLException { diff --git a/transact/src/test/java/dev/dbos/transact/workflow/TimeoutTest.java b/transact/src/test/java/dev/dbos/transact/workflow/TimeoutTest.java index ad09778f..c7ad946e 100644 --- a/transact/src/test/java/dev/dbos/transact/workflow/TimeoutTest.java +++ b/transact/src/test/java/dev/dbos/transact/workflow/TimeoutTest.java @@ -4,7 +4,7 @@ import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSTestAccess; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.StartWorkflowOptions; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.database.SystemDatabase; @@ -25,7 +25,7 @@ import org.junitpioneer.jupiter.RetryingTest; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class TimeoutTest extends RealBaseTest { +public class TimeoutTest extends DbSetupTestBase { private static DataSource dataSource; diff --git a/transact/src/test/java/dev/dbos/transact/workflow/UnifiedProxyTest.java b/transact/src/test/java/dev/dbos/transact/workflow/UnifiedProxyTest.java index 71815e59..66c92025 100644 --- a/transact/src/test/java/dev/dbos/transact/workflow/UnifiedProxyTest.java +++ b/transact/src/test/java/dev/dbos/transact/workflow/UnifiedProxyTest.java @@ -3,7 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import dev.dbos.transact.DBOS; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.StartWorkflowOptions; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.utils.DBUtils; @@ -17,7 +17,7 @@ import org.junit.jupiter.api.Test; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class UnifiedProxyTest extends RealBaseTest { +public class UnifiedProxyTest extends DbSetupTestBase { @BeforeEach void beforeEachTest() throws SQLException { diff --git a/transact/src/test/java/dev/dbos/transact/workflow/WorkflowMgmtTest.java b/transact/src/test/java/dev/dbos/transact/workflow/WorkflowMgmtTest.java index 88edd521..c970ee70 100644 --- a/transact/src/test/java/dev/dbos/transact/workflow/WorkflowMgmtTest.java +++ b/transact/src/test/java/dev/dbos/transact/workflow/WorkflowMgmtTest.java @@ -4,7 +4,7 @@ import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSTestAccess; -import dev.dbos.transact.RealBaseTest; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.StartWorkflowOptions; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.exceptions.DBOSAwaitedWorkflowCancelledException; @@ -27,7 +27,7 @@ import org.slf4j.LoggerFactory; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class WorkflowMgmtTest extends RealBaseTest { +public class WorkflowMgmtTest extends DbSetupTestBase { private static final Logger logger = LoggerFactory.getLogger(WorkflowMgmtTest.class); From 32e7902dbb47d575cc22305b049be9c4c8932430 Mon Sep 17 00:00:00 2001 From: "hannes.oswald" Date: Wed, 19 Nov 2025 19:24:59 +0100 Subject: [PATCH 04/12] use inherited method --- .../java/dev/dbos/transact/client/ClientTest.java | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/transact/src/test/java/dev/dbos/transact/client/ClientTest.java b/transact/src/test/java/dev/dbos/transact/client/ClientTest.java index 490e197b..cd125d61 100644 --- a/transact/src/test/java/dev/dbos/transact/client/ClientTest.java +++ b/transact/src/test/java/dev/dbos/transact/client/ClientTest.java @@ -21,7 +21,6 @@ import java.util.concurrent.TimeUnit; import com.zaxxer.hikari.HikariDataSource; -import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.*; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) @@ -52,7 +51,7 @@ public void clientEnqueue() throws Exception { var qs = DBOSTestAccess.getQueueService(); qs.pause(); - try (var client = getDbosClient()) { + try (var client = getDBOSClient()) { var options = new DBOSClient.EnqueueOptions( "dev.dbos.transact.client.ClientServiceImpl", "enqueueTest", "testQueue"); @@ -81,7 +80,7 @@ public void clientEnqueueDeDupe() throws Exception { var qs = DBOSTestAccess.getQueueService(); qs.pause(); - try (var client = getDbosClient()) { + try (var client = getDBOSClient()) { var options = new DBOSClient.EnqueueOptions( "dev.dbos.transact.client.ClientServiceImpl", "enqueueTest", "testQueue") @@ -101,7 +100,7 @@ public void clientSend() throws Exception { var idempotencyKey = UUID.randomUUID().toString(); - try (var client = getDbosClient()) { + try (var client = getDBOSClient()) { client.send(handle.workflowId(), "test.message", "test-topic", idempotencyKey); } @@ -117,7 +116,7 @@ public void clientSend() throws Exception { @Test public void clientEnqueueTimeouts() throws Exception { - try (var client = getDbosClient()) { + try (var client = getDBOSClient()) { var options = new DBOSClient.EnqueueOptions( "dev.dbos.transact.client.ClientServiceImpl", "sleep", "testQueue"); @@ -149,8 +148,4 @@ public void clientEnqueueTimeouts() throws Exception { stat2.orElseThrow(() -> new AssertionError("Workflow status not found")).status()); } } - - private static @NotNull DBOSClient getDbosClient() { - return new DBOSClient(postgres.getJdbcUrl(), postgres.getUsername(), postgres.getPassword()); - } } From 4d8d7e5a43d1e34d8e57b32717a10d68caa31f10 Mon Sep 17 00:00:00 2001 From: "hannes.oswald" Date: Wed, 19 Nov 2025 19:30:30 +0100 Subject: [PATCH 05/12] fix after sync with upstream --- .../java/dev/dbos/transact/issues/Issue218.java | 14 ++------------ .../dbos/transact/workflow/WorkflowMgmtTest.java | 15 ++------------- 2 files changed, 4 insertions(+), 25 deletions(-) diff --git a/transact/src/test/java/dev/dbos/transact/issues/Issue218.java b/transact/src/test/java/dev/dbos/transact/issues/Issue218.java index 4d60d690..7ffa2c0f 100644 --- a/transact/src/test/java/dev/dbos/transact/issues/Issue218.java +++ b/transact/src/test/java/dev/dbos/transact/issues/Issue218.java @@ -7,8 +7,8 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import dev.dbos.transact.DBOS; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.StartWorkflowOptions; -import dev.dbos.transact.config.DBOSConfig; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.utils.DBUtils; import dev.dbos.transact.workflow.Queue; @@ -21,7 +21,6 @@ import com.zaxxer.hikari.HikariDataSource; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -78,18 +77,9 @@ public void parentParallel() throws Exception { } // @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class Issue218 { - private static DBOSConfig dbosConfig; +public class Issue218 extends DbSetupTestBase { private HikariDataSource dataSource; - @BeforeAll - static void onetimeSetup() throws Exception { - dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - } - @BeforeEach void beforeEachTest() throws SQLException { DBUtils.recreateDB(dbosConfig); diff --git a/transact/src/test/java/dev/dbos/transact/workflow/WorkflowMgmtTest.java b/transact/src/test/java/dev/dbos/transact/workflow/WorkflowMgmtTest.java index 01eda0d5..87728812 100644 --- a/transact/src/test/java/dev/dbos/transact/workflow/WorkflowMgmtTest.java +++ b/transact/src/test/java/dev/dbos/transact/workflow/WorkflowMgmtTest.java @@ -4,8 +4,8 @@ import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSTestAccess; +import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.StartWorkflowOptions; -import dev.dbos.transact.config.DBOSConfig; import dev.dbos.transact.context.WorkflowOptions; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.exceptions.DBOSAwaitedWorkflowCancelledException; @@ -23,7 +23,6 @@ import javax.sql.DataSource; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junitpioneer.jupiter.RetryingTest; @@ -31,22 +30,12 @@ import org.slf4j.LoggerFactory; @org.junit.jupiter.api.Timeout(value = 2, unit = TimeUnit.MINUTES) -public class WorkflowMgmtTest { +public class WorkflowMgmtTest extends DbSetupTestBase { private static final Logger logger = LoggerFactory.getLogger(WorkflowMgmtTest.class); - private static DBOSConfig dbosConfig; private static DataSource dataSource; - @BeforeAll - static void onetimeSetup() throws Exception { - - WorkflowMgmtTest.dbosConfig = - DBOSConfig.defaultsFromEnv("systemdbtest") - .withDatabaseUrl("jdbc:postgresql://localhost:5432/dbos_java_sys") - .withMaximumPoolSize(2); - } - @BeforeEach void beforeEachTest() throws SQLException { DBUtils.recreateDB(dbosConfig); From 89df37ea677099b5ad8c25a8b26ce46230ed0fe0 Mon Sep 17 00:00:00 2001 From: Harry Pierson Date: Mon, 1 Dec 2025 15:44:29 -0800 Subject: [PATCH 06/12] remove pg container from GH action --- .github/workflows/test.yml | 40 +++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9debdf8a..4df2c830 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,18 +22,18 @@ jobs: - jdk-distro: graalvm jdk-version: 17.0.12 - services: - postgres: - image: sibedge/postgres-plv8:16.3-3.2.2 - env: - POSTGRES_PASSWORD: dbos - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - ports: - - 5432:5432 + # services: + # postgres: + # image: sibedge/postgres-plv8:16.3-3.2.2 + # env: + # POSTGRES_PASSWORD: dbos + # options: >- + # --health-cmd pg_isready + # --health-interval 10s + # --health-timeout 5s + # --health-retries 5 + # ports: + # - 5432:5432 steps: - name: Checkout code @@ -48,14 +48,14 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - - name: Wait for PostgreSQL - run: | - until pg_isready -h localhost -p 5432 -U postgres; do - echo "Waiting for PostgreSQL..." - sleep 2 - done - env: - PGPASSWORD: dbos + # - name: Wait for PostgreSQL + # run: | + # until pg_isready -h localhost -p 5432 -U postgres; do + # echo "Waiting for PostgreSQL..." + # sleep 2 + # done + # env: + # PGPASSWORD: dbos - name: Run tests run: ./gradlew clean build From 4dfc711dceecd8575371b8298c294a44b97e93d5 Mon Sep 17 00:00:00 2001 From: "hannes.oswald" Date: Mon, 12 Jan 2026 20:55:25 +0100 Subject: [PATCH 07/12] revert changes in test.yml --- .github/workflows/test.yml | 40 +++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 050c18ac..69fdd2fb 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -22,18 +22,18 @@ jobs: - jdk-distro: graalvm jdk-version: 17.0.12 - # services: - # postgres: - # image: sibedge/postgres-plv8:16.3-3.2.2 - # env: - # POSTGRES_PASSWORD: dbos - # options: >- - # --health-cmd pg_isready - # --health-interval 10s - # --health-timeout 5s - # --health-retries 5 - # ports: - # - 5432:5432 + services: + postgres: + image: sibedge/postgres-plv8:16.3-3.2.2 + env: + POSTGRES_PASSWORD: dbos + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + ports: + - 5432:5432 steps: - name: Checkout code @@ -50,14 +50,14 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 - # - name: Wait for PostgreSQL - # run: | - # until pg_isready -h localhost -p 5432 -U postgres; do - # echo "Waiting for PostgreSQL..." - # sleep 2 - # done - # env: - # PGPASSWORD: dbos + - name: Wait for PostgreSQL + run: | + until pg_isready -h localhost -p 5432 -U postgres; do + echo "Waiting for PostgreSQL..." + sleep 2 + done + env: + PGPASSWORD: dbos - name: Run tests run: ./gradlew clean build From 69e4c8ca54c9d76ef49d4e0b72094394c1895ecd Mon Sep 17 00:00:00 2001 From: "hannes.oswald" Date: Mon, 12 Jan 2026 20:57:38 +0100 Subject: [PATCH 08/12] update testcontainers dependency --- transact/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/transact/build.gradle.kts b/transact/build.gradle.kts index 55d81c0e..780f459e 100644 --- a/transact/build.gradle.kts +++ b/transact/build.gradle.kts @@ -45,7 +45,7 @@ dependencies { testImplementation("io.rest-assured:rest-assured:5.4.0") testImplementation("io.rest-assured:json-path:5.4.0") testImplementation("io.rest-assured:xml-path:5.4.0") - testImplementation("org.testcontainers:postgresql:1.21.3") + testImplementation("org.testcontainers:testcontainers-postgresql:2.0.3") testImplementation("org.apache.maven:maven-artifact:3.9.11") } From f925c390fbbbfd15e07e67311822f10a6246e858 Mon Sep 17 00:00:00 2001 From: "hannes.oswald" Date: Mon, 12 Jan 2026 21:01:04 +0100 Subject: [PATCH 09/12] update testcontainers --- transact/src/test/java/dev/dbos/transact/DbSetupTestBase.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/transact/src/test/java/dev/dbos/transact/DbSetupTestBase.java b/transact/src/test/java/dev/dbos/transact/DbSetupTestBase.java index 38103b30..2889ec72 100644 --- a/transact/src/test/java/dev/dbos/transact/DbSetupTestBase.java +++ b/transact/src/test/java/dev/dbos/transact/DbSetupTestBase.java @@ -6,11 +6,11 @@ import com.zaxxer.hikari.HikariDataSource; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; -import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.postgresql.PostgreSQLContainer; public class DbSetupTestBase { - protected static final PostgreSQLContainer postgres = new PostgreSQLContainer<>("postgres:18"); + protected static final PostgreSQLContainer postgres = new PostgreSQLContainer("postgres:18"); protected static DBOSConfig dbosConfig; protected static HikariDataSource dataSource; From b8d91564b9984fdfee7bb9d4bb577a3d5e21d765 Mon Sep 17 00:00:00 2001 From: "hannes.oswald" Date: Mon, 12 Jan 2026 21:04:52 +0100 Subject: [PATCH 10/12] fix formatting --- .../src/test/java/dev/dbos/transact/config/ConfigTest.java | 4 +--- .../test/java/dev/dbos/transact/database/MetricsTest.java | 1 - .../dev/dbos/transact/execution/SingleExecutionTest.java | 2 -- .../java/dev/dbos/transact/notifications/EventsTest.java | 2 +- .../dev/dbos/transact/queue/PartitionedQueuesTest.java | 7 ++----- .../src/test/java/dev/dbos/transact/workflow/ForkTest.java | 3 --- .../dev/dbos/transact/workflow/GarbageCollectionTest.java | 1 - .../java/dev/dbos/transact/workflow/WorkflowMgmtTest.java | 1 - 8 files changed, 4 insertions(+), 17 deletions(-) diff --git a/transact/src/test/java/dev/dbos/transact/config/ConfigTest.java b/transact/src/test/java/dev/dbos/transact/config/ConfigTest.java index 3ce66293..09ec7689 100644 --- a/transact/src/test/java/dev/dbos/transact/config/ConfigTest.java +++ b/transact/src/test/java/dev/dbos/transact/config/ConfigTest.java @@ -136,9 +136,7 @@ public void conductorExecutorId() throws Exception { @Test public void cantSetExecutorIdWhenUsingConductor() throws Exception { var config = - dbosConfig - .withConductorKey("test-conductor-key") - .withExecutorId("test-executor-id"); + dbosConfig.withConductorKey("test-conductor-key").withExecutorId("test-executor-id"); DBOS.reinitialize(config); try { diff --git a/transact/src/test/java/dev/dbos/transact/database/MetricsTest.java b/transact/src/test/java/dev/dbos/transact/database/MetricsTest.java index cfc77617..79175f8c 100644 --- a/transact/src/test/java/dev/dbos/transact/database/MetricsTest.java +++ b/transact/src/test/java/dev/dbos/transact/database/MetricsTest.java @@ -13,7 +13,6 @@ import java.util.stream.Collectors; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/transact/src/test/java/dev/dbos/transact/execution/SingleExecutionTest.java b/transact/src/test/java/dev/dbos/transact/execution/SingleExecutionTest.java index d388edba..3f2d58b5 100644 --- a/transact/src/test/java/dev/dbos/transact/execution/SingleExecutionTest.java +++ b/transact/src/test/java/dev/dbos/transact/execution/SingleExecutionTest.java @@ -18,9 +18,7 @@ import java.sql.SQLTransientException; import java.util.UUID; -import com.zaxxer.hikari.HikariDataSource; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/transact/src/test/java/dev/dbos/transact/notifications/EventsTest.java b/transact/src/test/java/dev/dbos/transact/notifications/EventsTest.java index 0860725c..3e0c92e5 100644 --- a/transact/src/test/java/dev/dbos/transact/notifications/EventsTest.java +++ b/transact/src/test/java/dev/dbos/transact/notifications/EventsTest.java @@ -10,7 +10,6 @@ import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.StartWorkflowOptions; import dev.dbos.transact.context.WorkflowOptions; -import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.utils.DBUtils; import dev.dbos.transact.workflow.StepInfo; import dev.dbos.transact.workflow.Workflow; @@ -160,6 +159,7 @@ public class EventsTest extends DbSetupTestBase { private EventsService proxy; private EventsServiceImpl impl; + @BeforeEach void beforeEachTest() throws SQLException { DBUtils.recreateDB(dbosConfig); diff --git a/transact/src/test/java/dev/dbos/transact/queue/PartitionedQueuesTest.java b/transact/src/test/java/dev/dbos/transact/queue/PartitionedQueuesTest.java index fb7fcfc3..a1fc890d 100644 --- a/transact/src/test/java/dev/dbos/transact/queue/PartitionedQueuesTest.java +++ b/transact/src/test/java/dev/dbos/transact/queue/PartitionedQueuesTest.java @@ -9,7 +9,6 @@ import dev.dbos.transact.DBOSClient; import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.StartWorkflowOptions; -import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.utils.DBUtils; import dev.dbos.transact.workflow.Queue; import dev.dbos.transact.workflow.Workflow; @@ -19,10 +18,7 @@ import java.util.UUID; import java.util.concurrent.CountDownLatch; -import javax.sql.DataSource; - import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -170,7 +166,8 @@ public void testQueuePartitions() throws Exception { assertEquals(blockedBlockedHandle.workflowId(), blockedBlockedHandle.getResult()); assertEquals(blockedNormalHandle.workflowId(), blockedNormalHandle.getResult()); - try (var client = new DBOSClient(postgres.getJdbcUrl(), postgres.getUsername(), postgres.getPassword())) { + try (var client = + new DBOSClient(postgres.getJdbcUrl(), postgres.getUsername(), postgres.getPassword())) { var className = "dev.dbos.transact.queue.PartitionsTestServiceImpl"; var wfName = "normalWorkflow"; var nqOptions = diff --git a/transact/src/test/java/dev/dbos/transact/workflow/ForkTest.java b/transact/src/test/java/dev/dbos/transact/workflow/ForkTest.java index 3d26111e..919412f3 100644 --- a/transact/src/test/java/dev/dbos/transact/workflow/ForkTest.java +++ b/transact/src/test/java/dev/dbos/transact/workflow/ForkTest.java @@ -21,10 +21,7 @@ import java.util.UUID; import java.util.concurrent.TimeUnit; -import javax.sql.DataSource; - import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.slf4j.Logger; diff --git a/transact/src/test/java/dev/dbos/transact/workflow/GarbageCollectionTest.java b/transact/src/test/java/dev/dbos/transact/workflow/GarbageCollectionTest.java index bf211e11..57399b5d 100644 --- a/transact/src/test/java/dev/dbos/transact/workflow/GarbageCollectionTest.java +++ b/transact/src/test/java/dev/dbos/transact/workflow/GarbageCollectionTest.java @@ -14,7 +14,6 @@ import java.util.concurrent.CountDownLatch; import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; diff --git a/transact/src/test/java/dev/dbos/transact/workflow/WorkflowMgmtTest.java b/transact/src/test/java/dev/dbos/transact/workflow/WorkflowMgmtTest.java index 618c5b11..5e808c7c 100644 --- a/transact/src/test/java/dev/dbos/transact/workflow/WorkflowMgmtTest.java +++ b/transact/src/test/java/dev/dbos/transact/workflow/WorkflowMgmtTest.java @@ -3,7 +3,6 @@ import static org.junit.jupiter.api.Assertions.*; import dev.dbos.transact.DBOS; -import dev.dbos.transact.DBOSTestAccess; import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.StartWorkflowOptions; import dev.dbos.transact.context.WorkflowOptions; From cecaccc127e76b4a4737aee9f62e064f9455ec53 Mon Sep 17 00:00:00 2001 From: "hannes.oswald" Date: Mon, 12 Jan 2026 21:27:48 +0100 Subject: [PATCH 11/12] fix EventsTest --- .../test/java/dev/dbos/transact/notifications/EventsTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/transact/src/test/java/dev/dbos/transact/notifications/EventsTest.java b/transact/src/test/java/dev/dbos/transact/notifications/EventsTest.java index 3e0c92e5..1794487b 100644 --- a/transact/src/test/java/dev/dbos/transact/notifications/EventsTest.java +++ b/transact/src/test/java/dev/dbos/transact/notifications/EventsTest.java @@ -162,6 +162,7 @@ public class EventsTest extends DbSetupTestBase { @BeforeEach void beforeEachTest() throws SQLException { + dataSource = DbSetupTestBase.dataSource; DBUtils.recreateDB(dbosConfig); DBOS.reinitialize(dbosConfig); impl = new EventsServiceImpl(); From cc97cf93561db6113644b045772ad194b9c24007 Mon Sep 17 00:00:00 2001 From: "hannes.oswald" Date: Mon, 12 Jan 2026 21:28:34 +0100 Subject: [PATCH 12/12] fix PatchTest --- .../src/test/java/dev/dbos/transact/invocation/PatchTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/transact/src/test/java/dev/dbos/transact/invocation/PatchTest.java b/transact/src/test/java/dev/dbos/transact/invocation/PatchTest.java index cb3b8565..8cc8dc01 100644 --- a/transact/src/test/java/dev/dbos/transact/invocation/PatchTest.java +++ b/transact/src/test/java/dev/dbos/transact/invocation/PatchTest.java @@ -5,7 +5,6 @@ import dev.dbos.transact.DBOS; import dev.dbos.transact.DBOSTestAccess; -import dev.dbos.transact.DbSetupTestBase; import dev.dbos.transact.config.DBOSConfig; import dev.dbos.transact.database.SystemDatabase; import dev.dbos.transact.exceptions.DBOSUnexpectedStepException; @@ -84,7 +83,7 @@ public int workflow() { } @org.junit.jupiter.api.Timeout(value = 2, unit = java.util.concurrent.TimeUnit.MINUTES) -public class PatchTest extends DbSetupTestBase { +public class PatchTest { private static final Logger logger = LoggerFactory.getLogger(PatchTest.class);