[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