1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.lang3.reflect;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20 import static org.junit.jupiter.api.Assertions.assertNotNull;
21
22 import org.apache.commons.lang3.AbstractLangTest;
23 import org.apache.commons.lang3.reflect.testbed.AnotherChild;
24 import org.apache.commons.lang3.reflect.testbed.AnotherParent;
25 import org.apache.commons.lang3.reflect.testbed.Grandchild;
26 import org.junit.jupiter.api.Test;
27
28
29
30
31 public class InheritanceUtilsTest extends AbstractLangTest {
32
33 @Test
34 public void testConstructor() throws Exception {
35 assertNotNull(InheritanceUtils.class.getConstructor().newInstance());
36 }
37
38 @Test
39 public void testDistanceDisjoint() {
40 assertEquals(-1, InheritanceUtils.distance(Boolean.class, String.class));
41 }
42
43 @Test
44 public void testDistanceEqual() {
45 assertEquals(0, InheritanceUtils.distance(AnotherChild.class, AnotherChild.class));
46 }
47
48 @Test
49 public void testDistanceEqualObject() {
50 assertEquals(0, InheritanceUtils.distance(Object.class, Object.class));
51 }
52
53 @Test
54 public void testDistanceGreaterThanZero() {
55 assertEquals(1, InheritanceUtils.distance(AnotherChild.class, AnotherParent.class));
56 assertEquals(1, InheritanceUtils.distance(Grandchild.class, AnotherChild.class));
57 assertEquals(2, InheritanceUtils.distance(Grandchild.class, AnotherParent.class));
58 assertEquals(3, InheritanceUtils.distance(Grandchild.class, Object.class));
59 }
60
61 @Test
62 public void testDistanceNullChild() {
63 assertEquals(-1, InheritanceUtils.distance(null, Object.class));
64 }
65
66 @Test
67 public void testDistanceNullParent() {
68 assertEquals(-1, InheritanceUtils.distance(Object.class, null));
69 }
70
71 @Test
72 public void testDistanceNullParentNullChild() {
73 assertEquals(-1, InheritanceUtils.distance(null, null));
74 }
75
76 @Test
77 public void testDistanceReverseParentChild() {
78 assertEquals(-1, InheritanceUtils.distance(Object.class, Grandchild.class));
79 }
80 }