Merge branch '6.1.x'
This commit is contained in:
commit
e27192e8ad
|
|
@ -16,8 +16,6 @@
|
||||||
|
|
||||||
package org.springframework.jdbc.config;
|
package org.springframework.jdbc.config;
|
||||||
|
|
||||||
import java.util.function.Predicate;
|
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
@ -35,6 +33,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
|
||||||
import org.springframework.jdbc.datasource.AbstractDriverBasedDataSource;
|
import org.springframework.jdbc.datasource.AbstractDriverBasedDataSource;
|
||||||
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactoryBean;
|
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseFactoryBean;
|
||||||
import org.springframework.jdbc.datasource.init.DataSourceInitializer;
|
import org.springframework.jdbc.datasource.init.DataSourceInitializer;
|
||||||
|
import org.springframework.lang.Nullable;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
|
import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
|
||||||
|
|
@ -70,26 +69,24 @@ class JdbcNamespaceIntegrationTests {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void createWithAnonymousDataSourceAndDefaultDatabaseName() {
|
void createWithAnonymousDataSourceAndDefaultDatabaseName() {
|
||||||
assertCorrectSetupForSingleDataSource("jdbc-config-db-name-default-and-anonymous-datasource.xml",
|
assertThat(extractDataSourceUrl("jdbc-config-db-name-default-and-anonymous-datasource.xml"))
|
||||||
url -> url.endsWith(DEFAULT_DATABASE_NAME));
|
.endsWith(DEFAULT_DATABASE_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void createWithImplicitDatabaseName() {
|
void createWithImplicitDatabaseName() {
|
||||||
assertCorrectSetupForSingleDataSource("jdbc-config-db-name-implicit.xml", url -> url.endsWith("dataSource"));
|
assertThat(extractDataSourceUrl("jdbc-config-db-name-implicit.xml")).endsWith("dataSource");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void createWithExplicitDatabaseName() {
|
void createWithExplicitDatabaseName() {
|
||||||
assertCorrectSetupForSingleDataSource("jdbc-config-db-name-explicit.xml", url -> url.endsWith("customDbName"));
|
assertThat(extractDataSourceUrl("jdbc-config-db-name-explicit.xml")).endsWith("customDbName");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void createWithGeneratedDatabaseName() {
|
void createWithGeneratedDatabaseName() {
|
||||||
Predicate<String> urlPredicate = url -> url.startsWith("jdbc:hsqldb:mem:");
|
assertThat(extractDataSourceUrl("jdbc-config-db-name-generated.xml")).startsWith("jdbc:hsqldb:mem:")
|
||||||
urlPredicate.and(url -> !url.endsWith("dataSource"));
|
.doesNotEndWith("dataSource").doesNotEndWith("shouldBeOverriddenByGeneratedName");
|
||||||
urlPredicate.and(url -> !url.endsWith("shouldBeOverriddenByGeneratedName"));
|
|
||||||
assertCorrectSetupForSingleDataSource("jdbc-config-db-name-generated.xml", urlPredicate);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -191,13 +188,14 @@ class JdbcNamespaceIntegrationTests {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void assertCorrectSetupForSingleDataSource(String file, Predicate<String> urlPredicate) {
|
@Nullable
|
||||||
|
private String extractDataSourceUrl(String file) {
|
||||||
try (ConfigurableApplicationContext context = context(file)) {
|
try (ConfigurableApplicationContext context = context(file)) {
|
||||||
DataSource dataSource = context.getBean(DataSource.class);
|
DataSource dataSource = context.getBean(DataSource.class);
|
||||||
assertNumRowsInTestTable(new JdbcTemplate(dataSource), 1);
|
assertNumRowsInTestTable(new JdbcTemplate(dataSource), 1);
|
||||||
assertThat(dataSource).isInstanceOf(AbstractDriverBasedDataSource.class);
|
assertThat(dataSource).isInstanceOf(AbstractDriverBasedDataSource.class);
|
||||||
AbstractDriverBasedDataSource adbDataSource = (AbstractDriverBasedDataSource) dataSource;
|
AbstractDriverBasedDataSource adbDataSource = (AbstractDriverBasedDataSource) dataSource;
|
||||||
assertThat(urlPredicate.test(adbDataSource.getUrl())).isTrue();
|
return adbDataSource.getUrl();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue