1*b2c653efSSorin Basca package junitparams; 2*b2c653efSSorin Basca 3*b2c653efSSorin Basca import static org.assertj.core.api.Assertions.assertThat; 4*b2c653efSSorin Basca 5*b2c653efSSorin Basca import java.util.Arrays; 6*b2c653efSSorin Basca import java.util.List; 7*b2c653efSSorin Basca 8*b2c653efSSorin Basca import junitparams.usage.person_example.PersonTest; 9*b2c653efSSorin Basca import junitparams.usage.person_example.PersonTest.Person; 10*b2c653efSSorin Basca 11*b2c653efSSorin Basca import org.junit.Test; 12*b2c653efSSorin Basca import org.junit.runner.RunWith; 13*b2c653efSSorin Basca 14*b2c653efSSorin Basca @SuppressWarnings("unused") 15*b2c653efSSorin Basca @RunWith(JUnitParamsRunner.class) 16*b2c653efSSorin Basca public class MethodAnnotationArgumentTest { 17*b2c653efSSorin Basca 18*b2c653efSSorin Basca @Test 19*b2c653efSSorin Basca @Parameters(method = "return1") testSingleMethodName(int number)20*b2c653efSSorin Basca public void testSingleMethodName(int number) { 21*b2c653efSSorin Basca assertThat(number).isEqualTo(1); 22*b2c653efSSorin Basca } 23*b2c653efSSorin Basca return1()24*b2c653efSSorin Basca private Integer[] return1() { 25*b2c653efSSorin Basca return new Integer[] { 1 }; 26*b2c653efSSorin Basca } 27*b2c653efSSorin Basca 28*b2c653efSSorin Basca @Test 29*b2c653efSSorin Basca @Parameters(method = "return1,return2") testMultipleMethodNames(int number)30*b2c653efSSorin Basca public void testMultipleMethodNames(int number) { 31*b2c653efSSorin Basca assertThat(number) 32*b2c653efSSorin Basca .isLessThanOrEqualTo(2) 33*b2c653efSSorin Basca .isGreaterThanOrEqualTo(1); 34*b2c653efSSorin Basca } 35*b2c653efSSorin Basca 36*b2c653efSSorin Basca @Test 37*b2c653efSSorin Basca @Parameters(method = "return1, return2") testMultipleMethodNamesWithWhitespaces(int number)38*b2c653efSSorin Basca public void testMultipleMethodNamesWithWhitespaces(int number) { 39*b2c653efSSorin Basca assertThat(number) 40*b2c653efSSorin Basca .isLessThanOrEqualTo(2) 41*b2c653efSSorin Basca .isGreaterThanOrEqualTo(1); 42*b2c653efSSorin Basca } 43*b2c653efSSorin Basca return2()44*b2c653efSSorin Basca private Integer[] return2() { 45*b2c653efSSorin Basca return new Integer[] { 2 }; 46*b2c653efSSorin Basca } 47*b2c653efSSorin Basca 48*b2c653efSSorin Basca @Test 49*b2c653efSSorin Basca @Parameters(source = PersonTest.class, method = "adultValues") testSingleMethodFromDifferentClass(int age, boolean valid)50*b2c653efSSorin Basca public void testSingleMethodFromDifferentClass(int age, boolean valid) { 51*b2c653efSSorin Basca assertThat(new Person(age).isAdult()).isEqualTo(valid); 52*b2c653efSSorin Basca } 53*b2c653efSSorin Basca 54*b2c653efSSorin Basca @Test 55*b2c653efSSorin Basca @Parameters(method = "stringParamsWithNull") shouldPassStringParamsWithNullFromMethod(String parameter)56*b2c653efSSorin Basca public void shouldPassStringParamsWithNullFromMethod(String parameter) { 57*b2c653efSSorin Basca // given 58*b2c653efSSorin Basca List<String> acceptedParams = Arrays.asList("1", "2", "3", null); 59*b2c653efSSorin Basca 60*b2c653efSSorin Basca // then 61*b2c653efSSorin Basca assertThat(acceptedParams).contains(parameter); 62*b2c653efSSorin Basca } 63*b2c653efSSorin Basca stringParamsWithNull()64*b2c653efSSorin Basca Object[] stringParamsWithNull() { 65*b2c653efSSorin Basca return genericArray("1", "2", "3", null); 66*b2c653efSSorin Basca } 67*b2c653efSSorin Basca 68*b2c653efSSorin Basca @Test 69*b2c653efSSorin Basca @Parameters(method = "multiStringParams") shouldPassMultiStringParams(String first, String second)70*b2c653efSSorin Basca public void shouldPassMultiStringParams(String first, String second) { 71*b2c653efSSorin Basca assertThat(first).isEqualTo(second); 72*b2c653efSSorin Basca } 73*b2c653efSSorin Basca multiStringParams()74*b2c653efSSorin Basca Object[] multiStringParams() { 75*b2c653efSSorin Basca return genericArray( 76*b2c653efSSorin Basca genericArray("test", "test"), 77*b2c653efSSorin Basca genericArray("ble", "ble")); 78*b2c653efSSorin Basca } 79*b2c653efSSorin Basca genericArray(T... elements)80*b2c653efSSorin Basca private static <T> T[] genericArray(T... elements) { 81*b2c653efSSorin Basca return elements; 82*b2c653efSSorin Basca } 83*b2c653efSSorin Basca } 84