@@ -7,6 +7,7 @@ import java.sql.ResultSet
77import org.junit.jupiter.api.Assertions
88import org.junit.jupiter.api.DisplayName
99import org.junit.jupiter.api.Test
10+ import org.junit.jupiter.api.assertThrows
1011
1112class DeserializeByMethodTest {
1213 data class ByConstructor @KColumnDeserializer constructor(val fooString : String )
@@ -29,8 +30,8 @@ class DeserializeByMethodTest {
2930 )
3031
3132 @Test
32- @DisplayName(" マッピングテスト " )
33- fun test () {
33+ @DisplayName(" 正常なマッピングの場合 " )
34+ fun isCollect () {
3435 val resultSet = mockk<ResultSet >()
3536 every { resultSet.getObject(" foo" , any<Class <* >>()) } returns " foo"
3637 every { resultSet.getObject(" bar" , any<Class <* >>()) } returns " 123"
@@ -44,4 +45,21 @@ class DeserializeByMethodTest {
4445 Assertions .assertEquals(321 , result.baz.bazInt)
4546 Assertions .assertEquals(" 777" , result.qux.quxString)
4647 }
48+
49+ data class MultipleDeserializer (val qux : Int ) {
50+ @KColumnDeserializer
51+ constructor (qux: String ) : this (qux.toInt())
52+
53+ companion object {
54+ @KColumnDeserializer
55+ fun factory (qux : Double ) = MultipleDeserializer (qux.toInt())
56+ }
57+ }
58+ data class IllegalDst (val param : MultipleDeserializer )
59+
60+ @Test
61+ @DisplayName(" 複数のKColumnDeserializerが定義されていた場合" )
62+ fun hasMultipleDeserializer () {
63+ assertThrows<IllegalArgumentException > { KRowMapper (::IllegalDst ) }
64+ }
4765}
0 commit comments