import org.junit.Assert; import org.junit.Rule; import org.junit.Test; import org.junit.contrib.java.lang.system.SystemOutRule; public class LinkedListTest { @Rule public final SystemOutRule log = new SystemOutRule().enableLog(); @Test public void testAdd() { log.clearLog(); LinkedList list = initListWithSize(10); System.out.print(list); Assert.assertEquals("List: [ 0 1 2 3 4 5 6 7 8 9 ]", log.getLog()); System.out.println(); } @Test public void testAddWithIndex() { log.clearLog(); LinkedList list = initListWithSize(10); list.add(0, -1); System.out.print(list); Assert.assertEquals(11, list.size()); Assert.assertEquals("List: [ -1 0 1 2 3 4 5 6 7 8 9 ]", log.getLog()); System.out.println(); log.clearLog(); list.add(list.size()-1, 10); System.out.print(list); Assert.assertEquals("List: [ -1 0 1 2 3 4 5 6 7 8 10 9 ]", log.getLog()); System.out.println(); log.clearLog(); list.add(list.size(), 11); System.out.print(list); Assert.assertEquals("List: [ -1 0 1 2 3 4 5 6 7 8 10 9 11 ]", log.getLog()); System.out.println(); } @Test public void testRemove() { log.clearLog(); LinkedList list = initListWithSize(10); list.remove(0); System.out.print(list); Assert.assertEquals(9, list.size()); Assert.assertEquals("List: [ 1 2 3 4 5 6 7 8 9 ]", log.getLog()); System.out.println(); log.clearLog(); list.remove(list.size()-1); System.out.print(list); Assert.assertEquals(8, list.size()); Assert.assertEquals("List: [ 1 2 3 4 5 6 7 8 ]", log.getLog()); System.out.println(); log.clearLog(); list.remove(list.size()-2); System.out.print(list); Assert.assertEquals(7, list.size()); Assert.assertEquals("List: [ 1 2 3 4 5 6 8 ]", log.getLog()); System.out.println(); } @Test public void testGet() { log.clearLog(); LinkedList list = initListWithSize(10); for (int i = 0; i < list.size(); ++i) { System.out.print(list.get(i)); } Assert.assertEquals("0123456789", log.getLog()); System.out.println(); } @Test public void testSize() { log.clearLog(); LinkedList list = initListWithSize(10); Assert.assertEquals(10, list.size()); System.out.println(); } @Test public void testIterator() { log.clearLog(); LinkedList list = initListWithSize(10); Iterator iter = list.iterator(); while (iter.hasNext()) { System.out.print(iter.next()); } Assert.assertEquals("0123456789", log.getLog()); System.out.println(); } private LinkedList initListWithSize(int size) { LinkedList list = new LinkedList(); for (int i = 0; i < size; ++i) { list.add(i); } return list; } }