IDEA-19061 Integrate the Rearranger-plugin into core-IDEA

More tests have been refactored and enabled
This commit is contained in:
Denis.Zhdanov
2012-05-24 11:39:20 +04:00
parent 3695d6fe75
commit c1ff880bc3
4 changed files with 64 additions and 81 deletions
@@ -281,9 +281,7 @@
<Enum value="true" invert="false"/>
</InnerClass>
<Comment condition="2" nPrecedingRulesToMatch="1" nSubsequentRulesToMatch="1" allPrecedingRules="true" allSubsequentRules="true"
fillString="" useProjectWidthForFill="true" fillWidth="0">\n//\ --------------------------\ INNER\ CLASSES\
--------------------------\n
</Comment>
fillString="" useProjectWidthForFill="true" fillWidth="0">\n// -------------------------- INNER CLASSES --------------------------\n</Comment>
<InnerClass priority="1">
<ProtectionLevel public="false" private="false" protected="false" package="false" invert="false"/>
<Static value="false" invert="false"/>
@@ -66,7 +66,11 @@ class RearrangerTest extends LightCodeInsightFixtureTestCase {
mySettings.showParameterTypes = true
mySettings.showRules = true
mySettings.rearrangeInnerClasses = true
prepareBuilders(mySettings)
}
private void prepareBuilders(RearrangerSettings mySettings) {
settings = new SettingsConfigurationBuilder(settings: mySettings)
classRule = new JavaClassRuleBuilder(settings: mySettings)
interfaceRule = new JavaInterfaceRuleBuilder(settings: mySettings)
@@ -813,7 +817,18 @@ class RearrangerTest extends LightCodeInsightFixtureTestCase {
lines: 1 )
spacing ( 'remove blank lines': true )
} } }
private void setupSettings(@NotNull String relativePath) {
// Using concat() because simple '+' here produces weird groovy.lang.MissingMethodException: No signature of method:
// java.lang.String.positive() is applicable for argument types: () values: []
def path = PlatformTestUtil.getCommunityPath().replace(File.separator, '/').concat("/plugins/rearranger")
.concat(relativePath)
mySettings = RearrangerSettings.getSettingsFromFile(new File(path));
mySettings.askBeforeRearranging = false
prepareBuilders(mySettings)
}
/**
* Bug occurs when one or more blank lines precede a generated comment.
* When comment is removed, blank lines now precede the item. Comment is inserted
@@ -824,77 +839,36 @@ class RearrangerTest extends LightCodeInsightFixtureTestCase {
*/
public void testGeneratedCommentSpacingBug() throws Exception {
doTest('RearrangementTest32', 'RearrangementResult32') {
// Using concat() because simple '+' here produces weird groovy.lang.MissingMethodException: No signature of method:
// java.lang.String.positive() is applicable for argument types: () values: []
def path = PlatformTestUtil.getCommunityPath().replace(File.separator, '/').concat("/plugins/rearranger")
.concat(InteractiveTest.DEFAULT_CONFIGURATION)
mySettings = RearrangerSettings.getSettingsFromFile(new File(path));
mySettings.askBeforeRearranging = false
mySettings.newLinesAtEOF.force = true
mySettings.newLinesAtEOF.nBlankLines = 1
setupSettings(InteractiveTest.DEFAULT_CONFIGURATION)
spacingRule.spacing(anchor: SpacingAnchor.EOF, lines: 1)
} }
public void testGeneratedCommentSpacing() throws Exception {
doTest('RearrangementTest32', 'RearrangementResult32') {
setupSettings(InteractiveTest.DEFAULT_CONFIGURATION)
spacingRule.spacing(anchor: SpacingAnchor.EOF, lines: 1)
} }
public void testInnerClassComments() throws Exception {
doTest('RearrangementTest34', 'RearrangementResult34') {
setupSettings(InteractiveTest.DEFAULT_CONFIGURATION)
spacingRule.spacing(anchor: SpacingAnchor.EOF, lines: 1)
settings.configure( 'rearranger inner classes': true, 'class comment': '// ----- OUTER CLASS -----\n' )
} }
public void testInnerClassCommentsNoRearrangement() throws Exception {
doTest('RearrangementTest34', 'RearrangementResult34B') {
setupSettings(InteractiveTest.DEFAULT_CONFIGURATION)
spacingRule.spacing(anchor: SpacingAnchor.EOF, lines: 1)
settings.configure( 'rearranger inner classes': false, 'class comment': '// ----- OUTER CLASS -----\n' )
} }
public void testFirstInsertionOfComment() throws Exception {
doTest('RearrangementTest35', 'RearrangementResult35') {
commentRule.comment('// ----- FIELDS -----\n')
fieldRule.create { }
} }
// public void testGeneratedCommentSpacing() throws Exception {
// configureByFile("/com/wrq/rearranger/RearrangementTest32.java");
// final PsiFile file = getFile();
// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
// rs = RearrangerSettings.getSettingsFromFile(new File(InteractiveTest.DEFAULT_CONFIGURATION));
// rs.setAskBeforeRearranging(false);
// rs.getNewlinesAtEOF().setForce(true);
// rs.getNewlinesAtEOF().setnBlankLines(1);
// final RearrangerActionHandler rah = new RearrangerActionHandler();
// rah.rearrangeDocument(getProject(), file, rs, doc);
// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult32.java");
// }
//
// public void testInnerClassComments() throws Exception {
// configureByFile("/com/wrq/rearranger/RearrangementTest34.java");
// final PsiFile file = getFile();
// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
// rs = RearrangerSettings.getSettingsFromFile(new File(InteractiveTest.DEFAULT_CONFIGURATION));
// rs.setAskBeforeRearranging(false);
// rs.setRearrangeInnerClasses(true);
// rs.getNewlinesAtEOF().setForce(true);
// rs.getNewlinesAtEOF().setnBlankLines(1);
// CommentRule cr = new CommentRule();
// cr.setCommentText("// ----- OUTER CLASS -----\n");
// rs.getClassOrderAttributeList().add(0, cr);
// final RearrangerActionHandler rah = new RearrangerActionHandler();
// rah.rearrangeDocument(getProject(), file, rs, doc);
// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult34.java");
// }
//
// public void testInnerClassCommentsNoRearrangement() throws Exception {
// configureByFile("/com/wrq/rearranger/RearrangementTest34.java");
// final PsiFile file = getFile();
// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
// rs = RearrangerSettings.getSettingsFromFile(new File(InteractiveTest.DEFAULT_CONFIGURATION));
// rs.setAskBeforeRearranging(false);
// rs.setRearrangeInnerClasses(false);
// rs.getNewlinesAtEOF().setForce(true);
// rs.getNewlinesAtEOF().setnBlankLines(1);
// CommentRule cr = new CommentRule();
// cr.setCommentText("// ----- OUTER CLASS -----\n");
// rs.getClassOrderAttributeList().add(0, cr);
// final RearrangerActionHandler rah = new RearrangerActionHandler();
// rah.rearrangeDocument(getProject(), file, rs, doc);
// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult34B.java");
// }
//
// public void testFirstInsertionOfComment() throws Exception {
// configureByFile("/com/wrq/rearranger/RearrangementTest35.java");
// final PsiFile file = getFile();
// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
// CommentRule cr = new CommentRule();
// cr.setCommentText("// ----- FIELDS -----\n");
// FieldAttributes fa = new FieldAttributes();
// rs.addItem(cr, 0);
// rs.addItem(fa, 1);
// final RearrangerActionHandler rah = new RearrangerActionHandler();
// rah.rearrangeDocument(getProject(), file, rs, doc);
// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult35.java");
// }
//
// public void testExcludeFromExtraction() throws Exception {
// configureByFile("/com/wrq/rearranger/RearrangementTest36.java");
// final PsiFile file = getFile();
@@ -54,7 +54,9 @@ public enum RearrangerTestDsl {
BLANK_LINES("lines"),
REMOVE_BLANK_LINES("remove blank lines"),
BELOW_FIRST_CALLER("below first caller"),
NON_PRIVATE_TREATMENT("non-private treatment");
NON_PRIVATE_TREATMENT("non-private treatment"),
REARRANGE_INNER_CLASSES("rearranger inner classes"),
CLASS_COMMENT("class comment");
@NotNull private final String myValue;
@@ -45,13 +45,14 @@ class SettingsConfigurationBuilder extends BuilderSupport {
switch (name) {
case RearrangerTestDsl.EXTRACTED_METHODS.value:
settings.extractedMethodsSettings.moveExtractedMethods = true
setIf(RearrangerTestDsl.DEPTH_FIRST_ORDER, attributes, 'depthFirstOrdering', settings.extractedMethodsSettings)
setIf(RearrangerTestDsl.ORDER, attributes, 'ordering', settings.extractedMethodsSettings)
setIf(RearrangerTestDsl.COMMENT_TYPE, attributes, 'commentType', settings.extractedMethodsSettings)
setIf(RearrangerTestDsl.BELOW_FIRST_CALLER, attributes, 'belowFirstCaller', settings.extractedMethodsSettings)
setIf(RearrangerTestDsl.DEPTH_FIRST_ORDER, attributes, 'depthFirstOrdering', settings.extractedMethodsSettings)
setIf(RearrangerTestDsl.ORDER, attributes, 'ordering', settings.extractedMethodsSettings)
setIf(RearrangerTestDsl.COMMENT_TYPE, attributes, 'commentType', settings.extractedMethodsSettings)
setIf(RearrangerTestDsl.BELOW_FIRST_CALLER, attributes, 'belowFirstCaller', settings.extractedMethodsSettings)
setIf(RearrangerTestDsl.NON_PRIVATE_TREATMENT, attributes, 'nonPrivateTreatment', settings.extractedMethodsSettings)
commentHandler(RearrangerTestDsl.PRECEDING_COMMENT, 'precedingComment')
commentHandler(RearrangerTestDsl.TRAILING_COMMENT, 'trailingComment')
commentHandler(RearrangerTestDsl.TRAILING_COMMENT, 'trailingComment')
break
case RearrangerTestDsl.KEEP_TOGETHER.value:
def m = [
@@ -64,8 +65,16 @@ class SettingsConfigurationBuilder extends BuilderSupport {
}
break
case RearrangerTestDsl.OVERLOADED_METHODS.value:
setIf(RearrangerTestDsl.ORDER, attributes, 'overloadedOrder', settings)
setIf(RearrangerTestDsl.ORDER, attributes, 'overloadedOrder', settings)
setIf(RearrangerTestDsl.KEEP_TOGETHER, attributes, 'keepOverloadedMethodsTogether', settings)
break
default:
setIf(RearrangerTestDsl.REARRANGE_INNER_CLASSES, attributes, 'rearrangeInnerClasses', settings)
if (attributes[RearrangerTestDsl.CLASS_COMMENT.value]) {
def comment = new CommentRule()
comment.commentText = attributes[RearrangerTestDsl.CLASS_COMMENT.value]
settings.classOrderAttributeList.add(0, comment)
}
}
settings
}