1*b2c653efSSorin Basca package junitparams; 2*b2c653efSSorin Basca 3*b2c653efSSorin Basca import java.lang.annotation.Retention; 4*b2c653efSSorin Basca import java.lang.annotation.RetentionPolicy; 5*b2c653efSSorin Basca 6*b2c653efSSorin Basca /** 7*b2c653efSSorin Basca * THE annotation for the test parameters. Use it to say that a method takes 8*b2c653efSSorin Basca * some parameters and define how to obtain them. 9*b2c653efSSorin Basca * 10*b2c653efSSorin Basca * @author Pawel Lipinski 11*b2c653efSSorin Basca */ 12*b2c653efSSorin Basca @Retention(RetentionPolicy.RUNTIME) 13*b2c653efSSorin Basca public @interface Parameters { 14*b2c653efSSorin Basca /** 15*b2c653efSSorin Basca * Parameter values defined as a String array. Each element in the array is 16*b2c653efSSorin Basca * a full parameter set, comma-separated or pipe-separated ('|'). 17*b2c653efSSorin Basca * The values must match the method parameters in order and type. 18*b2c653efSSorin Basca * Whitespace characters are trimmed (use source class or method if You need to provide such parameters) 19*b2c653efSSorin Basca * 20*b2c653efSSorin Basca * Example: <code>@Parameters({ 21*b2c653efSSorin Basca * "1, joe, 26.4, true", 22*b2c653efSSorin Basca * "2, angie, 37.2, false"})</code> 23*b2c653efSSorin Basca */ value()24*b2c653efSSorin Basca String[] value() default {}; 25*b2c653efSSorin Basca 26*b2c653efSSorin Basca /** 27*b2c653efSSorin Basca * Parameter values defined externally. The specified class must have at 28*b2c653efSSorin Basca * least one public static method starting with <code>provide</code> 29*b2c653efSSorin Basca * returning <code>Object[]</code>. All such methods are used, so you can 30*b2c653efSSorin Basca * group your examples. The resulting array should contain parameter sets in 31*b2c653efSSorin Basca * its elements. Each parameter set must be another Object[] array, which 32*b2c653efSSorin Basca * contains parameter values in its elements. 33*b2c653efSSorin Basca * Example: <code>@Parameters(source = PeopleProvider.class)</code> 34*b2c653efSSorin Basca */ source()35*b2c653efSSorin Basca Class<?> source() default Void.class; 36*b2c653efSSorin Basca 37*b2c653efSSorin Basca /** 38*b2c653efSSorin Basca * Parameter values returned by a method within the test class. This way you 39*b2c653efSSorin Basca * don't need additional classes and the test code may be a bit cleaner. The 40*b2c653efSSorin Basca * format of the data returned by the method is the same as for the source 41*b2c653efSSorin Basca * annotation class. 42*b2c653efSSorin Basca * Example: <code>@Parameters(method = "examplaryPeople")</code> 43*b2c653efSSorin Basca * 44*b2c653efSSorin Basca * You can use multiple methods to provide parameters - use comma to do it: 45*b2c653efSSorin Basca * Example: <code>@Parameters(method = "womenParams, menParams")</code> 46*b2c653efSSorin Basca */ method()47*b2c653efSSorin Basca String method() default ""; 48*b2c653efSSorin Basca } 49