Files
kotlin-fork/libraries/stdlib/test/utils/PreconditionsTest.kt
T
nikita.movshin 65244b4bea Update copyright.
Change the copyright from "JetBrains s.r.o." to
"JetBrains s.r.o. and Kotlin Project contributors"
Update only 2 lines copyright.
2019-04-23 20:09:22 +03:00

104 lines
2.6 KiB
Kotlin

/*
* Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/
package test.utils
import kotlin.test.*
class PreconditionsTest() {
@Test fun passingRequire() {
require(true)
var called = false
require(true) { called = true; "some message" }
assertFalse(called)
}
@Test fun failingRequire() {
val error = assertFailsWith<IllegalArgumentException> {
require(false)
}
assertNotNull(error.message)
}
@Test fun failingRequireWithLazyMessage() {
val error = assertFailsWith<IllegalArgumentException> {
require(false) { "Hello" }
}
assertEquals("Hello", error.message)
}
@Test fun passingCheck() {
check(true)
var called = false
check(true) { called = true; "some message" }
assertFalse(called)
}
@Test fun failingCheck() {
val error = assertFailsWith<IllegalStateException> {
check(false)
}
assertNotNull(error.message)
}
@Test fun failingCheckWithLazyMessage() {
val error = assertFailsWith<IllegalStateException> {
check(false) { "Hello" }
}
assertEquals("Hello", error.message)
}
@Test fun requireNotNull() {
val s1: String? = "S1"
val r1: String = requireNotNull(s1)
assertEquals("S1", r1)
}
@Test fun requireNotNullFails() {
assertFailsWith<IllegalArgumentException> {
val s2: String? = null
requireNotNull(s2)
}
}
@Test fun requireNotNullWithLazyMessage() {
val error = assertFailsWith<IllegalArgumentException> {
val obj: Any? = null
requireNotNull(obj) { "Message" }
}
assertEquals("Message", error.message)
var lazyCalled: Boolean = false
requireNotNull("not null") {
lazyCalled = true
"Message"
}
assertFalse(lazyCalled, "Message is not evaluated if the condition is met")
}
@Test fun checkNotNull() {
val s1: String? = "S1"
val r1: String = checkNotNull(s1)
assertEquals("S1", r1)
}
@Test fun checkNotNullFails() {
assertFailsWith<IllegalStateException> {
val s2: String? = null
checkNotNull(s2)
}
}
@Test fun error() {
val error = assertFailsWith<IllegalStateException> {
error("There was a problem")
}
assertEquals("There was a problem", error.message)
}
}