Create Guava optional utility collection
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / utils / OptionalsTest.kt
1 package net.pterodactylus.sone.utils
2
3 import com.google.common.base.Optional
4 import org.hamcrest.MatcherAssert.assertThat
5 import org.hamcrest.Matchers.equalTo
6 import org.hamcrest.Matchers.nullValue
7 import org.junit.Test
8
9 /**
10  * Test for [Optional] utils.
11  */
12 class OptionalsTest {
13
14         @Test
15         fun `present optional can be transformed with let`() {
16                 val optional = Optional.of(1)
17                 assertThat(optional.let { it + 1 }, equalTo(2))
18         }
19
20         @Test
21         fun `empty optional is transform to null with let`() {
22                 val optional = Optional.absent<Int>()
23                 assertThat(optional.let { it + 1 }, nullValue())
24         }
25
26         @Test
27         fun `1 as optional is correct optional`() {
28                 val optional = 1.asOptional()
29                 assertThat(optional.get(), equalTo(1))
30         }
31
32         @Test
33         fun `null as optional is asent optional`() {
34                 val optional = null.asOptional()
35                 assertThat(optional.isPresent, equalTo(false))
36         }
37
38 }