Additional tests on reflection calls

This commit is contained in:
Alexander Udalov
2015-08-07 17:29:02 +03:00
parent ccb58d8601
commit 7dcb690254
7 changed files with 82 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
public class J {
private final String result;
private J(String result) {
this.result = result;
}
private String getResult() {
return result;
}
}

View File

@@ -0,0 +1,20 @@
import kotlin.reflect.*
import kotlin.reflect.jvm.*
import kotlin.test.*
fun box(): String {
val c = J::class.constructors.single()
assertFalse(c.isAccessible)
failsWith(javaClass<IllegalCallableAccessException>()) { c.call("") }
c.isAccessible = true
assertTrue(c.isAccessible)
val j = c.call("OK")
val m = J::class.members.single { it.name == "getResult" }
assertFalse(m.isAccessible)
failsWith(javaClass<IllegalCallableAccessException>()) { m.call(j)!! }
m.isAccessible = true
return m.call(j) as String
}