@@ -5,6 +5,7 @@ import org.junit.jupiter.api.Assertions.assertEquals
5
5
import org.junit.jupiter.api.DisplayName
6
6
import org.junit.jupiter.api.Nested
7
7
import org.junit.jupiter.api.Test
8
+ import java.math.BigInteger
8
9
import kotlin.reflect.full.primaryConstructor
9
10
10
11
data class Dst (
@@ -28,6 +29,8 @@ data class Src1(
28
29
val arg4 = null
29
30
}
30
31
32
+ data class Src2 (val arg2 : String? )
33
+
31
34
@DisplayName(" 単純なマッピングのテスト" )
32
35
class SimpleKMapperTest {
33
36
private fun instanceFunction (arg1 : Int , arg2 : String? , arg3 : Number ): Dst {
@@ -118,4 +121,42 @@ class SimpleKMapperTest {
118
121
}
119
122
}
120
123
}
124
+
125
+ @Nested
126
+ @DisplayName(" 複数ソースからのマップ" )
127
+ inner class FromMultipleSrc {
128
+ @Test
129
+ @DisplayName(" Nullを含まない場合" )
130
+ fun testWithoutNull () {
131
+ val src1 = " arg1" to 1
132
+ val src2 = Src2 (" value" )
133
+ val src3 = mapOf (" arg3" to 5.5 )
134
+
135
+ val dsts = mappers.map { it.map(src1, src2, src3) }
136
+
137
+ assertEquals(dsts.distinct().size, 1 )
138
+ dsts.first().let {
139
+ assertEquals(it.arg1, 1 )
140
+ assertEquals(it.arg2, " value" )
141
+ assertEquals(it.arg3, 5.5 )
142
+ }
143
+ }
144
+
145
+ @Test
146
+ @DisplayName(" Nullを含む場合" )
147
+ fun testContainsNull () {
148
+ val src1 = " arg1" to 7
149
+ val src2 = Src2 (null )
150
+ val src3 = mapOf (" arg3" to BigInteger .TWO )
151
+
152
+ val dsts = mappers.map { it.map(src1, src2, src3) }
153
+
154
+ assertEquals(dsts.distinct().size, 1 )
155
+ dsts.first().let {
156
+ assertEquals(it.arg1, 7 )
157
+ assertEquals(it.arg2, null )
158
+ assertEquals(it.arg3, BigInteger .TWO )
159
+ }
160
+ }
161
+ }
121
162
}
0 commit comments