
com.trigonic.utils.test.junit.Parameterized Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of test-utils Show documentation
Show all versions of test-utils Show documentation
Provides utilities for testing
The newest version!
package com.trigonic.utils.test.junit;
import static org.junit.Assert.assertFalse;
import java.lang.annotation.Annotation;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import org.junit.runner.Runner;
import org.junit.runners.Suite;
import org.junit.runners.model.FrameworkMethod;
import org.junit.runners.model.TestClass;
import com.google.common.base.Predicate;
import com.google.common.collect.Collections2;
import com.google.common.collect.Lists;
/**
* Similar to {@link org.junit.runners.Parameterized} but allows for readable labels and easier parameter specification. A public
* static method that returns a {@link LabelMaker} can be annotated with {@link LabelMakerFactory} and something other than the
* {@link DefaultLabelMaker default labels} will be used.
*/
public class Parameterized extends Suite {
protected final ArrayList runners = new ArrayList();
/**
* This is only called reflexively, do not call directly.
*/
public Parameterized(Class> testClass) throws Throwable {
super(testClass, Collections.emptyList());
List> parameters = getParameters(getTestClass());
assertFalse("No parameters found for " + testClass, parameters.size() == 0);
LabelMaker labelMaker = getLabelMaker(getTestClass());
for (int index = 0; index < parameters.size(); ++index) {
runners.add(new TestClassRunnerForParameters(getTestClass().getJavaClass(), parameters.get(index), index, labelMaker));
}
}
@Override
protected List getChildren() {
return runners;
}
protected List> getParameters(TestClass testClass) throws Throwable {
List> result = null;
for (FrameworkMethod method : getParametersMethods(testClass)) {
List> parameters = getParameters(method);
if (result == null) {
result = parameters;
} else {
result = new ListCartesianProduct
© 2015 - 2025 Weber Informatics LLC | Privacy Policy