You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by jo...@apache.org on 2006/02/06 21:08:16 UTC
svn commit: r375350 - in /jakarta/commons/sandbox/id/trunk/src:
java/org/apache/commons/id/
test-serialization/org.apache.commons.id.CompositeIdentifierGenerator/
test/org/apache/commons/id/
Author: joehni
Date: Mon Feb 6 12:08:13 2006
New Revision: 375350
URL: http://svn.apache.org/viewcvs?rev=375350&view=rev
Log:
Add missing minLength/maxLength implementations.
Make serializable.
Added:
jakarta/commons/sandbox/id/trunk/src/test-serialization/org.apache.commons.id.CompositeIdentifierGenerator/
jakarta/commons/sandbox/id/trunk/src/test-serialization/org.apache.commons.id.CompositeIdentifierGenerator/20060206.ser (with props)
Modified:
jakarta/commons/sandbox/id/trunk/src/java/org/apache/commons/id/CompositeIdentifierGenerator.java
jakarta/commons/sandbox/id/trunk/src/test/org/apache/commons/id/CompositeIdentifierGeneratorTest.java
Modified: jakarta/commons/sandbox/id/trunk/src/java/org/apache/commons/id/CompositeIdentifierGenerator.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/id/trunk/src/java/org/apache/commons/id/CompositeIdentifierGenerator.java?rev=375350&r1=375349&r2=375350&view=diff
==============================================================================
--- jakarta/commons/sandbox/id/trunk/src/java/org/apache/commons/id/CompositeIdentifierGenerator.java (original)
+++ jakarta/commons/sandbox/id/trunk/src/java/org/apache/commons/id/CompositeIdentifierGenerator.java Mon Feb 6 12:08:13 2006
@@ -15,6 +15,7 @@
*/
package org.apache.commons.id;
+import java.io.Serializable;
import java.util.Collection;
import java.util.Iterator;
@@ -26,8 +27,13 @@
* @version $Revision$ $Date$
*
*/
-public class CompositeIdentifierGenerator extends AbstractStringIdentifierGenerator {
+public class CompositeIdentifierGenerator extends AbstractStringIdentifierGenerator implements Serializable {
+ /**
+ * <code>serialVersionUID</code> is the serializable UID for the binary version of the class.
+ */
+ private static final long serialVersionUID = 20060206L;
+
/** The identifier generators to concatenate */
private final StringIdentifierGenerator[] identifierGenerators;
@@ -121,6 +127,22 @@
buffer.append(identifierGenerators[i].nextStringIdentifier());
}
return buffer.toString();
+ }
+
+ public long maxLength() {
+ long length = 0;
+ for (int i = 0; i < identifierGenerators.length; i++) {
+ length += identifierGenerators[i].maxLength();
+ }
+ return length;
+ }
+
+ public long minLength() {
+ long length = 0;
+ for (int i = 0; i < identifierGenerators.length; i++) {
+ length += identifierGenerators[i].minLength();
+ }
+ return length;
}
/**
Added: jakarta/commons/sandbox/id/trunk/src/test-serialization/org.apache.commons.id.CompositeIdentifierGenerator/20060206.ser
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/id/trunk/src/test-serialization/org.apache.commons.id.CompositeIdentifierGenerator/20060206.ser?rev=375350&view=auto
==============================================================================
Binary file - no diff available.
Propchange: jakarta/commons/sandbox/id/trunk/src/test-serialization/org.apache.commons.id.CompositeIdentifierGenerator/20060206.ser
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Modified: jakarta/commons/sandbox/id/trunk/src/test/org/apache/commons/id/CompositeIdentifierGeneratorTest.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/sandbox/id/trunk/src/test/org/apache/commons/id/CompositeIdentifierGeneratorTest.java?rev=375350&r1=375349&r2=375350&view=diff
==============================================================================
--- jakarta/commons/sandbox/id/trunk/src/test/org/apache/commons/id/CompositeIdentifierGeneratorTest.java (original)
+++ jakarta/commons/sandbox/id/trunk/src/test/org/apache/commons/id/CompositeIdentifierGeneratorTest.java Mon Feb 6 12:08:13 2006
@@ -15,16 +15,16 @@
*/
package org.apache.commons.id;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
-import org.apache.commons.id.serial.NumericGenerator;
import org.apache.commons.id.serial.AlphanumericGenerator;
+import org.apache.commons.id.serial.NumericGenerator;
+import org.apache.commons.id.test.AssertSerialization;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Modifier;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
/**
* Tests the org.apache.commons.id.CompositeIdentifierGenerator class.
@@ -32,8 +32,7 @@
* @author Commons-id team
* @version $Id$
*/
-public class CompositeIdentifierGeneratorTest extends junit.framework.TestCase {
-
+public class CompositeIdentifierGeneratorTest extends TestCase {
public void testGetInstanceArrayInput() {
// positive test
@@ -116,14 +115,58 @@
generator.nextStringIdentifier());
}
- protected StringIdentifierGenerator[] makeTestArray() {
+ public void testLength() {
+ StringIdentifierGenerator[] generators = makeTestArray();
+ StringIdentifierGenerator generator =
+ CompositeIdentifierGenerator.getInstance(generators);
+ long maxLength = 0;
+ long minLength = 0;
+ for (int i = 0; i < generators.length; i++) {
+ maxLength += generators[i].maxLength();
+ minLength += generators[i].minLength();
+ }
+ assertEquals(maxLength, generator.maxLength());
+ assertEquals(minLength, generator.minLength());
+ }
+
+ /**
+ * {@link TestSuite} for SessionIdGenerator. Ensures serialization.
+ *
+ * @return the TestSuite
+ */
+ public static TestSuite suite() {
+ final TestSuite suite = new TestSuite(CompositeIdentifierGeneratorTest.class);
+ suite.addTest(AssertSerialization.createSerializationTestSuite(new SerializationTestContext() {
+
+ public void verify(Object serialized, long uid) {
+ CompositeIdentifierGenerator test = (CompositeIdentifierGenerator)serialized;
+ CompositeIdentifierGenerator idGenerator = (CompositeIdentifierGenerator)createReference();
+ StringIdentifierGenerator[] testGenerators = test.getIdentifierGenerators();
+ StringIdentifierGenerator[] generators = idGenerator.getIdentifierGenerators();
+ assertEquals(generators.length, testGenerators.length);
+ assertSame(generators[0].getClass(), testGenerators[0].getClass());
+ assertSame(generators[1].getClass(), testGenerators[1].getClass());
+ }
+
+ public Serializable createReference() {
+ return new CompositeIdentifierGenerator(makeTestArray());
+ }
+
+ public Class getType() {
+ return CompositeIdentifierGenerator.class;
+ }
+ }));
+ return suite;
+ }
+
+ protected static StringIdentifierGenerator[] makeTestArray() {
StringIdentifierGenerator[] out =
{new NumericGenerator(false, 0),
new AlphanumericGenerator(true)};
return out;
}
- protected ArrayList makeTestCollection() {
+ protected static ArrayList makeTestCollection() {
return new ArrayList(Arrays.asList(makeTestArray()));
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org