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

Commit 84bf6af

Browse files
committed
CheckParametersのテストまで追加
1 parent 8c3f8a7 commit 84bf6af

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
package com.mapk.fastkfunction
2+
3+
import com.mapk.fastkfunction.FastKFunction.Companion.checkParameters
4+
import io.mockk.every
5+
import io.mockk.mockk
6+
import org.junit.jupiter.api.*
7+
import org.junit.jupiter.api.Assertions.assertEquals
8+
import org.junit.jupiter.params.ParameterizedTest
9+
import org.junit.jupiter.params.provider.Arguments
10+
import org.junit.jupiter.params.provider.MethodSource
11+
import java.util.stream.Stream
12+
import kotlin.reflect.KParameter
13+
14+
private class FastKFunctionTest {
15+
@Nested
16+
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
17+
inner class CheckParametersTest {
18+
val valueParameter = mockk<KParameter>() {
19+
every { kind } returns KParameter.Kind.VALUE
20+
}
21+
val instanceParameter = mockk<KParameter>() {
22+
every { kind } returns KParameter.Kind.INSTANCE
23+
}
24+
25+
@ParameterizedTest
26+
@MethodSource("emptyParamListProvider")
27+
fun isEmpty(params: List<KParameter>) {
28+
assertThrows<IllegalArgumentException> { params.checkParameters() }
29+
}
30+
31+
fun emptyParamListProvider(): Stream<Arguments> = Stream.of(
32+
Arguments.of(emptyList<KParameter>()),
33+
Arguments.of(listOf(instanceParameter))
34+
)
35+
36+
@Test
37+
fun isIllegalArguments() {
38+
assertThrows<IllegalArgumentException> {
39+
listOf(instanceParameter, instanceParameter, valueParameter).checkParameters()
40+
}
41+
}
42+
43+
@ParameterizedTest
44+
@MethodSource("collectParamListProvider")
45+
fun isCorrect(params: List<KParameter>) {
46+
val actual = assertDoesNotThrow { params.checkParameters() }
47+
assertEquals(params, actual)
48+
}
49+
50+
fun collectParamListProvider(): Stream<Arguments> = Stream.of(
51+
Arguments.of(listOf(valueParameter)),
52+
Arguments.of(listOf(instanceParameter, valueParameter))
53+
)
54+
}
55+
}

0 commit comments

Comments
 (0)