| package junitparams; | |
| import org.junit.Test; | |
| import org.junit.runner.RunWith; | |
| import junitparams.internal.Utils; | |
| import static junitparams.JUnitParamsRunner.*; | |
| import static junitparams.internal.Utils.*; | |
| import static org.assertj.core.api.Assertions.assertThat; | |
| import static org.junit.Assert.fail; | |
| @RunWith(JUnitParamsRunner.class) | |
| public class ObjectStringificationTest { | |
| @Test | |
| public void stringifyString() throws Exception { | |
| assertThat(stringify("exampleName", 0)).isEqualTo("[0] exampleName"); | |
| } | |
| @Test | |
| public void stringifyClassWithToStringAndOneParam() throws Exception { | |
| ClassWithToString obj = new ClassWithToString("exampleName"); | |
| assertThat(stringify(obj, 0)).isEqualTo("[0] exampleName"); | |
| } | |
| @Test | |
| public void stringifyClassWithToStringAndManyParams() throws Exception { | |
| ClassWithToString obj1 = new ClassWithToString("one"); | |
| ClassWithToString obj2 = new ClassWithToString("two"); | |
| assertThat(stringify(new Object[]{obj1, obj2}, 0)).isEqualTo("[0] one, two"); | |
| } | |
| @Test | |
| public void stringifyClassWithToStringInSuperclass() throws Exception { | |
| ClassWithToString obj = new ClassWithToString("exampleName"); | |
| assertThat(Utils.stringify(obj, 0)).isEqualTo("[0] exampleName"); | |
| } | |
| private class ClassWithToString { | |
| private String description; | |
| public ClassWithToString(String description) { | |
| this.description = description; | |
| } | |
| @Override | |
| public String toString() { | |
| return description; | |
| } | |
| } | |
| @Test | |
| public void stringifyArray() { | |
| Double[] nullArray = null; | |
| int[] primitiveArray = {1, 2, 3}; | |
| String[] array = {"one", "two", null}; | |
| Object[] mixed = $( | |
| $(nullArray, "stringOne", primitiveArray, "stringTwo", array) | |
| ); | |
| assertThat(Utils.stringify(mixed)).isEqualTo("null, stringOne, [1, 2, 3], stringTwo, [one, two, null]"); | |
| } | |
| @Test | |
| @Parameters | |
| public void shouldCreateParameterObjectsOnce(Object object) { | |
| assertThat(object).isInstanceOf(A.class); | |
| } | |
| public Object[] parametersForShouldCreateParameterObjectsOnce() { | |
| return new Object[]{new A()}; | |
| } | |
| static class A { | |
| static int instances = 0; | |
| String test = "test"; | |
| A() { | |
| if (++instances > 1) { | |
| fail(); | |
| } | |
| } | |
| @Override | |
| public String toString() { | |
| return "[0] exampleName" + super.toString(); | |
| } | |
| } | |
| } |