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
22 import java.util.concurrent.atomic.AtomicReference;
23
24 import org.apache.commons.lang3.AbstractLangTest;
25 import org.junit.jupiter.api.Test;
26
27
28
29
30 public class TriConsumerTest extends AbstractLangTest {
31
32 @Test
33 public void testAccept() throws Throwable {
34 final AtomicReference<Character> ref1 = new AtomicReference<>();
35 final AtomicReference<Short> ref2 = new AtomicReference<>();
36 final AtomicReference<String> ref3 = new AtomicReference<>();
37 final TriConsumer<AtomicReference<Character>, AtomicReference<Short>, AtomicReference<String>> tri = (t, u,
38 v) -> {
39 ref1.set(Character.valueOf('a'));
40 ref2.set(Short.valueOf((short) 1));
41 ref3.set("z");
42 };
43 tri.accept(ref1, ref2, ref3);
44 assertEquals(Character.valueOf('a'), ref1.get());
45 assertEquals(Short.valueOf((short) 1), ref2.get());
46 assertEquals("z", ref3.get());
47 }
48
49 @Test
50 public void testAndThen() throws Throwable {
51 final AtomicReference<Character> ref1 = new AtomicReference<>();
52 final AtomicReference<Short> ref2 = new AtomicReference<>();
53 final AtomicReference<String> ref3 = new AtomicReference<>();
54 final TriConsumer<AtomicReference<Character>, AtomicReference<Short>, AtomicReference<String>> tri = (t, u,
55 v) -> {
56 ref1.set(Character.valueOf('a'));
57 ref2.set(Short.valueOf((short) 1));
58 ref3.set("z");
59 };
60 final TriConsumer<AtomicReference<Character>, AtomicReference<Short>, AtomicReference<String>> triAfter = (t, u,
61 v) -> {
62 ref1.set(Character.valueOf('b'));
63 ref2.set(Short.valueOf((short) 2));
64 ref3.set("zz");
65 };
66 tri.andThen(triAfter).accept(ref1, ref2, ref3);
67 assertEquals(Character.valueOf('b'), ref1.get());
68 assertEquals(Short.valueOf((short) 2), ref2.get());
69 assertEquals("zz", ref3.get());
70 }
71
72 }