package com.ikook.basic_data_structure;
import static org.junit.Assert.*;
import java.util.Date;
import org.junit.Before;
import org.junit.Test;
/**
* 此单元测试只测试了正常情况,一些异常情况没有测试。
* @author ikook
*/
public class MyLinkedListTest {
private MyLinkedList list;
@Before
public void setUp() {
list = new MyLinkedList();
list.add("111");
list.add(222);
list.add("333");
}
@Test
public void testAddFirst() {
list.addFirst(444);
assertEquals(4, list.size());
assertEquals(444, list.get(0));
assertEquals(444, list.getFirst());
}
@Test
public void testAddLast() {
list.addLast("444");
assertEquals(4, list.size());
assertEquals("444", list.getLast());
assertEquals("444", list.get(3));
}
@Test
public void testAddObject() {
list.add(new Date());
assertEquals(new Date(), list.get(3));
}
@Test
public void testAddIntObject() {
list.add(1, "222");
assertEquals("222", list.get(1));
assertEquals(4, list.size());
}
@Test
public void testSize() {
assertEquals(3, list.size());
}
@Test
public void testIsEmpty() {
assertEquals(false, list.isEmpty());
MyLinkedList list = new MyLinkedList();
assertEquals(true, list.isEmpty());
}
@Test
public void testGetFirst() {
assertEquals("111", list.getFirst());
}
@Test
public void testGetLast() {
assertEquals("333", list.getLast());
}
@Test
public void testGet() {
assertEquals(222, list.get(1));
}
@Test
public void testSet() {
assertEquals(222, list.set(1, new Date()));
assertEquals(new Date(), list.get(1));
}
@Test
public void testRemoveFirst() {
assertEquals("111", list.removeFirst());
assertEquals(222, list.getFirst());
}
@Test
public void testRemoveLast() {
assertEquals("333", list.removeLast());
assertEquals(222, list.getLast());
}
@Test
public void testRemoveObject() {
assertEquals(true, list.remove((Integer) 222));
assertEquals("333", list.get(1));
}
@Test
public void testRemoveInt() {
assertEquals(222, list.remove(1));
assertEquals("333", list.get(1));
}
@Test
public void testIterator() {
int i = 0;
for(MyIterator iter = list.iterator(); iter.hasNext();) {
Object str = (Object) iter.next();
assertEquals(list.get(i++), str);
}
int j = list.size();
for(MyIterator iter = list.iterator(); iter.hasNext();) {
iter.next();
iter.remove();
assertEquals( --j , list.size());
}
}
}