package org.testory.common; import static org.junit.Assert.assertEquals; import static org.testory.common.Formatter.formatter; import static org.testory.testing.Fakes.newObject; import org.junit.Before; import org.junit.Test; public class TestFormatter { private Object a, b, c, d; private Formatter formatter; @Before public void before() { formatter = formatter(); a = newObject("a"); b = newObject("b"); c = newObject("c"); d = newObject("d"); } @Test public void formats_object_using_to_string_method() { assertEquals( a.toString(), formatter.format(a)); } @Test public void formats_empty_array() { assertEquals( "[]", formatter.format(new Object[] {})); } @Test public void formats_single_object_array() { assertEquals( "[" + a + "]", formatter.format(new Object[] { a })); } @Test public void formats_primitive() { assertEquals( "[" + 1 + "]", formatter.format(new int[] { 1 })); } @Test public void formats_object_array() { assertEquals( "[" + a + ", " + b + "]", formatter.format(new Object[] { a, b })); } @Test public void formats_deep_array() { assertEquals( "[[" + a + ", " + b + "], [" + c + ", " + d + "]]", formatter.format(new Object[] { new Object[] { a, b }, new Object[] { c, d } })); } @Test public void formats_primitive_array() { assertEquals( "[[" + 1 + ", " + 2 + "], [" + 3 + ", " + 4 + "]]", formatter.format(new int[][] { { 1, 2 }, { 3, 4 } })); } @Test public void formats_null() { assertEquals( "null", formatter.format(null)); } }