1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.lang3.concurrent;
18
19 import static org.junit.jupiter.api.Assertions.assertNull;
20
21 import java.util.concurrent.atomic.AtomicInteger;
22
23 import org.junit.jupiter.api.Test;
24
25
26
27
28 class AtomicInitializerNonObjectTest extends AbstractConcurrentInitializerTest<Integer> {
29
30
31
32
33
34
35 @Override
36 protected ConcurrentInitializer<Integer> createInitializer() {
37 return new AtomicInitializer<Integer>() {
38 @Override
39 protected Integer initialize() {
40 return Integer.valueOf(0);
41 }
42 };
43 }
44
45 @Test
46 void testGetThatReturnsNullFirstTime() throws ConcurrentException {
47 final AtomicInitializer<Integer> initializer = new AtomicInitializer<Integer>() {
48 final AtomicInteger firstRun = new AtomicInteger(1);
49
50 @Override
51 protected Integer initialize() {
52 if (firstRun.getAndSet(0) == 1) {
53 return null;
54 }
55 return Integer.valueOf(0);
56 }
57 };
58 assertNull(initializer.get());
59 assertNull(initializer.get());
60 }
61 }