From 28eece3da14e40e3b2068bc4e7e8ef2e6bda73da Mon Sep 17 00:00:00 2001 From: tafjwr <64597651+tafjwr@users.noreply.github.com> Date: Mon, 12 Aug 2024 15:26:55 +0900 Subject: [PATCH 1/2] Fix predicate setup in test See gh-33368 --- .../jdbc/config/JdbcNamespaceIntegrationTests.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spring-jdbc/src/test/java/org/springframework/jdbc/config/JdbcNamespaceIntegrationTests.java b/spring-jdbc/src/test/java/org/springframework/jdbc/config/JdbcNamespaceIntegrationTests.java index c85a1f3cff0..6b11bc256d9 100644 --- a/spring-jdbc/src/test/java/org/springframework/jdbc/config/JdbcNamespaceIntegrationTests.java +++ b/spring-jdbc/src/test/java/org/springframework/jdbc/config/JdbcNamespaceIntegrationTests.java @@ -86,9 +86,9 @@ class JdbcNamespaceIntegrationTests { @Test void createWithGeneratedDatabaseName() { - Predicate urlPredicate = url -> url.startsWith("jdbc:hsqldb:mem:"); - urlPredicate.and(url -> !url.endsWith("dataSource")); - urlPredicate.and(url -> !url.endsWith("shouldBeOverriddenByGeneratedName")); + Predicate urlPredicate = ((Predicate) url -> url.startsWith("jdbc:hsqldb:mem:")) + .and(url -> !url.endsWith("dataSource")) + .and(url -> !url.endsWith("shouldBeOverriddenByGeneratedName")); assertCorrectSetupForSingleDataSource("jdbc-config-db-name-generated.xml", urlPredicate); } From 749145be2a4713c5b293be7803c77bd2cf6c36e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Mon, 12 Aug 2024 10:29:34 +0200 Subject: [PATCH 2/2] Polish "Fix predicate setup in test" See gh-33368 --- .../config/JdbcNamespaceIntegrationTests.java | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/spring-jdbc/src/test/java/org/springframework/jdbc/config/JdbcNamespaceIntegrationTests.java b/spring-jdbc/src/test/java/org/springframework/jdbc/config/JdbcNamespaceIntegrationTests.java index 6b11bc256d9..e03b2d33615 100644 --- a/spring-jdbc/src/test/java/org/springframework/jdbc/config/JdbcNamespaceIntegrationTests.java +++ b/spring-jdbc/src/test/java/org/springframework/jdbc/config/JdbcNamespaceIntegrationTests.java @@ -16,8 +16,6 @@ package org.springframework.jdbc.config; -import java.util.function.Predicate; - import javax.sql.DataSource; 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.embedded.EmbeddedDatabaseFactoryBean; 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.assertThatExceptionOfType; @@ -70,26 +69,24 @@ class JdbcNamespaceIntegrationTests { @Test void createWithAnonymousDataSourceAndDefaultDatabaseName() { - assertCorrectSetupForSingleDataSource("jdbc-config-db-name-default-and-anonymous-datasource.xml", - url -> url.endsWith(DEFAULT_DATABASE_NAME)); + assertThat(extractDataSourceUrl("jdbc-config-db-name-default-and-anonymous-datasource.xml")) + .endsWith(DEFAULT_DATABASE_NAME); } @Test void createWithImplicitDatabaseName() { - assertCorrectSetupForSingleDataSource("jdbc-config-db-name-implicit.xml", url -> url.endsWith("dataSource")); + assertThat(extractDataSourceUrl("jdbc-config-db-name-implicit.xml")).endsWith("dataSource"); } @Test void createWithExplicitDatabaseName() { - assertCorrectSetupForSingleDataSource("jdbc-config-db-name-explicit.xml", url -> url.endsWith("customDbName")); + assertThat(extractDataSourceUrl("jdbc-config-db-name-explicit.xml")).endsWith("customDbName"); } @Test void createWithGeneratedDatabaseName() { - Predicate urlPredicate = ((Predicate) url -> url.startsWith("jdbc:hsqldb:mem:")) - .and(url -> !url.endsWith("dataSource")) - .and(url -> !url.endsWith("shouldBeOverriddenByGeneratedName")); - assertCorrectSetupForSingleDataSource("jdbc-config-db-name-generated.xml", urlPredicate); + assertThat(extractDataSourceUrl("jdbc-config-db-name-generated.xml")).startsWith("jdbc:hsqldb:mem:") + .doesNotEndWith("dataSource").doesNotEndWith("shouldBeOverriddenByGeneratedName"); } @Test @@ -191,13 +188,14 @@ class JdbcNamespaceIntegrationTests { } } - private void assertCorrectSetupForSingleDataSource(String file, Predicate urlPredicate) { + @Nullable + private String extractDataSourceUrl(String file) { try (ConfigurableApplicationContext context = context(file)) { DataSource dataSource = context.getBean(DataSource.class); assertNumRowsInTestTable(new JdbcTemplate(dataSource), 1); assertThat(dataSource).isInstanceOf(AbstractDriverBasedDataSource.class); AbstractDriverBasedDataSource adbDataSource = (AbstractDriverBasedDataSource) dataSource; - assertThat(urlPredicate.test(adbDataSource.getUrl())).isTrue(); + return adbDataSource.getUrl(); } }