Merge branch 'release/0.9-rc1'
[Sone.git] / src / test / java / net / pterodactylus / sone / utils / OptionalsTest.java
1 package net.pterodactylus.sone.utils;
2
3 import java.util.Arrays;
4 import java.util.List;
5
6 import com.google.common.base.Optional;
7 import com.google.common.collect.FluentIterable;
8 import org.hamcrest.MatcherAssert;
9 import org.hamcrest.Matchers;
10 import org.junit.Test;
11
12 /**
13  * Unit test for {@link Optionals}.
14  *
15  * @author <a href="mailto:bombe@pterodactylus.net">David ‘Bombe’ Roden</a>
16  */
17 public class OptionalsTest {
18
19         private final Object object1 = new Object();
20         private final Object object2 = new Object();
21         private final Object object3 = new Object();
22
23         @Test
24         public void canCreateOptionals() {
25                 new Optionals();
26         }
27
28         @Test
29         public void isPresentFiltersCorrectOptionals() {
30                 List<Optional<Object>> optionals = Arrays.asList(
31                                 Optional.of(object1), Optional.absent(),
32                                 Optional.of(object2), Optional.absent(),
33                                 Optional.of(object3), Optional.absent()
34                 );
35                 List<Optional<Object>> filteredOptionals =
36                                 FluentIterable.from(optionals).filter(Optionals.isPresent()).toList();
37                 MatcherAssert.assertThat(filteredOptionals, Matchers.contains(
38                                 Optional.of(object1), Optional.of(object2), Optional.of(object3)));
39         }
40
41         @Test
42         public void getReturnsCorrectValues() {
43                 List<Optional<Object>> optionals = Arrays.asList(
44                                 Optional.of(object1),
45                                 Optional.of(object2),
46                                 Optional.of(object3)
47                 );
48                 List<Object> objects = FluentIterable.from(optionals).transform(Optionals.get()).toList();
49                 MatcherAssert.assertThat(objects, Matchers.contains(object1, object2, object3));
50         }
51
52 }