~ubuntu-branches/ubuntu/karmic/qdox/karmic

« back to all changes in this revision

Viewing changes to src/test/com/thoughtworks/qdox/ClassResolutionTest.java

  • Committer: Bazaar Package Importer
  • Author(s): Arnaud Vandyck
  • Date: 2007-04-11 13:51:08 UTC
  • Revision ID: james.westby@ubuntu.com-20070411135108-uplum1t13cbjsriw
Tags: upstream-1.6.1
ImportĀ upstreamĀ versionĀ 1.6.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package com.thoughtworks.qdox;
 
2
 
 
3
import junit.framework.TestCase;
 
4
 
 
5
import java.io.StringReader;
 
6
 
 
7
import com.thoughtworks.qdox.model.JavaClass;
 
8
import com.thoughtworks.qdox.model.JavaMethod;
 
9
import com.thoughtworks.qdox.model.JavaParameter;
 
10
import com.thoughtworks.qdox.model.Type;
 
11
 
 
12
public class ClassResolutionTest extends TestCase {
 
13
 
 
14
    public void testNestedClassesResolvedAcrossPackageBoundaries() {
 
15
 
 
16
        // input sources
 
17
        String source1 = ""
 
18
                + "package package1;"
 
19
                + "public class Class1 {"
 
20
                + " public static final class NestedClass {}"
 
21
                + "}";
 
22
 
 
23
        String source2 = ""
 
24
                + "package package2;"
 
25
                + "import package1.Class1;"
 
26
                + "public class Class2 {"
 
27
                + " public void doStuff(Class1.NestedClass arg) {}"
 
28
                + "}";
 
29
 
 
30
        // parse
 
31
        JavaDocBuilder builder = new JavaDocBuilder();
 
32
        builder.addSource(new StringReader(source1));
 
33
        builder.addSource(new StringReader(source2));
 
34
 
 
35
        // find the parameter
 
36
        JavaClass class2 = builder.getClassByName("package2.Class2");
 
37
        JavaMethod method = class2.getMethods()[0];
 
38
        JavaParameter parameter = method.getParameters()[0];
 
39
        Type type = parameter.getType();
 
40
 
 
41
        // verify
 
42
        assertEquals("Should include fully qualified name", "package1.Class1$NestedClass", type.getValue());
 
43
    }
 
44
    
 
45
    public void testSurvivesStaticImports() {
 
46
 
 
47
        // input sources
 
48
        String source = ""
 
49
                + "package package2;"
 
50
                + "import static package1.Class1.VALUE;"
 
51
                + "public class Class2 {"
 
52
                + " public void doStuff(String arg) {}"
 
53
                + "}";
 
54
 
 
55
        // parse
 
56
        JavaDocBuilder builder = new JavaDocBuilder();
 
57
        builder.addSource(new StringReader(source));
 
58
 
 
59
        // find the parameter
 
60
        JavaClass class2 = builder.getClassByName("package2.Class2");
 
61
        assertNotNull(class2);
 
62
    }
 
63
}