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..88a85c5259 100644 --- a/src/test/java/org/apache/commons/collections4/splitmap/TransformedSplitMapTest.java +++ b/src/test/java/org/apache/commons/collections4/splitmap/TransformedSplitMapTest.java @@ -16,16 +16,22 @@ */ 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; +import org.junit.jupiter.api.Test; /** * Tests for {@link TransformedSplitMap} @@ -33,7 +39,7 @@ * @since 4.0 */ @SuppressWarnings("boxing") -public class TransformedSplitMapTest extends BulkTest { +public class TransformedSplitMapTest { private final Transformer intToString = String::valueOf; @@ -41,11 +47,9 @@ public class TransformedSplitMapTest extends BulkTest { private final Transformer stringToInt = Integer::valueOf; - public TransformedSplitMapTest(final String testName) { - super(testName); - } - // ----------------------------------------------------------------------- + + @Test public void testTransformedMap() { final TransformedSplitMap> map = TransformedSplitMap.transformingMap( new HashMap>(), intToString, objectToClass); @@ -90,6 +94,7 @@ public void testTransformedMap() { // ----------------------------------------------------------------------- + @Test public void testMapIterator() { final TransformedSplitMap map = TransformedSplitMap.transformingMap(new HashMap(), @@ -106,6 +111,7 @@ public void testMapIterator() { } } + @Test public void testEmptyMap() throws IOException, ClassNotFoundException { final TransformedSplitMap map = TransformedSplitMap.transformingMap(new HashMap(), @@ -113,15 +119,16 @@ 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() ); } + @Test public void testFullMap() throws IOException, ClassNotFoundException { final TransformedSplitMap map = TransformedSplitMap.transformingMap( new HashMap(), @@ -138,7 +145,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() ); } @@ -161,4 +168,5 @@ public void testFullMap() throws IOException, ClassNotFoundException { // new FileOutputStream( "src/test/resources/data/test/TransformedSplitMap.fullCollection.version4.obj" ) ); // out.writeObject( map ); // } + }