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:19 +04:00
parent bad3b0936a
commit 1ec9d357b0
7 changed files with 92 additions and 99 deletions
@@ -653,86 +653,60 @@ class RearrangerTest extends LightCodeInsightFixtureTestCase {
setup( "don't group extracted methods": false, order: InterfaceAttributes.METHOD_ORDER_ALPHABETICAL, alphabetize: false )
} } }
// public void testInterfaceNoNameNotAlphabeticalNoExcludeMethodEncountered() throws Exception {
// configureByFile("/com/wrq/rearranger/RearrangementTest23.java");
// final PsiFile file = getFile();
// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
// final RearrangerActionHandler rah = new RearrangerActionHandler();
// rs.setKeepGettersSettersTogether(false);
// InterfaceAttributes ia = new InterfaceAttributes();
// CommentRule cr = new CommentRule();
// cr.setCommentText("/**** Interface %IF% Header ****/");
// ia.setPrecedingComment(cr);
// cr = new CommentRule();
// cr.setCommentText("/**** Interface %IF% Trailer ***/");
// ia.setTrailingComment(cr);
// ia.setNoExtractedMethods(true);
// ia.setMethodOrder(InterfaceAttributes.METHOD_ORDER_ENCOUNTERED);
// ia.setAlphabetizeInterfaces(false);
// rs.addItem(ia, 0);
// rah.rearrangeDocument(getProject(), file, rs, doc);
// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult23NNNANXME.java");
// }
//
// public void testInterfaceNoNameNotAlphabeticalNoExcludeMethodInterfaceOrder() throws Exception {
// configureByFile("/com/wrq/rearranger/RearrangementTest23.java");
// final PsiFile file = getFile();
// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
// final RearrangerActionHandler rah = new RearrangerActionHandler();
// rs.setKeepGettersSettersTogether(false);
// InterfaceAttributes ia = new InterfaceAttributes();
// CommentRule cr = new CommentRule();
// cr.setCommentText("/**** Interface %IF% Header ****/");
// ia.setPrecedingComment(cr);
// cr = new CommentRule();
// cr.setCommentText("/**** Interface %IF% Trailer ***/");
// ia.setTrailingComment(cr);
// ia.setNoExtractedMethods(true);
// ia.setMethodOrder(InterfaceAttributes.METHOD_ORDER_INTERFACE_ORDER);
// ia.setAlphabetizeInterfaces(false);
// rs.addItem(ia, 0);
// rah.rearrangeDocument(getProject(), file, rs, doc);
// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult23NNNANXMI.java");
// }
//
// public void testInterfaceByNameNotAlphabeticalNoExcludeMethodEncountered() throws Exception {
// configureByFile("/com/wrq/rearranger/RearrangementTest23.java");
// final PsiFile file = getFile();
// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
// final RearrangerActionHandler rah = new RearrangerActionHandler();
// rs.setKeepGettersSettersTogether(false);
// InterfaceAttributes ia = new InterfaceAttributes();
// ia.getNameAttr().setMatch(true);
// ia.getNameAttr().setExpression("IFace1");
// ia.setNoExtractedMethods(true);
// ia.setMethodOrder(InterfaceAttributes.METHOD_ORDER_ENCOUNTERED);
// ia.setAlphabetizeInterfaces(false);
// rs.addItem(ia, 0);
// rah.rearrangeDocument(getProject(), file, rs, doc);
// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult23BNNANXME.java");
// }
//
// public void testInterfaceIsAlphabeticalNoExcludeMethodEncountered() throws Exception {
// configureByFile("/com/wrq/rearranger/RearrangementTest23.java");
// final PsiFile file = getFile();
// final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
// final RearrangerActionHandler rah = new RearrangerActionHandler();
// rs.setKeepGettersSettersTogether(false);
// InterfaceAttributes ia = new InterfaceAttributes();
// CommentRule cr = new CommentRule();
// cr.setCommentText("/**** Interface %IF% Header ****/");
// ia.setPrecedingComment(cr);
// cr = new CommentRule();
// cr.setCommentText("/**** Interface %IF% Trailer ***/");
// ia.setTrailingComment(cr);
// ia.setNoExtractedMethods(true);
// ia.setMethodOrder(InterfaceAttributes.METHOD_ORDER_ENCOUNTERED);
// ia.setAlphabetizeInterfaces(true);
// rs.addItem(ia, 0);
// rah.rearrangeDocument(getProject(), file, rs, doc);
// super.checkResultByFile("/com/wrq/rearranger/RearrangementResult23NNIANXME.java");
// }
//
public void testInterfaceNoNameNotAlphabeticalNoExcludeMethodEncountered() throws Exception {
doTest('RearrangementTest23', 'RearrangementResult23NNNANXME') {
mySettings.keepGettersSettersTogether = false
interfaceRule.create {
precedingComment( '/**** Interface %IF% Header ****/' )
trailingComment( '/**** Interface %IF% Trailer ***/' )
setup( "don't group extracted methods": false, order: InterfaceAttributes.METHOD_ORDER_ENCOUNTERED, alphabetize: false )
} } }
public void testInterfaceNoNameNotAlphabeticalNoExcludeMethodInterfaceOrder() throws Exception {
doTest('RearrangementTest23', 'RearrangementResult23NNNANXMI') {
mySettings.keepGettersSettersTogether = false
interfaceRule.create {
precedingComment( '/**** Interface %IF% Header ****/' )
trailingComment( '/**** Interface %IF% Trailer ***/' )
setup( "don't group extracted methods": false, order: InterfaceAttributes.METHOD_ORDER_INTERFACE_ORDER, alphabetize: false )
} } }
public void testInterfaceByNameNotAlphabeticalNoExcludeMethodEncountered() throws Exception {
doTest('RearrangementTest23', 'RearrangementResult23BNNANXME') {
mySettings.keepGettersSettersTogether = false
interfaceRule.setup( "don't group extracted methods": true, order: InterfaceAttributes.METHOD_ORDER_ENCOUNTERED,
alphabetize: false, name : 'IFace1'
) } }
public void testInterfaceIsAlphabeticalNoExcludeMethodEncountered() throws Exception {
doTest('RearrangementTest23', 'RearrangementResult23NNIANXME') {
interfaceRule.create {
precedingComment( '/**** Interface %IF% Header ****/' )
trailingComment( '/**** Interface %IF% Trailer ***/' )
setup( "don't group extracted methods": true, order: InterfaceAttributes.METHOD_ORDER_ENCOUNTERED, alphabetize: true )
}
}
//configureByFile("/com/wrq/rearranger/RearrangementTest23.java");
//final PsiFile file = getFile();
//final Document doc = PsiDocumentManager.getInstance(getProject()).getDocument(file);
//final RearrangerActionHandler rah = new RearrangerActionHandler();
//rs.setKeepGettersSettersTogether(false);
//InterfaceAttributes ia = new InterfaceAttributes();
//CommentRule cr = new CommentRule();
//cr.setCommentText("/**** Interface %IF% Header ****/");
//ia.setPrecedingComment(cr);
//cr = new CommentRule();
//cr.setCommentText("/**** Interface %IF% Trailer ***/");
//ia.setTrailingComment(cr);
//ia.setNoExtractedMethods(true);
//ia.setMethodOrder(InterfaceAttributes.METHOD_ORDER_ENCOUNTERED);
//ia.setAlphabetizeInterfaces(true);
//rs.addItem(ia, 0);
//rah.rearrangeDocument(getProject(), file, rs, doc);
//super.checkResultByFile("/com/wrq/rearranger/RearrangementResult23NNIANXME.java");
}
// public void testNPE24() throws Exception {
// // submitted by Nathan Brown. Caused NPE in Rearranger plugin version 1.7.
// int itemIndex = 0;
@@ -18,6 +18,7 @@ import org.junit.Assert
public abstract class AbstractRuleBuilder<T> extends BuilderSupport {
@NotNull def RearrangerSettings settings
private boolean myRuleRegistered
/**
* Holds rule customization handlers in the form {@code 'property id -> closure'} where <code>'property id'</code>
@@ -30,10 +31,19 @@ public abstract class AbstractRuleBuilder<T> extends BuilderSupport {
{ key -> Assert.fail("No handler for the rule attribute '${key}'") }
}
@Override
protected Object getCurrent() {
if (!super.current) {
current = createRule()
}
super.current
}
@Override
protected void nodeCompleted(Object parent, Object node) {
if (!parent && node) {
if (!myRuleRegistered) {
registerRule(settings, node as T)
myRuleRegistered = true
}
}
@@ -43,12 +53,9 @@ public abstract class AbstractRuleBuilder<T> extends BuilderSupport {
@Override
protected Object createNode(Object name) {
if (name == 'create') {
return createRule()
}
createNode(name, [:], [])
}
@Override
protected Object createNode(Object name, Object value) {
createNode(name, [:], value)
@@ -61,6 +68,9 @@ public abstract class AbstractRuleBuilder<T> extends BuilderSupport {
@Override
protected Object createNode(Object name, Map attributes, Object value) {
if (!myHandlers.containsKey(name)) {
return current
}
if (value) {
for (i in [value].flatten()) {
myHandlers[name](i, attributes, current)
@@ -70,7 +80,7 @@ public abstract class AbstractRuleBuilder<T> extends BuilderSupport {
myHandlers[name](null, attributes, current)
}
getCurrent()
current
}
@Nullable
@@ -19,11 +19,17 @@ class JavaInterfaceRuleBuilder extends AbstractJavaRuleBuilder<InterfaceAttribut
rule."$propertyName" = comment
}
def nameHandler = createStringAttributeHandler('nameAttr')
registerHandler(RearrangerTestDsl.PRECEDING_COMMENT, { value, attributes, rule -> commentHandler(rule, value, 'precedingComment') })
registerHandler(RearrangerTestDsl.TRAILING_COMMENT, { value, attributes, rule -> commentHandler(rule, value, 'trailingComment') })
registerHandler(RearrangerTestDsl.SETUP, { value, attributes, rule ->
RearrangerTestUtil.setIf(RearrangerTestDsl.GROUP_EXTRACTED_METHODS, attributes, 'noExtractedMethods', rule)
RearrangerTestUtil.setIf(RearrangerTestDsl.ORDER, attributes, 'methodOrder', rule)
RearrangerTestUtil.setIf(RearrangerTestDsl.ALPHABETIZE, attributes, 'alphabetizeInterfaces', rule)
if (attributes[RearrangerTestDsl.NAME.value]) {
nameHandler(attributes[RearrangerTestDsl.NAME.value], attributes, rule)
}
})
}
@@ -1,6 +1,7 @@
public class RearrangementTest23
implements IFace2, IFace1
{
public int getY() {
return 6;
}
@@ -8,7 +9,6 @@ public class RearrangementTest23
public int getX() {
return getA() ? 5 : 3;
}
int method1() {
return 4;
}
@@ -1,7 +1,8 @@
public class RearrangementTest23
implements IFace2, IFace1
{
/** * Interface IFace1 Header *** */
/**** Interface IFace1 Header ****/
public int getY() {
return 6;
}
@@ -10,7 +11,8 @@ public class RearrangementTest23
return getA() ? 5 : 3;
}
/**** Interface IFace1 Trailer ***/
/** * Interface IFace2 Header *** */
/**** Interface IFace2 Header ****/
public boolean getB() {
return false;
}
@@ -18,8 +20,7 @@ public class RearrangementTest23
public boolean getA() {
return true;
}
/** * Interface IFace2 Trailer ** */
/**** Interface IFace2 Trailer ***/
int method1() {
return 4;
}
@@ -1,7 +1,8 @@
public class RearrangementTest23
implements IFace2, IFace1
{
/** * Interface IFace2 Header *** */
/**** Interface IFace2 Header ****/
public boolean getB() {
return false;
}
@@ -10,7 +11,8 @@ public class RearrangementTest23
return true;
}
/**** Interface IFace2 Trailer ***/
/** * Interface IFace1 Header *** */
/**** Interface IFace1 Header ****/
public int getY() {
return 6;
}
@@ -18,8 +20,7 @@ public class RearrangementTest23
public int getX() {
return getA() ? 5 : 3;
}
/** * Interface IFace1 Trailer ** */
/**** Interface IFace1 Trailer ***/
int method1() {
return 4;
}
@@ -1,7 +1,8 @@
public class RearrangementTest23
implements IFace2, IFace1
{
/** * Interface IFace2 Header *** */
/**** Interface IFace2 Header ****/
public boolean getA() {
return true;
}
@@ -10,7 +11,8 @@ public class RearrangementTest23
return false;
}
/**** Interface IFace2 Trailer ***/
/** * Interface IFace1 Header *** */
/**** Interface IFace1 Header ****/
public int getY() {
return 6;
}
@@ -18,8 +20,7 @@ public class RearrangementTest23
public int getX() {
return getA() ? 5 : 3;
}
/** * Interface IFace1 Trailer ** */
/**** Interface IFace1 Trailer ***/
int method1() {
return 4;
}