From 03f18e1ac1d8c9dfd35d1adab106e5d809266c70 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Mon, 26 Oct 2015 14:19:53 +0300 Subject: [PATCH] Extraction refactorings tests: do not generate conflict files in case of any exception from code --- .../introduce/extractionEngine/extractorUtil.kt | 13 ++++--------- .../introduce/AbstractJetExtractionTest.kt | 11 +++++++---- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractorUtil.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractorUtil.kt index 1ae54187d39..fa750ecb077 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractorUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/extractorUtil.kt @@ -20,6 +20,7 @@ import com.intellij.psi.PsiElement import com.intellij.psi.PsiFile import com.intellij.psi.search.LocalSearchScope import com.intellij.psi.search.searches.ReferencesSearch +import com.intellij.refactoring.BaseRefactoringProcessor import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.descriptors.ClassDescriptor import org.jetbrains.kotlin.idea.core.* @@ -28,10 +29,7 @@ import org.jetbrains.kotlin.idea.intentions.ConvertToExpressionBodyIntention import org.jetbrains.kotlin.idea.intentions.InfixCallToOrdinaryIntention import org.jetbrains.kotlin.idea.intentions.OperatorToFunctionIntention import org.jetbrains.kotlin.idea.intentions.RemoveExplicitTypeArgumentsIntention -import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.ExpressionValue -import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.Initializer -import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.Jump -import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.ParameterUpdate +import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValue.* import org.jetbrains.kotlin.idea.refactoring.introduce.extractionEngine.OutputValueBoxer.AsTuple import org.jetbrains.kotlin.idea.util.IdeDescriptorRenderers import org.jetbrains.kotlin.idea.util.ShortenReferences @@ -53,10 +51,7 @@ import org.jetbrains.kotlin.resolve.calls.callUtil.getCalleeExpressionIfAny import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.isFlexible import org.jetbrains.kotlin.types.typeUtil.builtIns -import java.util.ArrayList -import java.util.Collections -import java.util.HashMap -import java.util.LinkedHashMap +import java.util.* fun ExtractionGeneratorConfiguration.getDeclarationText( withBody: Boolean = true, @@ -66,7 +61,7 @@ fun ExtractionGeneratorConfiguration.getDeclarationText( ): String { val extractionTarget = generatorOptions.target if (!extractionTarget.isAvailable(descriptor)) { - throw IllegalArgumentException("Can't generate ${extractionTarget.targetName}: ${descriptor.extractionData.codeFragmentText}") + throw BaseRefactoringProcessor.ConflictsInTestsException(listOf("Can't generate ${extractionTarget.targetName}: ${descriptor.extractionData.codeFragmentText}")) } val builderTarget = when (extractionTarget) { diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/AbstractJetExtractionTest.kt b/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/AbstractJetExtractionTest.kt index f378a315baf..0895aba0106 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/AbstractJetExtractionTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/AbstractJetExtractionTest.kt @@ -35,7 +35,6 @@ import com.intellij.refactoring.introduceParameter.Util import com.intellij.refactoring.util.occurrences.ExpressionOccurrenceManager import com.intellij.testFramework.fixtures.JavaCodeInsightTestFixture import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase -import com.intellij.testFramework.fixtures.LightCodeInsightFixtureTestCase.assertEquals import org.jetbrains.kotlin.idea.refactoring.JetRefactoringUtil import org.jetbrains.kotlin.idea.refactoring.introduce.extractFunction.EXTRACT_FUNCTION import org.jetbrains.kotlin.idea.refactoring.introduce.extractFunction.ExtractKotlinFunctionHandler @@ -339,9 +338,13 @@ public abstract class AbstractJetExtractionTest() : JetLightCodeInsightFixtureTe } } } - catch(e: Exception) { - val message = if (e is ConflictsInTestsException) e.getMessages().sorted().joinToString(" ") else e.getMessage() - JetTestUtils.assertEqualsToFile(conflictFile, message?.replace("\n", " ") ?: e.javaClass.getName()) + catch(e: ConflictsInTestsException) { + val message = e.messages.sorted().joinToString(" ").replace("\n", " ") + JetTestUtils.assertEqualsToFile(conflictFile, message) + } + catch(e: RuntimeException) { // RuntimeException is thrown by IDEA code in CodeInsightUtils.java + if (e.javaClass != RuntimeException::class.java) throw e + JetTestUtils.assertEqualsToFile(conflictFile, e.message!!) } finally { if (addKotlinRuntime) {