org.junit.experimental.theories.FromDataPoints Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of virtdata-lib-realer Show documentation
Show all versions of virtdata-lib-realer Show documentation
With inspiration from other libraries
package org.junit.experimental.theories;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.junit.experimental.theories.internal.SpecificDataPointsSupplier;
/**
* Annotating a parameter of a {@link org.junit.experimental.theories.Theory
* @Theory} method with @FromDataPoints
will limit the
* datapoints considered as potential values for that parameter to just the
* {@link org.junit.experimental.theories.DataPoints DataPoints} with the given
* name. DataPoint names can be given as the value parameter of the
* @DataPoints annotation.
*
* DataPoints without names will not be considered as values for any parameters
* annotated with @FromDataPoints.
*
* @DataPoints
* public static String[] unnamed = new String[] { ... };
*
* @DataPoints("regexes")
* public static String[] regexStrings = new String[] { ... };
*
* @DataPoints({"forMatching", "alphanumeric"})
* public static String[] testStrings = new String[] { ... };
*
* @Theory
* public void stringTheory(String param) {
* // This will be called with every value in 'regexStrings',
* // 'testStrings' and 'unnamed'.
* }
*
* @Theory
* public void regexTheory(@FromDataPoints("regexes") String regex,
* @FromDataPoints("forMatching") String value) {
* // This will be called with only the values in 'regexStrings' as
* // regex, only the values in 'testStrings' as value, and none
* // of the values in 'unnamed'.
* }
*
*
* @see org.junit.experimental.theories.Theory
* @see org.junit.experimental.theories.DataPoint
* @see org.junit.experimental.theories.DataPoints
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PARAMETER)
@ParametersSuppliedBy(SpecificDataPointsSupplier.class)
public @interface FromDataPoints {
String value();
}