@@ -4,11 +4,17 @@ package com.mapk.kmapper
44
55import com.mapk.annotations.KConstructor
66import java.math.BigInteger
7+ import java.util.stream.Stream
78import kotlin.reflect.full.isSubclassOf
89import org.junit.jupiter.api.Assertions.assertEquals
910import org.junit.jupiter.api.DisplayName
1011import org.junit.jupiter.api.Nested
1112import org.junit.jupiter.api.Test
13+ import org.junit.jupiter.api.TestInstance
14+ import org.junit.jupiter.params.ParameterizedTest
15+ import org.junit.jupiter.params.provider.Arguments
16+ import org.junit.jupiter.params.provider.Arguments.arguments
17+ import org.junit.jupiter.params.provider.MethodSource
1218
1319open class SimpleDst (
1420 val arg1 : Int ,
@@ -199,15 +205,20 @@ class SimpleKMapperTest {
199205
200206 @Nested
201207 @DisplayName(" BoundKMapper" )
208+ @TestInstance(TestInstance .Lifecycle .PER_CLASS )
202209 inner class BoundKMapperTest {
203210 @Nested
204211 @DisplayName(" インスタンスからマップ" )
212+ @TestInstance(TestInstance .Lifecycle .PER_CLASS )
205213 inner class FromInstance {
206- private val mapper = BoundKMapper (::SimpleDst , Src1 ::class )
207-
208- @Test
209- @DisplayName(" Nullを含まない場合" )
210- fun testWithoutNull () {
214+ fun boundKMapperProvider (): Stream <Arguments > = Stream .of(
215+ arguments(" from method reference" , BoundKMapper (::SimpleDst , Src1 ::class )),
216+ arguments(" from class" , BoundKMapper (SimpleDst ::class , Src1 ::class ))
217+ )
218+
219+ @ParameterizedTest(name = " Nullを含まない場合" )
220+ @MethodSource(" boundKMapperProvider" )
221+ fun testWithoutNull (name : String , mapper : BoundKMapper <Src1 , SimpleDst >) {
211222 val stringValue = " value"
212223
213224 val src = Src1 (stringValue)
@@ -219,9 +230,9 @@ class SimpleKMapperTest {
219230 assertEquals(stringValue.length.toByte(), dst.arg3)
220231 }
221232
222- @Test
223- @DisplayName( " Nullを含む場合 " )
224- fun testContainsNull () {
233+ @ParameterizedTest(name = " Nullを含む場合 " )
234+ @MethodSource( " boundKMapperProvider " )
235+ fun testContainsNull (name : String , mapper : BoundKMapper < Src1 , SimpleDst > ) {
225236 val src = Src1 (null )
226237
227238 val dst = mapper.map(src)
0 commit comments