/** * BSD-style license; for more info see http://pmd.sourceforge.net/license.html */ package net.sourceforge.pmd.lang.ecmascript.ast; import org.junit.Assert; import org.junit.Test; public class ASTFunctionNodeTest extends EcmascriptParserTestBase { @Test public void testGetBody() { ASTAstRoot node = parse("function foo() { var a = 'a'; }"); ASTFunctionNode fn = node.getFirstDescendantOfType(ASTFunctionNode.class); Assert.assertFalse(fn.isClosure()); EcmascriptNode<?> body = fn.getBody(); Assert.assertTrue(body instanceof ASTBlock); } @Test public void testGetBodyFunctionClosureExpression() { ASTAstRoot node = parse18("(function(x) x*x)"); ASTFunctionNode fn = node.getFirstDescendantOfType(ASTFunctionNode.class); Assert.assertTrue(fn.isClosure()); EcmascriptNode<?> body = fn.getBody(); Assert.assertTrue(body instanceof ASTBlock); Assert.assertTrue(body.jjtGetChild(0) instanceof ASTReturnStatement); } }