diff --git a/core-java-modules/core-java-collections-list-5/README.md b/core-java-modules/core-java-collections-list-5/README.md new file mode 100644 index 0000000000..4b7fbf8669 --- /dev/null +++ b/core-java-modules/core-java-collections-list-5/README.md @@ -0,0 +1,5 @@ +## Core Java Collections List (Part 5) + +This module contains articles about the Java List collection + +### Relevant Articles: \ No newline at end of file diff --git a/core-java-modules/core-java-collections-list-5/pom.xml b/core-java-modules/core-java-collections-list-5/pom.xml new file mode 100644 index 0000000000..0807f7612c --- /dev/null +++ b/core-java-modules/core-java-collections-list-5/pom.xml @@ -0,0 +1,35 @@ + + + 4.0.0 + core-java-collections-list-5 + 0.1.0-SNAPSHOT + core-java-collections-list-5 + jar + + + com.baeldung.core-java-modules + core-java-modules + 0.0.1-SNAPSHOT + + + + + commons-lang + commons-lang + ${commons-lang.version} + + + org.apache.commons + commons-lang3 + ${commons-lang3.version} + + + + + 2.2 + 3.12.0 + + + \ No newline at end of file diff --git a/core-java-modules/core-java-collections-list-5/src/test/java/com/baeldung/java/list/ListUnitTest.java b/core-java-modules/core-java-collections-list-5/src/test/java/com/baeldung/java/list/ListUnitTest.java new file mode 100644 index 0000000000..2222bc5a6f --- /dev/null +++ b/core-java-modules/core-java-collections-list-5/src/test/java/com/baeldung/java/list/ListUnitTest.java @@ -0,0 +1,126 @@ +package com.baeldung.java.list; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.util.ArrayList; +import java.util.Comparator; +import java.util.Iterator; +import java.util.List; + +import org.junit.Test; + +public class ListUnitTest { + + @Test + public void givenAFruitList_whenAddNewFruit_thenFruitIsAdded(){ + List fruits = new ArrayList<>(); + assertEquals("Unexpected number of fruits in the list, should have been 0", 0, fruits.size()); + + fruits.add("Apple"); + assertEquals("Unexpected number of fruits in the list, should have been 1", 1, fruits.size()); + } + + @Test + public void givenAFruitList_whenContainsFruit_thenFruitIsInTheList(){ + List fruits = new ArrayList<>(); + + fruits.add("Apple"); + assertTrue("Apple should be in the fruit list", fruits.contains("Apple")); + assertFalse("Banana should not be in the fruit list", fruits.contains("Banana")); + } + + @Test + public void givenAnEmptyFruitList_whenEmptyCheck_thenListIsEmpty(){ + List fruits = new ArrayList<>(); + assertTrue("Fruit list should be empty", fruits.isEmpty()); + + fruits.add("Apple"); + assertFalse("Fruit list should not be empty", fruits.isEmpty()); + } + + @Test + public void givenAFruitList_whenIterateOverIt_thenFruitsAreInOrder(){ + List fruits = new ArrayList<>(); + + fruits.add("Apple"); // fruit at index 0 + fruits.add("Orange");// fruit at index 1 + fruits.add("Banana");// fruit at index 2 + int index = 0; + for (Iterator it = fruits.listIterator(); it.hasNext(); ) { + String fruit = it.next(); + assertEquals("Fruits should be in order", fruits.get(index++), fruit); + } + } + + @Test + public void givenAFruitList_whenRemoveFruit_thenFruitIsRemoved(){ + List fruits = new ArrayList<>(); + + fruits.add("Apple"); + fruits.add("Orange"); + assertEquals("Unexpected number of fruits in the list, should have been 2", 2, fruits.size()); + + fruits.remove("Apple"); + assertEquals("Unexpected number of fruits in the list, should have been 1", 1, fruits.size()); + } + + @Test + public void givenAFruitList_whenSetFruit_thenFruitIsUpdated(){ + List fruits = new ArrayList<>(); + + fruits.add("Apple"); + fruits.add("Orange"); + + fruits.set(0, "Banana"); + assertEquals("Fruit at index 0 should be Banana", "Banana", fruits.get(0)); + } + + @Test + public void givenAFruitList_whenSort_thenFruitsAreSorted(){ + List fruits = new ArrayList<>(); + + fruits.add("Apple"); + fruits.add("Orange"); + fruits.add("Banana"); + + fruits.sort(Comparator.naturalOrder()); + + assertEquals("Fruit at index 0 should be Apple", "Apple", fruits.get(0)); + assertEquals("Fruit at index 1 should be Banana", "Banana", fruits.get(1)); + assertEquals("Fruit at index 2 should be Orange", "Orange", fruits.get(2)); + } + + @Test + public void givenAFruitList_whenSublist_thenWeGetASublist(){ + List fruits = new ArrayList<>(); + + fruits.add("Apple"); + fruits.add("Orange"); + fruits.add("Banana"); + + List fruitsSublist = fruits.subList(0, 2); + assertEquals("Unexpected number of fruits in the sublist, should have been 2", 2, fruitsSublist.size()); + + assertEquals("Fruit at index 0 should be Apple", "Apple", fruitsSublist.get(0)); + assertEquals("Fruit at index 1 should be Orange", "Orange", fruitsSublist.get(1)); + } + + @Test + public void givenAFruitList_whenToArray_thenWeGetAnArray(){ + List fruits = new ArrayList<>(); + + fruits.add("Apple"); + fruits.add("Orange"); + fruits.add("Banana"); + + String[] fruitsArray = fruits.toArray(new String[0]); + assertEquals("Unexpected number of fruits in the array, should have been 3", 3, fruitsArray.length); + + assertEquals("Fruit at index 0 should be Apple", "Apple", fruitsArray[0]); + assertEquals("Fruit at index 1 should be Orange", "Orange", fruitsArray[1]); + assertEquals("Fruit at index 2 should be Banana", "Banana", fruitsArray[2]); + } + +}