in old/fine-junit/src/main/java/org/jetbrains/dekaf/junitft/FineRunner.java [61:97]
private void prepareTestWithParams(Class<?> klass, Method method) {
TestWithParams annotation = method.getAnnotation(TestWithParams.class);
String paramsMemberName = annotation.params();
try {
Field paramsField = null;
for (Class<?> klazz = klass; paramsField == null && klazz != null; klazz = klazz.getSuperclass()) {
try {
paramsField = klazz.getDeclaredField(paramsMemberName);
}
catch (Exception e) {
paramsField = null;
}
}
if (paramsField == null) {
throw new IllegalStateException("Class " + klass.getSimpleName() + " has no field " + paramsMemberName);
}
paramsField.setAccessible(true);
Class<?> paramsFieldType = paramsField.getType();
if (paramsFieldType.isArray()) {
Object o = paramsField.get(klass);
Object[] rows = (Object[]) o;
for (Object row : rows) {
ParamTestMethod m = new ParamTestMethod(klass, method, row);
myTestMethods.add(m);
}
}
else {
// TODO
}
}
catch (IllegalAccessException e) {
// TODO
}
}