package com.googlecode.gwt.test.csv.internal;
import com.googlecode.gwt.test.internal.junit.GwtBlockJUnit4ClassRunner;
import com.googlecode.gwt.test.utils.GwtReflectionUtils;
import org.junit.runners.model.FrameworkMethod;
import org.junit.runners.model.InitializationError;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
/**
* @author Gael Lazzari
*/
public class GwtBlockJUnit4CsvRunner extends GwtBlockJUnit4ClassRunner {
private DirectoryTestReader reader;
public GwtBlockJUnit4CsvRunner(Class<?> clazz) throws InitializationError,
ClassNotFoundException {
super(clazz);
}
@Override
protected List<FrameworkMethod> computeTestMethods() {
if (reader == null) {
reader = new DirectoryTestReader(getTestClass().getJavaClass());
}
List<FrameworkMethod> frameworkMethods = new ArrayList<FrameworkMethod>();
for (Method csvMethod : reader.getTestMethods()) {
frameworkMethods.add(new FrameworkMethod(csvMethod));
}
return frameworkMethods;
}
@Override
protected Object createTest() throws Exception {
Object testInstance = reader.createObject();
GwtReflectionUtils.callPrivateMethod(testInstance, "setReader", reader);
return testInstance;
}
}