package com.aaront.execrise.basic;
import com.aaront.exercise.basic.ArrayList;
import com.aaront.exercise.basic.Iterator;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
/**
* @author tonyhui
* @since 17/2/20
*/
public class ArrayListTest {
private ArrayList arrayList = new ArrayList();
@Before
public void init() {
arrayList.add(1);
arrayList.add(2);
arrayList.add(3);
}
@Test
public void testAdd() {
Assert.assertEquals(1, arrayList.get(0));
Assert.assertEquals(2, arrayList.get(1));
Assert.assertEquals(3, arrayList.get(2));
Assert.assertEquals(3, arrayList.size());
}
@Test
public void testAddIndex() {
arrayList.add(1, 4);
arrayList.add(2, 5);
Assert.assertArrayEquals(new Object[]{1, 4, 5, 2, 3}, arrayList.toArray());
}
@Test
public void testToArray() {
Assert.assertArrayEquals(new Object[]{1, 2, 3}, arrayList.toArray());
}
@Test
public void testGet() {
Assert.assertEquals(3, arrayList.get(2));
Assert.assertEquals(1, arrayList.get(0));
Assert.assertEquals(2, arrayList.get(1));
}
@Test
public void testRemove() {
testAddIndex();
arrayList.remove(2);
arrayList.add(4, 10);
arrayList.add(3, 9);
Assert.assertArrayEquals(new Object[]{1, 4, 2, 9, 3, 10}, arrayList.toArray());
}
@Test
public void testIterator() {
Iterator iterator = arrayList.iterator();
while (iterator.hasNext()) {
iterator.next();
iterator.remove();
}
Assert.assertArrayEquals(new Object[]{}, arrayList.toArray());
}
}