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 MutableByteTest extends AbstractLangTest {
32
33 @Test
34 public 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 public 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 public 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 public 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 public 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 public void testCompareToNull() {
78 final MutableByte mutNum = new MutableByte((byte) 0);
79 assertThrows(NullPointerException.class, () -> mutNum.compareTo(null));
80 }
81
82 @Test
83 public void testConstructorNull() {
84 assertThrows(NullPointerException.class, () -> new MutableByte((Number) null));
85 }
86
87 @Test
88 public 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 public 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 public 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 public 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 public 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 public 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 public 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 public 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 public 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().getValue());
180
181 mutNum.setValue((byte) 1);
182 assertEquals((byte) 1, mutNum.byteValue());
183 assertEquals(Byte.valueOf((byte) 1), mutNum.getValue());
184
185 mutNum.setValue(Byte.valueOf((byte) 2));
186 assertEquals((byte) 2, mutNum.byteValue());
187 assertEquals(Byte.valueOf((byte) 2), mutNum.getValue());
188
189 mutNum.setValue(new MutableByte((byte) 3));
190 assertEquals((byte) 3, mutNum.byteValue());
191 assertEquals(Byte.valueOf((byte) 3), mutNum.getValue());
192 }
193
194 @Test
195 public void testHashCode() {
196 final MutableByte mutNumA = new MutableByte((byte) 0);
197 final MutableByte mutNumB = new MutableByte((byte) 0);
198 final MutableByte mutNumC = new MutableByte((byte) 1);
199
200 assertEquals(mutNumA.hashCode(), mutNumA.hashCode());
201 assertEquals(mutNumA.hashCode(), mutNumB.hashCode());
202 assertNotEquals(mutNumA.hashCode(), mutNumC.hashCode());
203 assertEquals(mutNumA.hashCode(), Byte.valueOf((byte) 0).hashCode());
204 }
205
206 @Test
207 public void testIncrement() {
208 final MutableByte mutNum = new MutableByte((byte) 1);
209 mutNum.increment();
210
211 assertEquals(2, mutNum.intValue());
212 assertEquals(2L, mutNum.longValue());
213 }
214
215 @Test
216 public void testIncrementAndGet() {
217 final MutableByte mutNum = new MutableByte((byte) 1);
218 final byte result = mutNum.incrementAndGet();
219
220 assertEquals(2, result);
221 assertEquals(2, mutNum.intValue());
222 assertEquals(2L, mutNum.longValue());
223 }
224
225 @Test
226 public void testPrimitiveValues() {
227 final MutableByte mutNum = new MutableByte( (byte) 1 );
228 assertEquals(1.0F, mutNum.floatValue());
229 assertEquals(1.0, mutNum.doubleValue());
230 assertEquals( (byte) 1, mutNum.byteValue() );
231 assertEquals( (short) 1, mutNum.shortValue() );
232 assertEquals( 1, mutNum.intValue() );
233 assertEquals( 1L, mutNum.longValue() );
234 }
235
236 @Test
237 public void testSetNull() {
238 final MutableByte mutNum = new MutableByte((byte) 0);
239 assertThrows(NullPointerException.class, () -> mutNum.setValue(null));
240 }
241
242 @Test
243 public void testSubtractValueObject() {
244 final MutableByte mutNum = new MutableByte((byte) 1);
245 mutNum.subtract(Integer.valueOf(1));
246
247 assertEquals((byte) 0, mutNum.byteValue());
248 }
249
250 @Test
251 public void testSubtractValuePrimitive() {
252 final MutableByte mutNum = new MutableByte((byte) 1);
253 mutNum.subtract((byte) 1);
254
255 assertEquals((byte) 0, mutNum.byteValue());
256 }
257
258 @Test
259 public void testToByte() {
260 assertEquals(Byte.valueOf((byte) 0), new MutableByte((byte) 0).toByte());
261 assertEquals(Byte.valueOf((byte) 123), new MutableByte((byte) 123).toByte());
262 }
263
264 @Test
265 public void testToString() {
266 assertEquals("0", new MutableByte((byte) 0).toString());
267 assertEquals("10", new MutableByte((byte) 10).toString());
268 assertEquals("-123", new MutableByte((byte) -123).toString());
269 }
270
271 }