@@ -27,4 +27,39 @@ protected ConnectionFactoryOptions getOptions(PostgreSQLContainer container) {
2727 protected String createR2DBCUrl () {
2828 return "r2dbc:tc:postgresql:///db?TC_IMAGE_TAG=10-alpine" ;
2929 }
30+
31+ @ org .junit .jupiter .api .Test
32+ void testGetR2dbcUrl () {
33+ try (PostgreSQLContainer container = createContainer ()) {
34+ container .start ();
35+
36+ // Test static method
37+ String r2dbcUrlStatic = PostgreSQLR2DBCDatabaseContainer .getR2dbcUrl (container );
38+
39+ org .assertj .core .api .Assertions .assertThat (r2dbcUrlStatic ).isNotNull ();
40+ org .assertj .core .api .Assertions .assertThat (r2dbcUrlStatic ).startsWith ("r2dbc:postgresql://" );
41+ org .assertj .core .api .Assertions .assertThat (r2dbcUrlStatic ).contains (container .getHost ());
42+ org .assertj .core .api .Assertions .assertThat (r2dbcUrlStatic ).contains (String .valueOf (container .getMappedPort (PostgreSQLContainer .POSTGRESQL_PORT )));
43+ org .assertj .core .api .Assertions .assertThat (r2dbcUrlStatic ).contains (container .getDatabaseName ());
44+ org .assertj .core .api .Assertions .assertThat (r2dbcUrlStatic ).contains (container .getUsername ());
45+ org .assertj .core .api .Assertions .assertThat (r2dbcUrlStatic ).contains (container .getPassword ());
46+
47+ // Verify the format: r2dbc:postgresql://username:password@host:port/database
48+ String expectedUrl = String .format (
49+ "r2dbc:postgresql://%s:%s@%s:%d/%s" ,
50+ container .getUsername (),
51+ container .getPassword (),
52+ container .getHost (),
53+ container .getMappedPort (PostgreSQLContainer .POSTGRESQL_PORT ),
54+ container .getDatabaseName ()
55+ );
56+ org .assertj .core .api .Assertions .assertThat (r2dbcUrlStatic ).isEqualTo (expectedUrl );
57+
58+ // Test instance method
59+ PostgreSQLR2DBCDatabaseContainer r2dbcContainer = new PostgreSQLR2DBCDatabaseContainer (container );
60+ String r2dbcUrlInstance = r2dbcContainer .getR2dbcUrl ();
61+
62+ org .assertj .core .api .Assertions .assertThat (r2dbcUrlInstance ).isEqualTo (r2dbcUrlStatic );
63+ }
64+ }
3065}
0 commit comments