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.filterLeft;
26 import static org.junit.Assert.assertEquals;
27 import static org.junit.Assert.assertFalse;
28
29 public class FilterLeftTest {
30 @Test public void rightOnlyFiltersLeftToEmpty() {
31 final List<Either<Integer, String>> it = Arrays.asList(Either.<Integer, String> right("one"), Either.<Integer, String> right("three"),
32 Either.<Integer, String> right("2"));
33
34 assertFalse(filterLeft(it).iterator().hasNext());
35 }
36
37 @Test public void leftOnlyFiltersLeftToSameContents() {
38 final List<Either<Integer, String>> it = Arrays.asList(Either.<Integer, String> left(1), Either.<Integer, String> left(333),
39 Either.<Integer, String> left(22));
40
41 final Iterator<Integer> lefts = filterLeft(it).iterator();
42 for (final Either<Integer, String> i : it) {
43
44
45
46 assertEquals(i.left().get(), lefts.next());
47 }
48 }
49
50 @Test public void mixedEithersFiltersLeftToExpectedContents() {
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<Integer> iterator = filterLeft(it).iterator();
55 assertEquals(new Integer(1), iterator.next());
56 assertEquals(new Integer(22), iterator.next());
57 assertFalse(iterator.hasNext());
58 }
59
60 @Test public void emptyIterableFiltersLeftToEmptyIterable() {
61 assertFalse(filterLeft(Collections.<Either<Integer, String>> emptyList()).iterator().hasNext());
62 }
63 }