package com.aaront.execrise.generic; import com.aaront.exercise.generic.GenericArrayList; import com.aaront.exercise.generic.GenericIterator; import org.junit.Assert; import org.junit.Before; import org.junit.Test; /** * @author tonyhui * @since 17/2/22 */ public class GenericArrayListTest { private GenericArrayList<String> arrayList = new GenericArrayList<>(); @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 String[]{"1", "4", "5", "2", "3" }, arrayList.toArray()); } @Test public void testToArray() { Assert.assertArrayEquals(new String[]{"1", "2", "3" }, arrayList.toArray()); } @Test public void testToGenericArray() { Assert.assertArrayEquals(new String[]{"1", "2", "3" }, arrayList.toArray(new String[0])); } @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 String[]{"1", "4", "2", "9", "3", "10" }, arrayList.toArray()); } @Test public void testIterator() { GenericIterator<String> genericIterator = arrayList.iterator(); while (genericIterator.hasNext()) { genericIterator.next(); genericIterator.remove(); } Assert.assertArrayEquals(new String[]{}, arrayList.toArray()); } }