blob: 8395ee84ade94c91b223cd93d24718601c40c6d6 [file] [log] [blame]
package org.testng;
import java.lang.reflect.Constructor;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
* Helper methods used by the Eclipse plug-in when converting tests from JUnit.
*
* @author Cedric Beust <cedric@beust.com>
*
*/
public class ConversionUtils {
/**
* Turns the output of a JUnit 4 @Parameters style data provider into
* one that is suitable for TestNG's @DataProvider.
*/
public static Object[] wrapDataProvider(Class cls, Collection<Object[]> data) {
List result = new ArrayList();
for (Object o : data) {
Object[] parameters = (Object[]) o;
Constructor ctor = null;
try {
for (Constructor c : cls.getConstructors()) {
// Just comparing parameter array sizes. Comparing the parameter types
// is more error prone since we need to take conversions into account
// (int -> Integer, etc...).
if (c.getParameterTypes().length == parameters.length) {
ctor = c;
break;
}
}
if (ctor == null) {
throw new TestNGException("Couldn't find a constructor in " + cls);
}
result.add(ctor.newInstance(parameters));
} catch (Exception ex) {
ex.printStackTrace();
}
}
return result.toArray();
}
}