From 877874978f87efd050760de89029b0d4ef128a69 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Wed, 20 Dec 2017 15:04:19 +0300 Subject: [PATCH] Misc: Add action text assertions to CommonIntentionActionsTest --- .../quickfix/CommonIntentionActionsTest.kt | 97 ++++++++++++++----- 1 file changed, 71 insertions(+), 26 deletions(-) diff --git a/idea/tests/org/jetbrains/kotlin/idea/quickfix/CommonIntentionActionsTest.kt b/idea/tests/org/jetbrains/kotlin/idea/quickfix/CommonIntentionActionsTest.kt index 14a0e0c2aa9..b4e2b043f63 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/quickfix/CommonIntentionActionsTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/quickfix/CommonIntentionActionsTest.kt @@ -30,7 +30,6 @@ import org.jetbrains.uast.* import org.junit.Assert class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() { - fun testMakeNotFinal() { myFixture.configureByText("foo.kt", """ class Foo { @@ -38,7 +37,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() { } """) - myFixture.launchAction(codeModifications.createChangeModifierAction(atCaret(myFixture), PsiModifier.FINAL, false)!!) + myFixture.launchAction( + codeModifications + .createChangeModifierAction(atCaret(myFixture), PsiModifier.FINAL, false)!! + .ensureHasText("Make 'bar' open") + ) myFixture.checkResult(""" class Foo { open fun bar(){} @@ -53,7 +56,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() { } """) - myFixture.launchAction(codeModifications.createChangeModifierAction(atCaret(myFixture), PsiModifier.PRIVATE, true)!!) + myFixture.launchAction( + codeModifications + .createChangeModifierAction(atCaret(myFixture), PsiModifier.PRIVATE, true)!! + .ensureHasText("Make 'Foo' private") + ) myFixture.checkResult(""" private class Foo { fun bar(){} @@ -68,7 +75,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() { } """.trim()) - myFixture.launchAction(codeModifications.createChangeModifierAction(atCaret(myFixture), PsiModifier.PRIVATE, false)!!) + myFixture.launchAction( + codeModifications + .createChangeModifierAction(atCaret(myFixture), PsiModifier.PRIVATE, false)!! + .ensureHasText("Remove 'private' modifier") + ) myFixture.checkResult(""" class Foo { fun bar(){} @@ -82,7 +93,7 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() { fun bar(){} } """.trim()) - Assert.assertNull(codeModifications.createChangeModifierAction(atCaret(myFixture), PsiModifier.FINAL, false)) + Assert.assertNull(codeModifications.createChangeModifierAction(atCaret(myFixture), PsiModifier.FINAL, false)) } fun testAddVoidVoidMethod() { @@ -92,8 +103,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() { |} """.trim().trimMargin()) - myFixture.launchAction(codeModifications.createAddCallableMemberActions(MethodInsertionInfo.simpleMethodInfo( - atCaret(myFixture), "baz", PsiModifier.PRIVATE, PsiType.VOID, emptyList())).first()) + myFixture.launchAction( + codeModifications.createAddCallableMemberActions( + MethodInsertionInfo.simpleMethodInfo(atCaret(myFixture), "baz", PsiModifier.PRIVATE, PsiType.VOID, emptyList()) + ).findWithText("Add method 'baz' to 'Foo'") + ) myFixture.checkResult(""" |class Foo { | fun bar() {} @@ -111,8 +125,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() { |} """.trim().trimMargin()) - myFixture.launchAction(codeModifications.createAddCallableMemberActions(MethodInsertionInfo.simpleMethodInfo( - atCaret(myFixture), "baz", PsiModifier.PUBLIC, PsiType.INT, makeParams(PsiType.INT))).first()) + myFixture.launchAction( + codeModifications.createAddCallableMemberActions( + MethodInsertionInfo.simpleMethodInfo(atCaret(myFixture), "baz", PsiModifier.PUBLIC, PsiType.INT, makeParams(PsiType.INT)) + ).findWithText("Add method 'baz' to 'Foo'") + ) myFixture.checkResult(""" |class Foo { | fun bar() {} @@ -129,8 +146,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() { |} """.trim().trimMargin()) - myFixture.launchAction(codeModifications.createAddCallableMemberActions(MethodInsertionInfo.constructorInfo( - atCaret(myFixture), makeParams(PsiType.INT))).findWithText("Add primary constructor to 'Foo'")) + myFixture.launchAction( + codeModifications.createAddCallableMemberActions( + MethodInsertionInfo.constructorInfo(atCaret(myFixture), makeParams(PsiType.INT)) + ).findWithText("Add primary constructor to 'Foo'") + ) myFixture.checkResult(""" |class Foo(param0: Int) { |} @@ -143,8 +163,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() { |} """.trim().trimMargin()) - myFixture.launchAction(codeModifications.createAddCallableMemberActions(MethodInsertionInfo.constructorInfo( - atCaret(myFixture), makeParams(PsiType.INT))).findWithText("Add secondary constructor to 'Foo'")) + myFixture.launchAction( + codeModifications.createAddCallableMemberActions( + MethodInsertionInfo.constructorInfo(atCaret(myFixture), makeParams(PsiType.INT)) + ).findWithText("Add secondary constructor to 'Foo'") + ) myFixture.checkResult(""" |class Foo() { | constructor(param0: Int) { @@ -160,8 +183,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() { |} """.trim().trimMargin()) - myFixture.launchAction(codeModifications.createAddCallableMemberActions(MethodInsertionInfo.constructorInfo( - atCaret(myFixture), makeParams(PsiType.INT))).findWithText("Add 'int' as 1st parameter to method 'Foo'")) + myFixture.launchAction( + codeModifications.createAddCallableMemberActions( + MethodInsertionInfo.constructorInfo(atCaret(myFixture), makeParams(PsiType.INT)) + ).findWithText("Add 'int' as 1st parameter to method 'Foo'") + ) myFixture.checkResult(""" |class Foo(param0: Int) { |} @@ -174,8 +200,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() { |} """.trim().trimMargin()) - myFixture.launchAction(codeModifications.createAddCallableMemberActions(MethodInsertionInfo.constructorInfo( - atCaret(myFixture), makeParams())).findWithText("Remove 1st parameter from method 'Foo'")) + myFixture.launchAction( + codeModifications.createAddCallableMemberActions( + MethodInsertionInfo.constructorInfo(atCaret(myFixture), makeParams()) + ).findWithText("Remove 1st parameter from method 'Foo'") + ) myFixture.checkResult(""" |class Foo() { |} @@ -189,9 +218,16 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() { |} """.trim().trimMargin()) - myFixture.launchAction(codeModifications.createAddBeanPropertyActions( - atCaret(myFixture), "baz", PsiModifier.PUBLIC, PsiType.getTypeByName("java.lang.String", project, GlobalSearchScope.allScope(project)), true, true) - .findWithText("Add 'var' property 'baz' to 'Foo'")) + myFixture.launchAction( + codeModifications.createAddBeanPropertyActions( + atCaret(myFixture), + "baz", + PsiModifier.PUBLIC, + PsiType.getTypeByName("java.lang.String", project, GlobalSearchScope.allScope(project)), + true, + true + ).findWithText("Add 'var' property 'baz' to 'Foo'") + ) myFixture.checkResult(""" |class Foo { | var baz: String = TODO("initialize me") @@ -208,7 +244,7 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() { """.trim().trimMargin()) myFixture.launchAction(codeModifications.createAddBeanPropertyActions( - atCaret(myFixture), "baz", PsiModifier.PUBLIC, PsiType.getTypeByName("java.lang.String", project, GlobalSearchScope.allScope(project)), true, true) + atCaret(myFixture), "baz", PsiModifier.PUBLIC, PsiType.getTypeByName("java.lang.String", project, GlobalSearchScope.allScope(project)), true, true) .findWithText("Add 'lateinit var' property 'baz' to 'Foo'")) myFixture.checkResult(""" |class Foo { @@ -225,8 +261,16 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() { |} """.trim().trimMargin()) - myFixture.launchAction(codeModifications.createAddBeanPropertyActions( - atCaret(myFixture), "baz", PsiModifier.PUBLIC, PsiType.getTypeByName("java.lang.String", project, GlobalSearchScope.allScope(project)), false, true).first()) + myFixture.launchAction( + codeModifications.createAddBeanPropertyActions( + atCaret(myFixture), + "baz", + PsiModifier.PUBLIC, + PsiType.getTypeByName("java.lang.String", project, GlobalSearchScope.allScope(project)), + false, + true + ).findWithText("Add 'val' property 'baz' to 'Foo'") + ) myFixture.checkResult(""" |class Foo { | val baz: String = TODO("initialize me") @@ -247,14 +291,15 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() { return myFixture.elementAtCaret.toUElement() as T } - @Suppress("CAST_NEVER_SUCCEEDS") - private fun Array.findWithText(text: String): IntentionAction = this.asList().findWithText(text) - @Suppress("CAST_NEVER_SUCCEEDS") private fun List.findWithText(text: String): IntentionAction = this.firstOrNull { it.text == text } ?: Assert.fail("intention with text '$text' was not found, only ${this.joinToString { "\"${it.text}\"" }} available") as Nothing + @Suppress("CAST_NEVER_SUCCEEDS") + private fun IntentionAction.ensureHasText(text: String): IntentionAction = + if (this.text == text) this else Assert.fail("intention with text '$text' was not found, only \"${this.text}\" available") as Nothing + private val codeModifications: JvmCommonIntentionActionsFactory get() = JvmCommonIntentionActionsFactory.forLanguage(Language.findLanguageByID("kotlin")!!)!!