1 package org.junit.runners.parameterized;
2
3 import static java.util.Collections.unmodifiableList;
4
5 import java.util.ArrayList;
6 import java.util.List;
7
8 import org.junit.runners.model.TestClass;
9
10
11
12
13
14
15
16
17 public class TestWithParameters {
18 private final String name;
19
20 private final TestClass testClass;
21
22 private final List<Object> parameters;
23
24 public TestWithParameters(String name, TestClass testClass,
25 List<Object> parameters) {
26 notNull(name, "The name is missing.");
27 notNull(testClass, "The test class is missing.");
28 notNull(parameters, "The parameters are missing.");
29 this.name = name;
30 this.testClass = testClass;
31 this.parameters = unmodifiableList(new ArrayList<Object>(parameters));
32 }
33
34 public String getName() {
35 return name;
36 }
37
38 public TestClass getTestClass() {
39 return testClass;
40 }
41
42 public List<Object> getParameters() {
43 return parameters;
44 }
45
46 @Override
47 public int hashCode() {
48 int prime = 14747;
49 int result = prime + name.hashCode();
50 result = prime * result + testClass.hashCode();
51 return prime * result + parameters.hashCode();
52 }
53
54 @Override
55 public boolean equals(Object obj) {
56 if (this == obj) {
57 return true;
58 }
59 if (obj == null) {
60 return false;
61 }
62 if (getClass() != obj.getClass()) {
63 return false;
64 }
65 TestWithParameters other = (TestWithParameters) obj;
66 return name.equals(other.name)
67 && parameters.equals(other.parameters)
68 && testClass.equals(other.testClass);
69 }
70
71 @Override
72 public String toString() {
73 return testClass.getName() + " '" + name + "' with parameters "
74 + parameters;
75 }
76
77 private static void notNull(Object value, String message) {
78 if (value == null) {
79 throw new NullPointerException(message);
80 }
81 }
82 }