blob: 7534c69d2313d12fa2198e62d7f5faab2b2c4ab6 [file]
package test.standard
import kotlin.*
import kotlin.test.*
import org.junit.Test as test
class GetOrElseTest {
val v1: String? = "hello"
val v2: String? = null
var counter = 0
@test fun defaultValue() {
assertEquals("hello", v1?: "bar")
expect("hello") {
v1?: "bar"
}
}
@test fun defaultValueOnNull() {
assertEquals("bar", v2?: "bar")
expect("bar") {
v2?: "bar"
}
}
fun calculateBar(): String {
counter++
return "bar"
}
@test fun lazyDefaultValue() {
counter = 0
assertEquals("hello", v1?: calculateBar())
assertEquals(counter, 0, "counter should not be incremented yet")
assertEquals("bar", v2?: calculateBar())
assertEquals(counter, 1, "counter should be incremented in the default function")
}
}