1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.beanutils.converters;
19
20 import junit.framework.TestCase;
21 import junit.framework.TestSuite;
22
23
24
25
26
27
28
29 public class ClassReloaderTestCase extends TestCase {
30
31
32
33 public ClassReloaderTestCase(final String name) {
34 super(name);
35 }
36
37
38 public static TestSuite suite() {
39 return new TestSuite(ClassReloaderTestCase.class);
40 }
41
42
43
44 public static class DummyClass {
45 }
46
47
48
49
50 public void testBasicOperation() throws Exception {
51 final ClassLoader sharedLoader = this.getClass().getClassLoader();
52 final ClassReloader componentLoader = new ClassReloader(sharedLoader);
53
54 final Class<?> sharedClass = DummyClass.class;
55 final Class<?> componentClass = componentLoader.reload(sharedClass);
56
57
58 assertTrue(sharedClass != componentClass);
59
60
61 assertSame(sharedLoader, sharedClass.getClassLoader());
62 assertSame(componentLoader, componentClass.getClassLoader());
63 assertTrue(sharedLoader != componentLoader);
64
65
66 final Object obj1 = sharedClass.newInstance();
67 final Object obj2 = componentClass.newInstance();
68
69 assertTrue("Obj1 class incorrect", sharedClass.isInstance(obj1));
70 assertFalse("Obj1 class incorrect", componentClass.isInstance(obj1));
71 assertFalse("Obj2 class incorrect", sharedClass.isInstance(obj2));
72 assertTrue("Obj2 class incorrect", componentClass.isInstance(obj2));
73 }
74
75 }
76