xref: /aosp_15_r20/external/junit-params/src/test/java/junitparams/MethodAnnotationArgumentTest.java (revision b2c653efad15baf736c94ef04454e05088f2cbb7)
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