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