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.apache.commons.lang3.LangAssertions.assertNullPointerException;
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertNotEquals;
22
23 import org.apache.commons.lang3.AbstractLangTest;
24 import org.junit.jupiter.api.Test;
25
26
27
28
29
30
31 class MutableLongTest extends AbstractLangTest {
32
33 @Test
34 void testAddAndGetValueObject() {
35 final MutableLong mutableLong = new MutableLong(0L);
36 final long result = mutableLong.addAndGet(Long.valueOf(1L));
37
38 assertEquals(1L, result);
39 assertEquals(1L, mutableLong.longValue());
40 }
41
42 @Test
43 void testAddAndGetValuePrimitive() {
44 final MutableLong mutableLong = new MutableLong(0L);
45 final long result = mutableLong.addAndGet(1L);
46
47 assertEquals(1L, result);
48 assertEquals(1L, mutableLong.longValue());
49 }
50
51 @Test
52 void testAddValueObject() {
53 final MutableLong mutNum = new MutableLong(1);
54 mutNum.add(Long.valueOf(1));
55
56 assertEquals(2, mutNum.intValue());
57 assertEquals(2L, mutNum.longValue());
58 }
59
60 @Test
61 void testAddValuePrimitive() {
62 final MutableLong mutNum = new MutableLong(1);
63 mutNum.add(1);
64
65 assertEquals(2, mutNum.intValue());
66 assertEquals(2L, mutNum.longValue());
67 }
68
69 @Test
70 void testCompareTo() {
71 final MutableLong mutNum = new MutableLong(0);
72
73 assertEquals(0, mutNum.compareTo(new MutableLong(0)));
74 assertEquals(+1, mutNum.compareTo(new MutableLong(-1)));
75 assertEquals(-1, mutNum.compareTo(new MutableLong(1)));
76 }
77
78 @Test
79 void testCompareToNull() {
80 final MutableLong mutNum = new MutableLong(0);
81 assertNullPointerException(() -> mutNum.compareTo(null));
82 }
83
84 @Test
85 void testConstructorNull() {
86 assertNullPointerException(() -> new MutableLong((Number) null));
87 }
88
89 @Test
90 void testConstructors() {
91 assertEquals(0, new MutableLong().longValue());
92
93 assertEquals(1, new MutableLong(1).longValue());
94
95 assertEquals(2, new MutableLong(Long.valueOf(2)).longValue());
96 assertEquals(3, new MutableLong(new MutableLong(3)).longValue());
97
98 assertEquals(2, new MutableLong("2").longValue());
99
100 }
101
102 @Test
103 void testDecrement() {
104 final MutableLong mutNum = new MutableLong(1);
105 mutNum.decrement();
106
107 assertEquals(0, mutNum.intValue());
108 assertEquals(0L, mutNum.longValue());
109 }
110
111 @Test
112 void testDecrementAndGet() {
113 final MutableLong mutNum = new MutableLong(1L);
114 final long result = mutNum.decrementAndGet();
115
116 assertEquals(0, result);
117 assertEquals(0, mutNum.intValue());
118 assertEquals(0L, mutNum.longValue());
119 }
120
121 @Test
122 void testEquals() {
123 final MutableLong mutNumA = new MutableLong(0);
124 final MutableLong mutNumB = new MutableLong(0);
125 final MutableLong mutNumC = new MutableLong(1);
126
127 assertEquals(mutNumA, mutNumA);
128 assertEquals(mutNumA, mutNumB);
129 assertEquals(mutNumB, mutNumA);
130 assertEquals(mutNumB, mutNumB);
131 assertNotEquals(mutNumA, mutNumC);
132 assertNotEquals(mutNumB, mutNumC);
133 assertEquals(mutNumC, mutNumC);
134 assertNotEquals(null, mutNumA);
135 assertNotEquals(mutNumA, Long.valueOf(0));
136 assertNotEquals("0", mutNumA);
137 }
138
139 @Test
140 void testGetAndAddValueObject() {
141 final MutableLong mutableLong = new MutableLong(0L);
142 final long result = mutableLong.getAndAdd(Long.valueOf(1L));
143
144 assertEquals(0L, result);
145 assertEquals(1L, mutableLong.longValue());
146 }
147
148 @Test
149 void testGetAndAddValuePrimitive() {
150 final MutableLong mutableLong = new MutableLong(0L);
151 final long result = mutableLong.getAndAdd(1L);
152
153 assertEquals(0L, result);
154 assertEquals(1L, mutableLong.longValue());
155 }
156
157 @Test
158 void testGetAndDecrement() {
159 final MutableLong mutNum = new MutableLong(1L);
160 final long result = mutNum.getAndDecrement();
161
162 assertEquals(1, result);
163 assertEquals(0, mutNum.intValue());
164 assertEquals(0L, mutNum.longValue());
165 }
166
167 @Test
168 void testGetAndIncrement() {
169 final MutableLong mutNum = new MutableLong(1L);
170 final long result = mutNum.getAndIncrement();
171
172 assertEquals(1, result);
173 assertEquals(2, mutNum.intValue());
174 assertEquals(2L, mutNum.longValue());
175 }
176
177 @Test
178 void testGetSet() {
179 final MutableLong mutNum = new MutableLong(0);
180 assertEquals(0, new MutableLong().longValue());
181 assertEquals(Long.valueOf(0), new MutableLong().get());
182 assertEquals(Long.valueOf(0), new MutableLong().getValue());
183
184 mutNum.setValue(1);
185 assertEquals(1, mutNum.longValue());
186 assertEquals(Long.valueOf(1), mutNum.get());
187 assertEquals(Long.valueOf(1), mutNum.getValue());
188
189 mutNum.setValue(Long.valueOf(2));
190 assertEquals(2, mutNum.longValue());
191 assertEquals(Long.valueOf(2), mutNum.get());
192 assertEquals(Long.valueOf(2), mutNum.getValue());
193
194 mutNum.setValue(new MutableLong(3));
195 assertEquals(3, mutNum.longValue());
196 assertEquals(Long.valueOf(3), mutNum.get());
197 assertEquals(Long.valueOf(3), mutNum.getValue());
198 }
199
200 @Test
201 void testHashCode() {
202 final MutableLong mutNumA = new MutableLong(0);
203 final MutableLong mutNumB = new MutableLong(0);
204 final MutableLong mutNumC = new MutableLong(1);
205
206 assertEquals(mutNumA.hashCode(), mutNumA.hashCode());
207 assertEquals(mutNumA.hashCode(), mutNumB.hashCode());
208 assertNotEquals(mutNumA.hashCode(), mutNumC.hashCode());
209 assertEquals(mutNumA.hashCode(), Long.valueOf(0).hashCode());
210 }
211
212 @Test
213 void testIncrement() {
214 final MutableLong mutNum = new MutableLong(1);
215 mutNum.increment();
216
217 assertEquals(2, mutNum.intValue());
218 assertEquals(2L, mutNum.longValue());
219 }
220
221 @Test
222 void testIncrementAndGet() {
223 final MutableLong mutNum = new MutableLong(1L);
224 final long result = mutNum.incrementAndGet();
225
226 assertEquals(2, result);
227 assertEquals(2, mutNum.intValue());
228 assertEquals(2L, mutNum.longValue());
229 }
230
231 @Test
232 void testPrimitiveValues() {
233 final MutableLong mutNum = new MutableLong(1L);
234 assertEquals(1.0F, mutNum.floatValue());
235 assertEquals(1.0, mutNum.doubleValue());
236 assertEquals((byte) 1, mutNum.byteValue());
237 assertEquals((short) 1, mutNum.shortValue());
238 assertEquals(1, mutNum.intValue());
239 assertEquals(1L, mutNum.longValue());
240 }
241
242 @Test
243 void testSetNull() {
244 final MutableLong mutNum = new MutableLong(0);
245 assertNullPointerException(() -> mutNum.setValue(null));
246 }
247
248 @Test
249 void testSubtractValueObject() {
250 final MutableLong mutNum = new MutableLong(1);
251 mutNum.subtract(Long.valueOf(1));
252
253 assertEquals(0, mutNum.intValue());
254 assertEquals(0L, mutNum.longValue());
255 }
256
257 @Test
258 void testSubtractValuePrimitive() {
259 final MutableLong mutNum = new MutableLong(1);
260 mutNum.subtract(1);
261
262 assertEquals(0, mutNum.intValue());
263 assertEquals(0L, mutNum.longValue());
264 }
265
266 @Test
267 void testToLong() {
268 assertEquals(Long.valueOf(0L), new MutableLong(0L).toLong());
269 assertEquals(Long.valueOf(123L), new MutableLong(123L).toLong());
270 }
271
272 @Test
273 void testToString() {
274 assertEquals("0", new MutableLong(0).toString());
275 assertEquals("10", new MutableLong(10).toString());
276 assertEquals("-123", new MutableLong(-123).toString());
277 }
278
279 }