1 package net.pterodactylus.sone.test
3 import org.junit.rules.*
4 import java.lang.reflect.*
6 private val modifiers = Field::class.java.getDeclaredField("modifiers").apply {
10 fun setField(instance: Any, name: String, value: Any?) {
11 generateSequence<Class<*>>(instance.javaClass) { it.superclass }
12 .flatMap { it.declaredFields.asSequence() }
13 .filter { it.name == name }
16 field.isAccessible = true
17 modifiers.setInt(field, field.modifiers and Modifier.FINAL.inv())
18 field.set(instance, value)
22 inline fun <reified T : Throwable> ExpectedException.expect() = expect(T::class.java)