Added test for new parameter value referencing another parameter

This commit is contained in:
Valentin Kipyatkov
2020-03-26 19:36:58 +02:00
parent 3ec13d5bd6
commit c76571413b
@@ -10,10 +10,10 @@ import com.intellij.openapi.application.runWriteAction
import com.intellij.openapi.command.executeCommand
import com.intellij.openapi.fileTypes.LanguageFileType
import com.intellij.psi.PsiDocumentManager
import com.intellij.refactoring.suggested.SuggestedRefactoringExecution
import com.intellij.refactoring.suggested.BaseSuggestedRefactoringTest
import com.intellij.refactoring.suggested.SuggestedRefactoringExecution
import com.intellij.refactoring.suggested.SuggestedRefactoringProviderImpl
import com.intellij.refactoring.suggested._suggestedChangeSignatureNewParameterValuesForTests
import com.intellij.testFramework.LightProjectDescriptor
import org.jetbrains.kotlin.idea.KotlinFileType
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
import org.jetbrains.kotlin.psi.KtFile
@@ -1544,6 +1544,36 @@ class KotlinSuggestedRefactoringTest : BaseSuggestedRefactoringTest() {
)
}
fun testNewParameterValueReferencesAnotherParameter() {
_suggestedChangeSignatureNewParameterValuesForTests = {
val declaration = SuggestedRefactoringProviderImpl.getInstance(project).state!!.declaration
val codeFragment = KtPsiFactory(project).createExpressionCodeFragment("p1 * p1", declaration)
SuggestedRefactoringExecution.NewParameterValue.Expression(codeFragment.getContentElement()!!)
}
doTestChangeSignature(
"""
fun foo(p1: Int<caret>) {
}
fun bar() {
foo(1)
foo(2)
}
""".trimIndent(),
"""
fun foo(p1: Int, p2: Int<caret>) {
}
fun bar() {
foo(1, 1 * 1)
foo(2, 2 * 2)
}
""".trimIndent(),
"usages",
{ myFixture.type(", p2: Int") }
)
}
override fun runTest() {
runTest { super.runTest() }
}