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()); }
