From 1c4ecd287d2a40fec299cacf7aac22f03b025619 Mon Sep 17 00:00:00 2001 From: Pavel Punegov Date: Mon, 17 Dec 2018 19:26:06 +0300 Subject: [PATCH] DefaultAsserter object. Add function to replace constructor invoke. --- .../src/main/kotlin/kotlin/test/DefaultAsserter.kt | 11 ++++++++--- .../common/src/main/kotlin/kotlin/test/Utils.kt | 7 +------ .../kotlin/kotlin/test/tests/BasicAssertionsTest.kt | 2 +- .../kotlin.test/jvm/src/main/kotlin/AsserterLookup.kt | 4 +--- 4 files changed, 11 insertions(+), 13 deletions(-) diff --git a/libraries/kotlin.test/common/src/main/kotlin/kotlin/test/DefaultAsserter.kt b/libraries/kotlin.test/common/src/main/kotlin/kotlin/test/DefaultAsserter.kt index 0346ac58fba..37053ac9014 100644 --- a/libraries/kotlin.test/common/src/main/kotlin/kotlin/test/DefaultAsserter.kt +++ b/libraries/kotlin.test/common/src/main/kotlin/kotlin/test/DefaultAsserter.kt @@ -8,12 +8,17 @@ package kotlin.test /** * Default [Asserter] implementation to avoid dependency on JUnit or TestNG. */ -// TODO: make object in 1.2 -class DefaultAsserter : Asserter { +object DefaultAsserter : Asserter { override fun fail(message: String?): Nothing { if (message == null) throw AssertionError() else throw AssertionError(message) } -} \ No newline at end of file +} + +@Deprecated("DefaultAsserter is an object now, constructor call is not required anymore", + ReplaceWith("DefaultAsserter", "kotlin.test.DefaultAsserter")) +@kotlin.js.JsName("DefaultAsserterConstructor") +@Suppress("FunctionName") +fun DefaultAsserter(): DefaultAsserter = DefaultAsserter \ No newline at end of file diff --git a/libraries/kotlin.test/common/src/main/kotlin/kotlin/test/Utils.kt b/libraries/kotlin.test/common/src/main/kotlin/kotlin/test/Utils.kt index ac1cc8e6eb8..8cce9b35cad 100644 --- a/libraries/kotlin.test/common/src/main/kotlin/kotlin/test/Utils.kt +++ b/libraries/kotlin.test/common/src/main/kotlin/kotlin/test/Utils.kt @@ -9,9 +9,4 @@ internal fun messagePrefix(message: String?) = if (message == null) "" else "$me internal expect fun lookupAsserter(): Asserter @PublishedApi // required to get stable name as it's called from box tests -internal fun overrideAsserter(value: Asserter?): Asserter? { - // TODO: Replace with return _asserter.also { _asserter = value } after KT-17540 is fixed - val previous = _asserter - _asserter = value - return previous -} \ No newline at end of file +internal fun overrideAsserter(value: Asserter?): Asserter? = _asserter.also { _asserter = value } \ No newline at end of file diff --git a/libraries/kotlin.test/common/src/test/kotlin/kotlin/test/tests/BasicAssertionsTest.kt b/libraries/kotlin.test/common/src/test/kotlin/kotlin/test/tests/BasicAssertionsTest.kt index 37955a9ae98..cb16ab674dc 100644 --- a/libraries/kotlin.test/common/src/test/kotlin/kotlin/test/tests/BasicAssertionsTest.kt +++ b/libraries/kotlin.test/common/src/test/kotlin/kotlin/test/tests/BasicAssertionsTest.kt @@ -199,7 +199,7 @@ private fun checkFailedAssertion(assertion: () -> Unit) { @Suppress("INVISIBLE_MEMBER") private fun withDefaultAsserter(block: () -> Unit) { - val current = overrideAsserter(DefaultAsserter()) + val current = overrideAsserter(DefaultAsserter) try { block() } finally { diff --git a/libraries/kotlin.test/jvm/src/main/kotlin/AsserterLookup.kt b/libraries/kotlin.test/jvm/src/main/kotlin/AsserterLookup.kt index 5334a7d8e18..f3904aec629 100644 --- a/libraries/kotlin.test/jvm/src/main/kotlin/AsserterLookup.kt +++ b/libraries/kotlin.test/jvm/src/main/kotlin/AsserterLookup.kt @@ -9,12 +9,10 @@ import java.util.ServiceLoader private val contributors = ServiceLoader.load(AsserterContributor::class.java).toList() -private val defaultAsserter = DefaultAsserter() - internal actual fun lookupAsserter(): Asserter { for (contributor in contributors) { val asserter = contributor.contribute() if (asserter != null) return asserter } - return defaultAsserter + return DefaultAsserter } \ No newline at end of file