blob: 2234f5dce3fd6709070b62e92b663eaf2516e3c8 [file] [log] [blame]
/*
* Copyright 2015-2022 the original author or authors.
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License v2.0 which
* accompanies this distribution and is available at
*
* https://www.eclipse.org/legal/epl-v20.html
*/
package org.junit.jupiter.api
import org.junit.jupiter.api.AssertEquals.assertEquals
import org.junit.jupiter.api.AssertionTestUtils.assertEmptyMessage
import org.junit.jupiter.api.AssertionTestUtils.assertMessageContains
import org.junit.jupiter.api.AssertionTestUtils.assertMessageEquals
import org.opentest4j.AssertionFailedError
import java.util.stream.Stream
class KotlinFailAssertionsTests {
@Test
fun `fail with string`() {
val message = "test"
val ex = assertThrows<AssertionFailedError> {
fail(message)
}
assertMessageEquals(ex, message)
}
@Test
fun `fail with message supplier`() {
val message = "test"
val ex = assertThrows<AssertionFailedError> {
fail { message }
}
assertMessageEquals(ex, message)
}
@Test
fun `fail with null string`() {
val ex = assertThrows<AssertionFailedError> {
fail(null as String?)
}
assertEmptyMessage(ex)
}
@Test
fun `fail with null message supplier`() {
val ex = assertThrows<AssertionFailedError> {
fail(null as (() -> String)?)
}
assertEmptyMessage(ex)
}
@Test
fun `fail with string and throwable`() {
val message = "message"
val throwableCause = "cause"
val ex = assertThrows<AssertionFailedError> {
fail(message, Throwable(throwableCause))
}
assertMessageEquals(ex, message)
val cause = ex.cause
assertMessageContains(cause, throwableCause)
}
@Test
fun `fail with throwable`() {
val throwableCause = "cause"
val ex = assertThrows<AssertionFailedError> {
fail(Throwable(throwableCause))
}
assertEmptyMessage(ex)
val cause = ex.cause
assertMessageContains(cause, throwableCause)
}
@Test
fun `fail with string and null throwable`() {
val message = "message"
val ex = assertThrows<AssertionFailedError> {
fail(message, null)
}
assertMessageEquals(ex, message)
if (ex.cause != null) {
throw AssertionError("Cause should have been null")
}
}
@Test
fun `fail with null string and throwable`() {
val throwableCause = "cause"
val ex = assertThrows<AssertionFailedError> {
fail(null, Throwable(throwableCause))
}
assertEmptyMessage(ex)
val cause = ex.cause
assertMessageContains(cause, throwableCause)
}
@Test
fun `fail usable as a stream expression`() {
val count = Stream.empty<Any>()
.peek { _ -> fail("peek should never be called") }
.filter { _ -> fail("filter should never be called", Throwable("cause")) }
.map { _ -> fail(Throwable("map should never be called")) }
.sorted { _, _ -> fail { "sorted should never be called" } }
.count()
assertEquals(0L, count)
}
@Test
fun `fail usable as a sequence expression`() {
val count = emptyList<Any>()
.asSequence()
.onEach { _ -> fail("peek should never be called") }
.filter { _ -> fail("filter should never be called", Throwable("cause")) }
.map { _ -> fail(Throwable("map should never be called")) }
.count()
assertEquals(0, count)
}
}