File tree Expand file tree Collapse file tree 2 files changed +75
-0
lines changed
main/java/org/testcontainers/postgresql
test/java/org/testcontainers/postgresql Expand file tree Collapse file tree 2 files changed +75
-0
lines changed Original file line number Diff line number Diff line change 1+ package org .testcontainers .postgresql ;
2+
3+ import io .r2dbc .postgresql .PostgresqlConnectionFactoryProvider ;
4+ import io .r2dbc .spi .ConnectionFactoryOptions ;
5+ import org .testcontainers .r2dbc .R2DBCDatabaseContainer ;
6+
7+ public final class PostgreSQLR2DBCDatabaseContainer implements R2DBCDatabaseContainer {
8+
9+ private final PostgreSQLContainer container ;
10+
11+ public PostgreSQLR2DBCDatabaseContainer (PostgreSQLContainer container ) {
12+ this .container = container ;
13+ }
14+
15+ public static ConnectionFactoryOptions getOptions (PostgreSQLContainer container ) {
16+ ConnectionFactoryOptions options = ConnectionFactoryOptions
17+ .builder ()
18+ .option (ConnectionFactoryOptions .DRIVER , PostgresqlConnectionFactoryProvider .POSTGRESQL_DRIVER )
19+ .build ();
20+
21+ return new PostgreSQLR2DBCDatabaseContainer (container ).configure (options );
22+ }
23+
24+ @ Override
25+ public ConnectionFactoryOptions configure (ConnectionFactoryOptions options ) {
26+ return options
27+ .mutate ()
28+ .option (ConnectionFactoryOptions .HOST , container .getHost ())
29+ .option (ConnectionFactoryOptions .PORT , container .getMappedPort (PostgreSQLContainer .POSTGRESQL_PORT ))
30+ .option (ConnectionFactoryOptions .DATABASE , container .getDatabaseName ())
31+ .option (ConnectionFactoryOptions .USER , container .getUsername ())
32+ .option (ConnectionFactoryOptions .PASSWORD , container .getPassword ())
33+ .build ();
34+ }
35+
36+ @ Override
37+ public void start () {
38+ this .container .start ();
39+ }
40+
41+ @ Override
42+ public void stop () {
43+ this .container .stop ();
44+ }
45+ }
Original file line number Diff line number Diff line change 1+ package org .testcontainers .postgresql ;
2+
3+ import io .r2dbc .spi .ConnectionFactoryOptions ;
4+ import org .testcontainers .PostgreSQLTestImages ;
5+ import org .testcontainers .r2dbc .AbstractR2DBCDatabaseContainerTest ;
6+
7+ public class PostgreSQLR2DBCDatabaseContainerTest extends AbstractR2DBCDatabaseContainerTest <PostgreSQLContainer > {
8+
9+ @ Override
10+ protected PostgreSQLContainer createContainer () {
11+ return new PostgreSQLContainer (PostgreSQLTestImages .POSTGRES_TEST_IMAGE );
12+ }
13+
14+ @ Override
15+ protected ConnectionFactoryOptions getOptions (PostgreSQLContainer container ) {
16+ // spotless:off
17+ // get_options {
18+ ConnectionFactoryOptions options = PostgreSQLR2DBCDatabaseContainer .getOptions (
19+ container
20+ );
21+ // }
22+ // spotless:on
23+
24+ return options ;
25+ }
26+
27+ protected String createR2DBCUrl () {
28+ return "r2dbc:tc:postgresql:///db?TC_IMAGE_TAG=10-alpine" ;
29+ }
30+ }
You can’t perform that action at this time.
0 commit comments