This repository was archived by the owner on Jan 20, 2023. It is now read-only.
File tree Expand file tree Collapse file tree 3 files changed +37
-3
lines changed
main/kotlin/com/mapk/krowmapper
test/kotlin/com/mapk/krowmapper Expand file tree Collapse file tree 3 files changed +37
-3
lines changed Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ plugins {
6
6
}
7
7
8
8
group = " com.mapk"
9
- version = " 0.1 "
9
+ version = " 0.2 "
10
10
11
11
java {
12
12
sourceCompatibility = JavaVersion .VERSION_1_8
@@ -36,7 +36,7 @@ dependencies {
36
36
exclude(module = " spring-jcl" )
37
37
exclude(module = " spring-tx" )
38
38
}
39
- implementation (" com.github.ProjectMapK:Shared:0.6 " )
39
+ api (" com.github.ProjectMapK:Shared:0.7 " )
40
40
41
41
// https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter
42
42
testImplementation(group = " org.junit.jupiter" , name = " junit-jupiter" , version = " 5.6.0" ) {
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ package com.mapk.krowmapper
2
2
3
3
import com.mapk.core.EnumMapper
4
4
import com.mapk.core.KFunctionForCall
5
+ import com.mapk.core.isUseDefaultArgument
5
6
import com.mapk.core.toKConstructor
6
7
import java.sql.ResultSet
7
8
import kotlin.reflect.KClass
@@ -22,7 +23,7 @@ class KRowMapper<T : Any> private constructor(
22
23
)
23
24
24
25
private val parameters: List <ParameterForMap <* >> = function.parameters
25
- .filter { it.kind != KParameter .Kind .INSTANCE }
26
+ .filter { it.kind != KParameter .Kind .INSTANCE && ! it.isUseDefaultArgument() }
26
27
.map { ParameterForMap .newInstance(it, propertyNameConverter) }
27
28
28
29
override fun mapRow (rs : ResultSet , rowNum : Int ): T {
Original file line number Diff line number Diff line change
1
+ package com.mapk.krowmapper
2
+
3
+ import com.google.common.base.CaseFormat
4
+ import com.mapk.annotations.KUseDefaultArgument
5
+ import io.mockk.every
6
+ import io.mockk.mockk
7
+ import io.mockk.verify
8
+ import java.sql.ResultSet
9
+ import org.junit.jupiter.api.Assertions
10
+ import org.junit.jupiter.api.DisplayName
11
+ import org.junit.jupiter.api.Test
12
+
13
+ class DefaultValueTest {
14
+ data class Dst (val fooId : Int , @param:KUseDefaultArgument val barValue : String = " default" )
15
+
16
+ private fun camelToSnake (camel : String ): String = CaseFormat .LOWER_CAMEL .to(CaseFormat .LOWER_UNDERSCORE , camel)
17
+
18
+ @Test
19
+ @DisplayName(" デフォルト値を用いたマッピングテスト" )
20
+ fun test () {
21
+ val resultSet = mockk<ResultSet >()
22
+ every { resultSet.getObject(" foo_id" , any<Class <* >>()) } returns 1
23
+ every { resultSet.getObject(" bar_value" , any<Class <* >>()) } returns " From result set."
24
+
25
+ val result = KRowMapper (::Dst , this ::camelToSnake).mapRow(resultSet, 0 )
26
+
27
+ Assertions .assertEquals(1 , result.fooId)
28
+ Assertions .assertEquals(" default" , result.barValue)
29
+
30
+ verify(exactly = 1 ) { resultSet.getObject(" foo_id" , Int ::class .java) }
31
+ verify(exactly = 0 ) { resultSet.getObject(" bar_value" , String ::class .java) }
32
+ }
33
+ }
You can’t perform that action at this time.
0 commit comments