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.apache.juneau.junit.bct.BctAssertions.*;
21 import static org.junit.jupiter.api.Assertions.*;
22
23 import org.apache.juneau.*;
24 import org.junit.jupiter.api.*;
25
26 class ShortValue_Test extends TestBase {
27
28
29
30
31
32 @Test
33 void a01_create() {
34 var v = ShortValue.create();
35 assertEquals((short)0, v.get());
36 }
37
38 @Test
39 void a02_of() {
40 var v = ShortValue.of((short)42);
41 assertEquals((short)42, v.get());
42 }
43
44 @Test
45 void a03_constructor() {
46 var v = new ShortValue((short)100);
47 assertEquals((short)100, v.get());
48 }
49
50 @Test
51 void a04_constructor_withNull() {
52 var v = new ShortValue(null);
53 assertNull(v.get());
54 }
55
56
57
58
59
60 @Test
61 void b01_getAndIncrement_basic() {
62 var v = ShortValue.of((short)5);
63 assertEquals((short)5, v.getAndIncrement());
64 assertEquals((short)6, v.get());
65 }
66
67 @Test
68 void b02_getAndIncrement_fromZero() {
69 var v = ShortValue.create();
70 assertEquals((short)0, v.getAndIncrement());
71 assertEquals((short)1, v.get());
72 }
73
74 @Test
75 void b03_getAndIncrement_multiple() {
76 var v = ShortValue.of((short)1);
77 assertEquals((short)1, v.getAndIncrement());
78 assertEquals((short)2, v.getAndIncrement());
79 assertEquals((short)3, v.getAndIncrement());
80 assertEquals((short)4, v.get());
81 }
82
83 @Test
84 void b04_getAndIncrement_withNull() {
85 var v = new ShortValue(null);
86 assertEquals((short)0, v.getAndIncrement());
87 assertEquals((short)1, v.get());
88 }
89
90
91
92
93
94 @Test
95 void c01_set() {
96 var v = ShortValue.create();
97 v.set((short)50);
98 assertEquals((short)50, v.get());
99 }
100
101 @Test
102 void c02_setIfEmpty() {
103 var v = new ShortValue(null);
104 v.setIfEmpty((short)10);
105 assertEquals((short)10, v.get());
106
107 v.setIfEmpty((short)20);
108 assertEquals((short)10, v.get());
109 }
110
111 @Test
112 void c03_orElse() {
113 var v = new ShortValue(null);
114 assertEquals((short)99, v.orElse((short)99));
115
116 v.set((short)42);
117 assertEquals((short)42, v.orElse((short)99));
118 }
119
120 @Test
121 void c04_map() {
122 var v = ShortValue.of((short)5);
123 Value<Short> v2 = v.map(x -> (short)(x * 2));
124 assertEquals((short)10, v2.get());
125 }
126
127 @Test
128 void c05_ifPresent() {
129 var v = ShortValue.of((short)7);
130 var sb = new StringBuilder();
131 v.ifPresent(x -> sb.append(x));
132 assertEquals("7", sb.toString());
133 }
134
135 @Test
136 void c06_isPresent() {
137 var v = new ShortValue(null);
138 assertFalse(v.isPresent());
139
140 v.set((short)1);
141 assertTrue(v.isPresent());
142 }
143
144 @Test
145 void c07_isEmpty() {
146 var v = new ShortValue(null);
147 assertEmpty(v);
148
149 v.set((short)1);
150 assertNotEmpty(v);
151 }
152
153 @Test
154 void c08_getAndSet() {
155 var v = ShortValue.of((short)10);
156 assertEquals((short)10, v.getAndSet((short)20));
157 assertEquals((short)20, v.get());
158 }
159
160 @Test
161 void c09_getAndUnset() {
162 var v = ShortValue.of((short)15);
163 assertEquals((short)15, v.getAndUnset());
164 assertNull(v.get());
165 }
166
167
168
169
170
171 @Test
172 void d01_countingInLambda() {
173 var counter = ShortValue.create();
174
175 l(1, 2, 3, 4, 5).forEach(x -> {
176 if (x % 2 == 0) {
177 counter.getAndIncrement();
178 }
179 });
180
181 assertEquals((short)2, counter.get());
182 }
183
184 @Test
185 void d02_trackingMaxValue() {
186 var max = ShortValue.of((short)0);
187
188 l((short)5, (short)12, (short)3, (short)8, (short)20, (short)1).forEach(x -> {
189 if (x > max.get()) {
190 max.set(x);
191 }
192 });
193
194 assertEquals((short)20, max.get());
195 }
196
197 @Test
198 void d03_accumulatingValues() {
199 var sum = ShortValue.create();
200
201 l((short)1, (short)2, (short)3, (short)4, (short)5).forEach(x -> {
202 sum.set((short)(sum.get() + x));
203 });
204
205 assertEquals((short)15, sum.get());
206 }
207
208
209
210
211
212 @Test
213 void e01_increment() {
214 var v = ShortValue.of((short)5);
215 v.increment();
216 assertEquals((short)6, v.get());
217 }
218
219 @Test
220 void e02_increment_fromNull() {
221 var v = new ShortValue(null);
222 v.increment();
223 assertEquals((short)1, v.get());
224 }
225
226 @Test
227 void e03_decrement() {
228 var v = ShortValue.of((short)5);
229 v.decrement();
230 assertEquals((short)4, v.get());
231 }
232
233 @Test
234 void e04_decrement_fromNull() {
235 var v = new ShortValue(null);
236 v.decrement();
237 assertEquals((short)-1, v.get());
238 }
239
240 @Test
241 void e05_incrementAndGet() {
242 var v = ShortValue.of((short)5);
243 var result = v.incrementAndGet();
244 assertEquals((short)6, result);
245 assertEquals((short)6, v.get());
246 }
247
248 @Test
249 void e06_incrementAndGet_fromNull() {
250 var v = new ShortValue(null);
251 var result = v.incrementAndGet();
252 assertEquals((short)1, result);
253 assertEquals((short)1, v.get());
254 }
255
256 @Test
257 void e07_decrementAndGet() {
258 var v = ShortValue.of((short)5);
259 var result = v.decrementAndGet();
260 assertEquals((short)4, result);
261 assertEquals((short)4, v.get());
262 }
263
264 @Test
265 void e08_decrementAndGet_fromNull() {
266 var v = new ShortValue(null);
267 var result = v.decrementAndGet();
268 assertEquals((short)-1, result);
269 assertEquals((short)-1, v.get());
270 }
271
272
273
274
275
276 @Test
277 void f01_add() {
278 var v = ShortValue.of((short)10);
279 v.add((short)5);
280 assertEquals((short)15, v.get());
281 }
282
283 @Test
284 void f02_add_withNullValue() {
285 var v = ShortValue.of((short)10);
286 v.add(null);
287 assertEquals((short)10, v.get());
288 }
289
290 @Test
291 void f03_add_toNullValue() {
292 var v = new ShortValue(null);
293 v.add((short)5);
294 assertEquals((short)5, v.get());
295 }
296
297 @Test
298 void f04_add_bothNull() {
299 var v = new ShortValue(null);
300 v.add(null);
301 assertEquals((short)0, v.get());
302 }
303
304 @Test
305 void f05_addAndGet() {
306 var v = ShortValue.of((short)10);
307 var result = v.addAndGet((short)5);
308 assertEquals((short)15, result);
309 assertEquals((short)15, v.get());
310 }
311
312 @Test
313 void f06_addAndGet_withNullValue() {
314 var v = ShortValue.of((short)10);
315 var result = v.addAndGet(null);
316 assertEquals((short)10, result);
317 assertEquals((short)10, v.get());
318 }
319
320 @Test
321 void f07_addAndGet_toNullValue() {
322 var v = new ShortValue(null);
323 var result = v.addAndGet((short)5);
324 assertEquals((short)5, result);
325 assertEquals((short)5, v.get());
326 }
327
328
329
330
331
332 @Test
333 void g01_is() {
334 var v = ShortValue.of((short)42);
335 assertTrue(v.is((short)42));
336 assertFalse(v.is((short)43));
337 assertFalse(v.is(null));
338 }
339
340 @Test
341 void g02_is_withNullValue() {
342 var v = new ShortValue(null);
343 assertFalse(v.is((short)42));
344 assertTrue(v.is(null));
345 }
346
347 @Test
348 void g03_isAny() {
349 var v = ShortValue.of((short)5);
350 assertTrue(v.isAny((short)3, (short)5, (short)7));
351 assertTrue(v.isAny((short)5));
352 assertFalse(v.isAny((short)1, (short)2));
353 assertFalse(v.isAny());
354 }
355
356 @Test
357 void g04_isAny_nullValue() {
358 var v = new ShortValue(null);
359 assertFalse(v.isAny((short)1, (short)2, (short)3));
360 assertTrue(v.isAny((Short)null));
361 assertTrue(v.isAny((short)1, null, (short)2));
362 }
363 }
364