This is an automated email from the ASF dual-hosted git repository.

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-collections.git

commit 7ad893360d4889a5e10a2dd44ad14dfa72d2b47a
Author: Sigee <sige...@gmail.com>
AuthorDate: Fri Jul 19 10:57:11 2024 +0200

    Increase test coverage for ListUtils
     - isEqualList: same size, but different elements in the lists
     - isEqualList: same size, same elements, but different order
     - hashCodeForList: with null element
     - partition.get: edge cases (Exception)
     - union: multiple cases
     - sum: happy path
---
 .../apache/commons/collections4/ListUtilsTest.java | 73 ++++++++++++++++++++++
 1 file changed, 73 insertions(+)

diff --git a/src/test/java/org/apache/commons/collections4/ListUtilsTest.java 
b/src/test/java/org/apache/commons/collections4/ListUtilsTest.java
index 44f8b1513..dcf02e825 100644
--- a/src/test/java/org/apache/commons/collections4/ListUtilsTest.java
+++ b/src/test/java/org/apache/commons/collections4/ListUtilsTest.java
@@ -91,6 +91,15 @@ public class ListUtilsTest {
         assertFalse(ListUtils.isEqualList(a, null));
         assertFalse(ListUtils.isEqualList(null, b));
         assertTrue(ListUtils.isEqualList(null, null));
+
+        b.clear();
+        a.add("a");
+        b.add("b");
+        assertFalse(ListUtils.isEqualList(a, b));
+
+        a.add("b");
+        b.add("a");
+        assertFalse(ListUtils.isEqualList(a, b));
     }
 
     @Test
@@ -121,6 +130,9 @@ public class ListUtilsTest {
         a.clear();
         assertNotEquals(ListUtils.hashCodeForList(a), 
ListUtils.hashCodeForList(b));
         assertEquals(0, ListUtils.hashCodeForList(null));
+
+        a.add(null);
+        assertEquals(31, ListUtils.hashCodeForList(a));
     }
 
     /**
@@ -328,6 +340,12 @@ public class ListUtilsTest {
         assertNotNull(partition);
         assertEquals(3, partition.size());
         assertEquals(1, partition.get(2).size());
+        assertAll(
+                () -> assertThrows(IndexOutOfBoundsException.class, () -> 
partition.get(-1),
+                        "Index -1 must not be negative"),
+                () -> assertThrows(IndexOutOfBoundsException.class, () -> 
partition.get(3),
+                        "Index " + 3 + " must be less than size " + 
partition.size())
+        );
         assertAll(
                 () -> assertThrows(NullPointerException.class, () -> 
ListUtils.partition(null, 3),
                         "failed to check for null argument"),
@@ -481,4 +499,59 @@ public class ListUtilsTest {
         assertEquals(expected, result);
     }
 
+    @Test
+    public void testUnion() {
+        final List<String> list1 = new ArrayList<>();
+        list1.add(a);
+        final List<String> list2 = new ArrayList<>();
+        list2.add(b);
+        final List<String> result1 = ListUtils.union(list1, list2);
+        final List<String> expected1 = new ArrayList<>();
+        expected1.add(a);
+        expected1.add(b);
+        assertEquals(2, result1.size());
+        assertEquals(expected1, result1);
+
+        final List<String> list3 = new ArrayList<>();
+        list3.add(a);
+        final List<String> result2 = ListUtils.union(list1, list3);
+        final List<String> expected2 = new ArrayList<>();
+        expected2.add(a);
+        expected2.add(a);
+        assertEquals(2, result1.size());
+        assertEquals(expected2, result2);
+
+        list1.add(null);
+        final List<String> result3 = ListUtils.union(list1, list2);
+        final List<String> expected3 = new ArrayList<>();
+        expected3.add(a);
+        expected3.add(null);
+        expected3.add(b);
+        assertEquals(3, result3.size());
+        assertEquals(expected3, result3);
+
+        list2.add(null);
+        final List<String> result4 = ListUtils.union(list1, list2);
+        final List<String> expected4 = new ArrayList<>();
+        expected4.add(a);
+        expected4.add(null);
+        expected4.add(b);
+        expected4.add(null);
+        assertEquals(4, result4.size());
+        assertEquals(expected4, result4);
+    }
+
+    @Test
+    public void testSum() {
+        final List<String> list1 = new ArrayList<>();
+        list1.add(a);
+        final List<String> list2 = new ArrayList<>();
+        list2.add(b);
+        final List<String> expected1 = new ArrayList<>();
+        expected1.add(a);
+        expected1.add(b);
+        final List<String> result1 = ListUtils.sum(list1, list2);
+        assertEquals(2, result1.size());
+        assertEquals(expected1, result1);
+    }
 }

Reply via email to