1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.lang3.mutable;
18
19 import static org.junit.jupiter.api.Assertions.assertEquals;
20 import static org.junit.jupiter.api.Assertions.assertFalse;
21 import static org.junit.jupiter.api.Assertions.assertNotEquals;
22 import static org.junit.jupiter.api.Assertions.assertNull;
23 import static org.junit.jupiter.api.Assertions.assertSame;
24
25 import org.apache.commons.lang3.AbstractLangTest;
26 import org.junit.jupiter.api.Test;
27
28
29
30
31
32
33 class MutableObjectTest extends AbstractLangTest {
34
35 @Test
36 void testConstructors() {
37 assertNull(new MutableObject<String>().get());
38
39 final Integer i = Integer.valueOf(6);
40 assertSame(i, new MutableObject<>(i).get());
41 assertSame("HI", new MutableObject<>("HI").get());
42 assertSame(null, new MutableObject<>(null).get());
43 }
44
45 @Test
46 void testEquals() {
47 final MutableObject<String> mutNumA = new MutableObject<>("ALPHA");
48 final MutableObject<String> mutNumB = new MutableObject<>("ALPHA");
49 final MutableObject<String> mutNumC = new MutableObject<>("BETA");
50 final MutableObject<String> mutNumNull1 = new MutableObject<>(null);
51 final MutableObject<String> mutNumNull2 = new MutableObject<>(null);
52 assertFalse(mutNumA.equals(null));
53 assertEquals(mutNumA, mutNumA);
54 assertEquals(mutNumA, mutNumB);
55 assertEquals(mutNumB, mutNumA);
56 assertEquals(mutNumB, mutNumB);
57 assertNotEquals(mutNumA, mutNumC);
58 assertNotEquals(mutNumB, mutNumC);
59 assertEquals(mutNumC, mutNumC);
60 assertNotEquals(mutNumA, mutNumNull1);
61 assertEquals(mutNumNull1, mutNumNull1);
62 assertEquals(mutNumNull1, mutNumNull2);
63 assertEquals(mutNumNull2, mutNumNull1);
64
65 assertNotEquals(null, mutNumA);
66 assertNotEquals(mutNumA, new Object());
67 assertNotEquals("0", mutNumA);
68 }
69
70 @Test
71 void testGetSet() {
72 final MutableObject<String> mutNum = new MutableObject<>();
73 assertNull(new MutableObject<>().get());
74 assertNull(new MutableObject<>().getValue());
75
76 mutNum.setValue("HELLO");
77 assertSame("HELLO", mutNum.get());
78 assertSame("HELLO", mutNum.getValue());
79
80 mutNum.setValue(null);
81 assertSame(null, mutNum.get());
82 assertSame(null, mutNum.getValue());
83 }
84
85 @Test
86 void testHashCode() {
87 final MutableObject<String> mutNumA = new MutableObject<>("ALPHA");
88 final MutableObject<String> mutNumB = new MutableObject<>("ALPHA");
89 final MutableObject<String> mutNumC = new MutableObject<>("BETA");
90 final MutableObject<String> mutNumD = new MutableObject<>(null);
91
92 assertEquals(mutNumA.hashCode(), mutNumA.hashCode());
93 assertEquals(mutNumA.hashCode(), mutNumB.hashCode());
94 assertNotEquals(mutNumA.hashCode(), mutNumC.hashCode());
95 assertNotEquals(mutNumA.hashCode(), mutNumD.hashCode());
96 assertEquals(mutNumA.hashCode(), "ALPHA".hashCode());
97 assertEquals(0, mutNumD.hashCode());
98 }
99
100 @Test
101 void testToString() {
102 assertEquals("HI", new MutableObject<>("HI").toString());
103 assertEquals("10.0", new MutableObject<>(Double.valueOf(10)).toString());
104 assertEquals("null", new MutableObject<>(null).toString());
105 }
106
107 }