• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package junitparams.custom.combined;
2 
3 import java.util.ArrayList;
4 import java.util.List;
5 
6 import org.junit.Test;
7 
8 import static java.util.Collections.*;
9 import static org.assertj.core.api.Assertions.*;
10 
11 public class CartesianTest {
12 
13     @Test
shouldReturnEmptyWhenNoArgumentsPassed()14     public void shouldReturnEmptyWhenNoArgumentsPassed() {
15         // when
16         Object result[] = Cartesian.getCartesianProductOf(null);
17 
18         // then
19         assertThat(result).isEmpty();
20     }
21 
22     @Test
shouldReturnInputWhenOneArgumentPassed()23     public void shouldReturnInputWhenOneArgumentPassed() {
24         Object[] testArray = new String[]{"AAA", "BBB"};
25         List<Object[]> list = singletonList(testArray);
26 
27         // when
28         Object result[] = Cartesian.getCartesianProductOf(list);
29 
30         // then
31         assertThat(result).isEqualTo(testArray);
32     }
33 
34     @Test
shouldReturnProductOfTwoArrays()35     public void shouldReturnProductOfTwoArrays() {
36         Object[] testArrayOne = new String[]{"AAA", "BBB"};
37         Object[] testArrayTwo = new Integer[]{1, 2};
38 
39         List<Object[]> test = new ArrayList<Object[]>();
40         test.add(testArrayOne);
41         test.add(testArrayTwo);
42 
43         Object[] expectedResult = new Object[][]{
44                 {"AAA", 1}, {"AAA", 2},
45                 {"BBB", 1}, {"BBB", 2},
46         };
47 
48         // when
49         Object result[] = Cartesian.getCartesianProductOf(test);
50 
51         // then
52         assertThat(result).isEqualTo(expectedResult);
53     }
54 
55     @Test
shouldReturnProductOfThreeArrays()56     public void shouldReturnProductOfThreeArrays() {
57         Object[] testArrayOne = new String[]{"AAA", "BBB"};
58         Object[] testArrayTwo = new Integer[]{1, 2};
59         Object[] testArrayThree = new String[]{"XXX", "YYY"};
60 
61         List<Object[]> test = new ArrayList<Object[]>();
62         test.add(testArrayOne);
63         test.add(testArrayTwo);
64         test.add(testArrayThree);
65 
66         Object[] expectedResult = new Object[][]{
67                 {"AAA", 1, "XXX"}, {"AAA", 1, "YYY"},
68                 {"AAA", 2, "XXX"}, {"AAA", 2, "YYY"},
69                 {"BBB", 1, "XXX"}, {"BBB", 1, "YYY"},
70                 {"BBB", 2, "XXX"}, {"BBB", 2, "YYY"},
71         };
72 
73         // when
74         Object result[] = Cartesian.getCartesianProductOf(test);
75 
76         // then
77         assertThat(result).isEqualTo(expectedResult);
78     }
79 }
80