diff --git a/src/test/java/org/apache/commons/collections4/AbstractObjectTest.java b/src/test/java/org/apache/commons/collections4/AbstractObjectTest.java
index ba7f02d471..8efe579220 100644
--- a/src/test/java/org/apache/commons/collections4/AbstractObjectTest.java
+++ b/src/test/java/org/apache/commons/collections4/AbstractObjectTest.java
@@ -16,18 +16,18 @@
*/
package org.apache.commons.collections4;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalEmptyCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalFullCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.readExternalFormFromBytes;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.serializeDeserialize;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.writeExternalFormToBytes;
+
import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
-import java.io.OutputStream;
import java.io.Serializable;
+import org.junit.Test;
+
/**
* Abstract test class for {@link java.lang.Object} methods and contracts.
*
@@ -38,7 +38,7 @@
* you may still use this base set of cases. Simply override the
* test case (method) your {@link Object} fails.
*/
-public abstract class AbstractObjectTest extends BulkTest {
+public abstract class AbstractObjectTest extends BulkTest implements AbstractObjectTestInterface {
/** Current major release for Collections */
public static final int COLLECTIONS_MAJOR_VERSION = 4;
@@ -128,19 +128,7 @@ public void testObjectHashCodeEqualsContract() {
}
}
- protected Object serializeDeserialize(final Object obj) throws Exception {
- 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();
-
- return dest;
- }
-
+ @Test
public void testSerializeDeserializeThenCompare() throws Exception {
final Object obj = makeObject();
if (obj instanceof Serializable && isTestSerialization()) {
@@ -175,7 +163,7 @@ public void testCanonicalEmptyCollectionExists() {
if (supportsEmptyCollections() && isTestSerialization() && !skipSerializedCanonicalTests()) {
final Object object = makeObject();
if (object instanceof Serializable) {
- final String name = getCanonicalEmptyCollectionName(object);
+ final String name = getCanonicalEmptyCollectionName(object, this);
assertTrue(
"Canonical empty collection (" + name + ") is not in SCM",
new File(name).exists());
@@ -191,7 +179,7 @@ public void testCanonicalFullCollectionExists() {
if (supportsFullCollections() && isTestSerialization() && !skipSerializedCanonicalTests()) {
final Object object = makeObject();
if (object instanceof Serializable) {
- final String name = getCanonicalFullCollectionName(object);
+ final String name = getCanonicalFullCollectionName(object, this);
assertTrue(
"Canonical full collection (" + name + ") is not in SCM",
new File(name).exists());
@@ -215,109 +203,13 @@ public void testCanonicalFullCollectionExists() {
* @return The version, or {@code null} if this object shouldn't be
* tested for compatibility with previous versions.
*/
+ @Override
public String getCompatibilityVersion() {
return "4";
}
- protected String getCanonicalEmptyCollectionName(final Object object) {
- final StringBuilder retval = new StringBuilder();
- retval.append(TEST_DATA_PATH);
- String colName = object.getClass().getName();
- colName = colName.substring(colName.lastIndexOf(".") + 1);
- retval.append(colName);
- retval.append(".emptyCollection.version");
- retval.append(getCompatibilityVersion());
- retval.append(".obj");
- return retval.toString();
- }
-
- protected String getCanonicalFullCollectionName(final Object object) {
- final StringBuilder retval = new StringBuilder();
- retval.append(TEST_DATA_PATH);
- String colName = object.getClass().getName();
- colName = colName.substring(colName.lastIndexOf(".") + 1);
- retval.append(colName);
- retval.append(".fullCollection.version");
- retval.append(getCompatibilityVersion());
- retval.append(".obj");
- return retval.toString();
- }
-
- /**
- * Writes a Serializable or Externalizable object as
- * a file at the given path. NOT USEFUL as part
- * of a unit test; this is just a utility method
- * for creating disk-based objects in SCM that can become
- * the basis for compatibility tests using
- * readExternalFormFromDisk(String path)
- *
- * @param o Object to serialize
- * @param path path to write the serialized Object
- * @throws IOException
- */
- protected void writeExternalFormToDisk(final Serializable o, final String path) throws IOException {
- try (FileOutputStream fileStream = new FileOutputStream(path)) {
- writeExternalFormToStream(o, fileStream);
- }
- }
-
- /**
- * Converts a Serializable or Externalizable object to
- * bytes. Useful for in-memory tests of serialization
- *
- * @param o Object to convert to bytes
- * @return serialized form of the Object
- * @throws IOException
- */
- protected byte[] writeExternalFormToBytes(final Serializable o) throws IOException {
- final ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
- writeExternalFormToStream(o, byteStream);
- return byteStream.toByteArray();
- }
-
- /**
- * Reads a Serialized or Externalized Object from disk.
- * Useful for creating compatibility tests between
- * different SCM versions of the same class
- *
- * @param path path to the serialized Object
- * @return the Object at the given path
- * @throws IOException
- * @throws ClassNotFoundException
- */
- protected Object readExternalFormFromDisk(final String path) throws IOException, ClassNotFoundException {
- try (FileInputStream stream = new FileInputStream(path)) {
- return readExternalFormFromStream(stream);
- }
- }
-
- /**
- * Read a Serialized or Externalized Object from bytes.
- * Useful for verifying serialization in memory.
- *
- * @param b byte array containing a serialized Object
- * @return Object contained in the bytes
- * @throws IOException
- * @throws ClassNotFoundException
- */
- protected Object readExternalFormFromBytes(final byte[] b) throws IOException, ClassNotFoundException {
- final ByteArrayInputStream stream = new ByteArrayInputStream(b);
- return readExternalFormFromStream(stream);
- }
-
protected boolean skipSerializedCanonicalTests() {
return Boolean.getBoolean("org.apache.commons.collections:with-clover");
}
- // private implementation
- private Object readExternalFormFromStream(final InputStream stream) throws IOException, ClassNotFoundException {
- final ObjectInputStream oStream = new ObjectInputStream(stream);
- return oStream.readObject();
- }
-
- private void writeExternalFormToStream(final Serializable o, final OutputStream stream) throws IOException {
- final ObjectOutputStream oStream = new ObjectOutputStream(stream);
- oStream.writeObject(o);
- }
-
}
diff --git a/src/test/java/org/apache/commons/collections4/AbstractObjectTestInterface.java b/src/test/java/org/apache/commons/collections4/AbstractObjectTestInterface.java
new file mode 100644
index 0000000000..09b74fb4d9
--- /dev/null
+++ b/src/test/java/org/apache/commons/collections4/AbstractObjectTestInterface.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.collections4;
+
+/**
+ * Abstract object test interface, extracted from AbstractObjectTest for easier reuse.
+ */
+public interface AbstractObjectTestInterface {
+
+ String getCompatibilityVersion();
+
+}
diff --git a/src/test/java/org/apache/commons/collections4/AbstractObjectTestUtils.java b/src/test/java/org/apache/commons/collections4/AbstractObjectTestUtils.java
new file mode 100644
index 0000000000..367a78aa83
--- /dev/null
+++ b/src/test/java/org/apache/commons/collections4/AbstractObjectTestUtils.java
@@ -0,0 +1,147 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.collections4;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.io.OutputStream;
+import java.io.Serializable;
+
+import static org.apache.commons.collections4.BulkTestConstants.TEST_DATA_PATH;
+
+/**
+ * Abstract object test utils, extracted from AbstractObjectTest for easier reuse.
+ */
+public final class AbstractObjectTestUtils {
+
+ public static String getCanonicalEmptyCollectionName(final Object object, final AbstractObjectTestInterface test) {
+ final StringBuilder retval = new StringBuilder();
+ retval.append(TEST_DATA_PATH);
+ String colName = object.getClass().getName();
+ colName = colName.substring(colName.lastIndexOf(".") + 1);
+ retval.append(colName);
+ retval.append(".emptyCollection.version");
+ retval.append(test.getCompatibilityVersion());
+ retval.append(".obj");
+ return retval.toString();
+ }
+
+ public static String getCanonicalFullCollectionName(final Object object, final AbstractObjectTestInterface test) {
+ final StringBuilder retval = new StringBuilder();
+ retval.append(TEST_DATA_PATH);
+ String colName = object.getClass().getName();
+ colName = colName.substring(colName.lastIndexOf(".") + 1);
+ retval.append(colName);
+ retval.append(".fullCollection.version");
+ retval.append(test.getCompatibilityVersion());
+ retval.append(".obj");
+ return retval.toString();
+ }
+
+ public static Object serializeDeserialize(final Object obj) throws Exception {
+ 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();
+
+ return dest;
+ }
+
+ /**
+ * Writes a Serializable or Externalizable object as
+ * a file at the given path. NOT USEFUL as part
+ * of a unit test; this is just a utility method
+ * for creating disk-based objects in SCM that can become
+ * the basis for compatibility tests using
+ * readExternalFormFromDisk(String path)
+ *
+ * @param o Object to serialize
+ * @param path path to write the serialized Object
+ * @throws IOException
+ */
+ public static void writeExternalFormToDisk(final Serializable o, final String path) throws IOException {
+ try (FileOutputStream fileStream = new FileOutputStream(path)) {
+ writeExternalFormToStream(o, fileStream);
+ }
+ }
+
+ /**
+ * Converts a Serializable or Externalizable object to
+ * bytes. Useful for in-memory tests of serialization
+ *
+ * @param o Object to convert to bytes
+ * @return serialized form of the Object
+ * @throws IOException
+ */
+ public static byte[] writeExternalFormToBytes(final Serializable o) throws IOException {
+ final ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
+ writeExternalFormToStream(o, byteStream);
+ return byteStream.toByteArray();
+ }
+
+ /**
+ * Reads a Serialized or Externalized Object from disk.
+ * Useful for creating compatibility tests between
+ * different SCM versions of the same class
+ *
+ * @param path path to the serialized Object
+ * @return the Object at the given path
+ * @throws IOException
+ * @throws ClassNotFoundException
+ */
+ public static Object readExternalFormFromDisk(final String path) throws IOException, ClassNotFoundException {
+ try (FileInputStream stream = new FileInputStream(path)) {
+ return readExternalFormFromStream(stream);
+ }
+ }
+
+ /**
+ * Read a Serialized or Externalized Object from bytes.
+ * Useful for verifying serialization in memory.
+ *
+ * @param b byte array containing a serialized Object
+ * @return Object contained in the bytes
+ * @throws IOException
+ * @throws ClassNotFoundException
+ */
+ public static Object readExternalFormFromBytes(final byte[] b) throws IOException, ClassNotFoundException {
+ final ByteArrayInputStream stream = new ByteArrayInputStream(b);
+ return readExternalFormFromStream(stream);
+ }
+
+ // private implementation
+ private static Object readExternalFormFromStream(final InputStream stream) throws IOException, ClassNotFoundException {
+ final ObjectInputStream oStream = new ObjectInputStream(stream);
+ return oStream.readObject();
+ }
+
+ private static void writeExternalFormToStream(final Serializable o, final OutputStream stream) throws IOException {
+ final ObjectOutputStream oStream = new ObjectOutputStream(stream);
+ oStream.writeObject(o);
+ }
+
+}
diff --git a/src/test/java/org/apache/commons/collections4/BulkTest.java b/src/test/java/org/apache/commons/collections4/BulkTest.java
index 00cc73497c..390bafdb6f 100644
--- a/src/test/java/org/apache/commons/collections4/BulkTest.java
+++ b/src/test/java/org/apache/commons/collections4/BulkTest.java
@@ -144,12 +144,6 @@ public class BulkTest extends TestCase implements Cloneable {
// Given one BulkTest instance, we can just clone it and reset the
// method name for every simple test it defines.
- /** Path to test data resources */
- protected static final String TEST_DATA_PATH = "src/test/resources/org/apache/commons/collections4/data/test/";
-
- /** Path to test properties resources */
- public static final String TEST_PROPERTIES_PATH = "src/test/resources/org/apache/commons/collections4/properties/";
-
/**
* The full name of this bulk test instance. This is the full name
* that is compared to {@link #ignoredTests} to see if this
diff --git a/src/test/java/org/apache/commons/collections4/BulkTestConstants.java b/src/test/java/org/apache/commons/collections4/BulkTestConstants.java
new file mode 100644
index 0000000000..e801380d98
--- /dev/null
+++ b/src/test/java/org/apache/commons/collections4/BulkTestConstants.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.collections4;
+
+/**
+ * Bulk test constants, extracted from BulkTest for easier reuse.
+ */
+public interface BulkTestConstants {
+
+ /** Path to test data resources */
+ String TEST_DATA_PATH = "src/test/resources/org/apache/commons/collections4/data/test/";
+
+ /** Path to test properties resources */
+ String TEST_PROPERTIES_PATH = "src/test/resources/org/apache/commons/collections4/properties/";
+
+}
diff --git a/src/test/java/org/apache/commons/collections4/bag/AbstractBagTest.java b/src/test/java/org/apache/commons/collections4/bag/AbstractBagTest.java
index b6cd0adaa5..28258e0785 100644
--- a/src/test/java/org/apache/commons/collections4/bag/AbstractBagTest.java
+++ b/src/test/java/org/apache/commons/collections4/bag/AbstractBagTest.java
@@ -33,6 +33,9 @@
import org.apache.commons.collections4.collection.AbstractCollectionTest;
import org.apache.commons.collections4.set.AbstractSetTest;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalEmptyCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalFullCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.readExternalFormFromDisk;
import static org.junit.jupiter.api.Assertions.assertNotEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
@@ -665,7 +668,7 @@ public void testEmptyBagCompatibility() throws IOException, ClassNotFoundExcepti
// test to make sure the canonical form has been preserved
final Bag bag = makeObject();
if (bag instanceof Serializable && !skipSerializedCanonicalTests() && isTestSerialization()) {
- final Bag> bag2 = (Bag>) readExternalFormFromDisk(getCanonicalEmptyCollectionName(bag));
+ final Bag> bag2 = (Bag>) readExternalFormFromDisk(getCanonicalEmptyCollectionName(bag, this));
assertTrue("Bag is empty", bag2.isEmpty());
assertEquals(bag, bag2);
}
@@ -679,7 +682,7 @@ public void testFullBagCompatibility() throws IOException, ClassNotFoundExceptio
// test to make sure the canonical form has been preserved
final Bag bag = makeFullCollection();
if (bag instanceof Serializable && !skipSerializedCanonicalTests() && isTestSerialization()) {
- final Bag> bag2 = (Bag>) readExternalFormFromDisk(getCanonicalFullCollectionName(bag));
+ final Bag> bag2 = (Bag>) readExternalFormFromDisk(getCanonicalFullCollectionName(bag, this));
assertEquals("Bag is the right size", bag.size(), bag2.size());
assertEquals(bag, bag2);
}
diff --git a/src/test/java/org/apache/commons/collections4/bag/CollectionBagTest.java b/src/test/java/org/apache/commons/collections4/bag/CollectionBagTest.java
index da3c7d7339..d6e2e4de18 100644
--- a/src/test/java/org/apache/commons/collections4/bag/CollectionBagTest.java
+++ b/src/test/java/org/apache/commons/collections4/bag/CollectionBagTest.java
@@ -16,6 +16,10 @@
*/
package org.apache.commons.collections4.bag;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalEmptyCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalFullCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.readExternalFormFromDisk;
+
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
@@ -93,7 +97,7 @@ public void testEmptyBagCompatibility() throws IOException, ClassNotFoundExcepti
// test to make sure the canonical form has been preserved
final Bag bag = makeObject();
if (bag instanceof Serializable && !skipSerializedCanonicalTests() && isTestSerialization()) {
- final Bag> bag2 = (Bag>) readExternalFormFromDisk(getCanonicalEmptyCollectionName(bag));
+ final Bag> bag2 = (Bag>) readExternalFormFromDisk(getCanonicalEmptyCollectionName(bag, this));
assertTrue("Bag is empty", bag2.isEmpty());
assertEquals(bag, bag2);
}
@@ -107,7 +111,7 @@ public void testFullBagCompatibility() throws IOException, ClassNotFoundExceptio
// test to make sure the canonical form has been preserved
final Bag bag = (Bag) makeFullCollection();
if (bag instanceof Serializable && !skipSerializedCanonicalTests() && isTestSerialization()) {
- final Bag> bag2 = (Bag>) readExternalFormFromDisk(getCanonicalFullCollectionName(bag));
+ final Bag> bag2 = (Bag>) readExternalFormFromDisk(getCanonicalFullCollectionName(bag, this));
assertEquals("Bag is the right size", bag.size(), bag2.size());
assertEquals(bag, bag2);
}
diff --git a/src/test/java/org/apache/commons/collections4/bag/CollectionSortedBagTest.java b/src/test/java/org/apache/commons/collections4/bag/CollectionSortedBagTest.java
index 9c093108d3..8e39d07aa4 100644
--- a/src/test/java/org/apache/commons/collections4/bag/CollectionSortedBagTest.java
+++ b/src/test/java/org/apache/commons/collections4/bag/CollectionSortedBagTest.java
@@ -16,6 +16,10 @@
*/
package org.apache.commons.collections4.bag;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalEmptyCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalFullCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.readExternalFormFromDisk;
+
import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
@@ -131,7 +135,7 @@ public void testEmptyBagCompatibility() throws IOException, ClassNotFoundExcepti
// test to make sure the canonical form has been preserved
final Bag bag = makeObject();
if (bag instanceof Serializable && !skipSerializedCanonicalTests() && isTestSerialization()) {
- final Bag> bag2 = (Bag>) readExternalFormFromDisk(getCanonicalEmptyCollectionName(bag));
+ final Bag> bag2 = (Bag>) readExternalFormFromDisk(getCanonicalEmptyCollectionName(bag, this));
assertEquals("Bag is empty", 0, bag2.size());
assertEquals(bag, bag2);
}
@@ -145,7 +149,7 @@ public void testFullBagCompatibility() throws IOException, ClassNotFoundExceptio
// test to make sure the canonical form has been preserved
final SortedBag bag = (SortedBag) makeFullCollection();
if (bag instanceof Serializable && !skipSerializedCanonicalTests() && isTestSerialization()) {
- final SortedBag> bag2 = (SortedBag>) readExternalFormFromDisk(getCanonicalFullCollectionName(bag));
+ final SortedBag> bag2 = (SortedBag>) readExternalFormFromDisk(getCanonicalFullCollectionName(bag, this));
assertEquals("Bag is the right size", bag.size(), bag2.size());
assertEquals(bag, bag2);
}
diff --git a/src/test/java/org/apache/commons/collections4/comparators/AbstractComparatorTest.java b/src/test/java/org/apache/commons/collections4/comparators/AbstractComparatorTest.java
index 3ddc0e7e7c..34b8af1614 100644
--- a/src/test/java/org/apache/commons/collections4/comparators/AbstractComparatorTest.java
+++ b/src/test/java/org/apache/commons/collections4/comparators/AbstractComparatorTest.java
@@ -16,6 +16,10 @@
*/
package org.apache.commons.collections4.comparators;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.readExternalFormFromDisk;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.writeExternalFormToDisk;
+import static org.apache.commons.collections4.BulkTestConstants.TEST_DATA_PATH;
+
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.Serializable;
diff --git a/src/test/java/org/apache/commons/collections4/iterators/IteratorIterableTest.java b/src/test/java/org/apache/commons/collections4/iterators/IteratorIterableTest.java
index c66e42a64d..99e457c606 100644
--- a/src/test/java/org/apache/commons/collections4/iterators/IteratorIterableTest.java
+++ b/src/test/java/org/apache/commons/collections4/iterators/IteratorIterableTest.java
@@ -16,27 +16,20 @@
*/
package org.apache.commons.collections4.iterators;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
+
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
-import junit.framework.Test;
-
-import org.apache.commons.collections4.BulkTest;
+import org.junit.jupiter.api.Test;
/**
* Tests for IteratorIterable.
- *
*/
-public class IteratorIterableTest extends BulkTest {
-
- public static Test suite() {
- return BulkTest.makeSuite(IteratorIterableTest.class);
- }
-
- public IteratorIterableTest(final String name) {
- super(name);
- }
+public class IteratorIterableTest {
private Iterator createIterator() {
final List list = new ArrayList<>();
@@ -47,6 +40,7 @@ private Iterator createIterator() {
return iter;
}
+ @Test
@SuppressWarnings("unused")
public void testIterator() {
final Iterator iter = createIterator();
@@ -61,6 +55,7 @@ public void testIterator() {
}
}
+ @Test
public void testMultipleUserIterator() {
final Iterator iter = createIterator();
@@ -81,5 +76,5 @@ private void verifyIteration(final Iterable iterable) {
}
assertTrue(expected > 0);
}
-}
+}
diff --git a/src/test/java/org/apache/commons/collections4/list/AbstractListTest.java b/src/test/java/org/apache/commons/collections4/list/AbstractListTest.java
index ce464cdf03..164bbe5499 100644
--- a/src/test/java/org/apache/commons/collections4/list/AbstractListTest.java
+++ b/src/test/java/org/apache/commons/collections4/list/AbstractListTest.java
@@ -16,6 +16,11 @@
*/
package org.apache.commons.collections4.list;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalEmptyCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalFullCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.readExternalFormFromBytes;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.readExternalFormFromDisk;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.writeExternalFormToBytes;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.io.IOException;
@@ -913,7 +918,7 @@ public void testEmptyListCompatibility() throws IOException, ClassNotFoundExcept
final List list = makeObject();
if (list instanceof Serializable && !skipSerializedCanonicalTests()
&& isTestSerialization()) {
- final List list2 = (List) readExternalFormFromDisk(getCanonicalEmptyCollectionName(list));
+ final List list2 = (List) readExternalFormFromDisk(getCanonicalEmptyCollectionName(list, this));
assertEquals("List is empty", 0, list2.size());
assertEquals(list, list2);
}
@@ -936,7 +941,7 @@ public void testFullListCompatibility() throws IOException, ClassNotFoundExcepti
// test to make sure the canonical form has been preserved
final List list = makeFullCollection();
if (list instanceof Serializable && !skipSerializedCanonicalTests() && isTestSerialization()) {
- final List list2 = (List) readExternalFormFromDisk(getCanonicalFullCollectionName(list));
+ final List list2 = (List) readExternalFormFromDisk(getCanonicalFullCollectionName(list, this));
if (list2.size() == 4) {
// old serialized tests
return;
diff --git a/src/test/java/org/apache/commons/collections4/map/AbstractMapTest.java b/src/test/java/org/apache/commons/collections4/map/AbstractMapTest.java
index 69be394f67..3d6b3d8c5c 100644
--- a/src/test/java/org/apache/commons/collections4/map/AbstractMapTest.java
+++ b/src/test/java/org/apache/commons/collections4/map/AbstractMapTest.java
@@ -16,6 +16,9 @@
*/
package org.apache.commons.collections4.map;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalEmptyCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalFullCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.readExternalFormFromDisk;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.io.Serializable;
@@ -745,7 +748,7 @@ public void testEmptyMapCompatibility() throws Exception {
final Map map = makeObject();
if (map instanceof Serializable && !skipSerializedCanonicalTests() && isTestSerialization()) {
@SuppressWarnings("unchecked")
- final Map map2 = (Map) readExternalFormFromDisk(getCanonicalEmptyCollectionName(map));
+ final Map map2 = (Map) readExternalFormFromDisk(getCanonicalEmptyCollectionName(map, this));
assertEquals("Map is empty", 0, map2.size());
}
}
@@ -767,7 +770,7 @@ public void testFullMapCompatibility() throws Exception {
final Map map = makeFullMap();
if (map instanceof Serializable && !skipSerializedCanonicalTests() && isTestSerialization()) {
@SuppressWarnings("unchecked")
- final Map map2 = (Map) readExternalFormFromDisk(getCanonicalFullCollectionName(map));
+ final Map map2 = (Map) readExternalFormFromDisk(getCanonicalFullCollectionName(map, this));
assertEquals("Map is the right size", getSampleKeys().length, map2.size());
}
}
diff --git a/src/test/java/org/apache/commons/collections4/map/MultiValueMapTest.java b/src/test/java/org/apache/commons/collections4/map/MultiValueMapTest.java
index 35fa6e51a7..75ae4db4f5 100644
--- a/src/test/java/org/apache/commons/collections4/map/MultiValueMapTest.java
+++ b/src/test/java/org/apache/commons/collections4/map/MultiValueMapTest.java
@@ -16,6 +16,9 @@
*/
package org.apache.commons.collections4.map;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalEmptyCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalFullCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.readExternalFormFromDisk;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.io.ByteArrayInputStream;
@@ -449,13 +452,13 @@ private Map makeEmptyMap() {
public void testEmptyMapCompatibility() throws Exception {
final Map, ?> map = makeEmptyMap();
- final Map, ?> map2 = (Map, ?>) readExternalFormFromDisk(getCanonicalEmptyCollectionName(map));
+ final Map, ?> map2 = (Map, ?>) readExternalFormFromDisk(getCanonicalEmptyCollectionName(map, this));
assertEquals("Map is empty", 0, map2.size());
}
public void testFullMapCompatibility() throws Exception {
final Map, ?> map = (Map, ?>) makeObject();
- final Map, ?> map2 = (Map, ?>) readExternalFormFromDisk(getCanonicalFullCollectionName(map));
+ final Map, ?> map2 = (Map, ?>) readExternalFormFromDisk(getCanonicalFullCollectionName(map, this));
assertEquals("Map is the right size", map.size(), map2.size());
for (final Object key : map.keySet()) {
assertEquals( "Map had inequal elements", map.get(key), map2.get(key) );
diff --git a/src/test/java/org/apache/commons/collections4/multimap/AbstractMultiValuedMapTest.java b/src/test/java/org/apache/commons/collections4/multimap/AbstractMultiValuedMapTest.java
index 45d426a37d..bce064df20 100644
--- a/src/test/java/org/apache/commons/collections4/multimap/AbstractMultiValuedMapTest.java
+++ b/src/test/java/org/apache/commons/collections4/multimap/AbstractMultiValuedMapTest.java
@@ -16,6 +16,9 @@
*/
package org.apache.commons.collections4.multimap;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalEmptyCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalFullCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.readExternalFormFromDisk;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.util.ArrayList;
@@ -817,7 +820,7 @@ public void testMultiValuedMapIterator() {
public void testEmptyMapCompatibility() throws Exception {
final MultiValuedMap, ?> map = makeObject();
final MultiValuedMap, ?> map2 =
- (MultiValuedMap, ?>) readExternalFormFromDisk(getCanonicalEmptyCollectionName(map));
+ (MultiValuedMap, ?>) readExternalFormFromDisk(getCanonicalEmptyCollectionName(map, this));
assertEquals("Map is empty", 0, map2.size());
}
@@ -825,7 +828,7 @@ public void testEmptyMapCompatibility() throws Exception {
public void testFullMapCompatibility() throws Exception {
final MultiValuedMap map = makeFullMap();
final MultiValuedMap map2 =
- (MultiValuedMap) readExternalFormFromDisk(getCanonicalFullCollectionName(map));
+ (MultiValuedMap) readExternalFormFromDisk(getCanonicalFullCollectionName(map, this));
assertEquals("Map is the right size", map.size(), map2.size());
for (final Object key : map.keySet()) {
assertTrue("Map had inequal elements",
diff --git a/src/test/java/org/apache/commons/collections4/multiset/AbstractMultiSetTest.java b/src/test/java/org/apache/commons/collections4/multiset/AbstractMultiSetTest.java
index 8463c754e9..6c90a2d959 100644
--- a/src/test/java/org/apache/commons/collections4/multiset/AbstractMultiSetTest.java
+++ b/src/test/java/org/apache/commons/collections4/multiset/AbstractMultiSetTest.java
@@ -16,6 +16,9 @@
*/
package org.apache.commons.collections4.multiset;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalEmptyCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalFullCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.readExternalFormFromDisk;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.io.IOException;
@@ -678,7 +681,7 @@ public void testEmptyMultiSetCompatibility() throws IOException, ClassNotFoundEx
// test to make sure the canonical form has been preserved
final MultiSet multiset = makeObject();
if (multiset instanceof Serializable && !skipSerializedCanonicalTests() && isTestSerialization()) {
- final MultiSet> multiset2 = (MultiSet>) readExternalFormFromDisk(getCanonicalEmptyCollectionName(multiset));
+ final MultiSet> multiset2 = (MultiSet>) readExternalFormFromDisk(getCanonicalEmptyCollectionName(multiset, this));
assertTrue("MultiSet is empty", multiset2.isEmpty());
assertEquals(multiset, multiset2);
}
@@ -692,7 +695,7 @@ public void testFullMultiSetCompatibility() throws IOException, ClassNotFoundExc
// test to make sure the canonical form has been preserved
final MultiSet multiset = makeFullCollection();
if (multiset instanceof Serializable && !skipSerializedCanonicalTests() && isTestSerialization()) {
- final MultiSet> multiset2 = (MultiSet>) readExternalFormFromDisk(getCanonicalFullCollectionName(multiset));
+ final MultiSet> multiset2 = (MultiSet>) readExternalFormFromDisk(getCanonicalFullCollectionName(multiset, this));
assertEquals("MultiSet is the right size", multiset.size(), multiset2.size());
assertEquals(multiset, multiset2);
}
diff --git a/src/test/java/org/apache/commons/collections4/properties/AbstractPropertiesFactoryTest.java b/src/test/java/org/apache/commons/collections4/properties/AbstractPropertiesFactoryTest.java
index ee5dd76615..cbb33ade69 100644
--- a/src/test/java/org/apache/commons/collections4/properties/AbstractPropertiesFactoryTest.java
+++ b/src/test/java/org/apache/commons/collections4/properties/AbstractPropertiesFactoryTest.java
@@ -16,13 +16,14 @@
*/
package org.apache.commons.collections4.properties;
+import static org.apache.commons.collections4.BulkTestConstants.TEST_PROPERTIES_PATH;
+
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Properties;
-import org.apache.commons.collections4.BulkTest;
import org.junit.Assume;
import org.junit.Test;
import org.junit.jupiter.api.Assertions;
@@ -46,7 +47,7 @@ public static Object[][] getParameters() {
protected AbstractPropertiesFactoryTest(final AbstractPropertiesFactory factory, final String fileExtension) {
this.factory = factory;
this.fileExtension = fileExtension;
- this.pathString = BulkTest.TEST_PROPERTIES_PATH + "test" + fileExtension;
+ this.pathString = TEST_PROPERTIES_PATH + "test" + fileExtension;
}
private void assertContents(final T properties) {
diff --git a/src/test/java/org/apache/commons/collections4/queue/AbstractQueueTest.java b/src/test/java/org/apache/commons/collections4/queue/AbstractQueueTest.java
index 273cfd3d30..5cd3c72d49 100644
--- a/src/test/java/org/apache/commons/collections4/queue/AbstractQueueTest.java
+++ b/src/test/java/org/apache/commons/collections4/queue/AbstractQueueTest.java
@@ -16,6 +16,11 @@
*/
package org.apache.commons.collections4.queue;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalEmptyCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.getCanonicalFullCollectionName;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.readExternalFormFromBytes;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.readExternalFormFromDisk;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.writeExternalFormToBytes;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.io.IOException;
@@ -330,7 +335,7 @@ public void testEmptyQueueCompatibility() throws IOException, ClassNotFoundExcep
final Queue queue = makeObject();
if (queue instanceof Serializable && !skipSerializedCanonicalTests()
&& isTestSerialization()) {
- final Queue queue2 = (Queue) readExternalFormFromDisk(getCanonicalEmptyCollectionName(queue));
+ final Queue queue2 = (Queue) readExternalFormFromDisk(getCanonicalEmptyCollectionName(queue, this));
assertEquals("Queue is empty", 0, queue2.size());
}
}
@@ -352,7 +357,7 @@ public void testFullQueueCompatibility() throws IOException, ClassNotFoundExcept
// test to make sure the canonical form has been preserved
final Queue queue = makeFullCollection();
if (queue instanceof Serializable && !skipSerializedCanonicalTests() && isTestSerialization()) {
- final Queue queue2 = (Queue) readExternalFormFromDisk(getCanonicalFullCollectionName(queue));
+ final Queue queue2 = (Queue) readExternalFormFromDisk(getCanonicalFullCollectionName(queue, this));
assertEquals("Queues are not the right size", queue.size(), queue2.size());
}
}
diff --git a/src/test/java/org/apache/commons/collections4/queue/SynchronizedQueueTest.java b/src/test/java/org/apache/commons/collections4/queue/SynchronizedQueueTest.java
index 898291e1ee..2123b48d7f 100644
--- a/src/test/java/org/apache/commons/collections4/queue/SynchronizedQueueTest.java
+++ b/src/test/java/org/apache/commons/collections4/queue/SynchronizedQueueTest.java
@@ -16,6 +16,9 @@
*/
package org.apache.commons.collections4.queue;
+import static org.apache.commons.collections4.AbstractObjectTestUtils.writeExternalFormToDisk;
+import static org.apache.commons.collections4.BulkTestConstants.TEST_DATA_PATH;
+
import java.util.LinkedList;
import java.util.Queue;
@@ -55,10 +58,10 @@ public Queue makeObject() {
public void testCreate() throws Exception {
Queue queue = makeObject();
writeExternalFormToDisk((java.io.Serializable) queue,
- BulkTest.TEST_DATA_PATH + "SynchronizedQueue.emptyCollection.version4.2.obj");
+ TEST_DATA_PATH + "SynchronizedQueue.emptyCollection.version4.2.obj");
queue = makeFullCollection();
writeExternalFormToDisk((java.io.Serializable) queue,
- BulkTest.TEST_DATA_PATH + "SynchronizedQueue.fullCollection.version4.2.obj");
+ TEST_DATA_PATH + "SynchronizedQueue.fullCollection.version4.2.obj");
}
}
diff --git a/src/test/java/org/apache/commons/collections4/splitmap/TransformedSplitMapTest.java b/src/test/java/org/apache/commons/collections4/splitmap/TransformedSplitMapTest.java
index 37f016677e..e76b9db4f2 100644
--- a/src/test/java/org/apache/commons/collections4/splitmap/TransformedSplitMapTest.java
+++ b/src/test/java/org/apache/commons/collections4/splitmap/TransformedSplitMapTest.java
@@ -16,13 +16,18 @@
*/
package org.apache.commons.collections4.splitmap;
+import static org.apache.commons.collections4.BulkTestConstants.TEST_DATA_PATH;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.math.BigInteger;
import java.util.HashMap;
-import org.apache.commons.collections4.BulkTest;
import org.apache.commons.collections4.MapIterator;
import org.apache.commons.collections4.Transformer;
import org.apache.commons.collections4.functors.NOPTransformer;
@@ -33,7 +38,7 @@
* @since 4.0
*/
@SuppressWarnings("boxing")
-public class TransformedSplitMapTest extends BulkTest {
+public class TransformedSplitMapTest {
private final Transformer intToString = String::valueOf;
@@ -41,10 +46,6 @@ public class TransformedSplitMapTest extends BulkTest {
private final Transformer stringToInt = Integer::valueOf;
- public TransformedSplitMapTest(final String testName) {
- super(testName);
- }
-
// -----------------------------------------------------------------------
public void testTransformedMap() {
final TransformedSplitMap> map = TransformedSplitMap.transformingMap(
@@ -113,12 +114,12 @@ public void testEmptyMap() throws IOException, ClassNotFoundException {
NOPTransformer.nopTransformer() );
final ObjectInputStream in =
- new ObjectInputStream( new FileInputStream( TEST_DATA_PATH+"/TransformedSplitMap.emptyCollection.version4.obj" ) );
+ new ObjectInputStream( new FileInputStream( TEST_DATA_PATH + "/TransformedSplitMap.emptyCollection.version4.obj" ) );
final Object readObject = in.readObject();
in.close();
final TransformedSplitMap, ?, ?, ?> readMap = (TransformedSplitMap, ?, ?, ?>) readObject;
- assertTrue( "Map should be empty", readMap.isEmpty() );
+ assertTrue( readMap.isEmpty(), "Map should be empty" );
assertEquals( map.entrySet(), readMap.entrySet() );
}
@@ -138,7 +139,7 @@ public void testFullMap() throws IOException, ClassNotFoundException {
in.close();
final TransformedSplitMap, ?, ?, ?> readMap = (TransformedSplitMap, ?, ?, ?>) readObject;
- assertFalse( "Map should not be empty", readMap.isEmpty() );
+ assertFalse( readMap.isEmpty(), "Map should not be empty");
assertEquals( map.entrySet(), readMap.entrySet() );
}