1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.juneau.commons.lang;
18
19 import static org.apache.juneau.commons.utils.CollectionUtils.*;
20 import static org.junit.jupiter.api.Assertions.*;
21
22 import org.apache.juneau.*;
23 import org.junit.jupiter.api.*;
24
25 class ByteValue_Test extends TestBase {
26
27
28
29
30
31 @Test
32 void a01_create() {
33 var a = ByteValue.create();
34 assertEquals((byte)0, a.get());
35 assertTrue(a.isPresent());
36 }
37
38 @Test
39 void a02_of() {
40 var a = ByteValue.of((byte)42);
41 assertEquals((byte)42, a.get());
42 assertTrue(a.isPresent());
43 }
44
45 @Test
46 void a03_of_null() {
47 var a = ByteValue.of(null);
48 assertEquals((byte)0, a.get());
49 assertTrue(a.isPresent());
50 }
51
52 @Test
53 void a04_constructor_default() {
54 var a = new ByteValue();
55 assertEquals((byte)0, a.get());
56 }
57
58 @Test
59 void a05_constructor_withValue() {
60 var a = new ByteValue((byte)100);
61 assertEquals((byte)100, a.get());
62 }
63
64
65
66
67
68 @Test
69 void b01_increment() {
70 var a = ByteValue.of((byte)5);
71 a.increment();
72 assertEquals((byte)6, a.get());
73 }
74
75 @Test
76 void b02_decrement() {
77 var a = ByteValue.of((byte)5);
78 a.decrement();
79 assertEquals((byte)4, a.get());
80 }
81
82 @Test
83 void b03_incrementAndGet() {
84 var a = ByteValue.of((byte)5);
85 assertEquals((byte)6, a.incrementAndGet());
86 assertEquals((byte)6, a.get());
87 }
88
89 @Test
90 void b04_decrementAndGet() {
91 var a = ByteValue.of((byte)5);
92 assertEquals((byte)4, a.decrementAndGet());
93 assertEquals((byte)4, a.get());
94 }
95
96 @Test
97 void b05_increment_chain() {
98 var a = ByteValue.of((byte)0);
99 a.increment().increment().increment();
100 assertEquals((byte)3, a.get());
101 }
102
103 @Test
104 void b06_decrement_chain() {
105 var a = ByteValue.of((byte)10);
106 a.decrement().decrement().decrement();
107 assertEquals((byte)7, a.get());
108 }
109
110
111
112
113
114 @Test
115 void c01_add() {
116 var a = ByteValue.of((byte)10);
117 a.add((byte)5);
118 assertEquals((byte)15, a.get());
119 }
120
121 @Test
122 void c02_addAndGet() {
123 var a = ByteValue.of((byte)10);
124 assertEquals((byte)15, a.addAndGet((byte)5));
125 assertEquals((byte)15, a.get());
126 }
127
128 @Test
129 void c02b_addAndGet_null() {
130 var a = ByteValue.of((byte)10);
131 assertEquals((byte)10, a.addAndGet(null));
132 assertEquals((byte)10, a.get());
133 }
134
135 @Test
136 void c02c_addAndGet_negative() {
137 var a = ByteValue.of((byte)10);
138 assertEquals((byte)7, a.addAndGet((byte)-3));
139 assertEquals((byte)7, a.get());
140 }
141
142 @Test
143 void c02d_addAndGet_zero() {
144 var a = ByteValue.of((byte)10);
145 assertEquals((byte)10, a.addAndGet((byte)0));
146 assertEquals((byte)10, a.get());
147 }
148
149 @Test
150 void c03_add_null() {
151 var a = ByteValue.of((byte)10);
152 a.add(null);
153 assertEquals((byte)10, a.get());
154 }
155
156 @Test
157 void c04_add_chain() {
158 var a = ByteValue.of((byte)0);
159 a.add((byte)5).add((byte)10).add((byte)15);
160 assertEquals((byte)30, a.get());
161 }
162
163 @Test
164 void c05_add_negative() {
165 var a = ByteValue.of((byte)10);
166 a.add((byte)-3);
167 assertEquals((byte)7, a.get());
168 }
169
170
171
172
173
174 @Test
175 void d01_is_match() {
176 var a = ByteValue.of((byte)42);
177 assertTrue(a.is((byte)42));
178 }
179
180 @Test
181 void d02_is_noMatch() {
182 var a = ByteValue.of((byte)42);
183 assertFalse(a.is((byte)43));
184 }
185
186 @Test
187 void d03_isAny_match() {
188 var a = ByteValue.of((byte)5);
189 assertTrue(a.isAny((byte)3, (byte)5, (byte)7));
190 }
191
192 @Test
193 void d04_isAny_noMatch() {
194 var a = ByteValue.of((byte)5);
195 assertFalse(a.isAny((byte)1, (byte)2));
196 }
197
198 @Test
199 void d05_isAny_empty() {
200 var a = ByteValue.of((byte)5);
201 assertFalse(a.isAny());
202 }
203
204
205
206
207
208 @Test
209 void e01_setIf_true() {
210 var a = ByteValue.of((byte)10);
211 a.setIf(true, (byte)20);
212 assertEquals((byte)20, a.get());
213 }
214
215 @Test
216 void e02_setIf_false() {
217 var a = ByteValue.of((byte)10);
218 a.setIf(false, (byte)20);
219 assertEquals((byte)10, a.get());
220 }
221
222 @Test
223 void e03_update() {
224 var a = ByteValue.of((byte)10);
225 a.update(x -> (byte)(x * 2));
226 assertEquals((byte)20, a.get());
227 }
228
229 @Test
230 void e04_update_chain() {
231 var a = ByteValue.of((byte)2);
232 a.update(x -> (byte)(x * 2)).update(x -> (byte)(x + 1));
233 assertEquals((byte)5, a.get());
234 }
235
236
237
238
239
240 @Test
241 void f01_orElse() {
242 var a = ByteValue.of((byte)10);
243 assertEquals((byte)10, a.orElse((byte)99));
244
245 a.set(null);
246 assertEquals((byte)99, a.orElse((byte)99));
247 }
248
249 @Test
250 void f02_getAndSet() {
251 var a = ByteValue.of((byte)5);
252 var b = a.getAndSet((byte)10);
253 assertEquals((byte)5, b);
254 assertEquals((byte)10, a.get());
255 }
256
257
258
259
260
261 @Test
262 void g01_counter() {
263 var a = ByteValue.create();
264 for (var i = 0; i < 10; i++) {
265 a.increment();
266 }
267 assertEquals((byte)10, a.get());
268 }
269
270 @Test
271 void g02_accumulator() {
272 var a = ByteValue.create();
273 var list = l((byte)1, (byte)2, (byte)3, (byte)4, (byte)5);
274 list.forEach(a::add);
275 assertEquals((byte)15, a.get());
276 }
277
278 @Test
279 void g03_conditionalCounter() {
280 var a = ByteValue.create();
281 for (var i = 0; i < 20; i++) {
282 a.setIf(i % 2 == 0, (byte)(a.get() + 1));
283 }
284 assertEquals((byte)10, a.get());
285 }
286 }
287