|
16 | 16 |
|
17 | 17 | package org.springframework.jdbc.config;
|
18 | 18 |
|
19 |
| -import java.util.function.Predicate; |
20 |
| - |
21 | 19 | import javax.sql.DataSource;
|
22 | 20 |
|
23 | 21 | import org.junit.jupiter.api.Test;
|
|
35 | 33 | import org.springframework.jdbc.datasource.AbstractDriverBasedDataSource;
|
36 | 34 | import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactoryBean;
|
37 | 35 | import org.springframework.jdbc.datasource.init.DataSourceInitializer;
|
| 36 | +import org.springframework.lang.Nullable; |
38 | 37 |
|
39 | 38 | import static org.assertj.core.api.Assertions.assertThat;
|
40 | 39 | import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
|
@@ -70,26 +69,24 @@ void createWithResourcePattern() {
|
70 | 69 |
|
71 | 70 | @Test
|
72 | 71 | void createWithAnonymousDataSourceAndDefaultDatabaseName() {
|
73 |
| - assertCorrectSetupForSingleDataSource("jdbc-config-db-name-default-and-anonymous-datasource.xml", |
74 |
| - url -> url.endsWith(DEFAULT_DATABASE_NAME)); |
| 72 | + assertThat(extractDataSourceUrl("jdbc-config-db-name-default-and-anonymous-datasource.xml")) |
| 73 | + .endsWith(DEFAULT_DATABASE_NAME); |
75 | 74 | }
|
76 | 75 |
|
77 | 76 | @Test
|
78 | 77 | void createWithImplicitDatabaseName() {
|
79 |
| - assertCorrectSetupForSingleDataSource("jdbc-config-db-name-implicit.xml", url -> url.endsWith("dataSource")); |
| 78 | + assertThat(extractDataSourceUrl("jdbc-config-db-name-implicit.xml")).endsWith("dataSource"); |
80 | 79 | }
|
81 | 80 |
|
82 | 81 | @Test
|
83 | 82 | void createWithExplicitDatabaseName() {
|
84 |
| - assertCorrectSetupForSingleDataSource("jdbc-config-db-name-explicit.xml", url -> url.endsWith("customDbName")); |
| 83 | + assertThat(extractDataSourceUrl("jdbc-config-db-name-explicit.xml")).endsWith("customDbName"); |
85 | 84 | }
|
86 | 85 |
|
87 | 86 | @Test
|
88 | 87 | void createWithGeneratedDatabaseName() {
|
89 |
| - Predicate<String> urlPredicate = ((Predicate<String>) url -> url.startsWith("jdbc:hsqldb:mem:")) |
90 |
| - .and(url -> !url.endsWith("dataSource")) |
91 |
| - .and(url -> !url.endsWith("shouldBeOverriddenByGeneratedName")); |
92 |
| - assertCorrectSetupForSingleDataSource("jdbc-config-db-name-generated.xml", urlPredicate); |
| 88 | + assertThat(extractDataSourceUrl("jdbc-config-db-name-generated.xml")).startsWith("jdbc:hsqldb:mem:") |
| 89 | + .doesNotEndWith("dataSource").doesNotEndWith("shouldBeOverriddenByGeneratedName"); |
93 | 90 | }
|
94 | 91 |
|
95 | 92 | @Test
|
@@ -191,13 +188,14 @@ private void assertCorrectSetupAndCloseContext(String file, int count, String...
|
191 | 188 | }
|
192 | 189 | }
|
193 | 190 |
|
194 |
| - private void assertCorrectSetupForSingleDataSource(String file, Predicate<String> urlPredicate) { |
| 191 | + @Nullable |
| 192 | + private String extractDataSourceUrl(String file) { |
195 | 193 | try (ConfigurableApplicationContext context = context(file)) {
|
196 | 194 | DataSource dataSource = context.getBean(DataSource.class);
|
197 | 195 | assertNumRowsInTestTable(new JdbcTemplate(dataSource), 1);
|
198 | 196 | assertThat(dataSource).isInstanceOf(AbstractDriverBasedDataSource.class);
|
199 | 197 | AbstractDriverBasedDataSource adbDataSource = (AbstractDriverBasedDataSource) dataSource;
|
200 |
| - assertThat(urlPredicate.test(adbDataSource.getUrl())).isTrue(); |
| 198 | + return adbDataSource.getUrl(); |
201 | 199 | }
|
202 | 200 | }
|
203 | 201 |
|
|
0 commit comments