@@ -8,8 +8,11 @@ import java.math.BigInteger
8
8
import kotlin.reflect.KClass
9
9
import kotlin.reflect.jvm.jvmName
10
10
import org.junit.jupiter.api.Assertions.assertEquals
11
+ import org.junit.jupiter.api.Assertions.assertNull
11
12
import org.junit.jupiter.api.DisplayName
12
13
import org.junit.jupiter.api.Nested
14
+ import org.junit.jupiter.api.Test
15
+ import org.junit.jupiter.api.assertDoesNotThrow
13
16
import org.junit.jupiter.params.ParameterizedTest
14
17
import org.junit.jupiter.params.provider.EnumSource
15
18
import org.junit.jupiter.params.provider.ValueSource
@@ -56,9 +59,10 @@ class ConversionTest {
56
59
override fun convert (source : Number ): Number ? = source.let (converter)
57
60
}
58
61
59
- data class Dst (@ToNumber(BigDecimal ::class ) val number : BigDecimal )
62
+ data class Dst (@ToNumber(BigDecimal ::class ) val number : BigDecimal ? )
60
63
data class NumberSrc (val number : Number )
61
64
data class StringSrc (val number : String )
65
+ object NullSrc { val number: Number ? = null }
62
66
63
67
enum class NumberSource (val values : Array <Number >) {
64
68
Doubles (arrayOf(1.0 , - 2.0 , 3.5 )),
@@ -89,6 +93,15 @@ class ConversionTest {
89
93
val actual = KMapper (::Dst ).map(StringSrc (str))
90
94
assertEquals(0 , BigDecimal (str).compareTo(actual.number))
91
95
}
96
+
97
+ @Test
98
+ @DisplayName(" nullを入れた際に変換処理に入らないことのテスト" )
99
+ fun fromNull () {
100
+ assertDoesNotThrow {
101
+ val actual = KMapper (::Dst ).map(NullSrc )
102
+ assertNull(actual.number)
103
+ }
104
+ }
92
105
}
93
106
94
107
@Nested
@@ -111,6 +124,15 @@ class ConversionTest {
111
124
val actual = PlainKMapper (::Dst ).map(StringSrc (str))
112
125
assertEquals(0 , BigDecimal (str).compareTo(actual.number))
113
126
}
127
+
128
+ @Test
129
+ @DisplayName(" nullを入れた際に変換処理に入らないことのテスト" )
130
+ fun fromNull () {
131
+ assertDoesNotThrow {
132
+ val actual = PlainKMapper (::Dst ).map(NullSrc )
133
+ assertNull(actual.number)
134
+ }
135
+ }
114
136
}
115
137
116
138
@Nested
@@ -133,5 +155,14 @@ class ConversionTest {
133
155
val actual = BoundKMapper <StringSrc , Dst >().map(StringSrc (str))
134
156
assertEquals(0 , BigDecimal (str).compareTo(actual.number))
135
157
}
158
+
159
+ @Test
160
+ @DisplayName(" nullを入れた際に変換処理に入らないことのテスト" )
161
+ fun fromNull () {
162
+ assertDoesNotThrow {
163
+ val actual = BoundKMapper <NullSrc , Dst >(::Dst ).map(NullSrc )
164
+ assertNull(actual.number)
165
+ }
166
+ }
136
167
}
137
168
}
0 commit comments