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