Files
kotlin-fork/libraries/stdlib/test/GetOrElseTest.kt
T

43 lines
878 B
Kotlin

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")
}
}