diff --git a/libraries/kotlin.test/common/src/main/kotlin/kotlin/test/Assertions.kt b/libraries/kotlin.test/common/src/main/kotlin/kotlin/test/Assertions.kt index 32212c68c9f..25fe6a313a9 100644 --- a/libraries/kotlin.test/common/src/main/kotlin/kotlin/test/Assertions.kt +++ b/libraries/kotlin.test/common/src/main/kotlin/kotlin/test/Assertions.kt @@ -361,6 +361,14 @@ fun <@OnlyInputTypes T> assertContentEquals(expected: Iterable?, actual: Iter assertIterableContentEquals("Iterable", message, expected, actual, Iterable<*>::iterator) } + +@SinceKotlin("1.5") +@Deprecated("'assertContentEquals' for Set arguments is ambiguous. Use 'assertEquals' to compare content with the unordered set equality, or cast one of arguments to Iterable to compare the set elements in order of iteration.", + level = DeprecationLevel.ERROR, + replaceWith = ReplaceWith("assertContentEquals(expected, actual?.asIterable(), message)")) +fun <@OnlyInputTypes T> assertContentEquals(expected: Set?, actual: Set?, message: String? = null): Unit = + assertContentEquals(expected, actual?.asIterable(), message) + /** * Asserts that the [expected] sequence is *structurally* equal to the [actual] sequence, * i.e. contains the same number of the same elements in the same order, with an optional [message]. diff --git a/libraries/kotlin.test/common/src/test/kotlin/kotlin/test/tests/AssertContentEqualsTest.kt b/libraries/kotlin.test/common/src/test/kotlin/kotlin/test/tests/AssertContentEqualsTest.kt index ac16cbb7607..240840b73c1 100644 --- a/libraries/kotlin.test/common/src/test/kotlin/kotlin/test/tests/AssertContentEqualsTest.kt +++ b/libraries/kotlin.test/common/src/test/kotlin/kotlin/test/tests/AssertContentEqualsTest.kt @@ -34,6 +34,9 @@ class AssertContentEqualsTest { testFailureMessage("Iterable lengths differ. Expected length is 3, actual length is bigger than 3.") { assertContentEquals(list, 1..4) } + testFailureMessage("Iterable elements differ at index 0. Expected element <1>, actual element <3>.") { + assertContentEquals(setOf(1, 2, 3).asIterable(), setOf(3, 2, 1)) + } } @Test