| /* |
| * 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) |
| } |
| |
| } |