🔀 Merge “release/v81” into “master”
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / utils / BooleansTest.kt
1 package net.pterodactylus.sone.utils
2
3 import org.hamcrest.MatcherAssert.*
4 import org.hamcrest.Matchers.*
5 import kotlin.test.*
6
7 /**
8  * Unit test for [Booleans].
9  */
10 class BooleansTest {
11
12         @Test
13         fun `ifTrue is executed if boolean is true`() {
14                 assertThat(true.ifTrue { true }, equalTo(true))
15         }
16
17         @Test
18         fun `ifTrue is not executed if boolean is false`() {
19                 assertThat(false.ifTrue { true }, nullValue())
20         }
21
22         @Test
23         fun `ifFalse is executed if boolean is false`() {
24                 assertThat(false.ifFalse { true }, equalTo(true))
25         }
26
27         @Test
28         fun `ifFalse is not executed if boolean is true`() {
29                 assertThat(true.ifFalse { true }, nullValue())
30         }
31
32         @Test
33         fun `onTrue returns true on true`() {
34                 assertThat(true.onTrue {}, equalTo(true))
35         }
36
37         @Test
38         fun `onTrue returns false on false`() {
39                 assertThat(false.onTrue {}, equalTo(false))
40         }
41
42         @Test
43         fun `onTrue is not executed on false`() {
44                 assertThat(false.onTrue { throw RuntimeException() }, equalTo(false))
45         }
46
47         @Test(expected = RuntimeException::class)
48         fun `onTrue is executed on true`() {
49                 true.onTrue { throw RuntimeException() }
50         }
51
52         @Test
53         fun `onFalse returns true on true`() {
54                 assertThat(true.onFalse {}, equalTo(true))
55         }
56
57         @Test
58         fun `onFalse returns false on false`() {
59                 assertThat(false.onFalse {}, equalTo(false))
60         }
61
62         @Test
63         fun `onFalse is not executed on true`() {
64                 assertThat(true.onFalse { throw RuntimeException() }, equalTo(true))
65         }
66
67         @Test(expected = RuntimeException::class)
68         fun `onFalse is executed on false`() {
69                 false.onFalse { throw RuntimeException() }
70         }
71
72 }