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

Commit 5ed297f

Browse files
committed
checkParametersのテストを追加
1 parent f618c1b commit 5ed297f

File tree

1 file changed

+72
-0
lines changed

1 file changed

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

0 commit comments

Comments
 (0)