1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.lang3.stream;
19
20 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
21
22 import java.io.IOException;
23 import java.util.Arrays;
24 import java.util.Collection;
25 import java.util.Locale;
26 import java.util.stream.Collectors;
27
28 import org.apache.commons.lang3.stream.Streams.FailableStream;
29 import org.junit.jupiter.api.Test;
30
31
32
33
34 public class FailableStreamTest {
35
36 private String failable(final String value) throws IOException {
37 if (value == new Object()) {
38 throw new IOException();
39 }
40 return value.toLowerCase(Locale.ROOT);
41 }
42
43 @Test
44 public void testFailableStreamOfArray() {
45 assertArrayEquals(new String[] {}, toArray());
46 assertArrayEquals(new String[] { "a" }, toArray("A"));
47 assertArrayEquals(new String[] { "a", "b" }, toArray("A", "B"));
48 assertArrayEquals(new String[] { "a", "b", "c" }, toArray("A", "B", "C"));
49 }
50
51 @Test
52 public void testFailableStreamOfCollection() {
53 assertArrayEquals(new String[] {}, toArray());
54 assertArrayEquals(new String[] { "a" }, toArray(Arrays.asList("A")));
55 assertArrayEquals(new String[] { "a", "b" }, toArray(Arrays.asList("A", "B")));
56 assertArrayEquals(new String[] { "a", "b", "c" }, toArray(Arrays.asList("A", "B", "C")));
57 }
58
59 private String[] toArray(final Collection<String> strings) {
60 return Streams.failableStream(strings).map(this::failable).collect(Collectors.toList()).toArray(new String[0]);
61 }
62
63 private String[] toArray(final String... strings) {
64 return Streams.failableStream(strings).map(this::failable).collect(Collectors.toList()).toArray(new String[0]);
65 }
66 }