1package junitparams;
2
3import static org.assertj.core.api.Assertions.assertThat;
4
5import org.junit.*;
6import org.junit.runner.*;
7
8@RunWith(JUnitParamsRunner.class)
9public class NullValuesTest {
10
11    private Object[] expectedSingleParams = new Object[]{null, "string", Long.valueOf(1)};
12
13    private static int expectedSingleParamsIndex;
14
15    private Object[] expectedMultipleParams = multipleParams();
16    private static int expectedMultipleParamsIndex;
17
18    @Test
19    @Parameters(method = "singleParams")
20    public void passesForSingleParametersListWithTheWorkaround(Object param) {
21        assertThat(param).isEqualTo(expectedSingleParams[expectedSingleParamsIndex]);
22        expectedSingleParamsIndex++;
23    }
24
25    public Object[] singleParams() {
26        return new Object[]{new Object[]{null}, "string", Long.valueOf(1)};
27    }
28
29    @Test
30    @Parameters(method = "multipleParams")
31    public void passesForMultipleParametersOutOfBox(Object param1, Object param2, Object param3) {
32        assertThat(param1).isEqualTo(((Object[]) expectedMultipleParams[expectedMultipleParamsIndex])[0]);
33        assertThat(param2).isEqualTo(((Object[]) expectedMultipleParams[expectedMultipleParamsIndex])[1]);
34        assertThat(param3).isEqualTo(((Object[]) expectedMultipleParams[expectedMultipleParamsIndex])[2]);
35        expectedMultipleParamsIndex++;
36    }
37
38    public Object[] multipleParams() {
39        return new Object[]{new Object[]{null, "string", null}, new Object[]{"string", Long
40                .valueOf(1), null}, new Object[]{null, null, null}};
41    }
42
43}
44