From 2028c54d01de7fe15e29c1233b83170c3a05b591 Mon Sep 17 00:00:00 2001 From: Sam Brannen <104798+sbrannen@users.noreply.github.com> Date: Mon, 7 Sep 2026 10:48:19 +0200 Subject: [PATCH] Polish TableMetaDataContextTests See gh-37014 --- .../simple/TableMetaDataContextTests.java | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/spring-jdbc/src/test/java/org/springframework/jdbc/core/simple/TableMetaDataContextTests.java b/spring-jdbc/src/test/java/org/springframework/jdbc/core/simple/TableMetaDataContextTests.java index d61dde4424e..56380f44379 100644 --- a/spring-jdbc/src/test/java/org/springframework/jdbc/core/simple/TableMetaDataContextTests.java +++ b/spring-jdbc/src/test/java/org/springframework/jdbc/core/simple/TableMetaDataContextTests.java @@ -42,19 +42,19 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; /** - * Mock object based tests for TableMetaDataContext. + * Mock object based tests for {@link TableMetaDataContext}. * * @author Thomas Risberg */ class TableMetaDataContextTests { - private DataSource dataSource = mock(); + private final DataSource dataSource = mock(); - private Connection connection = mock(); + private final Connection connection = mock(); - private DatabaseMetaData databaseMetaData = mock(); + private final DatabaseMetaData databaseMetaData = mock(); - private TableMetaDataContext context = new TableMetaDataContext(); + private final TableMetaDataContext context = new TableMetaDataContext(); @BeforeEach @@ -141,7 +141,7 @@ class TableMetaDataContextTests { given(databaseMetaData.getColumns(null, USER, TABLE, null)).willReturn(columnsResultSet); MapSqlParameterSource map = new MapSqlParameterSource(); - String[] keyCols = new String[] { "id" }; + String[] keyCols = { "id" }; context.setTableName(TABLE); context.processMetaData(dataSource, new ArrayList<>(), keyCols); List values = context.matchInParameterValuesWithInsertColumns(map); @@ -155,34 +155,32 @@ class TableMetaDataContextTests { verify(columnsResultSet).close(); } - @Test + @Test // gh-37014 void overlappingDeclaredAndGeneratedKeyColumnsAreRejected() throws Exception { initializeTwoColumnCustomersTable(); context.setTableName("customers"); assertThatExceptionOfType(InvalidDataAccessApiUsageException.class) - .isThrownBy(() -> context.processMetaData( - dataSource, List.of("id", "name"), new String[] { "id" })) + .isThrownBy(() -> context.processMetaData(dataSource, List.of("id", "name"), new String[] { "id" })) .withMessage("Declared columns [id] must not overlap with generated key columns"); } - @Test + @Test // gh-37014 void overlappingDeclaredAndGeneratedKeyColumnsAreRejectedRegardlessOfCase() throws Exception { initializeTwoColumnCustomersTable(); context.setTableName("customers"); assertThatExceptionOfType(InvalidDataAccessApiUsageException.class) - .isThrownBy(() -> context.processMetaData( - dataSource, List.of("ID", "name"), new String[] { "id" })) + .isThrownBy(() -> context.processMetaData(dataSource, List.of("ID", "name"), new String[] { "id" })) .withMessage("Declared columns [ID] must not overlap with generated key columns"); } - @Test + @Test // gh-37014 void declaredColumnsWithoutOverlapAreUsedAsIs() throws Exception { initializeTwoColumnCustomersTable(); MapSqlParameterSource map = new MapSqlParameterSource(); map.addValue("name", "Sven"); - String[] keyCols = new String[] { "id" }; + String[] keyCols = { "id" }; context.setTableName("customers"); context.processMetaData(dataSource, List.of("name"), keyCols); List values = context.matchInParameterValuesWithInsertColumns(map); @@ -192,6 +190,7 @@ class TableMetaDataContextTests { assertThat(values).containsExactly("Sven"); } + private void initializeTwoColumnCustomersTable() throws Exception { ResultSet metaDataResultSet = mock(); given(metaDataResultSet.next()).willReturn(true, false);