package org.apache.commons.collections4.comparators; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.util.Comparator; import java.util.LinkedList; import java.util.List; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import org.junit.Test; /** * Tests for ReverseComparator. * * @version $Id$ */ public class ReverseComparatorTest extends AbstractComparatorTest<java.lang.Integer> { public ReverseComparatorTest(final String testName) { super(testName); } /** * For the purposes of this test, return a * ReverseComparator that wraps the java.util.Collections.reverseOrder() * Comparator. The resulting comparator should * sort according to natural Order. (Note: we wrap * a Comparator taken from the JDK so that we can * save a "canonical" form in SVN. * * @return Comparator that returns "natural" order */ @Override public Comparator<java.lang.Integer> makeObject() { return new ReverseComparator<java.lang.Integer>(java.util.Collections.<Integer>reverseOrder()); } @Override public String getCompatibilityVersion() { return "4"; } @Override public List<java.lang.Integer> getComparableObjectsOrdered() { final List<java.lang.Integer> list = new LinkedList<java.lang.Integer>(); list.add(Integer.valueOf(1)); list.add(Integer.valueOf(2)); list.add(Integer.valueOf(3)); list.add(Integer.valueOf(4)); list.add(Integer.valueOf(5)); return list; } /** * Override this inherited test since Collections.reverseOrder * doesn't adhere to the "soft" Comparator contract, and we've * already "canonized" the comparator returned by makeComparator. */ @Test(timeout = 1000) public void testSerializeDeserializeThenCompare() throws Exception { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testSerializeDeserializeThenCompare"); final Comparator<?> comp = new ReverseComparator<java.lang.String>(new ComparableComparator<java.lang.String>()); final ByteArrayOutputStream buffer = new ByteArrayOutputStream(); final ObjectOutputStream out = new ObjectOutputStream(buffer); out.writeObject(comp); out.writeObject(comp); out.close(); final ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray())); final Object dest = in.readObject(); in.close(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),4534,comp); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),4535,dest); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * Override this inherited test since Collections.reverseOrder * doesn't adhere to the "soft" Comparator contract, and we've * already "canonized" the comparator returned by makeComparator. */ @Test(timeout = 1000) public void testSerializeDeserializeThenCompare_add1289() throws Exception { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testSerializeDeserializeThenCompare_add1289"); final Comparator<?> comp = new ReverseComparator<java.lang.String>(new ComparableComparator<java.lang.String>()); final ByteArrayOutputStream buffer = new ByteArrayOutputStream(); final ObjectOutputStream out = new ObjectOutputStream(buffer); out.writeObject(comp); out.close(); out.close(); final ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray())); final Object dest = in.readObject(); in.close(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),4534,comp); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),4535,dest); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * Override this inherited test since Collections.reverseOrder * doesn't adhere to the "soft" Comparator contract, and we've * already "canonized" the comparator returned by makeComparator. */ @Test(timeout = 1000) public void testSerializeDeserializeThenCompare_add1290() throws Exception { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testSerializeDeserializeThenCompare_add1290"); final Comparator<?> comp = new ReverseComparator<java.lang.String>(new ComparableComparator<java.lang.String>()); 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(); in.close(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),4534,comp); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),4535,dest); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * Override this inherited test since Collections.reverseOrder * doesn't adhere to the "soft" Comparator contract, and we've * already "canonized" the comparator returned by makeComparator. */ @Test(timeout = 1000) public void testSerializeDeserializeThenCompare_remove954() throws Exception { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testSerializeDeserializeThenCompare_remove954"); final Comparator<?> comp = new ReverseComparator<java.lang.String>(new ComparableComparator<java.lang.String>()); final ByteArrayOutputStream buffer = new ByteArrayOutputStream(); final ObjectOutputStream out = new ObjectOutputStream(buffer); out.close(); final ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray())); final Object dest = in.readObject(); in.close(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),4534,comp); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),4535,dest); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * Override this inherited test since Collections.reverseOrder * doesn't adhere to the "soft" Comparator contract, and we've * already "canonized" the comparator returned by makeComparator. */ @Test(timeout = 1000) public void testSerializeDeserializeThenCompare_remove955() throws Exception { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testSerializeDeserializeThenCompare_remove955"); final Comparator<?> comp = new ReverseComparator<java.lang.String>(new ComparableComparator<java.lang.String>()); final ByteArrayOutputStream buffer = new ByteArrayOutputStream(); final ObjectOutputStream out = new ObjectOutputStream(buffer); out.writeObject(comp); final ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(buffer.toByteArray())); final Object dest = in.readObject(); in.close(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),4534,comp); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),4535,dest); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } /** * Override this inherited test since Collections.reverseOrder * doesn't adhere to the "soft" Comparator contract, and we've * already "canonized" the comparator returned by makeComparator. */ @Test(timeout = 1000) public void testSerializeDeserializeThenCompare_remove956() throws Exception { fr.inria.diversify.testamplification.logger.Logger.writeTestStart(Thread.currentThread(),this, "testSerializeDeserializeThenCompare_remove956"); final Comparator<?> comp = new ReverseComparator<java.lang.String>(new ComparableComparator<java.lang.String>()); 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(); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),4534,comp); fr.inria.diversify.testamplification.logger.Logger.logAssertArgument(Thread.currentThread(),4535,dest); fr.inria.diversify.testamplification.logger.Logger.writeTestFinish(Thread.currentThread()); } }