From b51bf84d05e317d8a8179d72a788190b350a95a1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?David=20=E2=80=98Bombe=E2=80=99=20Roden?= Date: Thu, 31 Aug 2017 21:29:53 +0200 Subject: [PATCH] Add helper for booleans --- .../net/pterodactylus/sone/utils/Booleans.kt | 6 ++++++ .../net/pterodactylus/sone/utils/BooleansTest.kt | 23 ++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 src/main/kotlin/net/pterodactylus/sone/utils/Booleans.kt create mode 100644 src/test/kotlin/net/pterodactylus/sone/utils/BooleansTest.kt diff --git a/src/main/kotlin/net/pterodactylus/sone/utils/Booleans.kt b/src/main/kotlin/net/pterodactylus/sone/utils/Booleans.kt new file mode 100644 index 0000000..3202b82 --- /dev/null +++ b/src/main/kotlin/net/pterodactylus/sone/utils/Booleans.kt @@ -0,0 +1,6 @@ +package net.pterodactylus.sone.utils + +/** + * Returns the value of [block] if `this` is true, returns `null` otherwise. + */ +fun Boolean.ifTrue(block: () -> R): R? = if (this) block() else null diff --git a/src/test/kotlin/net/pterodactylus/sone/utils/BooleansTest.kt b/src/test/kotlin/net/pterodactylus/sone/utils/BooleansTest.kt new file mode 100644 index 0000000..5e5ce51 --- /dev/null +++ b/src/test/kotlin/net/pterodactylus/sone/utils/BooleansTest.kt @@ -0,0 +1,23 @@ +package net.pterodactylus.sone.utils + +import org.hamcrest.MatcherAssert.assertThat +import org.hamcrest.Matchers.equalTo +import org.hamcrest.Matchers.nullValue +import org.junit.Test + +/** + * Unit test for [Booleans]. + */ +class BooleansTest { + + @Test + fun `ifTrue is executed if boolean is true`() { + assertThat(true.ifTrue { true }, equalTo(true)) + } + + @Test + fun `ifTrue is not executed if boolean is false`() { + assertThat(false.ifTrue { true }, nullValue()) + } + +} -- 2.7.4