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

Commit 22deffe

Browse files
committed
instanceFunctionOfのテストを追加
1 parent 49951b4 commit 22deffe

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

src/test/kotlin/com/mapk/fastkfunction/FastKFunctionTest.kt

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,4 +121,68 @@ private class FastKFunctionTest {
121121
assertTrue(result is FastKFunction.TopLevelFunction)
122122
}
123123
}
124+
125+
@Nested
126+
inner class InstanceFunctionOfTest {
127+
fun instanceFunc(arg: String) = println(arg)
128+
129+
@Nested
130+
inner class KindIsInstance {
131+
val function: KFunction<Unit> = InstanceFunctionOfTest::instanceFunc
132+
val parameters = function.parameters
133+
val javaMethod = function.javaMethod!!
134+
135+
@Test
136+
fun withoutInstance() {
137+
assertThrows<IllegalArgumentException> {
138+
FastKFunction.instanceFunctionOf(function, null, parameters, javaMethod)
139+
}
140+
}
141+
142+
@Test
143+
fun withWrongInstance() {
144+
assertThrows<IllegalArgumentException> {
145+
FastKFunction.instanceFunctionOf(function, "", parameters, javaMethod)
146+
}
147+
}
148+
149+
@Test
150+
fun isCorrect() {
151+
val result = assertDoesNotThrow {
152+
FastKFunction.instanceFunctionOf(function, this@InstanceFunctionOfTest, parameters, javaMethod)
153+
}
154+
assertTrue(result is FastKFunction.InstanceFunction)
155+
}
156+
}
157+
158+
@Nested
159+
inner class InstanceFunction {
160+
val function: KFunction<Unit> = this@InstanceFunctionOfTest::instanceFunc
161+
val parameters = function.parameters
162+
val javaMethod = function.javaMethod!!
163+
164+
@Test
165+
fun withoutInstance() {
166+
val result = assertDoesNotThrow {
167+
FastKFunction.instanceFunctionOf(function, null, parameters, javaMethod)
168+
}
169+
assertTrue(result is FastKFunction.Function)
170+
}
171+
172+
@Test
173+
fun withWrongInstance() {
174+
assertThrows<IllegalArgumentException> {
175+
FastKFunction.instanceFunctionOf(function, "", parameters, javaMethod)
176+
}
177+
}
178+
179+
@Test
180+
fun withCorrectInstance() {
181+
val result = assertDoesNotThrow {
182+
FastKFunction.instanceFunctionOf(function, this@InstanceFunctionOfTest, parameters, javaMethod)
183+
}
184+
assertTrue(result is FastKFunction.InstanceFunction)
185+
}
186+
}
187+
}
124188
}

0 commit comments

Comments
 (0)