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