1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.atlassian.fugue;
17
18 import org.junit.Test;
19
20 import java.util.Arrays;
21 import java.util.Collections;
22 import java.util.Iterator;
23 import java.util.List;
24
25 import static io.atlassian.fugue.Eithers.filterRight;
26 import static org.junit.Assert.assertEquals;
27 import static org.junit.Assert.assertFalse;
28
29 public class FilterRightTest {
30 @Test public void leftOnlyFiltersRightToEmpty() {
31 final List<Either<Integer, String>> it = Arrays.asList(Either.<Integer, String> left(1), Either.<Integer, String> left(333),
32 Either.<Integer, String> left(22));
33
34 assertFalse(filterRight(it).iterator().hasNext());
35 }
36
37 @Test public void rightOnlyFiltersRightToSameContents() {
38 final List<Either<Integer, String>> it = Arrays.asList(Either.<Integer, String> right("one"), Either.<Integer, String> right("three"),
39 Either.<Integer, String> right("2"));
40
41 final Iterator<String> rights = filterRight(it).iterator();
42 for (final Either<Integer, String> i : it) {
43
44
45
46 assertEquals(i.right().get(), rights.next());
47 }
48 }
49
50 @Test public void mixedEithersFiltersRightToExpectedContents() {
51 final List<Either<Integer, String>> it = Arrays.asList(Either.<Integer, String> left(1), Either.<Integer, String> right("three"),
52 Either.<Integer, String> right("fore"), Either.<Integer, String> left(22));
53
54 final Iterator<String> iterator = filterRight(it).iterator();
55 assertEquals("three", iterator.next());
56 assertEquals("fore", iterator.next());
57 assertFalse(iterator.hasNext());
58 }
59
60 @Test public void emptyIterableFiltersRightToEmptyIterable() {
61 assertFalse(filterRight(Collections.<Either<Integer, String>> emptyList()).iterator().hasNext());
62 }
63 }