Removing deprecated DMAAP library
[policy/drools-pdp.git] / policy-utils / src / test / java / org / onap / policy / drools / utils / ReflectionUtilTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * policy-utils
4  * ================================================================================
5  * Copyright (C) 2017-2018, 2020 AT&T Intellectual Property. All rights reserved.
6  * Modifications Copyright (C) 2024 Nordix Foundation.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END=========================================================
20  */
21
22 package org.onap.policy.drools.utils;
23
24 import static org.junit.jupiter.api.Assertions.assertEquals;
25 import static org.junit.jupiter.api.Assertions.assertFalse;
26 import static org.junit.jupiter.api.Assertions.assertNull;
27 import static org.junit.jupiter.api.Assertions.assertThrows;
28 import static org.junit.jupiter.api.Assertions.assertTrue;
29 import static org.junit.jupiter.api.Assertions.fail;
30
31 import org.junit.jupiter.api.Test;
32
33 class ReflectionUtilTest {
34
35     public class ParentClass {
36
37     }
38
39     class ChildClass extends ParentClass{
40
41     }
42
43     @Test
44     void testReflection() {
45
46         try {
47
48             Class<?> class1 = Class.forName("org.onap.policy.drools.utils.ReflectionUtil");
49
50             ClassLoader classLoader = class1.getClassLoader();
51
52             Class<?> class2 = ReflectionUtil.fetchClass(classLoader, "org.onap.policy.drools.utils.ReflectionUtil");
53
54
55             assertTrue(ReflectionUtil.isClass(classLoader, "org.onap.policy.drools.utils.ReflectionUtil"));
56             assertEquals(class1, class2);
57             assertTrue(ReflectionUtil.isSubclass(ParentClass.class, ChildClass.class));
58             assertFalse(ReflectionUtil.isSubclass(ChildClass.class, ParentClass.class));
59
60
61         } catch (ClassNotFoundException e) {
62             fail();
63         }
64     }
65
66     @Test
67     void testException1() {
68         assertThrows(IllegalArgumentException.class, () ->
69             ReflectionUtil.fetchClass(null, "org.onap.policy.drools.utils.ReflectionUtil"));
70     }
71
72     @Test
73     void testException2() {
74         Class<?> class1;
75         try {
76             class1 = Class.forName("org.onap.policy.drools.utils.ReflectionUtil");
77             ClassLoader classLoader = class1.getClassLoader();
78             assertThrows(IllegalArgumentException.class, () ->
79                 ReflectionUtil.fetchClass(classLoader, null));
80         } catch (ClassNotFoundException e) {
81             fail();
82         }
83     }
84
85     @Test
86     void testException3() {
87         assertNull(ReflectionUtil.fetchClass(ClassLoader.getSystemClassLoader(), "foo.bar"));
88     }
89 }