5 changed files with 181 additions and 15 deletions
@ -0,0 +1,76 @@
@@ -0,0 +1,76 @@
|
||||
/* |
||||
* Copyright 2002-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.jdbc.core.test; |
||||
|
||||
import java.math.BigDecimal; |
||||
import java.util.Date; |
||||
|
||||
/** |
||||
* @author Juergen Hoeller |
||||
*/ |
||||
public class ConstructorPersonWithSetters { |
||||
|
||||
private String name; |
||||
|
||||
private long age; |
||||
|
||||
private Date birth_date; |
||||
|
||||
private BigDecimal balance; |
||||
|
||||
|
||||
public ConstructorPersonWithSetters(String name, long age, Date birth_date, BigDecimal balance) { |
||||
this.name = name.toUpperCase(); |
||||
this.age = age; |
||||
this.birth_date = birth_date; |
||||
this.balance = balance; |
||||
} |
||||
|
||||
|
||||
public void setName(String name) { |
||||
this.name = name; |
||||
} |
||||
|
||||
public void setAge(long age) { |
||||
this.age = age; |
||||
} |
||||
|
||||
public void setBirth_date(Date birth_date) { |
||||
this.birth_date = birth_date; |
||||
} |
||||
|
||||
public void setBalance(BigDecimal balance) { |
||||
this.balance = balance; |
||||
} |
||||
|
||||
public String name() { |
||||
return this.name; |
||||
} |
||||
|
||||
public long age() { |
||||
return this.age; |
||||
} |
||||
|
||||
public Date birth_date() { |
||||
return this.birth_date; |
||||
} |
||||
|
||||
public BigDecimal balance() { |
||||
return this.balance; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,57 @@
@@ -0,0 +1,57 @@
|
||||
/* |
||||
* Copyright 2002-2021 the original author or authors |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.jdbc.core |
||||
|
||||
import org.assertj.core.api.Assertions |
||||
import org.junit.jupiter.api.Test |
||||
import org.springframework.jdbc.core.test.ConstructorPerson |
||||
import java.math.BigDecimal |
||||
import java.util.* |
||||
|
||||
class KotlinDataClassRowMapperTests : AbstractRowMapperTests() { |
||||
|
||||
@Test |
||||
fun testStaticQueryWithDataClass() { |
||||
val mock = Mock() |
||||
val result = mock.jdbcTemplate.query( |
||||
"select name, age, birth_date, balance from people", |
||||
DataClassRowMapper(ConstructorPerson::class.java) |
||||
) |
||||
Assertions.assertThat(result.size).isEqualTo(1) |
||||
verifyPerson(result[0]) |
||||
mock.verifyClosed() |
||||
} |
||||
|
||||
@Test |
||||
fun testInitPropertiesAreNotOverridden() { |
||||
val mock = Mock() |
||||
val result = mock.jdbcTemplate.query( |
||||
"select name, age, birth_date, balance from people", |
||||
DataClassRowMapper(KotlinPerson::class.java) |
||||
) |
||||
Assertions.assertThat(result.size).isEqualTo(1) |
||||
Assertions.assertThat(result[0].name).isEqualTo("Bubba appended by init") |
||||
} |
||||
|
||||
|
||||
data class KotlinPerson(var name: String, val age: Long, val birth_date: Date, val balance: BigDecimal) { |
||||
init { |
||||
name += " appended by init" |
||||
} |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue