Convert KotlinChangeSignatureTest to light test case
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
<caret>import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
import java.lang.Override;
|
import java.lang.Override;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
<caret>import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
interface J<A> extends T<A> {
|
interface J<A> extends T<A> {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+23
-36
@@ -19,18 +19,15 @@ package org.jetbrains.kotlin.idea.refactoring.changeSignature
|
|||||||
import com.intellij.codeInsight.TargetElementUtil
|
import com.intellij.codeInsight.TargetElementUtil
|
||||||
import com.intellij.codeInsight.TargetElementUtil.ELEMENT_NAME_ACCEPTED
|
import com.intellij.codeInsight.TargetElementUtil.ELEMENT_NAME_ACCEPTED
|
||||||
import com.intellij.codeInsight.TargetElementUtil.REFERENCED_ELEMENT_ACCEPTED
|
import com.intellij.codeInsight.TargetElementUtil.REFERENCED_ELEMENT_ACCEPTED
|
||||||
import com.intellij.openapi.editor.Editor
|
|
||||||
import com.intellij.openapi.util.text.StringUtil
|
import com.intellij.openapi.util.text.StringUtil
|
||||||
import com.intellij.psi.JavaPsiFacade
|
import com.intellij.psi.*
|
||||||
import com.intellij.psi.PsiElementFactory
|
|
||||||
import com.intellij.psi.PsiMethod
|
|
||||||
import com.intellij.psi.PsiType
|
|
||||||
import com.intellij.psi.impl.java.stubs.index.JavaFullClassNameIndex
|
import com.intellij.psi.impl.java.stubs.index.JavaFullClassNameIndex
|
||||||
import com.intellij.refactoring.BaseRefactoringProcessor
|
import com.intellij.refactoring.BaseRefactoringProcessor
|
||||||
import com.intellij.refactoring.changeSignature.ChangeSignatureProcessor
|
import com.intellij.refactoring.changeSignature.ChangeSignatureProcessor
|
||||||
import com.intellij.refactoring.changeSignature.ParameterInfoImpl
|
import com.intellij.refactoring.changeSignature.ParameterInfoImpl
|
||||||
import com.intellij.refactoring.util.CanonicalTypes
|
import com.intellij.refactoring.util.CanonicalTypes
|
||||||
import com.intellij.refactoring.util.CommonRefactoringUtil
|
import com.intellij.refactoring.util.CommonRefactoringUtil
|
||||||
|
import com.intellij.testFramework.LightProjectDescriptor
|
||||||
import com.intellij.testFramework.UsefulTestCase
|
import com.intellij.testFramework.UsefulTestCase
|
||||||
import com.intellij.util.VisibilityUtil
|
import com.intellij.util.VisibilityUtil
|
||||||
import junit.framework.ComparisonFailure
|
import junit.framework.ComparisonFailure
|
||||||
@@ -44,9 +41,9 @@ import org.jetbrains.kotlin.idea.refactoring.changeSignature.ui.KotlinMethodNode
|
|||||||
import org.jetbrains.kotlin.idea.search.allScope
|
import org.jetbrains.kotlin.idea.search.allScope
|
||||||
import org.jetbrains.kotlin.idea.stubindex.KotlinFullClassNameIndex
|
import org.jetbrains.kotlin.idea.stubindex.KotlinFullClassNameIndex
|
||||||
import org.jetbrains.kotlin.idea.stubindex.KotlinTopLevelFunctionFqnNameIndex
|
import org.jetbrains.kotlin.idea.stubindex.KotlinTopLevelFunctionFqnNameIndex
|
||||||
import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil
|
|
||||||
import org.jetbrains.kotlin.idea.test.DirectiveBasedActionUtils
|
import org.jetbrains.kotlin.idea.test.DirectiveBasedActionUtils
|
||||||
import org.jetbrains.kotlin.idea.test.KotlinCodeInsightTestCase
|
import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase
|
||||||
|
import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor
|
||||||
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
import org.jetbrains.kotlin.idea.test.PluginTestCaseBase
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
import org.jetbrains.kotlin.psi.KtFile
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
@@ -61,31 +58,25 @@ import org.jetbrains.kotlin.utils.sure
|
|||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class KotlinChangeSignatureTest : KotlinCodeInsightTestCase() {
|
class KotlinChangeSignatureTest : KotlinLightCodeInsightFixtureTestCase() {
|
||||||
companion object {
|
companion object {
|
||||||
private val BUILT_INS = DefaultBuiltIns.Instance
|
private val BUILT_INS = DefaultBuiltIns.Instance
|
||||||
private val EXTENSIONS = arrayOf(".kt", ".java")
|
private val EXTENSIONS = arrayOf(".kt", ".java")
|
||||||
}
|
}
|
||||||
|
|
||||||
private var editors: MutableList<Editor>? = null
|
|
||||||
|
|
||||||
override fun getTestProjectJdk() = PluginTestCaseBase.mockJdk()
|
|
||||||
|
|
||||||
override fun getTestDataPath() = File(PluginTestCaseBase.getTestDataPathBase(), "/refactoring/changeSignature").path + File.separator
|
override fun getTestDataPath() = File(PluginTestCaseBase.getTestDataPathBase(), "/refactoring/changeSignature").path + File.separator
|
||||||
|
|
||||||
override fun setUp() {
|
override fun getProjectDescriptor(): LightProjectDescriptor = KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE
|
||||||
super.setUp()
|
|
||||||
editors = ArrayList<Editor>()
|
|
||||||
ConfigLibraryUtil.configureKotlinRuntime(module)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun tearDown() {
|
override fun tearDown() {
|
||||||
ConfigLibraryUtil.unConfigureKotlinRuntime(module)
|
files = emptyList()
|
||||||
editors!!.clear()
|
psiFiles = PsiFile.EMPTY_ARRAY
|
||||||
editors = null
|
|
||||||
super.tearDown()
|
super.tearDown()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lateinit var files: List<String>
|
||||||
|
lateinit var psiFiles: Array<PsiFile>
|
||||||
|
|
||||||
private fun findCallers(method: PsiMethod): LinkedHashSet<PsiMethod> {
|
private fun findCallers(method: PsiMethod): LinkedHashSet<PsiMethod> {
|
||||||
val root = KotlinMethodNode(method, HashSet(), project, Runnable { })
|
val root = KotlinMethodNode(method, HashSet(), project, Runnable { })
|
||||||
return (0..root.childCount - 1).flatMapTo(LinkedHashSet<PsiMethod>()) {
|
return (0..root.childCount - 1).flatMapTo(LinkedHashSet<PsiMethod>()) {
|
||||||
@@ -94,16 +85,14 @@ class KotlinChangeSignatureTest : KotlinCodeInsightTestCase() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun configureFiles() {
|
private fun configureFiles() {
|
||||||
editors!!.clear()
|
val fileList = mutableListOf<String>()
|
||||||
|
|
||||||
var i = 0
|
var i = 0
|
||||||
indexLoop@ while (true) {
|
indexLoop@ while (true) {
|
||||||
for (extension in EXTENSIONS) {
|
for (extension in EXTENSIONS) {
|
||||||
val extraFileName = getTestName(false) + "Before" + (if (i > 0) "." + i else "") + extension
|
val extraFileName = getTestName(false) + "Before" + (if (i > 0) "." + i else "") + extension
|
||||||
val extraFile = File(testDataPath + extraFileName)
|
val extraFile = File(testDataPath + extraFileName)
|
||||||
if (extraFile.exists()) {
|
if (extraFile.exists()) {
|
||||||
configureByFile(extraFileName)
|
fileList.add(extraFileName)
|
||||||
editors!!.add(editor)
|
|
||||||
i++
|
i++
|
||||||
continue@indexLoop
|
continue@indexLoop
|
||||||
}
|
}
|
||||||
@@ -111,7 +100,8 @@ class KotlinChangeSignatureTest : KotlinCodeInsightTestCase() {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
setActiveEditor(editors!![0])
|
psiFiles = myFixture.configureByFiles(*fileList.toTypedArray())
|
||||||
|
files = fileList
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createChangeInfo(): KotlinChangeInfo {
|
private fun createChangeInfo(): KotlinChangeInfo {
|
||||||
@@ -229,21 +219,18 @@ class KotlinChangeSignatureTest : KotlinCodeInsightTestCase() {
|
|||||||
|
|
||||||
private fun compareEditorsWithExpectedData() {
|
private fun compareEditorsWithExpectedData() {
|
||||||
//noinspection ConstantConditions
|
//noinspection ConstantConditions
|
||||||
val checkErrorsAfter = InTextDirectivesUtils.isDirectiveDefined(getPsiFile(editors!![0].document)!!.text,
|
val checkErrorsAfter = InTextDirectivesUtils.isDirectiveDefined(file!!.text, "// CHECK_ERRORS_AFTER")
|
||||||
"// CHECK_ERRORS_AFTER")
|
for ((file, psiFile) in files zip psiFiles) {
|
||||||
for (editor in editors!!) {
|
val afterFilePath = file.replace("Before.", "After.")
|
||||||
setActiveEditor(editor)
|
|
||||||
val currentFile = file
|
|
||||||
val afterFilePath = currentFile.name.replace("Before.", "After.")
|
|
||||||
try {
|
try {
|
||||||
checkResultByFile(afterFilePath)
|
myFixture.checkResultByFile(file, afterFilePath, true)
|
||||||
}
|
}
|
||||||
catch (e: ComparisonFailure) {
|
catch (e: ComparisonFailure) {
|
||||||
KotlinTestUtils.assertEqualsToFile(File(testDataPath + afterFilePath), getEditor())
|
KotlinTestUtils.assertEqualsToFile(File(testDataPath + afterFilePath), psiFile.text)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (checkErrorsAfter && currentFile is KtFile) {
|
if (checkErrorsAfter && psiFile is KtFile) {
|
||||||
DirectiveBasedActionUtils.checkForUnexpectedErrors(currentFile)
|
DirectiveBasedActionUtils.checkForUnexpectedErrors(psiFile)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -258,7 +245,7 @@ class KotlinChangeSignatureTest : KotlinCodeInsightTestCase() {
|
|||||||
// --------------------------------- Tests ---------------------------------
|
// --------------------------------- Tests ---------------------------------
|
||||||
|
|
||||||
fun testBadSelection() {
|
fun testBadSelection() {
|
||||||
configureByFile(getTestName(false) + "Before.kt")
|
myFixture.configureByFile(getTestName(false) + "Before.kt")
|
||||||
TestCase.assertNull(KotlinChangeSignatureHandler().findTargetMember(file, editor))
|
TestCase.assertNull(KotlinChangeSignatureHandler().findTargetMember(file, editor))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user