• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package junitparams.custom.combined;
2 
3 import java.util.LinkedList;
4 import java.util.List;
5 
6 import org.junit.AfterClass;
7 import org.junit.Test;
8 import org.junit.runner.RunWith;
9 
10 import junitparams.JUnitParamsRunner;
11 
12 import static org.assertj.core.api.Assertions.*;
13 
14 @RunWith(JUnitParamsRunner.class)
15 public class CombinedParametersProviderTest {
16 
17     private static Verifier verifier = new Verifier();
18 
19     @Test
20     @CombinedParameters({"a,b", "1,2"})
calledWithCartesianProduct(String character, String number)21     public void calledWithCartesianProduct(String character, String number) {
22         verifier.called(character, number);
23     }
24 
25     @AfterClass
verify()26     public static void verify() {
27         assertThat(verifier.getCalls()).containsOnly(
28                 new Verifier.Call("a", "1"),
29                 new Verifier.Call("b", "1"),
30                 new Verifier.Call("a", "2"),
31                 new Verifier.Call("b", "2")
32         );
33     }
34 
35     private static class Verifier {
36 
37         private List<Call> calls = new LinkedList<Call>();
38 
called(String firstParam, String anotherParam)39         void called(String firstParam, String anotherParam){
40             calls.add(new Call(firstParam, anotherParam));
41         }
42 
getCalls()43         List<Call> getCalls() {
44             return calls;
45         }
46 
47         private static class Call {
48 
49             private final String firstParam;
50             private final String anotherParam;
51 
Call(String firstParam, String anotherParam)52             Call(String firstParam, String anotherParam) {
53                 this.firstParam = firstParam;
54                 this.anotherParam = anotherParam;
55             }
56 
57             @Override
toString()58             public String toString() {
59                 return "Call{" +
60                         "'" + firstParam + '\'' +
61                         ",'" + anotherParam + '\'' +
62                         '}';
63             }
64 
65             @Override
equals(Object o)66             public boolean equals(Object o) {
67                 if (this == o) {
68                     return true;
69                 }
70                 if (o == null || getClass() != o.getClass()) {
71                     return false;
72                 }
73 
74                 Call call = (Call) o;
75 
76                 return firstParam.equals(call.firstParam) && anotherParam.equals(call.anotherParam);
77 
78             }
79 
80             @Override
hashCode()81             public int hashCode() {
82                 int result = firstParam.hashCode();
83                 result = 31 * result + anotherParam.hashCode();
84                 return result;
85             }
86         }
87     }
88 }
89