|
|
|
|
@ -16,8 +16,6 @@
@@ -16,8 +16,6 @@
|
|
|
|
|
|
|
|
|
|
package org.springframework.jdbc.core; |
|
|
|
|
|
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
import org.junit.jupiter.api.Test; |
|
|
|
|
import org.junit.jupiter.params.ParameterizedTest; |
|
|
|
|
import org.junit.jupiter.params.provider.CsvSource; |
|
|
|
|
@ -64,44 +62,40 @@ class BeanPropertyRowMapperTests extends AbstractRowMapperTests {
@@ -64,44 +62,40 @@ class BeanPropertyRowMapperTests extends AbstractRowMapperTests {
|
|
|
|
|
@Test |
|
|
|
|
void staticQueryWithRowMapper() throws Exception { |
|
|
|
|
Mock mock = new Mock(); |
|
|
|
|
List<Person> result = mock.getJdbcTemplate().query( |
|
|
|
|
Person person = mock.getJdbcTemplate().queryForObject( |
|
|
|
|
"select name, age, birth_date, balance from people", |
|
|
|
|
new BeanPropertyRowMapper<>(Person.class)); |
|
|
|
|
assertThat(result).hasSize(1); |
|
|
|
|
verifyPerson(result.get(0)); |
|
|
|
|
verifyPerson(person); |
|
|
|
|
mock.verifyClosed(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void mappingWithInheritance() throws Exception { |
|
|
|
|
Mock mock = new Mock(); |
|
|
|
|
List<ConcretePerson> result = mock.getJdbcTemplate().query( |
|
|
|
|
ConcretePerson person = mock.getJdbcTemplate().queryForObject( |
|
|
|
|
"select name, age, birth_date, balance from people", |
|
|
|
|
new BeanPropertyRowMapper<>(ConcretePerson.class)); |
|
|
|
|
assertThat(result).hasSize(1); |
|
|
|
|
verifyPerson(result.get(0)); |
|
|
|
|
verifyPerson(person); |
|
|
|
|
mock.verifyClosed(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void mappingWithNoUnpopulatedFieldsFound() throws Exception { |
|
|
|
|
Mock mock = new Mock(); |
|
|
|
|
List<ConcretePerson> result = mock.getJdbcTemplate().query( |
|
|
|
|
ConcretePerson person = mock.getJdbcTemplate().queryForObject( |
|
|
|
|
"select name, age, birth_date, balance from people", |
|
|
|
|
new BeanPropertyRowMapper<>(ConcretePerson.class, true)); |
|
|
|
|
assertThat(result).hasSize(1); |
|
|
|
|
verifyPerson(result.get(0)); |
|
|
|
|
verifyPerson(person); |
|
|
|
|
mock.verifyClosed(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void mappingWithUnpopulatedFieldsNotChecked() throws Exception { |
|
|
|
|
Mock mock = new Mock(); |
|
|
|
|
List<ExtendedPerson> result = mock.getJdbcTemplate().query( |
|
|
|
|
ExtendedPerson person = mock.getJdbcTemplate().queryForObject( |
|
|
|
|
"select name, age, birth_date, balance from people", |
|
|
|
|
new BeanPropertyRowMapper<>(ExtendedPerson.class)); |
|
|
|
|
assertThat(result).hasSize(1); |
|
|
|
|
verifyPerson(result.get(0)); |
|
|
|
|
verifyPerson(person); |
|
|
|
|
mock.verifyClosed(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -134,44 +128,40 @@ class BeanPropertyRowMapperTests extends AbstractRowMapperTests {
@@ -134,44 +128,40 @@ class BeanPropertyRowMapperTests extends AbstractRowMapperTests {
|
|
|
|
|
@Test |
|
|
|
|
void queryWithSpaceInColumnNameAndLocalDateTime() throws Exception { |
|
|
|
|
Mock mock = new Mock(MockType.THREE); |
|
|
|
|
List<SpacePerson> result = mock.getJdbcTemplate().query( |
|
|
|
|
SpacePerson person = mock.getJdbcTemplate().queryForObject( |
|
|
|
|
"select last_name as \"Last Name\", age, birth_date, balance from people", |
|
|
|
|
new BeanPropertyRowMapper<>(SpacePerson.class)); |
|
|
|
|
assertThat(result).hasSize(1); |
|
|
|
|
verifyPerson(result.get(0)); |
|
|
|
|
verifyPerson(person); |
|
|
|
|
mock.verifyClosed(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void queryWithSpaceInColumnNameAndLocalDate() throws Exception { |
|
|
|
|
Mock mock = new Mock(MockType.THREE); |
|
|
|
|
List<DatePerson> result = mock.getJdbcTemplate().query( |
|
|
|
|
DatePerson person = mock.getJdbcTemplate().queryForObject( |
|
|
|
|
"select last_name as \"Last Name\", age, birth_date, balance from people", |
|
|
|
|
new BeanPropertyRowMapper<>(DatePerson.class)); |
|
|
|
|
assertThat(result).hasSize(1); |
|
|
|
|
verifyPerson(result.get(0)); |
|
|
|
|
verifyPerson(person); |
|
|
|
|
mock.verifyClosed(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void queryWithDirectNameMatchOnBirthDate() throws Exception { |
|
|
|
|
Mock mock = new Mock(MockType.FOUR); |
|
|
|
|
List<ConcretePerson> result = mock.getJdbcTemplate().query( |
|
|
|
|
ConcretePerson person = mock.getJdbcTemplate().queryForObject( |
|
|
|
|
"select name, age, birthdate, balance from people", |
|
|
|
|
new BeanPropertyRowMapper<>(ConcretePerson.class)); |
|
|
|
|
assertThat(result).hasSize(1); |
|
|
|
|
verifyPerson(result.get(0)); |
|
|
|
|
verifyPerson(person); |
|
|
|
|
mock.verifyClosed(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void queryWithUnderscoreInColumnNameAndPersonWithMultipleAdjacentUppercaseLettersInPropertyName() throws Exception { |
|
|
|
|
Mock mock = new Mock(); |
|
|
|
|
List<EmailPerson> result = mock.getJdbcTemplate().query( |
|
|
|
|
EmailPerson person = mock.getJdbcTemplate().queryForObject( |
|
|
|
|
"select name, age, birth_date, balance, e_mail from people", |
|
|
|
|
new BeanPropertyRowMapper<>(EmailPerson.class)); |
|
|
|
|
assertThat(result).hasSize(1); |
|
|
|
|
verifyPerson(result.get(0)); |
|
|
|
|
verifyPerson(person); |
|
|
|
|
mock.verifyClosed(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|