1 package com.github.davidmoten.guavamini;
2
3 import static org.junit.Assert.assertEquals;
4 import static org.junit.Assert.assertFalse;
5 import static org.junit.Assert.assertNull;
6 import static org.junit.Assert.assertTrue;
7
8 import org.junit.Test;
9
10 import com.github.davidmoten.guavamini.Optional.NotPresentException;
11
12 public class OptionalTest {
13
14 @Test
15 public void testOf() {
16 assertEquals(1L, (long) Optional.of(1L).get());
17 }
18
19 @Test(expected = NotPresentException.class)
20 public void testAbsentGetThrowsException() {
21 Optional.<Long> absent().get();
22 }
23
24 @Test
25 public void testOfNullIsOk() {
26 assertNull(Optional.of(null).get());
27 }
28
29 @Test
30 public void testOfIsPresent() {
31 assertTrue(Optional.of(1).isPresent());
32 }
33
34 @Test
35 public void testAbsentIsNotPresent() {
36 assertFalse(Optional.absent().isPresent());
37 }
38
39 @Test
40 public void testFromNullableFromNullReturnsAbsent() {
41 assertFalse(Optional.fromNullable(null).isPresent());
42 }
43
44 @Test
45 public void testFromNullableFromNonNullReturnsPresent() {
46 assertTrue(Optional.fromNullable(1).isPresent());
47 }
48
49 @Test
50 public void testOrWhenPresent() {
51 assertEquals(1L, (long) Optional.of(1).or(2));
52 }
53
54 @Test
55 public void testOrWhenNotPresent() {
56 assertEquals(2L, (long) Optional.<Long> absent().or(2L));
57 }
58
59 @Test
60 public void testToStringWhenAbsent() {
61 assertEquals("Optional.absent", Optional.absent().toString());
62 }
63
64 @Test
65 public void testToStringWhenPresent() {
66 assertEquals("Optional.of(1)", Optional.of(1).toString());
67 }
68
69 }