1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.io.function;
19
20 import static org.junit.jupiter.api.Assertions.assertEquals;
21 import static org.junit.jupiter.api.Assertions.assertThrows;
22
23 import java.io.IOException;
24 import java.io.UncheckedIOException;
25 import java.util.HashMap;
26 import java.util.Map;
27 import java.util.concurrent.atomic.AtomicReference;
28
29 import org.junit.jupiter.api.Test;
30
31
32
33
34 public class IOBiConsumerTest {
35
36 @Test
37 public void testAccept() throws IOException {
38 final AtomicReference<String> ref = new AtomicReference<>();
39 final IOBiConsumer<String, Integer> biConsumer = (s, i) -> ref.set(s + i);
40 biConsumer.accept("A", 1);
41 assertEquals("A1", ref.get());
42 }
43
44 @Test
45 public void testAndThen() throws IOException {
46 final AtomicReference<String> ref = new AtomicReference<>();
47 final IOBiConsumer<String, Integer> biConsumer1 = (s, i) -> ref.set(s + i);
48 final IOBiConsumer<String, Integer> biConsumer2 = (s, i) -> ref.set(ref.get() + i + s);
49 biConsumer1.andThen(biConsumer2).accept("B", 2);
50 assertEquals("B22B", ref.get());
51 }
52
53 @Test
54 public void testAsBiConsumer() {
55 final Map<String, Integer> map = new HashMap<>();
56 map.put("a", 1);
57 assertThrows(UncheckedIOException.class, () -> map.forEach(TestConstants.THROWING_IO_BI_CONSUMER.asBiConsumer()));
58 final AtomicReference<String> ref = new AtomicReference<>();
59 final IOBiConsumer<String, Integer> consumer1 = (t, u) -> ref.set(t + u);
60 map.forEach(consumer1.asBiConsumer());
61 assertEquals("a1", ref.get());
62 }
63
64 @Test
65 public void testNoopIOConsumer() throws IOException {
66 IOBiConsumer.noop().accept(null, null);
67 }
68
69 }