diff --git a/spring-jdbc/src/test/java/org/springframework/jdbc/core/simple/SimpleJdbcInsertIntegrationTests.java b/spring-jdbc/src/test/java/org/springframework/jdbc/core/simple/SimpleJdbcInsertIntegrationTests.java index b8752bdd5f..dbcb4d4b06 100644 --- a/spring-jdbc/src/test/java/org/springframework/jdbc/core/simple/SimpleJdbcInsertIntegrationTests.java +++ b/spring-jdbc/src/test/java/org/springframework/jdbc/core/simple/SimpleJdbcInsertIntegrationTests.java @@ -36,6 +36,7 @@ import static org.assertj.core.api.Assertions.assertThat; * * @author Sam Brannen * @since 6.1 + * @see SimpleJdbcInsertTests */ class SimpleJdbcInsertIntegrationTests { @@ -81,7 +82,7 @@ class SimpleJdbcInsertIntegrationTests { insertJaneSmith(insert); } - @Test // gh-24013 + @Test // gh-24013 void usingColumnsAndQuotedIdentifiers() throws Exception { SimpleJdbcInsert insert = new SimpleJdbcInsert(embeddedDatabase) .withTableName("users") @@ -90,7 +91,9 @@ class SimpleJdbcInsertIntegrationTests { insert.compile(); // NOTE: quoted identifiers in H2/HSQL will be UPPERCASE! - assertThat(insert.getInsertString()).isEqualTo("INSERT INTO \"USERS\" (\"FIRST_NAME\", \"LAST_NAME\") VALUES(?, ?)"); + assertThat(insert.getInsertString()).isEqualToIgnoringNewLines(""" + INSERT INTO "USERS" ("FIRST_NAME", "LAST_NAME") VALUES(?, ?) + """); insertJaneSmith(insert); } @@ -123,7 +126,7 @@ class SimpleJdbcInsertIntegrationTests { insertJaneSmith(insert); } - @Test // gh-24013 + @Test // gh-24013 void usingColumnsAndQuotedIdentifiersWithSchemaName() throws Exception { SimpleJdbcInsert insert = new SimpleJdbcInsert(embeddedDatabase) .withSchemaName("my_schema") @@ -133,7 +136,9 @@ class SimpleJdbcInsertIntegrationTests { insert.compile(); // NOTE: quoted identifiers in H2/HSQL will be UPPERCASE! - assertThat(insert.getInsertString()).isEqualTo("INSERT INTO \"MY_SCHEMA\".\"USERS\" (\"FIRST_NAME\", \"LAST_NAME\") VALUES(?, ?)"); + assertThat(insert.getInsertString()).isEqualToIgnoringNewLines(""" + INSERT INTO "MY_SCHEMA"."USERS" ("FIRST_NAME", "LAST_NAME") VALUES(?, ?) + """); insertJaneSmith(insert); } diff --git a/spring-jdbc/src/test/java/org/springframework/jdbc/core/simple/SimpleJdbcInsertTests.java b/spring-jdbc/src/test/java/org/springframework/jdbc/core/simple/SimpleJdbcInsertTests.java index 9469574557..6e61f03f2d 100644 --- a/spring-jdbc/src/test/java/org/springframework/jdbc/core/simple/SimpleJdbcInsertTests.java +++ b/spring-jdbc/src/test/java/org/springframework/jdbc/core/simple/SimpleJdbcInsertTests.java @@ -38,10 +38,11 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; /** - * Mock object based tests for {@link SimpleJdbcInsert}. + * Mock-based tests for {@link SimpleJdbcInsert}. * * @author Thomas Risberg * @author Sam Brannen + * @see SimpleJdbcInsertIntegrationTests */ class SimpleJdbcInsertTests { @@ -64,6 +65,18 @@ class SimpleJdbcInsertTests { } + @Test + void missingTableName() throws Exception { + SimpleJdbcInsert insert = new SimpleJdbcInsert(dataSource); + + assertThatExceptionOfType(InvalidDataAccessApiUsageException.class) + .isThrownBy(insert::compile) + .withMessage("Table name is required"); + + // Appease the @AfterEach checks. + connection.close(); + } + /** * This method does not test any functionality but rather only that * configuration methods can be chained without compiler errors. @@ -100,8 +113,8 @@ class SimpleJdbcInsertTests { SimpleJdbcInsert insert = new SimpleJdbcInsert(dataSource).withTableName("x"); // Shouldn't succeed in inserting into table which doesn't exist assertThatExceptionOfType(InvalidDataAccessApiUsageException.class) - .isThrownBy(() -> insert.execute(Collections.emptyMap())) - .withMessageStartingWith("Unable to locate columns for table 'x' so an insert statement can't be generated"); + .isThrownBy(() -> insert.execute(Collections.emptyMap())) + .withMessageStartingWith("Unable to locate columns for table 'x' so an insert statement can't be generated"); verify(resultSet).close(); } @@ -152,9 +165,9 @@ class SimpleJdbcInsertTests { SimpleJdbcInsert insert = new SimpleJdbcInsert(dataSource).withTableName("me"); assertThatExceptionOfType(InvalidDataAccessApiUsageException.class) - .isThrownBy(insert::compile) - .withMessage("Unable to locate columns for table 'me' so an insert statement can't be generated. " + - "Consider specifying explicit column names -- for example, via SimpleJdbcInsert#usingColumns()."); + .isThrownBy(insert::compile) + .withMessage("Unable to locate columns for table 'me' so an insert statement can't be generated. " + + "Consider specifying explicit column names -- for example, via SimpleJdbcInsert#usingColumns()."); verify(columnResultSet).close(); verify(tableResultSet).close();