diff --git a/plugins/rearranger/test/src/com/wrq/rearranger/RearrangerTest.groovy b/plugins/rearranger/test/src/com/wrq/rearranger/RearrangerTest.groovy index 27399a4c2420..8f6737079a92 100644 --- a/plugins/rearranger/test/src/com/wrq/rearranger/RearrangerTest.groovy +++ b/plugins/rearranger/test/src/com/wrq/rearranger/RearrangerTest.groovy @@ -930,78 +930,35 @@ class RearrangerTest extends LightCodeInsightFixtureTestCase { 'not sort by' SortOption.BY_NAME } } } -// /** -// * test detection of method overrides/overridden/implements/implemented attributes. -// * -// * @throws Exception test exception -// */ -// public void testOverImpl() throws Exception { -// configureByFile("/com/wrq/rearranger/RearrangementTest40.java"); -// final PsiFile file = getFile(); -// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file); -// final RearrangerActionHandler rah = new RearrangerActionHandler(); -// rah.rearrangeDocument(getProject(), file, rs, doc); -// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult40.java"); -// } -// -// public final void testRemoveBlankLinesBeforeMethod() throws Exception { -// configureByFile("/com/wrq/rearranger/RearrangementTest41.java"); -// final PsiFile file = getFile(); -// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file); -// final RearrangerActionHandler rah = new RearrangerActionHandler(); -// rs.getAfterClassLBrace().setForce(true); -// rs.getAfterClassLBrace().setnBlankLines(0); -// rs.getBeforeMethodLBrace().setForce(true); -// rs.getBeforeMethodLBrace().setnBlankLines(0); -// rs.getAfterMethodLBrace().setForce(true); -// rs.getAfterMethodLBrace().setnBlankLines(0); -// rs.getBeforeMethodRBrace().setForce(true); -// rs.getBeforeMethodRBrace().setnBlankLines(0); -// rs.getAfterMethodRBrace().setForce(true); -// rs.getAfterMethodRBrace().setnBlankLines(0); -// rs.getBeforeClassRBrace().setForce(true); -// rs.getBeforeClassRBrace().setnBlankLines(0); -// rs.getAfterClassRBrace().setForce(true); -// rs.getAfterClassRBrace().setnBlankLines(0); -// rs.setRemoveBlanksInsideCodeBlocks(true); -// rah.rearrangeDocument(getProject(), file, rs, doc); -// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult41.java"); -// } -// -// public final void testEnumClass() throws Exception { -// final Project project = getProject(); -// final LanguageLevelProjectExtension llpExtension = LanguageLevelProjectExtension.getInstance(project); -// LanguageLevel oldLevel = llpExtension.getLanguageLevel(); -// llpExtension.setLanguageLevel(LanguageLevel.JDK_1_5); -// configureByFile("/com/wrq/rearranger/RearrangementTest42.java"); -// final PsiFile file = getFile(); -// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file); -// final RearrangerActionHandler rah = new RearrangerActionHandler(); -// rah.rearrangeDocument(getProject(), file, rs, doc); -// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult42.java"); -// llpExtension.setLanguageLevel(oldLevel); -// } -// -// public final void testNumParameters() throws Exception { -// configureByFile("/com/wrq/rearranger/RearrangementTest43.java"); -// final PsiFile file = getFile(); -// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file); -// final RearrangerActionHandler rah = new RearrangerActionHandler(); -// MethodAttributes ma; -// ma = new MethodAttributes(); -// ma.getMinParamsAttr().setMatch(true); -// ma.getMinParamsAttr().setValue(2); -// ma.getMaxParamsAttr().setMatch(true); -// ma.getMaxParamsAttr().setValue(3); -// rs.addItem(ma, 0); -// ma = new MethodAttributes(); -// ma.getMinParamsAttr().setMatch(true); -// ma.getMinParamsAttr().setValue(1); -// rs.addItem(ma, 1); -// rah.rearrangeDocument(getProject(), file, rs, doc); -// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult43.java"); -// } -// + /** + * test detection of method overrides/overridden/implements/implemented attributes. + * + * @throws Exception test exception + */ + public void testOverImpl() throws Exception { doTest('RearrangementTest40', 'RearrangementResult40') } + + public final void testRemoveBlankLinesBeforeMethod() throws Exception { + doTest('RearrangementTest41', 'RearrangementResult41') { + spacingRule.create { + spacing(anchor: [ SpacingAnchor.AFTER_CLASS_LBRACE, SpacingAnchor.BEFORE_METHOD_LBRACE, SpacingAnchor.AFTER_METHOD_LBRACE, + SpacingAnchor.BEFORE_METHOD_RBRACE, SpacingAnchor.AFTER_METHOD_RBRACE, SpacingAnchor.BEFORE_CLASS_RBRACE, + SpacingAnchor.AFTER_CLASS_RBRACE], + lines: 0, 'remove blank lines': true) + } + } + } + + public final void testEnumClass() throws Exception { doTest('RearrangementTest42', 'RearrangementResult42') } + + public final void testNumParameters() throws Exception { + doTest('RearrangementTest43', 'RearrangementResult43') { + methodRule.create { + 'arguments number' ( from: 2, to: 3) + } + methodRule.create { + 'arguments number' ( from: 1) + } } } + // public final void testGeneratedComment() throws Exception { // configureByFile("/com/wrq/rearranger/RearrangementTest44.java"); // final PsiFile file = getFile(); diff --git a/plugins/rearranger/test/src/com/wrq/rearranger/util/RearrangerTestDsl.java b/plugins/rearranger/test/src/com/wrq/rearranger/util/RearrangerTestDsl.java index bcba515070d4..d8266f988955 100644 --- a/plugins/rearranger/test/src/com/wrq/rearranger/util/RearrangerTestDsl.java +++ b/plugins/rearranger/test/src/com/wrq/rearranger/util/RearrangerTestDsl.java @@ -57,7 +57,10 @@ public enum RearrangerTestDsl { BELOW_FIRST_CALLER("below first caller"), NON_PRIVATE_TREATMENT("non-private treatment"), REARRANGE_INNER_CLASSES("rearranger inner classes"), - CLASS_COMMENT("class comment"); + CLASS_COMMENT("class comment"), + ARGUMENTS_NUMBER("arguments number"), + FROM, + TO; @NotNull private final String myValue; diff --git a/plugins/rearranger/test/src/com/wrq/rearranger/util/java/JavaMethodRuleBuilder.groovy b/plugins/rearranger/test/src/com/wrq/rearranger/util/java/JavaMethodRuleBuilder.groovy index 8b7c40b76d67..215e912de1bf 100644 --- a/plugins/rearranger/test/src/com/wrq/rearranger/util/java/JavaMethodRuleBuilder.groovy +++ b/plugins/rearranger/test/src/com/wrq/rearranger/util/java/JavaMethodRuleBuilder.groovy @@ -14,12 +14,14 @@ class JavaMethodRuleBuilder extends AbstractJavaRuleBuilder { { def handlers = [ - (MethodType.CONSTRUCTOR) : createRawBooleanAttributeHandler('constructorMethodType'), + (MethodType.CONSTRUCTOR) : createRawBooleanAttributeHandler('constructorMethodType'), (MethodType.GETTER_OR_SETTER) : createRawBooleanAttributeHandler('getterSetterMethodType'), - (MethodType.OTHER) : createRawBooleanAttributeHandler('otherMethodType') + (MethodType.OTHER) : createRawBooleanAttributeHandler('otherMethodType') ] registerHandler(RearrangerTestDsl.TARGET, { data, attributes, rule -> handlers[data](attributes, rule) }) registerHandler(RearrangerTestDsl.RETURN_TYPE, createStringAttributeHandler('returnTypeAttr')) + + // Getters & setters criteria. registerHandler(RearrangerTestDsl.GETTER_CRITERIA, { data, attributes, rule -> RearrangerTestUtil.setIf(RearrangerTestDsl.NAME, attributes, 'getterNameCriterion', rule.getterSetterDefinition) RearrangerTestUtil.setIf(RearrangerTestDsl.BODY, attributes, 'getterBodyCriterion', rule.getterSetterDefinition) @@ -28,6 +30,22 @@ class JavaMethodRuleBuilder extends AbstractJavaRuleBuilder { RearrangerTestUtil.setIf(RearrangerTestDsl.NAME, attributes, 'setterNameCriterion', rule.getterSetterDefinition) RearrangerTestUtil.setIf(RearrangerTestDsl.BODY, attributes, 'setterBodyCriterion', rule.getterSetterDefinition) }) + + // Args number. + def argsNumber = [ + (RearrangerTestDsl.FROM) : 'minParamsAttr', + (RearrangerTestDsl.TO) : 'maxParamsAttr' + ] + def argsNumberHandler = { RearrangerTestDsl key, attributes, rule -> + if (attributes.containsKey(key.value)) { + rule."${argsNumber[key]}".match = true + rule."${argsNumber[key]}".value = attributes[key.value] + } + } + registerHandler(RearrangerTestDsl.ARGUMENTS_NUMBER, { data, attributes, rule -> + argsNumberHandler(RearrangerTestDsl.FROM, attributes, rule) + argsNumberHandler(RearrangerTestDsl.TO, attributes, rule) + }) } @Override diff --git a/plugins/rearranger/test/testData/com/wrq/rearranger/RearrangementResult41.java b/plugins/rearranger/test/testData/com/wrq/rearranger/RearrangementResult41.java index 899c73d58aea..ac91dac03562 100644 --- a/plugins/rearranger/test/testData/com/wrq/rearranger/RearrangementResult41.java +++ b/plugins/rearranger/test/testData/com/wrq/rearranger/RearrangementResult41.java @@ -1,5 +1,6 @@ public class RearrangementTest41 { - public final void setPrice(final double price) { + public final void setPrice(final double price) + { this.price = price; } } diff --git a/plugins/rearranger/test/testData/com/wrq/rearranger/RearrangementResult43.java b/plugins/rearranger/test/testData/com/wrq/rearranger/RearrangementResult43.java index 3c9995a3c124..049fbd8b5b6b 100644 --- a/plugins/rearranger/test/testData/com/wrq/rearranger/RearrangementResult43.java +++ b/plugins/rearranger/test/testData/com/wrq/rearranger/RearrangementResult43.java @@ -1,4 +1,5 @@ public class RearrangementTest43 { + void method2(int a, int b) { } @@ -7,7 +8,6 @@ public class RearrangementTest43 { void method1(int a) { } - void method0() { } }