| package junitparams.usage.person_example; |
| |
| import static org.assertj.core.api.Assertions.assertThat; |
| |
| import junitparams.naming.TestCaseName; |
| import org.junit.*; |
| import org.junit.runner.*; |
| |
| import junitparams.*; |
| |
| @RunWith(JUnitParamsRunner.class) |
| public class PersonTest { |
| |
| @Test |
| @Parameters({ |
| "17, false", |
| "22, true" }) |
| public void isAdultAgeDirect(int age, boolean valid) throws Exception { |
| assertThat(new Person(age).isAdult()).isEqualTo(valid); |
| } |
| |
| @Test |
| @Parameters(method = "adultValues") |
| public void isAdultAgeDefinedMethod(int age, boolean valid) throws Exception { |
| assertThat(new Person(age).isAdult()).isEqualTo(valid); |
| } |
| |
| private Object[] adultValues() { |
| return new Object[]{new Object[]{17, false}, new Object[]{22, true}}; |
| } |
| |
| @Test |
| @Parameters |
| public void isAdultAgeDefaultMethod(int age, boolean valid) throws Exception { |
| assertThat(new Person(age).isAdult()).isEqualTo(valid); |
| } |
| |
| @SuppressWarnings("unused") |
| private Object[] parametersForIsAdultAgeDefaultMethod() { |
| return adultValues(); |
| } |
| |
| @Test |
| @Parameters(source = PersonProvider.class) |
| public void personIsAdult(Person person, boolean valid) { |
| assertThat(person.isAdult()).isEqualTo(valid); |
| } |
| |
| public static class PersonProvider { |
| public static Object[] provideAdults() { |
| return new Object[]{new Object[]{new Person(25), true}, new Object[]{new Person(32), true}}; |
| } |
| |
| public static Object[] provideTeens() { |
| return new Object[]{new Object[]{new Person(12), false}, new Object[]{new Person(17), false}}; |
| } |
| } |
| |
| // Android-changed: CTS and AndroidJUnitRunner rely on specific format to test names, changing |
| // them will prevent CTS and AndroidJUnitRunner from working properly; see b/36541809 |
| @Ignore |
| @Test |
| @Parameters(method = "adultValues") |
| @TestCaseName("Is person with age {0} adult? It's {1} statement.") |
| public void isAdultWithCustomTestName(int age, boolean valid) throws Exception { |
| assertThat(new Person(age).isAdult()).isEqualTo(valid); |
| } |
| |
| public static class Person { |
| |
| private String name; |
| private int age; |
| |
| public Person(Integer age) { |
| this.age = age; |
| } |
| |
| public Person(String name, Integer age) { |
| this.name = name; |
| this.age = age; |
| } |
| |
| public String getName() { |
| return name; |
| } |
| |
| public boolean isAdult() { |
| return age >= 18; |
| } |
| |
| public int getAge() { |
| return age; |
| } |
| |
| @Override |
| public String toString() { |
| return "Person of age: " + age; |
| } |
| } |
| } |