aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/junit/runners/parameterized/TestWithParameters.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/junit/runners/parameterized/TestWithParameters.java')
-rw-r--r--src/main/java/org/junit/runners/parameterized/TestWithParameters.java82
1 files changed, 82 insertions, 0 deletions
diff --git a/src/main/java/org/junit/runners/parameterized/TestWithParameters.java b/src/main/java/org/junit/runners/parameterized/TestWithParameters.java
new file mode 100644
index 0000000..1b86644
--- /dev/null
+++ b/src/main/java/org/junit/runners/parameterized/TestWithParameters.java
@@ -0,0 +1,82 @@
+package org.junit.runners.parameterized;
+
+import static java.util.Collections.unmodifiableList;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.runners.model.TestClass;
+
+/**
+ * A {@code TestWithParameters} keeps the data together that are needed for
+ * creating a runner for a single data set of a parameterized test. It has a
+ * name, the test class and a list of parameters.
+ *
+ * @since 4.12
+ */
+public class TestWithParameters {
+ private final String name;
+
+ private final TestClass testClass;
+
+ private final List<Object> parameters;
+
+ public TestWithParameters(String name, TestClass testClass,
+ List<Object> parameters) {
+ notNull(name, "The name is missing.");
+ notNull(testClass, "The test class is missing.");
+ notNull(parameters, "The parameters are missing.");
+ this.name = name;
+ this.testClass = testClass;
+ this.parameters = unmodifiableList(new ArrayList<Object>(parameters));
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public TestClass getTestClass() {
+ return testClass;
+ }
+
+ public List<Object> getParameters() {
+ return parameters;
+ }
+
+ @Override
+ public int hashCode() {
+ int prime = 14747;
+ int result = prime + name.hashCode();
+ result = prime * result + testClass.hashCode();
+ return prime * result + parameters.hashCode();
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj) {
+ return true;
+ }
+ if (obj == null) {
+ return false;
+ }
+ if (getClass() != obj.getClass()) {
+ return false;
+ }
+ TestWithParameters other = (TestWithParameters) obj;
+ return name.equals(other.name)
+ && parameters.equals(other.parameters)
+ && testClass.equals(other.testClass);
+ }
+
+ @Override
+ public String toString() {
+ return testClass.getName() + " '" + name + "' with parameters "
+ + parameters;
+ }
+
+ private static void notNull(Object value, String message) {
+ if (value == null) {
+ throw new NullPointerException(message);
+ }
+ }
+}