[jboss-cvs] JBoss Messaging SVN: r4405 - in trunk: tests/src/org/jboss/messaging/tests/unit/core/util and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jun 6 10:18:11 EDT 2008


Author: jmesnil
Date: 2008-06-06 10:18:11 -0400 (Fri, 06 Jun 2008)
New Revision: 4405

Added:
   trunk/tests/src/org/jboss/messaging/tests/unit/core/util/ConcurrentHashSetTest.java
Modified:
   trunk/src/main/org/jboss/messaging/util/ConcurrentHashSet.java
Log:
added unit tests for ConcurrentHashSet + bug fixes

Modified: trunk/src/main/org/jboss/messaging/util/ConcurrentHashSet.java
===================================================================
--- trunk/src/main/org/jboss/messaging/util/ConcurrentHashSet.java	2008-06-06 14:17:11 UTC (rev 4404)
+++ trunk/src/main/org/jboss/messaging/util/ConcurrentHashSet.java	2008-06-06 14:18:11 UTC (rev 4405)
@@ -78,7 +78,7 @@
    
    public boolean add(E o)
    {
-      return theMap.put(o, dummy) == dummy;
+      return theMap.put(o, dummy) == null;
    }
    
    public boolean contains(Object o)

Added: trunk/tests/src/org/jboss/messaging/tests/unit/core/util/ConcurrentHashSetTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/util/ConcurrentHashSetTest.java	                        (rev 0)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/util/ConcurrentHashSetTest.java	2008-06-06 14:18:11 UTC (rev 4405)
@@ -0,0 +1,124 @@
+/*
+ * JBoss, Home of Professional Open Source
+ *
+ * Distributable under LGPL license.
+ * See terms of license at gnu.org.
+ */
+package org.jboss.messaging.tests.unit.core.util;
+
+import static org.jboss.messaging.tests.util.RandomUtil.randomString;
+import junit.framework.TestCase;
+
+import org.jboss.messaging.util.ConcurrentHashSet;
+import org.jboss.messaging.util.ConcurrentSet;
+
+/**
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ *
+ * @version <tt>$Revision$</tt>
+ *
+ */
+public class ConcurrentHashSetTest extends TestCase
+{
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   private ConcurrentSet<String> set;
+   private String element;
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+   
+   public void testAdd() throws Exception
+   {
+      assertTrue(set.add(element));
+      assertFalse(set.add(element));
+   }
+
+   public void testAddIfAbsent() throws Exception
+   {
+      assertTrue(set.addIfAbsent(element));
+      assertFalse(set.addIfAbsent(element));
+   }
+   
+   public void testRemove() throws Exception
+   {
+      assertTrue(set.add(element));
+      
+      assertTrue(set.remove(element));
+      assertFalse(set.remove(element));
+   }
+   
+   public void testContains() throws Exception
+   {
+      assertFalse(set.contains(element));
+      
+      assertTrue(set.add(element));      
+      assertTrue(set.contains(element));
+
+      assertTrue(set.remove(element));      
+      assertFalse(set.contains(element));
+   }
+   
+   public void testSize() throws Exception
+   {
+      assertEquals(0, set.size());
+      
+      assertTrue(set.add(element));      
+      assertEquals(1, set.size());
+
+      assertTrue(set.remove(element));      
+      assertEquals(0, set.size());
+   }
+   
+   public void testClear() throws Exception
+   {
+      assertTrue(set.add(element));      
+
+      assertTrue(set.contains(element));
+      set.clear();
+      assertFalse(set.contains(element));
+   }
+   
+   public void testIsEmpty() throws Exception
+   {
+      assertTrue(set.isEmpty());
+      
+      assertTrue(set.add(element));      
+      assertFalse(set.isEmpty());
+
+      set.clear();
+      assertTrue(set.isEmpty());
+   }
+
+   // TestCase overrides --------------------------------------------
+
+   @Override
+   protected void setUp() throws Exception
+   {
+      super.setUp();
+
+      set = new ConcurrentHashSet<String>();
+      element = randomString();
+   }
+
+   @Override
+   protected void tearDown() throws Exception
+   {
+      set = null;
+      element = null;
+
+      super.tearDown();
+   }
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+}




More information about the jboss-cvs-commits mailing list