File tree Expand file tree Collapse file tree 2 files changed +69
-0
lines changed
main/java/org/testcontainers/mssqlserver
test/java/org/testcontainers/mssqlserver Expand file tree Collapse file tree 2 files changed +69
-0
lines changed Original file line number Diff line number Diff line change 1+ package org .testcontainers .mssqlserver ;
2+
3+ import io .r2dbc .mssql .MssqlConnectionFactoryProvider ;
4+ import io .r2dbc .spi .ConnectionFactoryOptions ;
5+ import org .testcontainers .r2dbc .R2DBCDatabaseContainer ;
6+
7+ public class MSSQLR2DBCDatabaseContainer implements R2DBCDatabaseContainer {
8+
9+ private final MSSQLServerContainer container ;
10+
11+ public MSSQLR2DBCDatabaseContainer (MSSQLServerContainer container ) {
12+ this .container = container ;
13+ }
14+
15+ public static ConnectionFactoryOptions getOptions (MSSQLServerContainer container ) {
16+ ConnectionFactoryOptions options = ConnectionFactoryOptions
17+ .builder ()
18+ .option (ConnectionFactoryOptions .DRIVER , MssqlConnectionFactoryProvider .MSSQL_DRIVER )
19+ .build ();
20+
21+ return new MSSQLR2DBCDatabaseContainer (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 (MSSQLServerContainer .MS_SQL_SERVER_PORT ))
30+ // TODO enable if/when MSSQLServerContainer adds support for customizing the DB name
31+ // .option(ConnectionFactoryOptions.DATABASE, container.getDatabasseName())
32+ .option (ConnectionFactoryOptions .USER , container .getUsername ())
33+ .option (ConnectionFactoryOptions .PASSWORD , container .getPassword ())
34+ .build ();
35+ }
36+
37+ @ Override
38+ public void start () {
39+ this .container .start ();
40+ }
41+
42+ @ Override
43+ public void stop () {
44+ this .container .stop ();
45+ }
46+ }
Original file line number Diff line number Diff line change 1+ package org .testcontainers .mssqlserver ;
2+
3+ import io .r2dbc .spi .ConnectionFactoryOptions ;
4+ import org .testcontainers .MSSQLServerTestImages ;
5+ import org .testcontainers .r2dbc .AbstractR2DBCDatabaseContainerTest ;
6+
7+ class MSSQLR2DBCDatabaseContainerTest extends AbstractR2DBCDatabaseContainerTest <MSSQLServerContainer > {
8+
9+ @ Override
10+ protected ConnectionFactoryOptions getOptions (MSSQLServerContainer container ) {
11+ return MSSQLR2DBCDatabaseContainer .getOptions (container );
12+ }
13+
14+ @ Override
15+ protected String createR2DBCUrl () {
16+ return "r2dbc:tc:sqlserver:///?TC_IMAGE_TAG=2022-CU14-ubuntu-22.04" ;
17+ }
18+
19+ @ Override
20+ protected MSSQLServerContainer createContainer () {
21+ return new MSSQLServerContainer (MSSQLServerTestImages .MSSQL_SERVER_IMAGE );
22+ }
23+ }
You can’t perform that action at this time.
0 commit comments