147fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggenpackage com.github.javaparser.ast.nodeTypes;
247fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggen
347fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggenimport com.github.javaparser.ast.expr.FieldAccessExpr;
447fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggenimport com.github.javaparser.ast.expr.MethodCallExpr;
547fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggenimport org.junit.Test;
647fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggen
747fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggenimport static com.github.javaparser.JavaParser.parseExpression;
847fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggenimport static com.github.javaparser.utils.TestUtils.assertInstanceOf;
947fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggenimport static org.junit.Assert.assertFalse;
1047fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggen
1147fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggenpublic class NodeWithTraversableScopeTest {
1247fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggen    @Test
1347fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggen    public void traverse1() {
1447fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggen        NodeWithTraversableScope expression = parseExpression("getAddress().name.startsWith(\"abc\")");
1547fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggen
1647fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggen        assertInstanceOf(MethodCallExpr.class, expression);
1747fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggen        expression = (NodeWithTraversableScope) expression.traverseScope().get();
1847fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggen        assertInstanceOf(FieldAccessExpr.class, expression);
1947fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggen        expression = (NodeWithTraversableScope) expression.traverseScope().get();
2047fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggen        assertInstanceOf(MethodCallExpr.class, expression);
2147fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggen        assertFalse(expression.traverseScope().isPresent());
2247fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggen    }
2347fe1ae78de91f6d2b411c7802b0c9fc8aa8ed93Danny van Bruggen}
24