Skip to content
This repository was archived by the owner on Jan 20, 2023. It is now read-only.

Commit 12d7253

Browse files
committed
複数のデシリアライザーを定義していた場合のテストを追加
1 parent 21ab8cd commit 12d7253

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

src/test/kotlin/com/mapk/krowmapper/DeserializeByMethodTest.kt

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import java.sql.ResultSet
77
import org.junit.jupiter.api.Assertions
88
import org.junit.jupiter.api.DisplayName
99
import org.junit.jupiter.api.Test
10+
import org.junit.jupiter.api.assertThrows
1011

1112
class 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

Comments
 (0)