1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.beanutils2.converters;
19
20 import static org.junit.jupiter.api.Assertions.assertFalse;
21 import static org.junit.jupiter.api.Assertions.assertSame;
22 import static org.junit.jupiter.api.Assertions.assertTrue;
23
24 import org.junit.jupiter.api.Test;
25
26
27
28
29 public class ClassReloaderTest {
30
31 public static class DummyClass {
32 }
33
34
35
36
37 @Test
38 public void testBasicOperation() throws Exception {
39 final ClassLoader sharedLoader = this.getClass().getClassLoader();
40 final ClassReloader componentLoader = new ClassReloader(sharedLoader);
41
42 final Class<?> sharedClass = DummyClass.class;
43 final Class<?> componentClass = componentLoader.reload(sharedClass);
44
45
46 assertTrue(sharedClass != componentClass);
47
48
49 assertSame(sharedLoader, sharedClass.getClassLoader());
50 assertSame(componentLoader, componentClass.getClassLoader());
51 assertTrue(sharedLoader != componentLoader);
52
53
54 final Object obj1 = sharedClass.newInstance();
55 final Object obj2 = componentClass.newInstance();
56
57 assertTrue(sharedClass.isInstance(obj1), "Obj1 class incorrect");
58 assertFalse(componentClass.isInstance(obj1), "Obj1 class incorrect");
59 assertFalse(sharedClass.isInstance(obj2), "Obj2 class incorrect");
60 assertTrue(componentClass.isInstance(obj2), "Obj2 class incorrect");
61 }
62
63 }