Implement "Safe Delete" refactoring for properties

This commit is contained in:
Alexey Sedunov
2013-07-19 19:01:34 +04:00
parent 9c60637ef3
commit 639336b2f5
109 changed files with 1287 additions and 85 deletions
@@ -32,6 +32,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.psi.JetClass;
import org.jetbrains.jet.lang.psi.JetNamedFunction;
import org.jetbrains.jet.lang.psi.JetObjectDeclarationName;
import org.jetbrains.jet.lang.psi.JetProperty;
import org.jetbrains.jet.plugin.JetLightProjectDescriptor;
import org.jetbrains.jet.plugin.PluginTestCaseBase;
@@ -74,6 +75,18 @@ public abstract class AbstractJetSafeDeleteTest extends LightCodeInsightFixtureT
doTest(path, PsiMethod.class, true);
}
public void doPropertyTest(@NotNull String path) throws Exception {
doTest(path, JetProperty.class, false);
}
public void doPropertyTestWithJava(@NotNull String path) throws Exception {
doTest(path, JetProperty.class, true);
}
public void doJavaPropertyTest(@NotNull String path) throws Exception {
doTest(path, PsiMethod.class, true);
}
private <T extends PsiElement> void doTest(
@NotNull String path, @NotNull Class<T> elementClass, boolean withJava) throws Exception {
String[] filePaths;
@@ -30,7 +30,7 @@ import org.jetbrains.jet.safeDelete.AbstractJetSafeDeleteTest;
/** This class is generated by {@link org.jetbrains.jet.generators.tests.GenerateTests}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@InnerTestClasses({JetSafeDeleteTestGenerated.DeleteClass.class, JetSafeDeleteTestGenerated.DeleteObject.class, JetSafeDeleteTestGenerated.DeleteFunction.class, JetSafeDeleteTestGenerated.DeleteFunctionWithJavaUsages.class})
@InnerTestClasses({JetSafeDeleteTestGenerated.DeleteClass.class, JetSafeDeleteTestGenerated.DeleteObject.class, JetSafeDeleteTestGenerated.DeleteFunction.class, JetSafeDeleteTestGenerated.DeleteFunctionWithJavaUsages.class, JetSafeDeleteTestGenerated.DeleteJavaMethod.class, JetSafeDeleteTestGenerated.DeleteProperty.class, JetSafeDeleteTestGenerated.DeletePropertyWithJavaUsages.class, JetSafeDeleteTestGenerated.DeleteJavaProperty.class})
public class JetSafeDeleteTestGenerated extends AbstractJetSafeDeleteTest {
@TestMetadata("idea/testData/safeDelete/deleteClass")
public static class DeleteClass extends AbstractJetSafeDeleteTest {
@@ -229,12 +229,238 @@ public class JetSafeDeleteTestGenerated extends AbstractJetSafeDeleteTest {
}
@TestMetadata("idea/testData/safeDelete/deleteJavaMethod")
public static class DeleteJavaMethod extends AbstractJetSafeDeleteTest {
public void testAllFilesPresentInDeleteJavaMethod() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteJavaMethod"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("mixedHierarchy1.kt")
public void testMixedHierarchy1() throws Exception {
doJavaMethodTest("idea/testData/safeDelete/deleteJavaMethod/mixedHierarchy1.kt");
}
@TestMetadata("mixedHierarchy2.kt")
public void testMixedHierarchy2() throws Exception {
doJavaMethodTest("idea/testData/safeDelete/deleteJavaMethod/mixedHierarchy2.kt");
}
}
@TestMetadata("idea/testData/safeDelete/deleteProperty")
public static class DeleteProperty extends AbstractJetSafeDeleteTest {
public void testAllFilesPresentInDeleteProperty() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteProperty"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("implement1.kt")
public void testImplement1() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/implement1.kt");
}
@TestMetadata("implement2.kt")
public void testImplement2() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/implement2.kt");
}
@TestMetadata("implement3.kt")
public void testImplement3() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/implement3.kt");
}
@TestMetadata("implement4.kt")
public void testImplement4() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/implement4.kt");
}
@TestMetadata("implement5.kt")
public void testImplement5() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/implement5.kt");
}
@TestMetadata("implement6.kt")
public void testImplement6() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/implement6.kt");
}
@TestMetadata("implement7.kt")
public void testImplement7() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/implement7.kt");
}
@TestMetadata("implement8.kt")
public void testImplement8() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/kotlinProperty/implement8.kt");
}
@TestMetadata("noUsages.kt")
public void testNoUsages() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/noUsages.kt");
}
@TestMetadata("override1.kt")
public void testOverride1() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/override1.kt");
}
@TestMetadata("override2.kt")
public void testOverride2() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/override2.kt");
}
@TestMetadata("override3.kt")
public void testOverride3() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/override3.kt");
}
@TestMetadata("override4.kt")
public void testOverride4() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/override4.kt");
}
@TestMetadata("overrideAndImplement1.kt")
public void testOverrideAndImplement1() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/overrideAndImplement1.kt");
}
@TestMetadata("overrideAndImplement2.kt")
public void testOverrideAndImplement2() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/overrideAndImplement2.kt");
}
@TestMetadata("overrideAndImplement3.kt")
public void testOverrideAndImplement3() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/overrideAndImplement3.kt");
}
@TestMetadata("overrideAndImplement4.kt")
public void testOverrideAndImplement4() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/overrideAndImplement4.kt");
}
@TestMetadata("overrideWithUsages.kt")
public void testOverrideWithUsages() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/overrideWithUsages.kt");
}
@TestMetadata("property1.kt")
public void testProperty1() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/property1.kt");
}
@TestMetadata("property2.kt")
public void testProperty2() throws Exception {
doPropertyTest("idea/testData/safeDelete/deleteProperty/property2.kt");
}
}
@TestMetadata("idea/testData/safeDelete/deletePropertyWithJavaUsages")
public static class DeletePropertyWithJavaUsages extends AbstractJetSafeDeleteTest {
public void testAllFilesPresentInDeletePropertyWithJavaUsages() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deletePropertyWithJavaUsages"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("implement1.kt")
public void testImplement1() throws Exception {
doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/implement1.kt");
}
@TestMetadata("implement2.kt")
public void testImplement2() throws Exception {
doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/implement2.kt");
}
@TestMetadata("implement3.kt")
public void testImplement3() throws Exception {
doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/implement3.kt");
}
@TestMetadata("implement4.kt")
public void testImplement4() throws Exception {
doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/implement4.kt");
}
@TestMetadata("override1.kt")
public void testOverride1() throws Exception {
doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/override1.kt");
}
@TestMetadata("override2.kt")
public void testOverride2() throws Exception {
doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/override2.kt");
}
@TestMetadata("override3.kt")
public void testOverride3() throws Exception {
doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/override3.kt");
}
@TestMetadata("override4.kt")
public void testOverride4() throws Exception {
doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/override4.kt");
}
@TestMetadata("overrideAndImplement1.kt")
public void testOverrideAndImplement1() throws Exception {
doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/overrideAndImplement1.kt");
}
@TestMetadata("overrideAndImplement2.kt")
public void testOverrideAndImplement2() throws Exception {
doPropertyTestWithJava("idea/testData/safeDelete/deletePropertyWithJavaUsages/overrideAndImplement2.kt");
}
}
@TestMetadata("idea/testData/safeDelete/deleteJavaProperty")
public static class DeleteJavaProperty extends AbstractJetSafeDeleteTest {
public void testAllFilesPresentInDeleteJavaProperty() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/safeDelete/deleteJavaProperty"), Pattern.compile("^(.+)\\.kt$"), true);
}
@TestMetadata("middleJava1.kt")
public void testMiddleJava1() throws Exception {
doJavaPropertyTest("idea/testData/safeDelete/deleteJavaProperty/middleJava1.kt");
}
@TestMetadata("middleJava2.kt")
public void testMiddleJava2() throws Exception {
doJavaPropertyTest("idea/testData/safeDelete/deleteJavaProperty/middleJava2.kt");
}
@TestMetadata("middleJava3.kt")
public void testMiddleJava3() throws Exception {
doJavaPropertyTest("idea/testData/safeDelete/deleteJavaProperty/middleJava3.kt");
}
@TestMetadata("middleJava4.kt")
public void testMiddleJava4() throws Exception {
doJavaPropertyTest("idea/testData/safeDelete/deleteJavaProperty/middleJava4.kt");
}
@TestMetadata("middleJava5.kt")
public void testMiddleJava5() throws Exception {
doJavaPropertyTest("idea/testData/safeDelete/deleteJavaProperty/middleJava5.kt");
}
@TestMetadata("middleJava6.kt")
public void testMiddleJava6() throws Exception {
doJavaPropertyTest("idea/testData/safeDelete/deleteJavaProperty/middleJava6.kt");
}
}
public static Test suite() {
TestSuite suite = new TestSuite("JetSafeDeleteTestGenerated");
suite.addTestSuite(DeleteClass.class);
suite.addTestSuite(DeleteObject.class);
suite.addTestSuite(DeleteFunction.class);
suite.addTestSuite(DeleteFunctionWithJavaUsages.class);
suite.addTestSuite(DeleteJavaMethod.class);
suite.addTestSuite(DeleteProperty.class);
suite.addTestSuite(DeletePropertyWithJavaUsages.class);
suite.addTestSuite(DeleteJavaProperty.class);
return suite;
}
}