mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-13 15:52:01 +07:00
112 lines
5.5 KiB
Java
112 lines
5.5 KiB
Java
package com.intellij.refactoring;
|
|
|
|
import com.intellij.JavaTestUtil;
|
|
import com.intellij.psi.PsiPrimitiveType;
|
|
import com.intellij.psi.PsiType;
|
|
import com.intellij.refactoring.introduceField.BaseExpressionToFieldHandler;
|
|
import com.intellij.refactoring.util.CommonRefactoringUtil;
|
|
import com.intellij.testFramework.LightCodeInsightTestCase;
|
|
|
|
/**
|
|
* @author ven
|
|
*/
|
|
public class IntroduceFieldInSameClassTest extends LightCodeInsightTestCase {
|
|
@Override
|
|
protected String getTestDataPath() {
|
|
return JavaTestUtil.getJavaTestDataPath();
|
|
}
|
|
|
|
public void testInClassInitializer () throws Exception {
|
|
configureByFile("/refactoring/introduceField/before1.java");
|
|
performRefactoring(BaseExpressionToFieldHandler.InitializationPlace.IN_FIELD_DECLARATION, true);
|
|
checkResultByFile("/refactoring/introduceField/after1.java");
|
|
}
|
|
|
|
public void testInElseClause() throws Exception {
|
|
configureByFile("/refactoring/introduceField/beforeElseClause.java");
|
|
performRefactoring(BaseExpressionToFieldHandler.InitializationPlace.IN_CURRENT_METHOD, true);
|
|
checkResultByFile("/refactoring/introduceField/afterElseClause.java");
|
|
}
|
|
|
|
public void testOuterClass() throws Exception {
|
|
configureByFile("/refactoring/introduceField/beforeOuterClass.java");
|
|
performRefactoring(BaseExpressionToFieldHandler.InitializationPlace.IN_CONSTRUCTOR, false);
|
|
checkResultByFile("/refactoring/introduceField/afterOuterClass.java");
|
|
}
|
|
|
|
public void testOnClassLevelNoDuplicates() throws Exception {
|
|
configureByFile("/refactoring/introduceField/beforeOnClassLevelNoDuplicates.java");
|
|
performRefactoring(BaseExpressionToFieldHandler.InitializationPlace.IN_FIELD_DECLARATION, false);
|
|
checkResultByFile("/refactoring/introduceField/afterOnClassLevelNoDuplicates.java");
|
|
}
|
|
|
|
public void testOnClassLevelDuplicates() throws Exception {
|
|
configureByFile("/refactoring/introduceField/beforeOnClassLevelDuplicates.java");
|
|
performRefactoring(BaseExpressionToFieldHandler.InitializationPlace.IN_FIELD_DECLARATION, false);
|
|
checkResultByFile("/refactoring/introduceField/afterOnClassLevelDuplicates.java");
|
|
}
|
|
|
|
public void testOnClassLevelDuplicates1() throws Exception {
|
|
configureByFile("/refactoring/introduceField/beforeOnClassLevelDuplicates1.java");
|
|
performRefactoring(BaseExpressionToFieldHandler.InitializationPlace.IN_FIELD_DECLARATION, false);
|
|
checkResultByFile("/refactoring/introduceField/afterOnClassLevelDuplicates1.java");
|
|
}
|
|
|
|
public void testOnClassLevelBinary() throws Exception {
|
|
configureByFile("/refactoring/introduceField/beforeOnClassLevelBinary.java");
|
|
performRefactoring(BaseExpressionToFieldHandler.InitializationPlace.IN_FIELD_DECLARATION, false);
|
|
checkResultByFile("/refactoring/introduceField/afterOnClassLevelBinary.java");
|
|
}
|
|
//multiple error elements on class level corresponding to the extracted fragment ------------------
|
|
public void testOnClassLevelNewExpression() throws Exception {
|
|
configureByFile("/refactoring/introduceField/beforeOnClassLevelNewExpression.java");
|
|
performRefactoring(BaseExpressionToFieldHandler.InitializationPlace.IN_FIELD_DECLARATION, false);
|
|
checkResultByFile("/refactoring/introduceField/afterOnClassLevelNewExpression.java");
|
|
}
|
|
|
|
public void testOnClassLevelClassForName() throws Exception {
|
|
configureByFile("/refactoring/introduceField/beforeOnClassLevelClassForName.java");
|
|
performRefactoring(BaseExpressionToFieldHandler.InitializationPlace.IN_FIELD_DECLARATION, false);
|
|
checkResultByFile("/refactoring/introduceField/afterOnClassLevelClassForName.java");
|
|
}
|
|
//-------------------------------------------------------------------------------------------------
|
|
|
|
private static void performRefactoring(final BaseExpressionToFieldHandler.InitializationPlace initializationPlace, final boolean declareStatic) {
|
|
new MockIntroduceFieldHandler(initializationPlace, declareStatic).invoke(getProject(), myEditor, myFile, null);
|
|
}
|
|
|
|
public void testForcedFieldType() throws Exception {
|
|
configureByFile("/refactoring/introduceField/beforeForcedFieldType.java");
|
|
new MockIntroduceFieldHandler(BaseExpressionToFieldHandler.InitializationPlace.IN_CURRENT_METHOD, false){
|
|
@Override
|
|
protected PsiType getFieldType(PsiType type) {
|
|
return PsiPrimitiveType.INT;
|
|
}
|
|
}.invoke(getProject(), myEditor, myFile, null);
|
|
checkResultByFile("/refactoring/introduceField/afterForcedFieldType.java");
|
|
}
|
|
|
|
public void testRejectIntroduceFieldFromExprInThisCall() throws Exception {
|
|
configureByFile("/refactoring/introduceField/beforeRejectIntroduceFieldFromExprInThisCall.java");
|
|
try {
|
|
performRefactoring(BaseExpressionToFieldHandler.InitializationPlace.IN_FIELD_DECLARATION, false);
|
|
fail("Should not proceed");
|
|
}
|
|
catch (CommonRefactoringUtil.RefactoringErrorHintException e) {
|
|
assertEquals("Cannot perform refactoring.\n" +
|
|
"Invalid expression context.", e.getMessage());
|
|
}
|
|
}
|
|
|
|
public void testInConstructorEnclosingAnonymous() throws Exception {
|
|
configureByFile("/refactoring/introduceField/beforeEnclosingAnonymous.java");
|
|
performRefactoring(BaseExpressionToFieldHandler.InitializationPlace.IN_CONSTRUCTOR, false);
|
|
checkResultByFile("/refactoring/introduceField/afterEnclosingAnonymous.java");
|
|
}
|
|
|
|
public void testLocalVarAnnotations() throws Exception {
|
|
configureByFile("/refactoring/introduceField/beforeLocalVarAnnotations.java");
|
|
performRefactoring(BaseExpressionToFieldHandler.InitializationPlace.IN_FIELD_DECLARATION, false);
|
|
checkResultByFile("/refactoring/introduceField/afterLocalVarAnnotations.java");
|
|
}
|
|
} |