package com.zhaogd.collection; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.After; import org.junit.Before; import org.junit.Test; import com.zhaogd.collection.linkedlist.LinkedList; public class LinkedListTest { private LinkedList linkedList; @Before public void setUp() throws Exception { linkedList = new LinkedList(); } @After public void tearDown() throws Exception { } @Test public void testAddObject() { linkedList.add(1); assertEquals(1, linkedList.size()); assertEquals(1, linkedList.get(0)); } @Test(expected = IndexOutOfBoundsException.class) public void testExceptionForAdd1() { linkedList.add(-1, 1); } @Test(expected = IndexOutOfBoundsException.class) public void testExceptionForAdd2() { linkedList.add(1, 1); } @Test public void testAddIntObject() { linkedList.add(0, 1); linkedList.add(1, 2); assertEquals(1, linkedList.get(0)); linkedList.add(1, 3); assertEquals(2, linkedList.get(2)); assertEquals(3, linkedList.get(1)); assertEquals(3, linkedList.size()); } @Test(expected = IndexOutOfBoundsException.class) public void testExceptionForGet1() { linkedList.get(-1); } @Test(expected = IndexOutOfBoundsException.class) public void testExceptionForGet2() { linkedList.get(0); } @Test(expected = IndexOutOfBoundsException.class) public void testExceptionForGet3() { linkedList.get(1); } @Test public void testGet() { linkedList.add(0, 1); linkedList.add(1, 2); assertEquals(2, linkedList.get(1)); } @Test public void testGetLast() { linkedList.add(1); assertEquals(1, linkedList.getLast()); linkedList.add(2); assertEquals(2, linkedList.getLast()); } @Test public void testRemove() { linkedList.add(1); assertEquals(1, linkedList.remove(0)); assertEquals(0, linkedList.size()); } @Test public void testSize() { linkedList.add(1); linkedList.add(1); linkedList.add(1); assertEquals(3, linkedList.size()); } @Test public void testAddFirst() { linkedList.addFirst(1); assertEquals(1, linkedList.get(0)); linkedList.addFirst(2); linkedList.addFirst(3); assertEquals(3, linkedList.get(0)); assertEquals(1, linkedList.getLast()); } @Test public void testAddLast() { linkedList.addLast(1); assertEquals(1, linkedList.getLast()); assertEquals(1, linkedList.get(0)); } @Test public void testRemoveFirst() { linkedList.addFirst(1); assertEquals(1, linkedList.removeFirst()); assertEquals(0, linkedList.size()); } @Test public void testRemoveLast() { linkedList.addLast(2); assertEquals(2, linkedList.removeLast()); assertEquals(0, linkedList.size()); } @Test public void testIterator() { Iterator iterator = linkedList.iterator(); assertFalse(iterator.hasNext()); linkedList.add(1); assertTrue(iterator.hasNext()); assertEquals(1, iterator.next()); assertFalse(iterator.hasNext()); } }