1
2
3
4
5
6 package mockit.internal.util;
7
8 import static org.junit.jupiter.api.Assertions.assertEquals;
9 import static org.junit.jupiter.api.Assertions.assertNotNull;
10 import static org.junit.jupiter.api.Assertions.assertNull;
11 import static org.junit.jupiter.api.Assertions.assertThrows;
12
13 import org.junit.jupiter.api.Test;
14
15 final class ClassLoadTest {
16
17 @Test
18 void loadClassByInternalNameReturnsCorrectClass() {
19 Class<String> cls = ClassLoad.loadByInternalName("java/lang/String");
20 assertEquals(String.class, cls);
21 }
22
23 @Test
24 void loadClassByNameReturnsCorrectClass() {
25 Class<Integer> cls = ClassLoad.loadClass("java.lang.Integer");
26 assertEquals(Integer.class, cls);
27 }
28
29 @Test
30 void loadClassThrowsForUnknownClass() {
31 assertThrows(IllegalArgumentException.class, () -> ClassLoad.loadClass("com.example.DoesNotExist"));
32 }
33
34 @Test
35 void loadClassAtStartupReturnsCorrectClass() {
36 Class<String> cls = ClassLoad.loadClassAtStartup("java.lang.String");
37 assertEquals(String.class, cls);
38 }
39
40 @Test
41 void loadClassAtStartupThrowsForUnknownClass() {
42 assertThrows(IllegalArgumentException.class, () -> ClassLoad.loadClassAtStartup("com.example.DoesNotExist"));
43 }
44
45 @Test
46 void loadClassWithLoaderReturnsNullForUnknownClass() {
47 Class<?> cls = ClassLoad.loadClass(ClassLoadTest.class.getClassLoader(), "com.example.DoesNotExist");
48 assertNull(cls);
49 }
50
51 @Test
52 void loadClassWithNullLoaderReturnsNullForUnknownClass() {
53
54 Class<?> cls = ClassLoad.loadClass(null, "com.example.DoesNotExist");
55 assertNull(cls);
56 }
57
58 @Test
59 void loadFromLoaderReturnsCorrectClass() {
60 Class<String> cls = ClassLoad.loadFromLoader(ClassLoadTest.class.getClassLoader(), "java.lang.String");
61 assertEquals(String.class, cls);
62 }
63
64 @Test
65 void loadFromLoaderThrowsForUnknownClass() {
66 assertThrows(IllegalArgumentException.class,
67 () -> ClassLoad.loadFromLoader(ClassLoadTest.class.getClassLoader(), "com.example.DoesNotExist"));
68 }
69
70 @Test
71 void searchTypeInClasspathReturnsClassWhenFound() {
72 Class<? extends String> cls = ClassLoad.searchTypeInClasspath("java.lang.String");
73 assertEquals(String.class, cls);
74 }
75
76 @Test
77 void searchTypeInClasspathReturnsNullForUnknownClass() {
78 Class<?> cls = ClassLoad.searchTypeInClasspath("com.example.DoesNotExist");
79 assertNull(cls);
80 }
81
82 @Test
83 void searchTypeInClasspathWithInitializeTrue() {
84 Class<?> cls = ClassLoad.searchTypeInClasspath("java.lang.String", true);
85 assertNotNull(cls);
86 assertEquals(String.class, cls);
87 }
88
89 @Test
90 void registerLoadedClassAndRetrieve() {
91 ClassLoad.registerLoadedClass(ClassLoadTest.class);
92 Class<ClassLoadTest> cls = ClassLoad.loadClass(ClassLoadTest.class.getName());
93 assertEquals(ClassLoadTest.class, cls);
94 }
95
96 @Test
97 void getSuperClassForKnownClass() {
98 String superClass = ClassLoad.getSuperClass("java/lang/String");
99 assertEquals("java/lang/Object", superClass);
100 }
101
102 @Test
103 void getSuperClassReturnsObjectForObjectItself() {
104 String superClass = ClassLoad.getSuperClass("java/lang/Object");
105 assertEquals(ClassLoad.OBJECT, superClass);
106 }
107
108 @Test
109 void addAndGetSuperClass() {
110 ClassLoad.addSuperClass("com/example/Child", "com/example/Parent");
111 String superClass = ClassLoad.getSuperClass("com/example/Child");
112 assertEquals("com/example/Parent", superClass);
113 }
114 }