Add assertSame and assertNotSame methods.
This commit is contained in:
committed by
Ilya Gorbunov
parent
edd3f76e7b
commit
e611b9a9ba
@@ -64,6 +64,16 @@ fun <@OnlyInputTypes T> assertNotEquals(illegal: T, actual: T, message: String?
|
||||
asserter.assertNotEquals(message, illegal, actual)
|
||||
}
|
||||
|
||||
/** Asserts that [expected] is the same instance as [actual], with an optional [message]. */
|
||||
fun <@OnlyInputTypes T> assertSame(expected: T, actual: T, message: String? = null) {
|
||||
asserter.assertSame(message, expected, actual)
|
||||
}
|
||||
|
||||
/** Asserts that [actual] is not the same instance as [illegal], with an optional [message]. */
|
||||
fun <@OnlyInputTypes T> assertNotSame(illegal: T, actual: T, message: String? = null) {
|
||||
asserter.assertNotSame(message, illegal, actual)
|
||||
}
|
||||
|
||||
/** Asserts that the [actual] value is not `null`, with an optional [message]. */
|
||||
fun <T : Any> assertNotNull(actual: T?, message: String? = null): T {
|
||||
contract { returns() implies (actual != null) }
|
||||
@@ -175,6 +185,24 @@ interface Asserter {
|
||||
assertTrue({ messagePrefix(message) + "Illegal value: <$actual>." }, actual != illegal)
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that the specified values are the same instance.
|
||||
*
|
||||
* @param message the message to report if the assertion fails.
|
||||
*/
|
||||
fun assertSame(message: String?, expected: Any?, actual: Any?): Unit {
|
||||
assertTrue({ messagePrefix(message) + "Expected <$expected>, actual <$actual>." }, actual === expected)
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that the specified values are not the same instance.
|
||||
*
|
||||
* @param message the message to report if the assertion fails.
|
||||
*/
|
||||
fun assertNotSame(message: String?, illegal: Any?, actual: Any?): Unit {
|
||||
assertTrue({ messagePrefix(message) + "Illegal value: <$actual>." }, actual !== illegal)
|
||||
}
|
||||
|
||||
/**
|
||||
* Asserts that the specified value is `null`.
|
||||
*
|
||||
|
||||
@@ -9,6 +9,12 @@ class BasicAssertionsTest {
|
||||
assertEquals(1, 1)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testAssertSame() {
|
||||
val instance: Any = object {}
|
||||
assertSame(instance, instance)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testAssertEqualsString() {
|
||||
assertEquals("a", "a")
|
||||
@@ -67,6 +73,13 @@ class BasicAssertionsTest {
|
||||
checkFailedAssertion { assertEquals(1, 2) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testAssertSameFails() {
|
||||
val instance1: Any = object {}
|
||||
val instance2: Any = object {}
|
||||
checkFailedAssertion { assertEquals(instance1, instance2) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testAssertTrue() {
|
||||
assertTrue(true)
|
||||
@@ -107,11 +120,24 @@ class BasicAssertionsTest {
|
||||
assertNotEquals(1, 2)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testAssertNotSame() {
|
||||
val instance1: Any = object {}
|
||||
val instance2: Any = object {}
|
||||
assertNotEquals(instance1, instance2)
|
||||
}
|
||||
|
||||
@Test()
|
||||
fun testAssertNotEqualsFails() {
|
||||
checkFailedAssertion { assertNotEquals(1, 1) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testAssertNotSameFails() {
|
||||
val instance: Any = object {}
|
||||
checkFailedAssertion { assertNotEquals(instance, instance) }
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testAssertNotNull() {
|
||||
assertNotNull(true)
|
||||
|
||||
@@ -44,6 +44,18 @@ internal object DefaultJsAsserter : Asserter {
|
||||
super.assertNotEquals(message, illegal, actual)
|
||||
}
|
||||
|
||||
override fun assertSame(message: String?, expected: Any?, actual: Any?) {
|
||||
e = expected
|
||||
a = actual
|
||||
super.assertSame(message, expected, actual)
|
||||
}
|
||||
|
||||
override fun assertNotSame(message: String?, illegal: Any?, actual: Any?) {
|
||||
e = illegal
|
||||
a = actual
|
||||
super.assertNotSame(message, illegal, actual)
|
||||
}
|
||||
|
||||
override fun assertNull(message: String?, actual: Any?) {
|
||||
a = actual
|
||||
super.assertNull(message, actual)
|
||||
|
||||
@@ -27,6 +27,14 @@ object JUnitAsserter : Asserter {
|
||||
Assert.assertNotEquals(message, illegal, actual)
|
||||
}
|
||||
|
||||
override fun assertSame(message : String?, expected : Any?, actual : Any?) {
|
||||
Assert.assertSame(message, expected, actual)
|
||||
}
|
||||
|
||||
override fun assertNotSame(message : String?, illegal : Any?, actual : Any?) {
|
||||
Assert.assertNotSame(message, illegal, actual)
|
||||
}
|
||||
|
||||
override fun assertNotNull(message : String?, actual : Any?) {
|
||||
Assert.assertNotNull(message ?: "actual value is null", actual)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user