|
22 | 22 | import io.r2dbc.spi.Option; |
23 | 23 | import org.junit.jupiter.api.Test; |
24 | 24 |
|
| 25 | +import java.util.Collections; |
25 | 26 | import java.util.HashMap; |
26 | 27 | import java.util.Map; |
27 | 28 |
|
@@ -276,4 +277,38 @@ void shouldConnectUsingUnixDomainSocket() { |
276 | 277 | assertThat(factory.getConfiguration().getRequiredSocket()).isEqualTo("/tmp/.s.PGSQL.5432"); |
277 | 278 | } |
278 | 279 |
|
| 280 | + @Test |
| 281 | + void shouldParseOptionsProvidedAsString() { |
| 282 | + final Option<String> options = Option.valueOf("options"); |
| 283 | + PostgresqlConnectionFactory factory = this.provider.create(builder() |
| 284 | + .option(DRIVER, POSTGRESQL_DRIVER) |
| 285 | + .option(HOST, "test-host") |
| 286 | + .option(PASSWORD, "test-password") |
| 287 | + .option(USER, "test-user") |
| 288 | + .option(options, "search_path=public,private;default_tablespace=unknown") |
| 289 | + .build()); |
| 290 | + |
| 291 | + assertThat(factory.getConfiguration().getOptions().get("search_path")).isEqualTo("public,private"); |
| 292 | + assertThat(factory.getConfiguration().getOptions().get("default_tablespace")).isEqualTo("unknown"); |
| 293 | + } |
| 294 | + |
| 295 | + @Test |
| 296 | + void shouldParseOptionsProvidedAsMap() { |
| 297 | + final Option<Map<String, String>> options = Option.valueOf("options"); |
| 298 | + |
| 299 | + Map<String, String> optionsMap = new HashMap<>(); |
| 300 | + optionsMap.put("search_path", "public,private"); |
| 301 | + optionsMap.put("default_tablespace", "unknown"); |
| 302 | + |
| 303 | + PostgresqlConnectionFactory factory = this.provider.create(builder() |
| 304 | + .option(DRIVER, POSTGRESQL_DRIVER) |
| 305 | + .option(HOST, "test-host") |
| 306 | + .option(PASSWORD, "test-password") |
| 307 | + .option(USER, "test-user") |
| 308 | + .option(options, optionsMap) |
| 309 | + .build()); |
| 310 | + |
| 311 | + assertThat(factory.getConfiguration().getOptions().get("search_path")).isEqualTo("public,private"); |
| 312 | + assertThat(factory.getConfiguration().getOptions().get("default_tablespace")).isEqualTo("unknown"); |
| 313 | + } |
279 | 314 | } |
0 commit comments