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

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

commit 428f930a31378ac85147a431683104ff12aaf469
Author: Gary Gregory <[email protected]>
AuthorDate: Sat Jun 27 13:57:58 2026 +0000

    Reduce copy-pasta in tests.
---
 .../commons/collections4/AbstractObjectTest.java    | 21 +++++++++++----------
 .../collection/AbstractCollectionTest.java          | 12 +-----------
 .../comparators/ReverseComparatorTest.java          | 14 +-------------
 .../commons/collections4/keyvalue/MultiKeyTest.java | 14 ++------------
 4 files changed, 15 insertions(+), 46 deletions(-)

diff --git 
a/src/test/java/org/apache/commons/collections4/AbstractObjectTest.java 
b/src/test/java/org/apache/commons/collections4/AbstractObjectTest.java
index 8fd26da50..068945e98 100644
--- a/src/test/java/org/apache/commons/collections4/AbstractObjectTest.java
+++ b/src/test/java/org/apache/commons/collections4/AbstractObjectTest.java
@@ -51,6 +51,17 @@ public abstract class AbstractObjectTest extends BulkTest {
     /** Current major release for Collections */
     public static final int COLLECTIONS_MAJOR_VERSION = 4;
 
+    @SuppressWarnings("unchecked")
+    public static <T> T serializeDeserialize(final T obj) throws IOException, 
ClassNotFoundException {
+        final ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+        try (ObjectOutputStream out = new ObjectOutputStream(buffer)) {
+            out.writeObject(obj);
+        }
+        try (ObjectInputStream in = new ObjectInputStream(new 
ByteArrayInputStream(buffer.toByteArray()))) {
+            return (T) in.readObject();
+        }
+    }
+
     protected String getCanonicalEmptyCollectionName(final Object object) {
         final StringBuilder retval = new StringBuilder();
         retval.append(TEST_DATA_PATH);
@@ -141,16 +152,6 @@ public abstract class AbstractObjectTest extends BulkTest {
         return oStream.readObject();
     }
 
-    protected <T> T serializeDeserialize(final T obj) throws IOException, 
ClassNotFoundException {
-        final ByteArrayOutputStream buffer = new ByteArrayOutputStream();
-        try (ObjectOutputStream out = new ObjectOutputStream(buffer)) {
-            out.writeObject(obj);
-        }
-        try (ObjectInputStream in = new ObjectInputStream(new 
ByteArrayInputStream(buffer.toByteArray()))) {
-            return (T) in.readObject();
-        }
-    }
-
     protected boolean skipSerializedCanonicalTests() {
         return 
Boolean.getBoolean("org.apache.commons.collections:with-clover");
     }
diff --git 
a/src/test/java/org/apache/commons/collections4/collection/AbstractCollectionTest.java
 
b/src/test/java/org/apache/commons/collections4/collection/AbstractCollectionTest.java
index 9e67ff123..320f98270 100644
--- 
a/src/test/java/org/apache/commons/collections4/collection/AbstractCollectionTest.java
+++ 
b/src/test/java/org/apache/commons/collections4/collection/AbstractCollectionTest.java
@@ -24,10 +24,6 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
 import java.io.Serializable;
 import java.lang.reflect.Array;
 import java.util.ArrayList;
@@ -1290,13 +1286,7 @@ public abstract class AbstractCollectionTest<E> extends 
AbstractObjectTest {
         }
         obj = makeFullCollection();
         if (obj instanceof Serializable && isTestSerialization()) {
-            final ByteArrayOutputStream buffer = new ByteArrayOutputStream();
-            final ObjectOutputStream out = new ObjectOutputStream(buffer);
-            out.writeObject(obj);
-            out.close();
-            final ObjectInputStream in = new ObjectInputStream(new 
ByteArrayInputStream(buffer.toByteArray()));
-            final Object dest = in.readObject();
-            in.close();
+            final Object dest = serializeDeserialize(obj);
             if (isEqualsCheckable()) {
                 assertEquals(obj, dest, "obj != deserialize(serialize(obj)) - 
FULL Collection");
             }
diff --git 
a/src/test/java/org/apache/commons/collections4/comparators/ReverseComparatorTest.java
 
b/src/test/java/org/apache/commons/collections4/comparators/ReverseComparatorTest.java
index a55e93dd7..e9c784931 100644
--- 
a/src/test/java/org/apache/commons/collections4/comparators/ReverseComparatorTest.java
+++ 
b/src/test/java/org/apache/commons/collections4/comparators/ReverseComparatorTest.java
@@ -18,10 +18,6 @@ package org.apache.commons.collections4.comparators;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.LinkedList;
@@ -78,15 +74,7 @@ class ReverseComparatorTest extends 
AbstractComparatorTest<Integer> {
     @Override
     public void testSerializeDeserializeThenCompare() throws Exception {
         final Comparator<?> comp = new ReverseComparator<>(new 
ComparableComparator<>());
-
-        final ByteArrayOutputStream buffer = new ByteArrayOutputStream();
-        final ObjectOutputStream out = new ObjectOutputStream(buffer);
-        out.writeObject(comp);
-        out.close();
-
-        final ObjectInputStream in = new ObjectInputStream(new 
ByteArrayInputStream(buffer.toByteArray()));
-        final Object dest = in.readObject();
-        in.close();
+        final Object dest = serializeDeserialize(comp);
         assertEquals(comp, dest, "obj != deserialize(serialize(obj))");
     }
 
diff --git 
a/src/test/java/org/apache/commons/collections4/keyvalue/MultiKeyTest.java 
b/src/test/java/org/apache/commons/collections4/keyvalue/MultiKeyTest.java
index ed150de3a..0e32fa25b 100644
--- a/src/test/java/org/apache/commons/collections4/keyvalue/MultiKeyTest.java
+++ b/src/test/java/org/apache/commons/collections4/keyvalue/MultiKeyTest.java
@@ -37,6 +37,7 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.commons.collections4.AbstractObjectTest;
 import org.apache.commons.lang3.StringUtils;
 import org.junit.jupiter.api.DynamicTest;
 import org.junit.jupiter.api.Test;
@@ -205,19 +206,8 @@ class MultiKeyTest {
     @Test
     void testEqualsAfterSerializationOfDerivedClass() throws IOException, 
ClassNotFoundException {
         final DerivedMultiKey<?> mk = new DerivedMultiKey<>("A", "B");
-
-        // serialize
-        final ByteArrayOutputStream baos = new ByteArrayOutputStream();
-        final ObjectOutputStream out = new ObjectOutputStream(baos);
-        out.writeObject(mk);
-        out.close();
-
         // deserialize
-        final ByteArrayInputStream bais = new 
ByteArrayInputStream(baos.toByteArray());
-        final ObjectInputStream in = new ObjectInputStream(bais);
-        final DerivedMultiKey<?> mk2 = (DerivedMultiKey<?>) in.readObject();
-        in.close();
-
+        final DerivedMultiKey<?> mk2 = 
AbstractObjectTest.serializeDeserialize(mk);
         assertEquals(mk.hashCode(), mk2.hashCode());
     }
 

Reply via email to