| 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<String> 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> T[] genericArray(T... elements) { |
| return elements; |
| } |
| } |