From cdd917bd0bb5a47b6ae86a0025b36093e63c8826 Mon Sep 17 00:00:00 2001 From: "sebastian.sellmair" Date: Mon, 13 Sep 2021 09:31:14 +0200 Subject: [PATCH] [Commonizer] Adapt ExtensionReceiverCommonizerTest ^KT-48288 --- .../core/ExtensionReceiverCommonizer.kt | 2 +- .../core/ExtensionReceiverCommonizerTest.kt | 89 ++++++++++--------- .../kotlin/commonizer/utils/mocks.kt | 5 ++ 3 files changed, 55 insertions(+), 41 deletions(-) diff --git a/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/ExtensionReceiverCommonizer.kt b/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/ExtensionReceiverCommonizer.kt index 418da158d59..cfa5c5b21fd 100644 --- a/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/ExtensionReceiverCommonizer.kt +++ b/native/commonizer/src/org/jetbrains/kotlin/commonizer/core/ExtensionReceiverCommonizer.kt @@ -11,7 +11,7 @@ class ExtensionReceiverCommonizer( private val typeCommonizer: TypeCommonizer ) : NullableContextualSingleInvocationCommonizer { - class Commonized(val receiver: CirExtensionReceiver?) { + data class Commonized(val receiver: CirExtensionReceiver?) { companion object { val NULL = Commonized(null) } diff --git a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/core/ExtensionReceiverCommonizerTest.kt b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/core/ExtensionReceiverCommonizerTest.kt index d855e4309c1..082c6cda291 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/core/ExtensionReceiverCommonizerTest.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/core/ExtensionReceiverCommonizerTest.kt @@ -5,52 +5,61 @@ package org.jetbrains.kotlin.commonizer.core -import org.jetbrains.kotlin.commonizer.cir.CirExtensionReceiver +import org.jetbrains.kotlin.commonizer.AbstractInlineSourcesCommonizationTest +import org.jetbrains.kotlin.commonizer.core.ExtensionReceiverCommonizer.Commonized import org.jetbrains.kotlin.commonizer.utils.MOCK_CLASSIFIERS -import org.jetbrains.kotlin.commonizer.utils.mockClassType -import org.junit.Test +import org.jetbrains.kotlin.commonizer.utils.mockExtensionReceiver -class ExtensionReceiverCommonizerTest : AbstractCommonizerTest() { +class ExtensionReceiverCommonizerTest : AbstractInlineSourcesCommonizationTest() { - @Test - fun nullReceiver() = doTestSuccess( - expected = null, - null, null, null - ) + private val commonizer = ExtensionReceiverCommonizer(TypeCommonizer(MOCK_CLASSIFIERS)) - @Test - fun sameReceiver() = doTestSuccess( - expected = ExtensionReceiverCommonizer.Commonized(mockExtensionReceiver("kotlin/String")), - mockExtensionReceiver("kotlin/String"), - mockExtensionReceiver("kotlin/String"), - mockExtensionReceiver("kotlin/String") - ) + fun `test null receiver`() { + assertEquals( + Commonized(null), commonizer(listOf(null, null, null)), + ) + } - @Test(expected = IllegalCommonizerStateException::class) - fun differentReceivers() = doTestFailure( - mockExtensionReceiver("kotlin/String"), - mockExtensionReceiver("kotlin/String"), - mockExtensionReceiver("kotlin/Int") - ) + fun `test same receiver`() { + assertEquals( + Commonized(mockExtensionReceiver("kotlin/String")), + commonizer( + listOf( + mockExtensionReceiver("kotlin/String"), + mockExtensionReceiver("kotlin/String"), + mockExtensionReceiver("kotlin/String") + ) + ) + ) + } - @Test(expected = IllegalCommonizerStateException::class) - fun nullAndNonNullReceivers1() = doTestFailure( - mockExtensionReceiver("kotlin/String"), - mockExtensionReceiver("kotlin/String"), - null - ) + fun `test different receiver`() { + assertEquals( + null, commonizer( + listOf( + mockExtensionReceiver("kotlin/String"), + mockExtensionReceiver("kotlin/String"), + mockExtensionReceiver("kotlin/Int") + ) + ) + ) + } - @Test(expected = IllegalCommonizerStateException::class) - fun nullAndNonNullReceivers2() = doTestFailure( - null, - null, - mockExtensionReceiver("kotlin/String") - ) + fun `test null and non-null receivers - 1`() { + assertEquals( + null, commonizer( + listOf( + mockExtensionReceiver("kotlin/String"), + mockExtensionReceiver("kotlin/String"), + null + ) + ) + ) + } - override fun createCommonizer() = ExtensionReceiverCommonizer(TypeCommonizer(MOCK_CLASSIFIERS)).asCommonizer() + fun `test null and non-null receivers - 2`() { + assertEquals( + null, commonizer(listOf(null, null, mockExtensionReceiver("kotlin/String"))) + ) + } } - -private fun mockExtensionReceiver(receiverClassId: String) = CirExtensionReceiver( - annotations = emptyList(), - type = mockClassType(receiverClassId) -) diff --git a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/utils/mocks.kt b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/utils/mocks.kt index 3d2123c5b14..5adb4101b22 100644 --- a/native/commonizer/tests/org/jetbrains/kotlin/commonizer/utils/mocks.kt +++ b/native/commonizer/tests/org/jetbrains/kotlin/commonizer/utils/mocks.kt @@ -46,6 +46,11 @@ internal fun mockClassType( isMarkedNullable = nullable ) +internal fun mockExtensionReceiver(receiverClassId: String) = CirExtensionReceiver( + annotations = emptyList(), + type = mockClassType(receiverClassId) +) + private fun createValidClassifierId(classifierId: String): CirEntityId { check(classifierId.none { it == '\\' || it == '?' }) { "Malformed classifier ID: $classifierId" } return CirEntityId.create(classifierId)