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

Commit b88ebc6

Browse files
committed
バケツジェネレータのテストを追加
1 parent e198116 commit b88ebc6

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package com.mapk.fastkfunction.argumentBucket
2+
3+
import com.mapk.fastkfunction.argumentbucket.BucketGenerator
4+
import org.junit.jupiter.api.Assertions.assertArrayEquals
5+
import org.junit.jupiter.api.Nested
6+
import org.junit.jupiter.api.Test
7+
import kotlin.reflect.full.companionObjectInstance
8+
import kotlin.reflect.full.functions
9+
10+
private fun String.extensionFunction(arg1: String, arg2: String): String = this + arg1 + arg2
11+
12+
class BucketGeneratorTest {
13+
private fun instanceFunction(arg1: String, arg2: String): String = arg1 + arg2
14+
15+
companion object {
16+
fun companionObjectFunction(arg1: String, arg2: String): String = arg1 + arg2
17+
}
18+
19+
@Test
20+
fun withoutInstanceTest() {
21+
val generator = BucketGenerator(::instanceFunction.parameters, null)
22+
23+
assertArrayEquals(arrayOfNulls<Any?>(2), generator.getOriginalValueArray())
24+
assertArrayEquals(BooleanArray(2), generator.getOriginalInitializationStatuses())
25+
assertArrayEquals(Array(2) { it }, generator.getValueArrayGetter().invoke(Array(2) { it }))
26+
}
27+
28+
@Nested
29+
inner class WithInstanceTest {
30+
@Test
31+
fun companionObjectFunction() {
32+
val companionObject = BucketGeneratorTest::class.companionObjectInstance!!
33+
val function = companionObject::class.functions.first { it.name == "companionObjectFunction" }
34+
35+
val generator = BucketGenerator(function.parameters, companionObject)
36+
37+
assertArrayEquals(arrayOf(companionObject, null, null), generator.getOriginalValueArray())
38+
assertArrayEquals(booleanArrayOf(true, false, false), generator.getOriginalInitializationStatuses())
39+
assertArrayEquals(arrayOf(1, 2), generator.getValueArrayGetter().invoke(Array(3) { it }))
40+
}
41+
42+
@Test
43+
fun extensionFunction() {
44+
val function = String::extensionFunction
45+
46+
val generator = BucketGenerator(function.parameters, "instance")
47+
48+
assertArrayEquals(arrayOf("instance", null, null), generator.getOriginalValueArray())
49+
assertArrayEquals(booleanArrayOf(true, false, false), generator.getOriginalInitializationStatuses())
50+
assertArrayEquals(arrayOf(1, 2), generator.getValueArrayGetter().invoke(Array(3) { it }))
51+
}
52+
}
53+
}

0 commit comments

Comments
 (0)