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

Commit d8e185d

Browse files
committed
3パターンのデシリアライズをテストする関数を追加
1 parent 55c9cfe commit d8e185d

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package com.mapk.krowmapper
2+
3+
import com.mapk.annotations.KColumnDeserializer
4+
import io.mockk.every
5+
import io.mockk.mockk
6+
import java.sql.ResultSet
7+
import org.junit.jupiter.api.Assertions
8+
import org.junit.jupiter.api.DisplayName
9+
import org.junit.jupiter.api.Test
10+
11+
class DeserializeByMethodTest {
12+
data class ByConstructor @KColumnDeserializer constructor(val fooString: String)
13+
data class ByCompanionObject(val barInt: Int) {
14+
companion object {
15+
@KColumnDeserializer
16+
fun factory(bar: String) = ByCompanionObject(bar.toInt())
17+
}
18+
}
19+
20+
data class Dst(
21+
val foo: ByConstructor,
22+
val bar: ByCompanionObject,
23+
val baz: ByStaticMethod
24+
)
25+
26+
@Test
27+
@DisplayName("マッピングテスト")
28+
fun test() {
29+
val resultSet = mockk<ResultSet>()
30+
every { resultSet.getObject("foo", any<Class<*>>()) } returns "foo"
31+
every { resultSet.getObject("bar", any<Class<*>>()) } returns "123"
32+
every { resultSet.getObject("baz", any<Class<*>>()) } returns 321
33+
34+
val result = KRowMapper(::Dst).mapRow(resultSet, 0)
35+
36+
Assertions.assertEquals("foo", result.foo.fooString)
37+
Assertions.assertEquals(123, result.bar.barInt)
38+
Assertions.assertEquals("321", result.baz.bazString)
39+
}
40+
}

0 commit comments

Comments
 (0)