X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fkotlin%2Fnet%2Fpterodactylus%2Fsone%2Futils%2FOptionalsTest.kt;h=f60d45fa4863fb8ad3a961cc681ad60e3c4d93d6;hb=1079e46155f61df9270f6fb8f9aa65bcc86f57c8;hp=2a49db06787d959ce40b99a11583911583bc31f1;hpb=5a54ea664e862c910b1766d8ba0dd5efb6ea0151;p=Sone.git diff --git a/src/test/kotlin/net/pterodactylus/sone/utils/OptionalsTest.kt b/src/test/kotlin/net/pterodactylus/sone/utils/OptionalsTest.kt index 2a49db0..f60d45f 100644 --- a/src/test/kotlin/net/pterodactylus/sone/utils/OptionalsTest.kt +++ b/src/test/kotlin/net/pterodactylus/sone/utils/OptionalsTest.kt @@ -1,10 +1,13 @@ package net.pterodactylus.sone.utils import com.google.common.base.Optional +import com.google.common.base.Optional.fromNullable import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.contains import org.hamcrest.Matchers.equalTo import org.hamcrest.Matchers.nullValue import org.junit.Test +import java.util.concurrent.atomic.AtomicBoolean /** * Test for [Optional] utils. @@ -24,15 +27,35 @@ class OptionalsTest { } @Test + fun `present optional can be processed with also`() { + val called = AtomicBoolean(false) + Optional.of(1).also { if (it == 1) called.set(true) } + assertThat(called.get(), equalTo(true)) + } + + @Test + fun `absent optional is not processed with also`() { + val called = AtomicBoolean(false) + Optional.absent().also { called.set(true) } + assertThat(called.get(), equalTo(false)) + } + + @Test fun `1 as optional is correct optional`() { val optional = 1.asOptional() assertThat(optional.get(), equalTo(1)) } @Test - fun `null as optional is asent optional`() { + fun `null as optional is absent optional`() { val optional = null.asOptional() assertThat(optional.isPresent, equalTo(false)) } + @Test + fun testMapPresent() { + val originalList = listOf(1, 2, null, 3, null) + assertThat(originalList.mapPresent { fromNullable(it) }, contains(1, 2, 3)) + } + }