[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