package ch.akuhn.util; import static org.junit.Assert.assertEquals; import org.junit.Test; import org.junit.runner.RunWith; import ch.unibe.jexample.Given; import ch.unibe.jexample.JExample; @RunWith(JExample.class) public class TabTest { @Test public void defaultValue() { assertEquals("\t", new Tab().more().toString()); } @Test @Given("#testEmpty") public void testBeginEnd(Tab n) { assertEquals("", n.toString()); assertEquals("", n.begin()); assertEquals("abc", n.toString()); assertEquals("abc", n.toString()); assertEquals("", n.end()); assertEquals("", n.toString()); } @Test @Given("#testIncrement") public Tab testDecrement(Tab n) { assertEquals("abcabcabc", n.toString()); n.less(); assertEquals("abcabc", n.toString()); n.less(); assertEquals("abc", n.toString()); n.less(); assertEquals("", n.toString()); return n; } @Test(expected = IllegalStateException.class) @Given("#testDone") public void testDecrementFailsWhenDone(Tab n) { n.less(); } @Test @Given("#testDecrement") public Tab testDone(Tab n) { assertEquals(true, n.isEmpty()); return n; } @Test public Tab testEmpty() { Tab n = new Tab("abc"); assertEquals("", n.toString()); assertEquals(true, n.isEmpty()); return n; } @Test @Given("testEmpty") public Tab testIncrement(Tab n) { n.more(); assertEquals("abc", n.toString()); n.more(); assertEquals("abcabc", n.toString()); n.more(); assertEquals("abcabcabc", n.toString()); return n; } @Test @Given("#testIncrement") public Tab testNotDone(Tab n) { assertEquals(false, n.isEmpty()); return n; } }