Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,15 @@ public class MariaDBR2DBCDatabaseContainer implements R2DBCDatabaseContainer {
@Delegate(types = Startable.class)
private final MariaDBContainer<?> container;

public static String getR2dbcUrl(MariaDBContainer<?> container) {
return String.format(
"r2dbc:mariadb://%s:%d/%s",
container.getHost(),
container.getMappedPort(MariaDBContainer.MARIADB_PORT),
container.getDatabaseName()
);
}

public static ConnectionFactoryOptions getOptions(MariaDBContainer<?> container) {
ConnectionFactoryOptions options = ConnectionFactoryOptions
.builder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@ public MariaDBR2DBCDatabaseContainer(MariaDBContainer container) {
this.container = container;
}

public static String getR2dbcUrl(MariaDBContainer container) {
return String.format(
"r2dbc:mariadb://%s:%d/%s",
container.getHost(),
container.getMappedPort(MariaDBContainer.MARIADB_PORT),
container.getDatabaseName()
);
}

public static ConnectionFactoryOptions getOptions(MariaDBContainer container) {
ConnectionFactoryOptions options = ConnectionFactoryOptions
.builder()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
package org.testcontainers.containers;

import static org.assertj.core.api.Assertions.assertThat;

import io.r2dbc.spi.ConnectionFactories;
import io.r2dbc.spi.ConnectionFactory;
import io.r2dbc.spi.ConnectionFactoryOptions;
import org.junit.jupiter.api.Test;
import org.testcontainers.r2dbc.AbstractR2DBCDatabaseContainerTest;
import org.testcontainers.utility.DockerImageName;

Expand All @@ -20,4 +25,27 @@ protected String createR2DBCUrl() {
protected MariaDBContainer<?> createContainer() {
return new MariaDBContainer<>(DockerImageName.parse("mariadb:10.3.39"));
}

@Test
void testGetR2dbcUrl() {
try (
MariaDBContainer<?> container = new MariaDBContainer<>(DockerImageName.parse("mariadb:10.3.39"))
.withDatabaseName("testdb")
.withUsername("testuser")
.withPassword("testpass")
) {
container.start();
String url = MariaDBR2DBCDatabaseContainer.getR2dbcUrl(container);
assertThat(url).contains("/testdb");
ConnectionFactory connectionFactory = ConnectionFactories.get(
ConnectionFactoryOptions
.parse(url)
.mutate()
.option(ConnectionFactoryOptions.USER, container.getUsername())
.option(ConnectionFactoryOptions.PASSWORD, container.getPassword())
.build()
);
runTestQuery(connectionFactory);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
package org.testcontainers.mariadb;

import static org.assertj.core.api.Assertions.assertThat;

import io.r2dbc.spi.ConnectionFactories;
import io.r2dbc.spi.ConnectionFactory;
import io.r2dbc.spi.ConnectionFactoryOptions;
import org.junit.jupiter.api.Test;
import org.testcontainers.r2dbc.AbstractR2DBCDatabaseContainerTest;
import org.testcontainers.utility.DockerImageName;

Expand All @@ -20,4 +25,27 @@ protected String createR2DBCUrl() {
protected MariaDBContainer createContainer() {
return new MariaDBContainer(DockerImageName.parse("mariadb:10.3.39"));
}

@Test
void testGetR2dbcUrl() {
try (
MariaDBContainer container = new MariaDBContainer(DockerImageName.parse("mariadb:10.3.39"))
.withDatabaseName("testdb")
.withUsername("testuser")
.withPassword("testpass")
) {
container.start();
String url = MariaDBR2DBCDatabaseContainer.getR2dbcUrl(container);
assertThat(url).contains("/testdb");
ConnectionFactory connectionFactory = ConnectionFactories.get(
ConnectionFactoryOptions
.parse(url)
.mutate()
.option(ConnectionFactoryOptions.USER, container.getUsername())
.option(ConnectionFactoryOptions.PASSWORD, container.getPassword())
.build()
);
runTestQuery(connectionFactory);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,15 @@ public class MySQLR2DBCDatabaseContainer implements R2DBCDatabaseContainer {
@Delegate(types = Startable.class)
private final MySQLContainer<?> container;

public static String getR2dbcUrl(MySQLContainer<?> container) {
return String.format(
"r2dbc:mysql://%s:%d/%s",
container.getHost(),
container.getMappedPort(MySQLContainer.MYSQL_PORT),
container.getDatabaseName()
);
}

public static ConnectionFactoryOptions getOptions(MySQLContainer<?> container) {
ConnectionFactoryOptions options = ConnectionFactoryOptions
.builder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@ public MySQLR2DBCDatabaseContainer(MySQLContainer container) {
this.container = container;
}

public static String getR2dbcUrl(MySQLContainer container) {
return String.format(
"r2dbc:mysql://%s:%d/%s",
container.getHost(),
container.getMappedPort(MySQLContainer.MYSQL_PORT),
container.getDatabaseName()
);
}

public static ConnectionFactoryOptions getOptions(MySQLContainer container) {
ConnectionFactoryOptions options = ConnectionFactoryOptions
.builder()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
package org.testcontainers.containers;

import static org.assertj.core.api.Assertions.assertThat;

import io.r2dbc.spi.ConnectionFactories;
import io.r2dbc.spi.ConnectionFactory;
import io.r2dbc.spi.ConnectionFactoryOptions;
import org.junit.jupiter.api.Test;
import org.testcontainers.MySQLTestImages;
import org.testcontainers.r2dbc.AbstractR2DBCDatabaseContainerTest;

Expand All @@ -20,4 +25,27 @@ protected String createR2DBCUrl() {
protected MySQLContainer<?> createContainer() {
return new MySQLContainer<>(MySQLTestImages.MYSQL_80_IMAGE);
}

@Test
void testGetR2dbcUrl() {
try (
MySQLContainer<?> container = new MySQLContainer<>(MySQLTestImages.MYSQL_80_IMAGE)
.withDatabaseName("testdb")
.withUsername("testuser")
.withPassword("testpass")
) {
container.start();
String url = MySQLR2DBCDatabaseContainer.getR2dbcUrl(container);
assertThat(url).contains("/testdb");
ConnectionFactory connectionFactory = ConnectionFactories.get(
ConnectionFactoryOptions
.parse(url)
.mutate()
.option(ConnectionFactoryOptions.USER, container.getUsername())
.option(ConnectionFactoryOptions.PASSWORD, container.getPassword())
.build()
);
runTestQuery(connectionFactory);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
package org.testcontainers.mysql;

import static org.assertj.core.api.Assertions.assertThat;

import io.r2dbc.spi.ConnectionFactories;
import io.r2dbc.spi.ConnectionFactory;
import io.r2dbc.spi.ConnectionFactoryOptions;
import org.junit.jupiter.api.Test;
import org.testcontainers.MySQLTestImages;
import org.testcontainers.r2dbc.AbstractR2DBCDatabaseContainerTest;

Expand All @@ -20,4 +25,27 @@ protected String createR2DBCUrl() {
protected MySQLContainer createContainer() {
return new MySQLContainer(MySQLTestImages.MYSQL_80_IMAGE);
}

@Test
void testGetR2dbcUrl() {
try (
MySQLContainer container = new MySQLContainer(MySQLTestImages.MYSQL_80_IMAGE)
.withDatabaseName("testdb")
.withUsername("testuser")
.withPassword("testpass")
) {
container.start();
String url = MySQLR2DBCDatabaseContainer.getR2dbcUrl(container);
assertThat(url).contains("/testdb");
ConnectionFactory connectionFactory = ConnectionFactories.get(
ConnectionFactoryOptions
.parse(url)
.mutate()
.option(ConnectionFactoryOptions.USER, container.getUsername())
.option(ConnectionFactoryOptions.PASSWORD, container.getPassword())
.build()
);
runTestQuery(connectionFactory);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,15 @@ public final class PostgreSQLR2DBCDatabaseContainer implements R2DBCDatabaseCont
@Delegate(types = Startable.class)
private final PostgreSQLContainer<?> container;

public static String getR2dbcUrl(PostgreSQLContainer<?> container) {
return String.format(
"r2dbc:postgresql://%s:%d/%s",
container.getHost(),
container.getMappedPort(PostgreSQLContainer.POSTGRESQL_PORT),
container.getDatabaseName()
);
}

public static ConnectionFactoryOptions getOptions(PostgreSQLContainer<?> container) {
ConnectionFactoryOptions options = ConnectionFactoryOptions
.builder()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@ public PostgreSQLR2DBCDatabaseContainer(PostgreSQLContainer container) {
this.container = container;
}

public static String getR2dbcUrl(PostgreSQLContainer container) {
return String.format(
"r2dbc:postgresql://%s:%d/%s",
container.getHost(),
container.getMappedPort(PostgreSQLContainer.POSTGRESQL_PORT),
container.getDatabaseName()
);
}

public static ConnectionFactoryOptions getOptions(PostgreSQLContainer container) {
ConnectionFactoryOptions options = ConnectionFactoryOptions
.builder()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
package org.testcontainers.containers;

import static org.assertj.core.api.Assertions.assertThat;

import io.r2dbc.spi.ConnectionFactories;
import io.r2dbc.spi.ConnectionFactory;
import io.r2dbc.spi.ConnectionFactoryOptions;
import org.junit.jupiter.api.Test;
import org.testcontainers.PostgreSQLTestImages;
import org.testcontainers.r2dbc.AbstractR2DBCDatabaseContainerTest;

Expand All @@ -27,4 +32,27 @@ protected ConnectionFactoryOptions getOptions(PostgreSQLContainer<?> container)
protected String createR2DBCUrl() {
return "r2dbc:tc:postgresql:///db?TC_IMAGE_TAG=10-alpine";
}

@Test
void testGetR2dbcUrl() {
try (
PostgreSQLContainer<?> container = new PostgreSQLContainer<>(PostgreSQLTestImages.POSTGRES_TEST_IMAGE)
.withDatabaseName("testdb")
.withUsername("testuser")
.withPassword("testpass")
) {
container.start();
String url = PostgreSQLR2DBCDatabaseContainer.getR2dbcUrl(container);
assertThat(url).contains("/testdb");
ConnectionFactory connectionFactory = ConnectionFactories.get(
ConnectionFactoryOptions
.parse(url)
.mutate()
.option(ConnectionFactoryOptions.USER, container.getUsername())
.option(ConnectionFactoryOptions.PASSWORD, container.getPassword())
.build()
);
runTestQuery(connectionFactory);
}
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
package org.testcontainers.postgresql;

import static org.assertj.core.api.Assertions.assertThat;

import io.r2dbc.spi.ConnectionFactories;
import io.r2dbc.spi.ConnectionFactory;
import io.r2dbc.spi.ConnectionFactoryOptions;
import org.junit.jupiter.api.Test;
import org.testcontainers.PostgreSQLTestImages;
import org.testcontainers.r2dbc.AbstractR2DBCDatabaseContainerTest;

Expand All @@ -27,4 +32,27 @@ protected ConnectionFactoryOptions getOptions(PostgreSQLContainer container) {
protected String createR2DBCUrl() {
return "r2dbc:tc:postgresql:///db?TC_IMAGE_TAG=10-alpine";
}

@Test
void testGetR2dbcUrl() {
try (
PostgreSQLContainer container = new PostgreSQLContainer(PostgreSQLTestImages.POSTGRES_TEST_IMAGE)
.withDatabaseName("testdb")
.withUsername("testuser")
.withPassword("testpass")
) {
container.start();
String url = PostgreSQLR2DBCDatabaseContainer.getR2dbcUrl(container);
assertThat(url).contains("/testdb");
ConnectionFactory connectionFactory = ConnectionFactories.get(
ConnectionFactoryOptions
.parse(url)
.mutate()
.option(ConnectionFactoryOptions.USER, container.getUsername())
.option(ConnectionFactoryOptions.PASSWORD, container.getPassword())
.build()
);
runTestQuery(connectionFactory);
}
}
}
Loading