From a63341b901ab8bcda0886dea8d267c5e29644245 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Mon, 7 Sep 2015 18:01:21 +0300 Subject: [PATCH] Some tests for assertion messages. --- libraries/stdlib/test/test/TestJVMTest.kt | 90 +++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 libraries/stdlib/test/test/TestJVMTest.kt diff --git a/libraries/stdlib/test/test/TestJVMTest.kt b/libraries/stdlib/test/test/TestJVMTest.kt new file mode 100644 index 00000000000..2af9d5584c9 --- /dev/null +++ b/libraries/stdlib/test/test/TestJVMTest.kt @@ -0,0 +1,90 @@ +package test.test + +import kotlin.test.* +import org.junit.Test + + +class TestJVMTest { + + private fun expectAssertion(checkAssertion: (String?) -> Unit, block: () -> Unit) { + try { + block() + } + catch (e: AssertionError) { + checkAssertion(e.getMessage()) + return + } + fail("Expected AssertionError to be thrown.") + } + + private val message = "Some details" + private val expected = object { + override fun toString() = "expected" + } + private val actual = object { + override fun toString() = "actual" + } + + Test fun assertEqualsMessage() { + expectAssertion( { msg -> + assertNotNull(msg); msg!! + assertTrue { msg.contains(expected.toString()) } + assertTrue { msg.contains(actual.toString()) } + assertFalse { msg.startsWith(".") } + }, { assertEquals(expected, actual) }) + + expectAssertion( { msg -> + assertNotNull(msg); msg!! + assertTrue { msg.contains(message) } + assertTrue { msg.contains(expected.toString()) } + assertTrue { msg.contains(actual.toString()) } + } , { assertEquals(expected, actual, message) }) + } + + Test fun assertNotEqualsMessage() { + expectAssertion( { msg -> + assertNotNull(msg); msg!! + assertTrue { msg.contains(actual.toString()) } + assertFalse { msg.startsWith(".") } + }, { assertNotEquals(actual, actual) }) + + expectAssertion( { msg -> + assertNotNull(msg); msg!! + assertTrue { msg.contains(message) } + assertTrue { msg.contains(actual.toString()) } + } , { assertNotEquals(actual, actual, message) }) + } + + + Test fun assertTrueMessage() { + expectAssertion( { msg -> assertNotNull(msg) }, { assertTrue(false) }) + expectAssertion( { msg -> assertNotNull(msg) }, { assertTrue { false } }) + expectAssertion( { msg -> assertNotNull(msg) }, { assertTrue(null) { false } }) + expectAssertion( { msg -> msg!!.contains(message)}, { assertTrue(false, message)}) + expectAssertion( { msg -> msg!!.contains(message)}, { assertTrue(message) { false }}) + } + + Test fun assertFalseMessage() { + expectAssertion( { msg -> assertNotNull(msg) }, { assertFalse(true) }) + expectAssertion( { msg -> assertNotNull(msg) }, { assertFalse { true } }) + expectAssertion( { msg -> assertNotNull(msg) }, { assertFalse(null) { true } }) + expectAssertion( { msg -> assertTrue(msg!!.contains(message)) }, { assertFalse(true, message)}) + expectAssertion( { msg -> assertTrue(msg!!.contains(message)) }, { assertFalse(message) { true }}) + } + + Test fun assertNotNullMessage() { + expectAssertion( { msg -> msg!! }, { assertNotNull(null) }) + expectAssertion( { msg -> assertTrue(msg!!.contains(message)) }, { assertNotNull(null, message)}) + } + + Test fun assertNullMessage() { + expectAssertion( { msg -> msg!! }, { assertNull(actual) }) + expectAssertion( { msg -> msg!! + assertTrue(msg.contains(message)) + assertTrue(msg.contains(actual.toString())) + }, { assertNull(actual, message)}) + } + + + +} \ No newline at end of file