Polish RowMapper tests

This commit is contained in:
Sam Brannen
2023-02-07 19:05:05 +01:00
parent 7584dfc79a
commit 5f458e2578
2 changed files with 26 additions and 41 deletions

View File

@@ -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 {
@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 {
@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();
}

View File

@@ -17,9 +17,7 @@
package org.springframework.jdbc.core;
import java.math.BigDecimal;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import org.junit.jupiter.api.Test;
@@ -30,7 +28,10 @@ import org.springframework.jdbc.core.test.ConstructorPersonWithSetters;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Tests for {@link DataClassRowMapper}.
*
* @author Juergen Hoeller
* @author Sam Brannen
* @since 5.3
*/
class DataClassRowMapperTests extends AbstractRowMapperTests {
@@ -38,11 +39,10 @@ class DataClassRowMapperTests extends AbstractRowMapperTests {
@Test
void staticQueryWithDataClass() throws Exception {
Mock mock = new Mock();
List<ConstructorPerson> result = mock.getJdbcTemplate().query(
ConstructorPerson person = mock.getJdbcTemplate().queryForObject(
"select name, age, birth_date, balance from people",
new DataClassRowMapper<>(ConstructorPerson.class));
assertThat(result).hasSize(1);
verifyPerson(result.get(0));
verifyPerson(person);
mock.verifyClosed();
}
@@ -50,15 +50,13 @@ class DataClassRowMapperTests extends AbstractRowMapperTests {
@Test
void staticQueryWithDataClassAndGenerics() throws Exception {
Mock mock = new Mock();
List<ConstructorPersonWithGenerics> result = mock.getJdbcTemplate().query(
ConstructorPersonWithGenerics person = mock.getJdbcTemplate().queryForObject(
"select name, age, birth_date, balance from people",
new DataClassRowMapper<>(ConstructorPersonWithGenerics.class));
assertThat(result).hasSize(1);
ConstructorPersonWithGenerics person = result.get(0);
assertThat(person.name()).isEqualTo("Bubba");
assertThat(person.age()).isEqualTo(22L);
assertThat(person.birthDate()).usingComparator(Date::compareTo).isEqualTo(new Date(1221222L));
assertThat(person.balance()).isEqualTo(Collections.singletonList(new BigDecimal("1234.56")));
assertThat(person.balance()).containsExactly(new BigDecimal("1234.56"));
mock.verifyClosed();
}
@@ -66,11 +64,9 @@ class DataClassRowMapperTests extends AbstractRowMapperTests {
@Test
void staticQueryWithDataClassAndSetters() throws Exception {
Mock mock = new Mock(MockType.FOUR);
List<ConstructorPersonWithSetters> result = mock.getJdbcTemplate().query(
ConstructorPersonWithSetters person = mock.getJdbcTemplate().queryForObject(
"select name, age, birthdate, balance from people",
new DataClassRowMapper<>(ConstructorPersonWithSetters.class));
assertThat(result).hasSize(1);
ConstructorPersonWithSetters person = result.get(0);
assertThat(person.name()).isEqualTo("BUBBA");
assertThat(person.age()).isEqualTo(22L);
assertThat(person.birthDate()).usingComparator(Date::compareTo).isEqualTo(new Date(1221222L));
@@ -82,11 +78,10 @@ class DataClassRowMapperTests extends AbstractRowMapperTests {
@Test
void staticQueryWithDataRecord() throws Exception {
Mock mock = new Mock();
List<RecordPerson> result = mock.getJdbcTemplate().query(
RecordPerson person = mock.getJdbcTemplate().queryForObject(
"select name, age, birth_date, balance from people",
new DataClassRowMapper<>(RecordPerson.class));
assertThat(result).hasSize(1);
verifyPerson(result.get(0));
verifyPerson(person);
mock.verifyClosed();
}