package junitparams;
import static org.assertj.core.api.Assertions.assertThat;
import java.util.*;
import org.junit.*;
import org.junit.runner.*;
import junitparams.usage.person_example.*;
@RunWith(JUnitParamsRunner.class)
public class CastingParamsTest {
@Test
@Parameters
public void wrapWithTypeBySingleArgConstructor(PersonTest.Person person) {
assertThat(person.getAge()).isGreaterThan(0);
}
List<Integer> parametersForWrapWithTypeBySingleArgConstructor() {
return Arrays.asList(1, 2);
}
@Test
@Parameters
public void wrapWithTypeByMultiArgConstructor(PersonTest.Person person) {
assertThat(person.getAge()).isGreaterThan(0);
}
Object parametersForWrapWithTypeByMultiArgConstructor() {
return new Object[]{new Object[]{"first", 1}, new Object[]{"second", 2}};
}
@Test
@Parameters
public void cartoonCharacters(PersonTest.Person character) {
assertThat(character.getName()).isIn("Tarzan", "Jane");
assertThat(character.getAge()).isIn(0, 20);
}
private List<?> parametersForCartoonCharacters() {
return Arrays.asList(
new Object[]{"Tarzan", 0},
new Object[]{"Jane", 20}
);
}
@Test
@Parameters(method = "strings")
public void stringArrayFromMethod(String... values) {
assertThat(values).containsOnlyOnce("1", "2");
}
private Object strings() {
return new Object[]{new Object[]{"1", "2"}, new Object[]{"2", "1"}};
}
@Test
@Parameters({"a,b", "b,a"})
public void stringArrayFromAnnotation(String... values) {
assertThat(values).containsOnlyOnce("a","b");
}
}