/* * 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 { require(false) } assertNotNull(error.message) } @Test fun failingRequireWithLazyMessage() { val error = assertFailsWith { 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 { check(false) } assertNotNull(error.message) } @Test fun failingCheckWithLazyMessage() { val error = assertFailsWith { 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 { val s2: String? = null requireNotNull(s2) } } @Test fun requireNotNullWithLazyMessage() { val error = assertFailsWith { 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 { val s2: String? = null checkNotNull(s2) } } @Test fun error() { val error = assertFailsWith { error("There was a problem") } assertEquals("There was a problem", error.message) } }