[infinispan-commits] Infinispan SVN: r607 - in trunk/core/src/test/java/org/infinispan: marshall and 1 other directory.
infinispan-commits at lists.jboss.org
infinispan-commits at lists.jboss.org
Wed Jul 22 08:24:59 EDT 2009
Author: manik.surtani at jboss.com
Date: 2009-07-22 08:24:59 -0400 (Wed, 22 Jul 2009)
New Revision: 607
Added:
trunk/core/src/test/java/org/infinispan/marshall/DuplicateIdTest.java
Modified:
trunk/core/src/test/java/org/infinispan/commands/CommandIdUniquenessTest.java
Log:
Test for duplicate IDs in marshaller
Modified: trunk/core/src/test/java/org/infinispan/commands/CommandIdUniquenessTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/commands/CommandIdUniquenessTest.java 2009-07-22 11:34:36 UTC (rev 606)
+++ trunk/core/src/test/java/org/infinispan/commands/CommandIdUniquenessTest.java 2009-07-22 12:24:59 UTC (rev 607)
@@ -9,7 +9,7 @@
import java.util.SortedMap;
import java.util.TreeMap;
- at Test
+ at Test(groups = "unit", testName = "commands.CommandIdUniquenessTest")
public class CommandIdUniquenessTest {
public void testCommandIdUniqueness() throws Exception {
List<Class<?>> commands = ClassFinder.isAssignableFrom(ReplicableCommand.class);
Added: trunk/core/src/test/java/org/infinispan/marshall/DuplicateIdTest.java
===================================================================
--- trunk/core/src/test/java/org/infinispan/marshall/DuplicateIdTest.java (rev 0)
+++ trunk/core/src/test/java/org/infinispan/marshall/DuplicateIdTest.java 2009-07-22 12:24:59 UTC (rev 607)
@@ -0,0 +1,35 @@
+package org.infinispan.marshall;
+
+import org.testng.annotations.Test;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+ at Test(groups = "unit", testName = "marshall.DuplicateIdTest")
+public class DuplicateIdTest {
+ public void testDuplicateMarshallerIds() throws Exception {
+ Class idHolder = Ids.class;
+ Map<Byte, Set<String>> dupes = new HashMap<Byte, Set<String>>();
+ for (Field f : idHolder.getDeclaredFields()) {
+ if (Modifier.isStatic(f.getModifiers()) && Modifier.isFinal(f.getModifiers()) && f.getType().equals(byte.class)) {
+ byte val = (Byte) f.get(null);
+ Set<String> names = dupes.get(val);
+ if (names == null) names = new HashSet<String>();
+ names.add(f.getName());
+ dupes.put(val, names);
+ }
+ }
+
+ int largest = 0;
+ for (Map.Entry<Byte, Set<String>> e : dupes.entrySet()) {
+ assert e.getValue().size() == 1 : "ID " + e.getKey() + " is duplicated by fields " + e.getValue();
+ largest = Math.max(largest, e.getKey());
+ }
+
+ System.out.println("Next available ID is " + (largest + 1));
+ }
+}
Property changes on: trunk/core/src/test/java/org/infinispan/marshall/DuplicateIdTest.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
More information about the infinispan-commits
mailing list