[jboss-cvs] JBossCache/tests/functional/org/jboss/cache ...
Brian Stansberry
brian.stansberry at jboss.com
Tue May 22 20:51:40 EDT 2007
User: bstansberry
Date: 07/05/22 20:51:40
Modified: tests/functional/org/jboss/cache LifeCycleTest.java
Log:
[JBCACHE-1058] Test duplicate invocations; lifecycle state
Revision Changes Path
1.9 +89 -1 JBossCache/tests/functional/org/jboss/cache/LifeCycleTest.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: LifeCycleTest.java
===================================================================
RCS file: /cvsroot/jboss/JBossCache/tests/functional/org/jboss/cache/LifeCycleTest.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- LifeCycleTest.java 7 Feb 2007 22:06:39 -0000 1.8
+++ LifeCycleTest.java 23 May 2007 00:51:40 -0000 1.9
@@ -16,7 +16,7 @@
* Tests restart (stop-destroy-create-start) of CacheImpl
*
* @author Bela Ban
- * @version $Id: LifeCycleTest.java,v 1.8 2007/02/07 22:06:39 genman Exp $
+ * @version $Id: LifeCycleTest.java,v 1.9 2007/05/23 00:51:40 bstansberry Exp $
*/
public class LifeCycleTest extends TestCase
{
@@ -101,6 +101,77 @@
assertEquals(0, cache.getNumberOfLocksHeld());
}
+ public void testDuplicateInvocation() throws Exception
+ {
+ CacheImpl cache = createCache(Configuration.CacheMode.LOCAL);
+ cache.create();
+ cache.start();
+ cache.create();
+ cache.start();
+
+ cache.put("/a/b/c", null);
+ assertTrue(cache.getNumberOfNodes() > 0);
+ assertEquals(0, cache.getNumberOfLocksHeld());
+
+ System.out.println("cache locks before restart:\n" + cache.printLockInfo());
+ restartCache(cache);
+ System.out.println("cache locks after restart:\n" + cache.printLockInfo());
+
+ assertTrue(cache.getNumberOfNodes() > 0);
+ assertEquals(0, cache.getNumberOfLocksHeld());
+
+ cache.stop();
+ cache.destroy();
+ cache.stop();
+ cache.destroy();
+ }
+
+ public void testFailedStart() throws Exception
+ {
+ CacheImpl cache = createCache(Configuration.CacheMode.LOCAL);
+ assertEquals("Correct state", LifecycleState.INSTANTIATED, cache.getLifecycleState());
+ DisruptLifecycleListener listener = new DisruptLifecycleListener();
+ cache.addCacheListener(listener);
+ cache.create();
+ assertEquals("Correct state", LifecycleState.CREATED, cache.getLifecycleState());
+ try
+ {
+ cache.start();
+ fail("Listener did not prevent start");
+ }
+ catch (IllegalStateException good) {}
+
+ assertEquals("Correct state", LifecycleState.FAILED, cache.getLifecycleState());
+
+ cache.removeCacheListener(listener);
+
+ cache.start();
+
+ assertEquals("Correct state", LifecycleState.STARTED, cache.getLifecycleState());
+
+ cache.put("/a/b/c", null);
+ assertTrue(cache.getNumberOfNodes() > 0);
+ assertEquals(0, cache.getNumberOfLocksHeld());
+
+ cache.addCacheListener(listener);
+
+ try
+ {
+ cache.stop();
+ fail("Listener did not prevent stop");
+ }
+ catch (IllegalStateException good) {}
+
+ assertEquals("Correct state", LifecycleState.FAILED, cache.getLifecycleState());
+
+ cache.removeCacheListener(listener);
+
+ cache.stop();
+ assertEquals("Correct state", LifecycleState.STOPPED, cache.getLifecycleState());
+ cache.destroy();
+ assertEquals("Correct state", LifecycleState.DESTROYED, cache.getLifecycleState());
+ }
+
CacheImpl createCache(Configuration.CacheMode cache_mode) throws Exception
{
CacheImpl retval = (CacheImpl) DefaultCacheFactory.getInstance().createCache(false);
@@ -138,6 +209,23 @@
}
+ class DisruptLifecycleListener extends AbstractCacheListener
+ {
+
+ @Override
+ public void cacheStarted(CacheSPI cache)
+ {
+ throw new IllegalStateException("I don't want to start");
+ }
+
+ @Override
+ public void cacheStopped(CacheSPI cache)
+ {
+ throw new IllegalStateException("I don't want to stop");
+ }
+
+ }
+
public static Test suite()
{
return new TestSuite(LifeCycleTest.class);
More information about the jboss-cvs-commits
mailing list