1*b2c653efSSorin Basca package junitparams; 2*b2c653efSSorin Basca 3*b2c653efSSorin Basca import org.junit.Test; 4*b2c653efSSorin Basca import org.junit.runner.RunWith; 5*b2c653efSSorin Basca 6*b2c653efSSorin Basca import junitparams.internal.Utils; 7*b2c653efSSorin Basca 8*b2c653efSSorin Basca import static junitparams.JUnitParamsRunner.*; 9*b2c653efSSorin Basca import static junitparams.internal.Utils.*; 10*b2c653efSSorin Basca import static org.assertj.core.api.Assertions.assertThat; 11*b2c653efSSorin Basca import static org.junit.Assert.fail; 12*b2c653efSSorin Basca 13*b2c653efSSorin Basca 14*b2c653efSSorin Basca @RunWith(JUnitParamsRunner.class) 15*b2c653efSSorin Basca public class ObjectStringificationTest { 16*b2c653efSSorin Basca 17*b2c653efSSorin Basca @Test stringifyString()18*b2c653efSSorin Basca public void stringifyString() throws Exception { 19*b2c653efSSorin Basca assertThat(stringify("exampleName", 0)).isEqualTo("[0] exampleName"); 20*b2c653efSSorin Basca } 21*b2c653efSSorin Basca 22*b2c653efSSorin Basca @Test stringifyClassWithToStringAndOneParam()23*b2c653efSSorin Basca public void stringifyClassWithToStringAndOneParam() throws Exception { 24*b2c653efSSorin Basca ClassWithToString obj = new ClassWithToString("exampleName"); 25*b2c653efSSorin Basca 26*b2c653efSSorin Basca assertThat(stringify(obj, 0)).isEqualTo("[0] exampleName"); 27*b2c653efSSorin Basca } 28*b2c653efSSorin Basca 29*b2c653efSSorin Basca @Test stringifyClassWithToStringAndManyParams()30*b2c653efSSorin Basca public void stringifyClassWithToStringAndManyParams() throws Exception { 31*b2c653efSSorin Basca ClassWithToString obj1 = new ClassWithToString("one"); 32*b2c653efSSorin Basca ClassWithToString obj2 = new ClassWithToString("two"); 33*b2c653efSSorin Basca 34*b2c653efSSorin Basca assertThat(stringify(new Object[]{obj1, obj2}, 0)).isEqualTo("[0] one, two"); 35*b2c653efSSorin Basca } 36*b2c653efSSorin Basca 37*b2c653efSSorin Basca @Test stringifyClassWithToStringInSuperclass()38*b2c653efSSorin Basca public void stringifyClassWithToStringInSuperclass() throws Exception { 39*b2c653efSSorin Basca ClassWithToString obj = new ClassWithToString("exampleName"); 40*b2c653efSSorin Basca 41*b2c653efSSorin Basca assertThat(Utils.stringify(obj, 0)).isEqualTo("[0] exampleName"); 42*b2c653efSSorin Basca } 43*b2c653efSSorin Basca 44*b2c653efSSorin Basca private class ClassWithToString { 45*b2c653efSSorin Basca private String description; 46*b2c653efSSorin Basca ClassWithToString(String description)47*b2c653efSSorin Basca public ClassWithToString(String description) { 48*b2c653efSSorin Basca this.description = description; 49*b2c653efSSorin Basca } 50*b2c653efSSorin Basca 51*b2c653efSSorin Basca @Override toString()52*b2c653efSSorin Basca public String toString() { 53*b2c653efSSorin Basca return description; 54*b2c653efSSorin Basca } 55*b2c653efSSorin Basca } 56*b2c653efSSorin Basca 57*b2c653efSSorin Basca @Test stringifyArray()58*b2c653efSSorin Basca public void stringifyArray() { 59*b2c653efSSorin Basca Double[] nullArray = null; 60*b2c653efSSorin Basca int[] primitiveArray = {1, 2, 3}; 61*b2c653efSSorin Basca String[] array = {"one", "two", null}; 62*b2c653efSSorin Basca Object[] mixed = $( 63*b2c653efSSorin Basca $(nullArray, "stringOne", primitiveArray, "stringTwo", array) 64*b2c653efSSorin Basca ); 65*b2c653efSSorin Basca 66*b2c653efSSorin Basca assertThat(Utils.stringify(mixed)).isEqualTo("null, stringOne, [1, 2, 3], stringTwo, [one, two, null]"); 67*b2c653efSSorin Basca } 68*b2c653efSSorin Basca 69*b2c653efSSorin Basca @Test 70*b2c653efSSorin Basca @Parameters shouldCreateParameterObjectsOnce(Object object)71*b2c653efSSorin Basca public void shouldCreateParameterObjectsOnce(Object object) { 72*b2c653efSSorin Basca assertThat(object).isInstanceOf(A.class); 73*b2c653efSSorin Basca } 74*b2c653efSSorin Basca parametersForShouldCreateParameterObjectsOnce()75*b2c653efSSorin Basca public Object[] parametersForShouldCreateParameterObjectsOnce() { 76*b2c653efSSorin Basca return new Object[]{new A()}; 77*b2c653efSSorin Basca } 78*b2c653efSSorin Basca 79*b2c653efSSorin Basca static class A { 80*b2c653efSSorin Basca static int instances = 0; 81*b2c653efSSorin Basca String test = "test"; 82*b2c653efSSorin Basca A()83*b2c653efSSorin Basca A() { 84*b2c653efSSorin Basca if (++instances > 1) { 85*b2c653efSSorin Basca fail(); 86*b2c653efSSorin Basca } 87*b2c653efSSorin Basca } 88*b2c653efSSorin Basca 89*b2c653efSSorin Basca @Override toString()90*b2c653efSSorin Basca public String toString() { 91*b2c653efSSorin Basca return "[0] exampleName" + super.toString(); 92*b2c653efSSorin Basca } 93*b2c653efSSorin Basca } 94*b2c653efSSorin Basca } 95