Misc: Add action text assertions to CommonIntentionActionsTest

This commit is contained in:
Alexey Sedunov
2017-12-20 15:04:19 +03:00
parent 113e9f496e
commit 877874978f
@@ -30,7 +30,6 @@ import org.jetbrains.uast.*
import org.junit.Assert import org.junit.Assert
class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() { class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() {
fun testMakeNotFinal() { fun testMakeNotFinal() {
myFixture.configureByText("foo.kt", """ myFixture.configureByText("foo.kt", """
class Foo { class Foo {
@@ -38,7 +37,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() {
} }
""") """)
myFixture.launchAction(codeModifications.createChangeModifierAction(atCaret<UDeclaration>(myFixture), PsiModifier.FINAL, false)!!) myFixture.launchAction(
codeModifications
.createChangeModifierAction(atCaret(myFixture), PsiModifier.FINAL, false)!!
.ensureHasText("Make 'bar' open")
)
myFixture.checkResult(""" myFixture.checkResult("""
class Foo { class Foo {
open fun bar(){} open fun bar(){}
@@ -53,7 +56,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() {
} }
""") """)
myFixture.launchAction(codeModifications.createChangeModifierAction(atCaret<UDeclaration>(myFixture), PsiModifier.PRIVATE, true)!!) myFixture.launchAction(
codeModifications
.createChangeModifierAction(atCaret(myFixture), PsiModifier.PRIVATE, true)!!
.ensureHasText("Make 'Foo' private")
)
myFixture.checkResult(""" myFixture.checkResult("""
private class Foo { private class Foo {
fun bar(){} fun bar(){}
@@ -68,7 +75,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() {
} }
""".trim()) """.trim())
myFixture.launchAction(codeModifications.createChangeModifierAction(atCaret<UDeclaration>(myFixture), PsiModifier.PRIVATE, false)!!) myFixture.launchAction(
codeModifications
.createChangeModifierAction(atCaret(myFixture), PsiModifier.PRIVATE, false)!!
.ensureHasText("Remove 'private' modifier")
)
myFixture.checkResult(""" myFixture.checkResult("""
class Foo { class Foo {
fun bar(){} fun bar(){}
@@ -82,7 +93,7 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() {
fun bar<caret>(){} fun bar<caret>(){}
} }
""".trim()) """.trim())
Assert.assertNull(codeModifications.createChangeModifierAction(atCaret<UDeclaration>(myFixture), PsiModifier.FINAL, false)) Assert.assertNull(codeModifications.createChangeModifierAction(atCaret(myFixture), PsiModifier.FINAL, false))
} }
fun testAddVoidVoidMethod() { fun testAddVoidVoidMethod() {
@@ -92,8 +103,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() {
|} |}
""".trim().trimMargin()) """.trim().trimMargin())
myFixture.launchAction(codeModifications.createAddCallableMemberActions(MethodInsertionInfo.simpleMethodInfo( myFixture.launchAction(
atCaret<UClass>(myFixture), "baz", PsiModifier.PRIVATE, PsiType.VOID, emptyList())).first()) codeModifications.createAddCallableMemberActions(
MethodInsertionInfo.simpleMethodInfo(atCaret(myFixture), "baz", PsiModifier.PRIVATE, PsiType.VOID, emptyList())
).findWithText("Add method 'baz' to 'Foo'")
)
myFixture.checkResult(""" myFixture.checkResult("""
|class Foo { |class Foo {
| fun bar() {} | fun bar() {}
@@ -111,8 +125,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() {
|} |}
""".trim().trimMargin()) """.trim().trimMargin())
myFixture.launchAction(codeModifications.createAddCallableMemberActions(MethodInsertionInfo.simpleMethodInfo( myFixture.launchAction(
atCaret<UClass>(myFixture), "baz", PsiModifier.PUBLIC, PsiType.INT, makeParams(PsiType.INT))).first()) codeModifications.createAddCallableMemberActions(
MethodInsertionInfo.simpleMethodInfo(atCaret(myFixture), "baz", PsiModifier.PUBLIC, PsiType.INT, makeParams(PsiType.INT))
).findWithText("Add method 'baz' to 'Foo'")
)
myFixture.checkResult(""" myFixture.checkResult("""
|class Foo { |class Foo {
| fun bar() {} | fun bar() {}
@@ -129,8 +146,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() {
|} |}
""".trim().trimMargin()) """.trim().trimMargin())
myFixture.launchAction(codeModifications.createAddCallableMemberActions(MethodInsertionInfo.constructorInfo( myFixture.launchAction(
atCaret<UClass>(myFixture), makeParams(PsiType.INT))).findWithText("Add primary constructor to 'Foo'")) codeModifications.createAddCallableMemberActions(
MethodInsertionInfo.constructorInfo(atCaret(myFixture), makeParams(PsiType.INT))
).findWithText("Add primary constructor to 'Foo'")
)
myFixture.checkResult(""" myFixture.checkResult("""
|class Foo(param0: Int) { |class Foo(param0: Int) {
|} |}
@@ -143,8 +163,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() {
|} |}
""".trim().trimMargin()) """.trim().trimMargin())
myFixture.launchAction(codeModifications.createAddCallableMemberActions(MethodInsertionInfo.constructorInfo( myFixture.launchAction(
atCaret<UClass>(myFixture), makeParams(PsiType.INT))).findWithText("Add secondary constructor to 'Foo'")) codeModifications.createAddCallableMemberActions(
MethodInsertionInfo.constructorInfo(atCaret(myFixture), makeParams(PsiType.INT))
).findWithText("Add secondary constructor to 'Foo'")
)
myFixture.checkResult(""" myFixture.checkResult("""
|class Foo() { |class Foo() {
| constructor(param0: Int) { | constructor(param0: Int) {
@@ -160,8 +183,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() {
|} |}
""".trim().trimMargin()) """.trim().trimMargin())
myFixture.launchAction(codeModifications.createAddCallableMemberActions(MethodInsertionInfo.constructorInfo( myFixture.launchAction(
atCaret<UClass>(myFixture), makeParams(PsiType.INT))).findWithText("Add 'int' as 1st parameter to method 'Foo'")) codeModifications.createAddCallableMemberActions(
MethodInsertionInfo.constructorInfo(atCaret(myFixture), makeParams(PsiType.INT))
).findWithText("Add 'int' as 1st parameter to method 'Foo'")
)
myFixture.checkResult(""" myFixture.checkResult("""
|class Foo(param0: Int) { |class Foo(param0: Int) {
|} |}
@@ -174,8 +200,11 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() {
|} |}
""".trim().trimMargin()) """.trim().trimMargin())
myFixture.launchAction(codeModifications.createAddCallableMemberActions(MethodInsertionInfo.constructorInfo( myFixture.launchAction(
atCaret<UClass>(myFixture), makeParams())).findWithText("Remove 1st parameter from method 'Foo'")) codeModifications.createAddCallableMemberActions(
MethodInsertionInfo.constructorInfo(atCaret(myFixture), makeParams())
).findWithText("Remove 1st parameter from method 'Foo'")
)
myFixture.checkResult(""" myFixture.checkResult("""
|class Foo() { |class Foo() {
|} |}
@@ -189,9 +218,16 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() {
|} |}
""".trim().trimMargin()) """.trim().trimMargin())
myFixture.launchAction(codeModifications.createAddBeanPropertyActions( myFixture.launchAction(
atCaret<UClass>(myFixture), "baz", PsiModifier.PUBLIC, PsiType.getTypeByName("java.lang.String", project, GlobalSearchScope.allScope(project)), true, true) codeModifications.createAddBeanPropertyActions(
.findWithText("Add 'var' property 'baz' to 'Foo'")) 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(""" myFixture.checkResult("""
|class Foo { |class Foo {
| var baz: String = TODO("initialize me") | var baz: String = TODO("initialize me")
@@ -208,7 +244,7 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() {
""".trim().trimMargin()) """.trim().trimMargin())
myFixture.launchAction(codeModifications.createAddBeanPropertyActions( myFixture.launchAction(codeModifications.createAddBeanPropertyActions(
atCaret<UClass>(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'")) .findWithText("Add 'lateinit var' property 'baz' to 'Foo'"))
myFixture.checkResult(""" myFixture.checkResult("""
|class Foo { |class Foo {
@@ -225,8 +261,16 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() {
|} |}
""".trim().trimMargin()) """.trim().trimMargin())
myFixture.launchAction(codeModifications.createAddBeanPropertyActions( myFixture.launchAction(
atCaret<UClass>(myFixture), "baz", PsiModifier.PUBLIC, PsiType.getTypeByName("java.lang.String", project, GlobalSearchScope.allScope(project)), false, true).first()) 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(""" myFixture.checkResult("""
|class Foo { |class Foo {
| val baz: String = TODO("initialize me") | val baz: String = TODO("initialize me")
@@ -247,14 +291,15 @@ class CommonIntentionActionsTest : LightPlatformCodeInsightFixtureTestCase() {
return myFixture.elementAtCaret.toUElement() as T return myFixture.elementAtCaret.toUElement() as T
} }
@Suppress("CAST_NEVER_SUCCEEDS")
private fun Array<IntentionAction>.findWithText(text: String): IntentionAction = this.asList().findWithText(text)
@Suppress("CAST_NEVER_SUCCEEDS") @Suppress("CAST_NEVER_SUCCEEDS")
private fun List<IntentionAction>.findWithText(text: String): IntentionAction = private fun List<IntentionAction>.findWithText(text: String): IntentionAction =
this.firstOrNull { it.text == text } ?: this.firstOrNull { it.text == text } ?:
Assert.fail("intention with text '$text' was not found, only ${this.joinToString { "\"${it.text}\"" }} available") as Nothing 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 private val codeModifications: JvmCommonIntentionActionsFactory
get() = JvmCommonIntentionActionsFactory.forLanguage(Language.findLanguageByID("kotlin")!!)!! get() = JvmCommonIntentionActionsFactory.forLanguage(Language.findLanguageByID("kotlin")!!)!!