|
7 | 7 | import java.sql.Connection; |
8 | 8 | import java.sql.SQLException; |
9 | 9 |
|
| 10 | +import static org.assertj.core.api.Assertions.assertThat; |
10 | 11 | import static org.assertj.core.api.Assertions.assertThatExceptionOfType; |
11 | 12 | import static org.mockito.Mockito.mock; |
12 | 13 |
|
13 | 14 | class JdbcDatabaseContainerTest { |
14 | 15 |
|
| 16 | + @Test |
| 17 | + void getR2dbcUrlConvertsJdbcUrlToR2dbcFormat() { |
| 18 | + JdbcDatabaseContainer<?> container = new JdbcDatabaseContainerStubWithUrl( |
| 19 | + "mysql:latest", |
| 20 | + "jdbc:mysql://localhost:3306/testdb" |
| 21 | + ); |
| 22 | + |
| 23 | + String r2dbcUrl = container.getR2dbcUrl(); |
| 24 | + |
| 25 | + assertThat(r2dbcUrl).isEqualTo("r2dbc:mysql://localhost:3306/testdb"); |
| 26 | + } |
| 27 | + |
| 28 | + @Test |
| 29 | + void getR2dbcUrlThrowsExceptionWhenJdbcUrlIsNull() { |
| 30 | + JdbcDatabaseContainer<?> container = new JdbcDatabaseContainerStub("mysql:latest"); |
| 31 | + |
| 32 | + assertThatExceptionOfType(UnsupportedOperationException.class) |
| 33 | + .isThrownBy(container::getR2dbcUrl) |
| 34 | + .withMessageContaining("Cannot convert JDBC URL to R2DBC format"); |
| 35 | + } |
| 36 | + |
15 | 37 | @Test |
16 | 38 | void anExceptionIsThrownIfJdbcIsNotAvailable() { |
17 | 39 | JdbcDatabaseContainer<?> jdbcContainer = new JdbcDatabaseContainerStub("mysql:latest") |
@@ -69,4 +91,19 @@ protected Logger logger() { |
69 | 91 | @Override |
70 | 92 | public void setDockerImageName(@NonNull String dockerImageName) {} |
71 | 93 | } |
| 94 | + |
| 95 | + static class JdbcDatabaseContainerStubWithUrl extends JdbcDatabaseContainerStub { |
| 96 | + |
| 97 | + private final String jdbcUrl; |
| 98 | + |
| 99 | + public JdbcDatabaseContainerStubWithUrl(@NonNull String dockerImageName, String jdbcUrl) { |
| 100 | + super(dockerImageName); |
| 101 | + this.jdbcUrl = jdbcUrl; |
| 102 | + } |
| 103 | + |
| 104 | + @Override |
| 105 | + public String getJdbcUrl() { |
| 106 | + return jdbcUrl; |
| 107 | + } |
| 108 | + } |
72 | 109 | } |
0 commit comments