package junitparams; import static org.assertj.core.api.Assertions.assertThat; import java.util.Arrays; import java.util.List; import junitparams.usage.person_example.PersonTest; import junitparams.usage.person_example.PersonTest.Person; import org.junit.Test; import org.junit.runner.RunWith; @SuppressWarnings("unused") @RunWith(JUnitParamsRunner.class) public class MethodAnnotationArgumentTest { @Test @Parameters(method = "return1") public void testSingleMethodName(int number) { assertThat(number).isEqualTo(1); } private Integer[] return1() { return new Integer[] { 1 }; } @Test @Parameters(method = "return1,return2") public void testMultipleMethodNames(int number) { assertThat(number) .isLessThanOrEqualTo(2) .isGreaterThanOrEqualTo(1); } @Test @Parameters(method = "return1, return2") public void testMultipleMethodNamesWithWhitespaces(int number) { assertThat(number) .isLessThanOrEqualTo(2) .isGreaterThanOrEqualTo(1); } private Integer[] return2() { return new Integer[] { 2 }; } @Test @Parameters(source = PersonTest.class, method = "adultValues") public void testSingleMethodFromDifferentClass(int age, boolean valid) { assertThat(new Person(age).isAdult()).isEqualTo(valid); } @Test @Parameters(method = "stringParamsWithNull") public void shouldPassStringParamsWithNullFromMethod(String parameter) { // given List acceptedParams = Arrays.asList("1", "2", "3", null); // then assertThat(acceptedParams).contains(parameter); } Object[] stringParamsWithNull() { return genericArray("1", "2", "3", null); } @Test @Parameters(method = "multiStringParams") public void shouldPassMultiStringParams(String first, String second) { assertThat(first).isEqualTo(second); } Object[] multiStringParams() { return genericArray( genericArray("test", "test"), genericArray("ble", "ble")); } private static T[] genericArray(T... elements) { return elements; } }