package com.michaelthomas.list.arraylist; /** * @author Michael Thomas (www.michael-thomas.com) michael@michael-thomas.com * */ import static org.junit.Assert.*; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.junit.Before; import org.junit.Test; import com.michaelthomas.collection.MyCollectionSort; import com.michaelthomas.collection.MyCollectionTraverse; public class MyArrayListTest { private MyCollectionTraverse myCollectionTraverse = new MyCollectionTraverse(); private MyCollectionSort myCollSort = new MyCollectionSort(); private MyArrayList myListObj = new MyArrayList(); private ArrayList list; private String expectedDayList = "Sun, Mon, Tue, Wed, Thu, Fri, Sat"; private String expectedDayListReverse = "Sat, Fri, Thu, Wed, Tue, Mon, Sun"; @Before public void setUp() throws Exception { list = myListObj.buildDaysOfWeek(); } @Test public void testBuildDaysOfWeek() { assertEquals(7, list.size()); assertEquals("[" + expectedDayList + "]",list.toString()); } @Test public void testIterateForLoopExample() { String daysOfWeekStr = myCollectionTraverse.iterateForLoopExample(list); assertEquals(expectedDayList, daysOfWeekStr ); } @Test public void iterateForLoopReverseExample() { String daysOfWeekStr = myCollectionTraverse.iterateForLoopReverseExample(list); assertEquals(expectedDayListReverse, daysOfWeekStr ); } @Test public void testIterateWhileExample() { String daysOfWeekStr = myCollectionTraverse.iteratorWhileExample(list); assertEquals(expectedDayList, daysOfWeekStr ); } @Test public void testIterateWhileReverseExample() { String daysOfWeekStr = myCollectionTraverse.iteratorWhileReverseExample(list); assertEquals(expectedDayListReverse, daysOfWeekStr ); } @Test public void testForLoopExample() { String daysOfWeekStr = myCollectionTraverse.forLoopExample(list); assertEquals(expectedDayList, daysOfWeekStr ); } @Test public void testForEachExample() { String daysOfWeekStr = myCollectionTraverse.forEachExample(list); assertEquals(expectedDayList, daysOfWeekStr ); } @Test public void testArrayListEnsureCapacity() { ArrayList myPlayList = new ArrayList(list); assertEquals("[Sun, Mon, Tue, Wed, Thu, Fri, Sat]", myPlayList.toString()); myPlayList.ensureCapacity(100); //Used for performance enhancements. assertEquals(7, myPlayList.size()); assertEquals("[Sun, Mon, Tue, Wed, Thu, Fri, Sat]", list.toString()); } @Test public void testArrayListSortNewList() { assertEquals("[Sun, Mon, Tue, Wed, Thu, Fri, Sat]", list.toString()); ArrayList myPlayList = new ArrayList(myCollSort.sortTheCollection(list)); assertEquals("[Fri, Mon, Sat, Sun, Thu, Tue, Wed]", myPlayList.toString()); } @Test public void testArrayListSortSameList() { assertEquals("[Sun, Mon, Tue, Wed, Thu, Fri, Sat]", list.toString()); list = new ArrayList(myCollSort.sortTheCollection(list)); assertEquals("[Fri, Mon, Sat, Sun, Thu, Tue, Wed]", list.toString()); } @Test public void testArraysAsList() { //Convert an array to a list. List colors = Arrays.asList("Red", "White", "Blue"); assertEquals("[Red, White, Blue]", colors.toString()); String[] arrColors2 = {"Red", "White", "Blue"}; List colors2 = Arrays.asList(arrColors2); assertEquals("[Red, White, Blue]", colors2.toString()); } }