[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