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 public class MutableObjectTest extends AbstractLangTest {
33
34 @Test
35 public void testConstructors() {
36 assertNull(new MutableObject<String>().getValue());
37
38 final Integer i = Integer.valueOf(6);
39 assertSame(i, new MutableObject<>(i).getValue());
40 assertSame("HI", new MutableObject<>("HI").getValue());
41 assertSame(null, new MutableObject<>(null).getValue());
42 }
43
44 @Test
45 public void testEquals() {
46 final MutableObject<String> mutNumA = new MutableObject<>("ALPHA");
47 final MutableObject<String> mutNumB = new MutableObject<>("ALPHA");
48 final MutableObject<String> mutNumC = new MutableObject<>("BETA");
49 final MutableObject<String> mutNumNull1 = new MutableObject<>(null);
50 final MutableObject<String> mutNumNull2 = new MutableObject<>(null);
51
52 assertEquals(mutNumA, mutNumA);
53 assertEquals(mutNumA, mutNumB);
54 assertEquals(mutNumB, mutNumA);
55 assertEquals(mutNumB, mutNumB);
56 assertNotEquals(mutNumA, mutNumC);
57 assertNotEquals(mutNumB, mutNumC);
58 assertEquals(mutNumC, mutNumC);
59 assertNotEquals(mutNumA, mutNumNull1);
60 assertEquals(mutNumNull1, mutNumNull1);
61 assertEquals(mutNumNull1, mutNumNull2);
62 assertEquals(mutNumNull2, mutNumNull1);
63
64 assertNotEquals(null, mutNumA);
65 assertNotEquals(mutNumA, new Object());
66 assertNotEquals("0", mutNumA);
67 }
68
69 @Test
70 public void testGetSet() {
71 final MutableObject<String> mutNum = new MutableObject<>();
72 assertNull(new MutableObject<>().getValue());
73
74 mutNum.setValue("HELLO");
75 assertSame("HELLO", mutNum.getValue());
76
77 mutNum.setValue(null);
78 assertSame(null, mutNum.getValue());
79 }
80
81 @Test
82 public void testHashCode() {
83 final MutableObject<String> mutNumA = new MutableObject<>("ALPHA");
84 final MutableObject<String> mutNumB = new MutableObject<>("ALPHA");
85 final MutableObject<String> mutNumC = new MutableObject<>("BETA");
86 final MutableObject<String> mutNumD = new MutableObject<>(null);
87
88 assertEquals(mutNumA.hashCode(), mutNumA.hashCode());
89 assertEquals(mutNumA.hashCode(), mutNumB.hashCode());
90 assertNotEquals(mutNumA.hashCode(), mutNumC.hashCode());
91 assertNotEquals(mutNumA.hashCode(), mutNumD.hashCode());
92 assertEquals(mutNumA.hashCode(), "ALPHA".hashCode());
93 assertEquals(0, mutNumD.hashCode());
94 }
95
96 @Test
97 public void testToString() {
98 assertEquals("HI", new MutableObject<>("HI").toString());
99 assertEquals("10.0", new MutableObject<>(Double.valueOf(10)).toString());
100 assertEquals("null", new MutableObject<>(null).toString());
101 }
102
103 }