1 package test.net.sourceforge.pmd.ast;
2
3 import junit.framework.TestCase;
4 import net.sourceforge.pmd.ast.ASTCompilationUnit;
5 import net.sourceforge.pmd.ast.ASTEqualityExpression;
6 import net.sourceforge.pmd.ast.ASTInstanceOfExpression;
7 import net.sourceforge.pmd.ast.ASTRelationalExpression;
8 import net.sourceforge.pmd.ast.DiscardableNodeCleaner;
9
10 public class DiscardableNodeCleanerTest extends TestCase {
11
12 public void testRemoveDiscardNodes() {
13 ASTCompilationUnit cu = new ASTCompilationUnit(1);
14 ASTEqualityExpression ee = new ASTEqualityExpression(2);
15 ee.jjtSetParent(cu);
16 cu.jjtAddChild(ee, 0);
17
18 ASTInstanceOfExpression io1 = new ASTInstanceOfExpression(3);
19 io1.setDiscardable();
20 io1.jjtSetParent(ee);
21 ASTRelationalExpression re = new ASTRelationalExpression(4);
22 re.jjtSetParent(ee);
23 ee.jjtAddChild(io1, 0);
24 io1.jjtAddChild(re, 0);
25 assertEquals(cu.findChildrenOfType(ASTInstanceOfExpression.class).size(), 1);
26 DiscardableNodeCleaner c = new DiscardableNodeCleaner();
27 c.clean(cu);
28 assertEquals(cu.findChildrenOfType(ASTInstanceOfExpression.class).size(), 0);
29 }
30 }