1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.lang3.function;
19
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertNotNull;
22 import static org.junit.jupiter.api.Assertions.assertThrows;
23
24 import java.io.IOException;
25 import java.util.concurrent.atomic.AtomicInteger;
26 import java.util.concurrent.atomic.AtomicReference;
27
28 import org.apache.commons.lang3.AbstractLangTest;
29 import org.junit.jupiter.api.Test;
30
31
32
33
34 class FailableObjIntConsumerTest extends AbstractLangTest {
35
36 @Test
37 void testAccept_invokesConsumer() throws IOException {
38 final AtomicReference<String> objRef = new AtomicReference<>();
39 final AtomicInteger valRef = new AtomicInteger();
40 final FailableObjIntConsumer<String, IOException> consumer = (o, v) -> {
41 objRef.set(o);
42 valRef.set(v);
43 };
44 consumer.accept("hello", 42);
45 assertEquals("hello", objRef.get());
46 assertEquals(42, valRef.get());
47 }
48
49 @Test
50 void testAccept_throwsException() {
51 final IOException expected = new IOException("fail");
52 final FailableObjIntConsumer<String, IOException> consumer = (o, v) -> {
53 throw expected;
54 };
55 final IOException thrown = assertThrows(IOException.class, () -> consumer.accept("x", 1));
56 assertEquals(expected, thrown);
57 }
58
59 @Test
60 void testNop_acceptDoesNothing() throws Throwable {
61 FailableObjIntConsumer.nop().accept("x", 1);
62 }
63
64 @Test
65 void testNop_returnsNonNull() {
66 assertNotNull(FailableObjIntConsumer.nop());
67 }
68 }