Skip to content

Commit f440fb8

Browse files
committed
Unit tests for record binding
See gh-27437
1 parent 0241c5e commit f440fb8

File tree

3 files changed

+128
-79
lines changed

3 files changed

+128
-79
lines changed

spring-jdbc/src/test/java/org/springframework/jdbc/core/AbstractRowMapperTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ protected void verifyPerson(ConstructorPerson person) {
8989
verifyPersonViaBeanWrapper(person);
9090
}
9191

92-
private void verifyPersonViaBeanWrapper(Object person) {
92+
protected void verifyPersonViaBeanWrapper(Object person) {
9393
BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(person);
9494
assertThat(bw.getPropertyValue("name")).isEqualTo("Bubba");
9595
assertThat(bw.getPropertyValue("age")).isEqualTo(22L);

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,4 +79,28 @@ public void testStaticQueryWithDataClassAndSetters() throws Exception {
7979
mock.verifyClosed();
8080
}
8181

82+
@Test
83+
public void testStaticQueryWithDataRecord() throws Exception {
84+
Mock mock = new Mock();
85+
List<RecordPerson> result = mock.getJdbcTemplate().query(
86+
"select name, age, birth_date, balance from people",
87+
new DataClassRowMapper<>(RecordPerson.class));
88+
assertThat(result.size()).isEqualTo(1);
89+
verifyPerson(result.get(0));
90+
91+
mock.verifyClosed();
92+
}
93+
94+
protected void verifyPerson(RecordPerson person) {
95+
assertThat(person.name()).isEqualTo("Bubba");
96+
assertThat(person.age()).isEqualTo(22L);
97+
assertThat(person.birth_date()).usingComparator(Date::compareTo).isEqualTo(new java.util.Date(1221222L));
98+
assertThat(person.balance()).isEqualTo(new BigDecimal("1234.56"));
99+
verifyPersonViaBeanWrapper(person);
100+
}
101+
102+
103+
static record RecordPerson(String name, long age, Date birth_date, BigDecimal balance) {
104+
}
105+
82106
}

0 commit comments

Comments
 (0)