Skip to content

Commit 6a39b49

Browse files
committed
Make Oracle Docker Compose integration tests more robust
Closes gh-35285
1 parent c78cc44 commit 6a39b49

File tree

3 files changed

+21
-13
lines changed

3 files changed

+21
-13
lines changed

spring-boot-project/spring-boot-docker-compose/build.gradle

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,13 @@ dependencies {
2222

2323
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
2424
testImplementation(project(":spring-boot-project:spring-boot-test"))
25-
testImplementation("org.springframework:spring-core-test")
26-
testImplementation("org.springframework:spring-test")
27-
testImplementation("org.assertj:assertj-core")
28-
testImplementation("org.mockito:mockito-core")
2925
testImplementation("ch.qos.logback:logback-classic")
26+
testImplementation("org.assertj:assertj-core")
27+
testImplementation("org.awaitility:awaitility")
3028
testImplementation("org.junit.jupiter:junit-jupiter")
29+
testImplementation("org.mockito:mockito-core")
30+
testImplementation("org.springframework:spring-core-test")
31+
testImplementation("org.springframework:spring-test")
3132

3233
testRuntimeOnly("com.microsoft.sqlserver:mssql-jdbc")
3334
testRuntimeOnly("com.oracle.database.r2dbc:oracle-r2dbc")

spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/oracle/OracleJdbcDockerComposeConnectionDetailsFactoryIntegrationTests.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
package org.springframework.boot.docker.compose.service.connection.oracle;
1818

1919
import java.sql.Driver;
20+
import java.time.Duration;
2021

22+
import org.awaitility.Awaitility;
2123
import org.junit.jupiter.api.Test;
2224
import org.junit.jupiter.api.condition.OS;
2325

@@ -57,9 +59,11 @@ void runCreatesConnectionDetailsThatCanBeUsedToAccessDatabase() throws Exception
5759
dataSource.setPassword(connectionDetails.getPassword());
5860
dataSource.setDriverClass((Class<? extends Driver>) ClassUtils.forName(connectionDetails.getDriverClassName(),
5961
getClass().getClassLoader()));
60-
JdbcTemplate template = new JdbcTemplate(dataSource);
61-
assertThat(template.queryForObject(DatabaseDriver.ORACLE.getValidationQuery(), String.class))
62-
.isEqualTo("Hello");
62+
Awaitility.await().atMost(Duration.ofMinutes(1)).ignoreExceptions().untilAsserted(() -> {
63+
JdbcTemplate template = new JdbcTemplate(dataSource);
64+
assertThat(template.queryForObject(DatabaseDriver.ORACLE.getValidationQuery(), String.class))
65+
.isEqualTo("Hello");
66+
});
6367
}
6468

6569
}

spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/oracle/OracleR2dbcDockerComposeConnectionDetailsFactoryIntegrationTests.java

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020

2121
import io.r2dbc.spi.ConnectionFactories;
2222
import io.r2dbc.spi.ConnectionFactoryOptions;
23+
import org.awaitility.Awaitility;
2324
import org.junit.jupiter.api.Test;
2425
import org.junit.jupiter.api.condition.OS;
2526

@@ -51,12 +52,14 @@ void runCreatesConnectionDetailsThatCanBeUsedToAccessDatabase() {
5152
assertThat(connectionFactoryOptions.toString()).contains("database=xepdb1", "driver=oracle",
5253
"password=REDACTED", "user=system");
5354
assertThat(connectionFactoryOptions.getRequiredValue(ConnectionFactoryOptions.PASSWORD)).isEqualTo("secret");
54-
Object result = DatabaseClient.create(ConnectionFactories.get(connectionFactoryOptions))
55-
.sql(DatabaseDriver.ORACLE.getValidationQuery())
56-
.map((row, metadata) -> row.get(0))
57-
.first()
58-
.block(Duration.ofSeconds(30));
59-
assertThat(result).isEqualTo("Hello");
55+
Awaitility.await().atMost(Duration.ofMinutes(1)).ignoreExceptions().untilAsserted(() -> {
56+
Object result = DatabaseClient.create(ConnectionFactories.get(connectionFactoryOptions))
57+
.sql(DatabaseDriver.ORACLE.getValidationQuery())
58+
.map((row, metadata) -> row.get(0))
59+
.first()
60+
.block(Duration.ofSeconds(30));
61+
assertThat(result).isEqualTo("Hello");
62+
});
6063
}
6164

6265
}

0 commit comments

Comments
 (0)