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

Commit b4132a6

Browse files
committed
KParameterFlattenを用いた場合のテストを追加
1 parent 3792507 commit b4132a6

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.mapk.krowmapper
2+
3+
import com.google.common.base.CaseFormat
4+
import com.mapk.annotations.KParameterFlatten
5+
import com.mapk.core.NameJoiner
6+
import io.mockk.every
7+
import io.mockk.mockk
8+
import io.mockk.verify
9+
import java.sql.ResultSet
10+
import java.time.LocalDateTime
11+
import org.junit.jupiter.api.Assertions.assertEquals
12+
import org.junit.jupiter.api.DisplayName
13+
import org.junit.jupiter.api.Test
14+
15+
@DisplayName("KParameterFlattenテスト")
16+
class KParameterFlattenTest {
17+
data class InnerDst(val fooFoo: Int, val barBar: String)
18+
data class Dst(
19+
@KParameterFlatten(nameJoiner = NameJoiner.Snake::class) val bazBaz: InnerDst,
20+
val quxQux: LocalDateTime
21+
)
22+
23+
private fun camelToSnake(camel: String): String = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, camel)
24+
25+
private val expected = Dst(InnerDst(1, "str"), LocalDateTime.MIN)
26+
27+
@Test
28+
@DisplayName("スネークケースsrc -> キャメルケースdst")
29+
fun test() {
30+
val resultSet = mockk<ResultSet>() {
31+
every { getObject("baz_baz_foo_foo", any<Class<*>>()) } returns 1
32+
every { getObject("baz_baz_bar_bar", any<Class<*>>()) } returns "str"
33+
every { getObject("qux_qux", any<Class<*>>()) } returns LocalDateTime.MIN
34+
}
35+
36+
val result = KRowMapper(::Dst, this::camelToSnake).mapRow(resultSet, 0)
37+
assertEquals(expected, result)
38+
39+
verify(exactly = 1) { resultSet.getObject("baz_baz_foo_foo", Integer::class.java) }
40+
verify(exactly = 1) { resultSet.getObject("baz_baz_bar_bar", String::class.java) }
41+
verify(exactly = 1) { resultSet.getObject("qux_qux", LocalDateTime::class.java) }
42+
}
43+
}

0 commit comments

Comments
 (0)