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.assertNotEquals;
21 import static org.junit.jupiter.api.Assertions.assertNull;
22 import static org.junit.jupiter.api.Assertions.assertSame;
23
24 import org.apache.commons.lang3.AbstractLangTest;
25 import org.junit.jupiter.api.Test;
26
27
28
29
30
31
32
33 public class MutableObjectTest extends AbstractLangTest {
34
35 @Test
36 public void testConstructors() {
37 assertNull(new MutableObject<String>().getValue());
38
39 final Integer i = Integer.valueOf(6);
40 assertSame(i, new MutableObject<>(i).getValue());
41 assertSame("HI", new MutableObject<>("HI").getValue());
42 assertSame(null, new MutableObject<>(null).getValue());
43 }
44
45 @Test
46 public 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
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 public void testGetSet() {
72 final MutableObject<String> mutNum = new MutableObject<>();
73 assertNull(new MutableObject<>().getValue());
74
75 mutNum.setValue("HELLO");
76 assertSame("HELLO", mutNum.getValue());
77
78 mutNum.setValue(null);
79 assertSame(null, mutNum.getValue());
80 }
81
82 @Test
83 public void testHashCode() {
84 final MutableObject<String> mutNumA = new MutableObject<>("ALPHA");
85 final MutableObject<String> mutNumB = new MutableObject<>("ALPHA");
86 final MutableObject<String> mutNumC = new MutableObject<>("BETA");
87 final MutableObject<String> mutNumD = new MutableObject<>(null);
88
89 assertEquals(mutNumA.hashCode(), mutNumA.hashCode());
90 assertEquals(mutNumA.hashCode(), mutNumB.hashCode());
91 assertNotEquals(mutNumA.hashCode(), mutNumC.hashCode());
92 assertNotEquals(mutNumA.hashCode(), mutNumD.hashCode());
93 assertEquals(mutNumA.hashCode(), "ALPHA".hashCode());
94 assertEquals(0, mutNumD.hashCode());
95 }
96
97 @Test
98 public void testToString() {
99 assertEquals("HI", new MutableObject<>("HI").toString());
100 assertEquals("10.0", new MutableObject<>(Double.valueOf(10)).toString());
101 assertEquals("null", new MutableObject<>(null).toString());
102 }
103
104 }