package com.coding.basic;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* LinkedList Test
*/
public class LinkedListTest {
LinkedList<String> linkedList;
@Before
public void setUp() throws Exception {
linkedList = new LinkedList<>();
}
@After
public void tearDown() throws Exception {
linkedList = null;
}
@Test
public void add() throws Exception {
linkedList.add("first");
linkedList.add("second");
assertEquals(2, linkedList.size());
}
@Test
public void add1() throws Exception {
linkedList.add(0, "first");
linkedList.add(1, "second");
assertEquals("first", linkedList.get(0));
assertEquals("second", linkedList.get(1));
assertEquals(2, linkedList.size());
}
@Test
public void get() throws Exception {
linkedList.add(0, "first");
linkedList.add(1, "second");
linkedList.add("third");
assertEquals("first", linkedList.get(0));
assertEquals("second", linkedList.get(1));
assertEquals("third", linkedList.get(2));
}
@Test
public void remove() throws Exception {
linkedList.add(0, "first");
linkedList.add(1, "second");
linkedList.add("third");
linkedList.add("fourth");
assertEquals("first", linkedList.remove(0));
assertEquals("third", linkedList.remove(1));
assertEquals("fourth", linkedList.remove(1));
assertEquals(1, linkedList.size());
}
@Test
public void size() throws Exception {
linkedList.add(0, "first");
linkedList.add(1, "second");
linkedList.add("third");
linkedList.add("fourth");
assertEquals(4, linkedList.size());
}
@Test
public void addFirst() throws Exception {
linkedList.add("first");
linkedList.add("second");
linkedList.addFirst("first first");
assertEquals("first first", linkedList.get(0));
}
@Test
public void addLast() throws Exception {
linkedList.add("first");
linkedList.add("second");
linkedList.addLast("last");
assertEquals("last", linkedList.get(2));
}
@Test
public void removeFirst() throws Exception {
linkedList.add("first");
linkedList.add("second");
linkedList.add("third");
assertEquals("first", linkedList.removeFirst());
assertEquals("second", linkedList.removeFirst());
assertEquals(1, linkedList.size());
assertEquals("third", linkedList.get(0));
assertEquals("third", linkedList.removeFirst());
assertEquals(0, linkedList.size());
}
@Test
public void removeLast() throws Exception {
linkedList.add("first");
linkedList.add("second");
linkedList.add("third");
assertEquals("third", linkedList.removeLast());
assertEquals("second", linkedList.removeLast());
assertEquals("first", linkedList.removeLast());
assertEquals(0, linkedList.size());
}
@Test
public void iterator() throws Exception {
Iterator iterator = linkedList.iterator();
assertEquals(false,iterator.hasNext());
linkedList.add("A");
assertEquals(true,iterator.hasNext());
assertEquals("A",iterator.next());
iterator.remove();
assertEquals(0,linkedList.size());
}
}