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 MyArrayListTest {
private MyArrayList list;
@Before
public void setUp() {
list = new MyArrayList();
list.add("111");
list.add("222");
list.add(33);
list.add("444");
list.add(new Date());
list.add("666");
list.add("777");
list.add("888");
list.add("999");
}
@Test
public void testAdd() {
//测试add(Object obj)方法
list.add(100);
assertEquals(10, list.size());
//测试add(int index, Object obj)方法
list.add(3, 444);
assertEquals(444, list.get(3));
assertEquals("444", list.get(4));
assertEquals(11, list.size());
}
@Test
public void testIsEmpty() {
assertEquals(false, list.isEmpty());
}
@Test
public void testGet() {
assertEquals("111", list.get(0));
assertEquals(new Date(), list.get(4));
}
@Test
public void testRemove() {
// 测试remove(int index)方法
assertEquals(33, list.remove(2));
assertEquals("444", list.get(2));
// 测试remove(Object obj)方法
assertEquals(true, list.remove("222"));
assertEquals("444", list.get(1));
}
@Test
public void testSet() {
assertEquals(33, list.set(2, "333"));
assertEquals("333", list.get(2));
}
@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());
}
}
}