Browse Source

Polish RowMapper tests

pull/29946/head
Sam Brannen 3 years ago
parent
commit
5f458e2578
  1. 42
      spring-jdbc/src/test/java/org/springframework/jdbc/core/BeanPropertyRowMapperTests.java
  2. 25
      spring-jdbc/src/test/java/org/springframework/jdbc/core/DataClassRowMapperTests.java

42
spring-jdbc/src/test/java/org/springframework/jdbc/core/BeanPropertyRowMapperTests.java

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

25
spring-jdbc/src/test/java/org/springframework/jdbc/core/DataClassRowMapperTests.java

@ -17,9 +17,7 @@ @@ -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; @@ -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 { @@ -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 { @@ -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 { @@ -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 { @@ -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();
}

Loading…
Cancel
Save