[jboss-cvs] JBossAS SVN: r99201 - projects/jboss-classpool/trunk/classpool/src/test/java/org/jboss/test/classpool/test.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Jan 11 07:22:25 EST 2010


Author: kabir.khan at jboss.com
Date: 2010-01-11 07:22:25 -0500 (Mon, 11 Jan 2010)
New Revision: 99201

Modified:
   projects/jboss-classpool/trunk/classpool/src/test/java/org/jboss/test/classpool/test/SimpleDelegatingClassPoolTestCase.java
Log:
[JBREFLECT-91] Another test

Modified: projects/jboss-classpool/trunk/classpool/src/test/java/org/jboss/test/classpool/test/SimpleDelegatingClassPoolTestCase.java
===================================================================
--- projects/jboss-classpool/trunk/classpool/src/test/java/org/jboss/test/classpool/test/SimpleDelegatingClassPoolTestCase.java	2010-01-11 12:15:55 UTC (rev 99200)
+++ projects/jboss-classpool/trunk/classpool/src/test/java/org/jboss/test/classpool/test/SimpleDelegatingClassPoolTestCase.java	2010-01-11 12:22:25 UTC (rev 99201)
@@ -25,6 +25,9 @@
 import static org.jboss.test.classpool.support.SupportArchives.JAR_B_URL;
 import static org.jboss.test.classpool.support.SupportClasses.CLASS_A;
 import static org.jboss.test.classpool.support.SupportClasses.CLASS_B;
+
+import java.util.List;
+
 import javassist.ClassPool;
 import javassist.CtClass;
 
@@ -149,57 +152,115 @@
       assertSame(b.getClassPool(), bArray.getClassPool());
    }
    
-   public void testSinglePoolRepositoryCallback() throws Exception
+   public void testRemovingPoolRepositoryCallback() throws Exception
    {
-      ClassPoolDomain domain = createClassPoolDomain("SIMPLE", null, false);
       ClassPoolRepository repository = ClassPoolRepository.getInstance();
       TestCallback cb1 = new TestCallback();
-      repository.addClassPoolRepositoryCallback(cb1);
-      ClassLoader loaderA = createLoader(domain, JAR_A_URL);
-      assertNotNull(loaderA);
-      ClassPool poolA = repository.registerClassLoader(loaderA);
-      assertNotNull(poolA);
-
-      assertNotNull(cb1.getRegister());
-      assertSame(loaderA, cb1.getRegister());
-      assertNull(cb1.getUnregister());
+      TestCallback cb2 = new TestCallback();
       
-      cb1.clear();
-      repository.unregisterClassLoader(loaderA);
-      assertNull(cb1.getRegister());
-      assertNotNull(cb1.getUnregister());
-      assertSame(loaderA, cb1.getUnregister());
+      try
+      {
+         ClassPoolDomain domain = createClassPoolDomain("SIMPLE", null, false);
+   
+         List<ClassPoolRepositoryCallback> callbacks = repository.getClassPoolRepositoryCallbacks();
+         assertNotNull(callbacks);
+         assertTrue(callbacks.isEmpty());
+         
+         repository.addClassPoolRepositoryCallback(cb1);
+         callbacks = repository.getClassPoolRepositoryCallbacks();
+         assertNotNull(callbacks);
+         assertEquals(1, callbacks.size());
+         assertEquals(cb1, callbacks.get(0));
+   
+         repository.addClassPoolRepositoryCallback(cb2);
+         callbacks = repository.getClassPoolRepositoryCallbacks();
+         assertNotNull(callbacks);
+         assertEquals(2, callbacks.size());
+         assertEquals(cb1, callbacks.get(0));
+         assertEquals(cb2, callbacks.get(1));
+         
+         assertTrue(repository.removeClassPoolRepositoryCallback(cb1));
+         assertNotNull(callbacks);
+         assertEquals(1, callbacks.size());
+         assertEquals(cb2, callbacks.get(0));
+         
+         assertTrue(repository.removeClassPoolRepositoryCallback(cb2));
+         assertNotNull(callbacks);
+         assertTrue(callbacks.isEmpty());
+      }
+      finally
+      {
+         assertFalse(repository.removeClassPoolRepositoryCallback(cb1));
+         assertFalse(repository.removeClassPoolRepositoryCallback(cb2));
+      }
    }
 
+   public void testSinglePoolRepositoryCallback() throws Exception
+   {
+      ClassPoolRepository repository = ClassPoolRepository.getInstance();
+      TestCallback cb1 = new TestCallback();
+      try
+      {
+         ClassPoolDomain domain = createClassPoolDomain("SIMPLE", null, false);
+         repository.addClassPoolRepositoryCallback(cb1);
+         ClassLoader loaderA = createLoader(domain, JAR_A_URL);
+         assertNotNull(loaderA);
+         ClassPool poolA = repository.registerClassLoader(loaderA);
+         assertNotNull(poolA);
    
+         assertNotNull(cb1.getRegister());
+         assertSame(loaderA, cb1.getRegister());
+         assertNull(cb1.getUnregister());
+         
+         cb1.clear();
+         repository.unregisterClassLoader(loaderA);
+         assertNull(cb1.getRegister());
+         assertNotNull(cb1.getUnregister());
+         assertSame(loaderA, cb1.getUnregister());
+      }
+      finally
+      {
+         repository.removeClassPoolRepositoryCallback(cb1);
+      }
+   }
+
+   
    public void testMultiplePoolRepositoryCallbacks() throws Exception
    {
-      ClassPoolDomain domain = createClassPoolDomain("SIMPLE", null, false);
       ClassPoolRepository repository = ClassPoolRepository.getInstance();
       TestCallback cb1 = new TestCallback();
       TestCallback cb2 = new TestCallback();
-      repository.addClassPoolRepositoryCallback(cb1);
-      repository.addClassPoolRepositoryCallback(cb2);
-      ClassLoader loaderA = createLoader(domain, JAR_A_URL);
-      assertNotNull(loaderA);
-      ClassPool poolA = repository.registerClassLoader(loaderA);
-      assertNotNull(poolA);
-
-      assertNotNull(cb1.getRegister());
-      assertSame(loaderA, cb1.getRegister());
-      assertNull(cb1.getUnregister());
-      assertNotNull(cb2.getRegister());
-      assertSame(loaderA, cb2.getRegister());
-      assertNull(cb2.getUnregister());
-      
-      cb1.clear();
-      cb2.clear();
-      repository.unregisterClassLoader(loaderA);
-      assertNull(cb1.getRegister());
-      assertNotNull(cb1.getUnregister());
-      assertSame(loaderA, cb1.getUnregister());
-      assertNull(cb2.getRegister());
-      assertNotNull(cb2.getUnregister());
-      assertSame(loaderA, cb2.getUnregister());
+      try
+      {
+         ClassPoolDomain domain = createClassPoolDomain("SIMPLE", null, false);
+         repository.addClassPoolRepositoryCallback(cb1);
+         repository.addClassPoolRepositoryCallback(cb2);
+         ClassLoader loaderA = createLoader(domain, JAR_A_URL);
+         assertNotNull(loaderA);
+         ClassPool poolA = repository.registerClassLoader(loaderA);
+         assertNotNull(poolA);
+   
+         assertNotNull(cb1.getRegister());
+         assertSame(loaderA, cb1.getRegister());
+         assertNull(cb1.getUnregister());
+         assertNotNull(cb2.getRegister());
+         assertSame(loaderA, cb2.getRegister());
+         assertNull(cb2.getUnregister());
+         
+         cb1.clear();
+         cb2.clear();
+         repository.unregisterClassLoader(loaderA);
+         assertNull(cb1.getRegister());
+         assertNotNull(cb1.getUnregister());
+         assertSame(loaderA, cb1.getUnregister());
+         assertNull(cb2.getRegister());
+         assertNotNull(cb2.getUnregister());
+         assertSame(loaderA, cb2.getUnregister());
+      }
+      finally
+      {
+         repository.removeClassPoolRepositoryCallback(cb1);
+         repository.removeClassPoolRepositoryCallback(cb2);
+      }
    }
 }
\ No newline at end of file




More information about the jboss-cvs-commits mailing list