X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftest%2FTestUtils.kt;fp=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftest%2FTestUtils.kt;h=999692529367efd5004d6e75541496091546778f;hp=0000000000000000000000000000000000000000;hb=5201720801a4053f8f324b71fb3e9c36f6cd911e;hpb=b9d12d4a287728f062c541d02887c39c24117217 diff --git a/src/test/java/net/pterodactylus/sone/test/TestUtils.kt b/src/test/java/net/pterodactylus/sone/test/TestUtils.kt new file mode 100644 index 0000000..9996925 --- /dev/null +++ b/src/test/java/net/pterodactylus/sone/test/TestUtils.kt @@ -0,0 +1,19 @@ +package net.pterodactylus.sone.test + +import java.lang.reflect.* + +private val modifiers = Field::class.java.getDeclaredField("modifiers").apply { + isAccessible = true +} + +fun setField(instance: Any, name: String, value: Any?) { + generateSequence>(instance.javaClass) { it.superclass } + .flatMap { it.declaredFields.asSequence() } + .filter { it.name == name } + .toList() + .forEach { field -> + field.isAccessible = true + modifiers.setInt(field, field.modifiers and Modifier.FINAL.inv()) + field.set(instance, value) + } +}