kotlin-result/src/test/kotlin/com/github/michaelbull/result/AndTest.kt

35 lines
1.0 KiB
Kotlin
Raw Normal View History

2017-10-21 23:59:16 +00:00
package com.github.michaelbull.result
2017-10-21 02:51:30 +00:00
import com.natpryce.hamkrest.assertion.assertThat
import com.natpryce.hamkrest.equalTo
import com.natpryce.hamkrest.sameInstance
import org.junit.jupiter.api.Test
internal class AndTest {
private object AndError
@Test
internal fun `and should return the result value if ok`() {
val value = Ok(230).and(Ok(500)).get()
assertThat(value, equalTo(500))
}
@Test
internal fun `and should return the result value if not ok`() {
val error = Ok(300).and(Err("hello world")).getError()
assertThat(error, equalTo("hello world"))
}
2017-10-21 02:51:30 +00:00
@Test
internal fun `andThen should return the transformed result value if ok`() {
val value = Ok(5).andThen { Ok(it + 7) }.get()
2017-10-21 02:51:30 +00:00
assertThat(value, equalTo(12))
}
@Test
internal fun `andThen should return the result error if not ok`() {
val error = Ok(20).andThen { Ok(it + 43) }.andThen { Err(AndError) }.getError()!!
assertThat(error, sameInstance(AndError))
2017-10-21 02:51:30 +00:00
}
}