You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by mo...@apache.org on 2002/03/01 20:42:42 UTC
cvs commit: jakarta-commons/collections/src/test/org/apache/commons/collections/comparators TestComparator.java
morgand 02/03/01 11:42:42
Modified: collections/src/test/org/apache/commons/collections/comparators
TestComparator.java
Log:
added backward compatibility tests for Serialization
Revision Changes Path
1.2 +52 -0 jakarta-commons/collections/src/test/org/apache/commons/collections/comparators/TestComparator.java
Index: TestComparator.java
===================================================================
RCS file: /home/cvs/jakarta-commons/collections/src/test/org/apache/commons/collections/comparators/TestComparator.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TestComparator.java 1 Mar 2002 18:36:21 -0000 1.1
+++ TestComparator.java 1 Mar 2002 19:42:42 -0000 1.2
@@ -1,5 +1,6 @@
package org.apache.commons.collections.comparators;
+import java.io.IOException;
import java.io.Serializable;
import java.util.Collections;
import java.util.Comparator;
@@ -22,6 +23,15 @@
return makeComparator();
}
+ /**
+ * There were no Comparators in version 1.x.
+ *
+ * @return 2
+ */
+ public int getCompatibilityVersion() {
+ return 2;
+ }
+
public void reverseObjects(List list) {
Collections.reverse(list);
}
@@ -77,6 +87,48 @@
Comparator comparator = makeComparator();
assertTrue("This comparator should be Serializable.",
comparator instanceof Serializable);
+ }
+
+ public String getCanonicalComparatorName(Object object) {
+ StringBuffer retval = new StringBuffer();
+ retval.append("data/test/");
+ String colName = object.getClass().getName();
+ colName = colName.substring(colName.lastIndexOf(".")+1,colName.length());
+ retval.append(colName);
+ retval.append(".version");
+ retval.append(getCompatibilityVersion());
+ retval.append(".obj");
+ return retval.toString();
+ }
+
+ /**
+ * Compare the current serialized form of the Comparator
+ * against the canonical version in CVS.
+ */
+ public void testComparatorCompatibility() throws IOException, ClassNotFoundException {
+ Comparator comparator = null;
+ /*
+ * Create canonical objects with this code
+ comparator = makeComparator();
+
+ writeExternalFormToDisk((Serializable) comparator,
+ getCanonicalComparatorName(comparator));
+ */
+
+ // test to make sure the canonical form has been preserved
+ comparator =
+ (Comparator) readExternalFormFromDisk(getCanonicalComparatorName(makeComparator()));
+
+ // make sure the canonical form produces the ordering we currently
+ // expect
+ List randomList = getComparableObjectsOrdered();
+ reverseObjects(randomList);
+ sortObjects(randomList,comparator);
+
+ List orderedList = getComparableObjectsOrdered();
+
+ assertTrue("Comparator did not reorder the List correctly",
+ orderedList.equals(randomList));
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>