package net.pterodactylus.sone.test;
+import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
+import kotlin.Deprecated;
+import kotlin.ReplaceWith;
+
/**
* Utilities for testing.
*/
public class TestUtil {
+ @Deprecated(message = "It only checks the given class, not its superclasses.", replaceWith = @ReplaceWith(imports = { "net.pterodactylus.sone.test" }, expression = "setField(`object`, fieldName, value)"))
public static void setFinalField(Object object, String fieldName, Object value) {
try {
Field clientCoreField = object.getClass().getField(fieldName);
}
}
+ public static <T> T createObject(Class<T> clazz, Class[] parameterTypes, Object... arguments) {
+ try {
+ Constructor<T> constructor = clazz.getDeclaredConstructor(parameterTypes);
+ constructor.setAccessible(true);
+ return constructor.newInstance(arguments);
+ } catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
}