1 /***
2 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3 */
4 package test.net.sourceforge.pmd.symboltable;
5
6 import junit.framework.TestCase;
7 import net.sourceforge.pmd.ast.ASTBlock;
8 import net.sourceforge.pmd.ast.ASTClassBodyDeclaration;
9 import net.sourceforge.pmd.ast.ASTCompilationUnit;
10 import net.sourceforge.pmd.ast.ASTConstructorDeclaration;
11 import net.sourceforge.pmd.ast.ASTForStatement;
12 import net.sourceforge.pmd.ast.ASTIfStatement;
13 import net.sourceforge.pmd.ast.ASTMethodDeclaration;
14 import net.sourceforge.pmd.ast.ASTTryStatement;
15 import net.sourceforge.pmd.ast.ASTUnmodifiedClassDeclaration;
16 import net.sourceforge.pmd.ast.ASTUnmodifiedInterfaceDeclaration;
17 import net.sourceforge.pmd.symboltable.BasicScopeFactory;
18 import net.sourceforge.pmd.symboltable.ClassScope;
19 import net.sourceforge.pmd.symboltable.GlobalScope;
20 import net.sourceforge.pmd.symboltable.LocalScope;
21 import net.sourceforge.pmd.symboltable.MethodScope;
22 import net.sourceforge.pmd.symboltable.ScopeFactory;
23
24 import java.util.Stack;
25
26 public class BasicScopeFactoryTest extends TestCase {
27
28 public void testGlobalScope() {
29 ScopeFactory sf = new BasicScopeFactory();
30 Stack s = new Stack();
31 sf.openScope(s, new ASTCompilationUnit(1));
32 assertEquals(1, s.size());
33 assertTrue(s.get(0) instanceof GlobalScope);
34 }
35
36 public void testClassScope() {
37 ScopeFactory sf = new BasicScopeFactory();
38 Stack s = new Stack();
39 sf.openScope(s, new ASTCompilationUnit(1));
40 sf.openScope(s, new ASTUnmodifiedClassDeclaration(2));
41 assertTrue(s.get(1) instanceof ClassScope);
42 sf.openScope(s, new ASTUnmodifiedInterfaceDeclaration(1));
43 assertTrue(s.get(2) instanceof ClassScope);
44 sf.openScope(s, new ASTClassBodyDeclaration(1));
45 assertTrue(s.get(3) instanceof ClassScope);
46 }
47
48 public void testMethodScope() {
49 ScopeFactory sf = new BasicScopeFactory();
50 Stack s = new Stack();
51 sf.openScope(s, new ASTCompilationUnit(1));
52 sf.openScope(s, new ASTMethodDeclaration(2));
53 assertTrue(s.get(1) instanceof MethodScope);
54 sf.openScope(s, new ASTConstructorDeclaration(1));
55 assertTrue(s.get(2) instanceof MethodScope);
56 }
57
58 public void testLocalScope() {
59 ScopeFactory sf = new BasicScopeFactory();
60 Stack s = new Stack();
61 sf.openScope(s, new ASTCompilationUnit(1));
62 sf.openScope(s, new ASTBlock(2));
63 assertTrue(s.get(1) instanceof LocalScope);
64 sf.openScope(s, new ASTTryStatement(1));
65 assertTrue(s.get(2) instanceof LocalScope);
66 sf.openScope(s, new ASTForStatement(1));
67 assertTrue(s.get(3) instanceof LocalScope);
68 sf.openScope(s, new ASTIfStatement(1));
69 assertTrue(s.get(4) instanceof LocalScope);
70 }
71 }
This page was automatically generated by Maven