1
2
3
4
5
6
7
8
9
10
11 package psiprobe.tools;
12
13 import static org.junit.jupiter.api.Assertions.assertEquals;
14 import static org.junit.jupiter.api.Assertions.assertFalse;
15 import static org.junit.jupiter.api.Assertions.assertNotEquals;
16
17 import org.junit.jupiter.api.Test;
18
19
20
21
22 class ObjectWrapperTest {
23
24 @Test
25 void testEqualsWithSameObject() {
26 Object obj = new Object();
27 ObjectWrapper w1 = new ObjectWrapper(obj);
28 ObjectWrapper w2 = new ObjectWrapper(obj);
29 assertEquals(w1, w2);
30 }
31
32 @Test
33 void testEqualsWithDifferentObject() {
34 ObjectWrapper w1 = new ObjectWrapper(new Object());
35 ObjectWrapper w2 = new ObjectWrapper(new Object());
36 assertNotEquals(w1, w2);
37 }
38
39 @Test
40 void testEqualsWithNullWrapped() {
41 ObjectWrapper w1 = new ObjectWrapper(null);
42
43
44 assertNotEquals(w1, new ObjectWrapper(null));
45
46 assertEquals(w1, null);
47 }
48
49 @Test
50 void testEqualsNullWrappedVsNonNull() {
51 ObjectWrapper w1 = new ObjectWrapper(null);
52 ObjectWrapper w2 = new ObjectWrapper(new Object());
53
54 assertNotEquals(w1, w2);
55 }
56
57 @Test
58 void testEqualsDifferentClass() {
59 ObjectWrapper w = new ObjectWrapper(new Object());
60 assertFalse(w.equals("a string"));
61 }
62
63 @Test
64 void testHashCodeWithSameInstance() {
65 Object obj = new Object();
66 ObjectWrapper w1 = new ObjectWrapper(obj);
67 ObjectWrapper w2 = new ObjectWrapper(obj);
68 assertEquals(w1.hashCode(), w2.hashCode());
69 }
70
71 @Test
72 void testHashCodeWithNull() {
73 ObjectWrapper w = new ObjectWrapper(null);
74 assertEquals(System.identityHashCode(null), w.hashCode());
75 }
76
77 @Test
78 void testHashCodeDifferentInstances() {
79 Object obj1 = new Object();
80 Object obj2 = new Object();
81 ObjectWrapper w1 = new ObjectWrapper(obj1);
82 ObjectWrapper w2 = new ObjectWrapper(obj2);
83
84
85 assertNotEquals(0, w1.hashCode());
86 assertNotEquals(0, w2.hashCode());
87 }
88 }