1
package com.thoughtworks.qdox;
3
import junit.framework.TestCase;
5
import java.io.StringReader;
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;
12
public class ClassResolutionTest extends TestCase {
14
public void testNestedClassesResolvedAcrossPackageBoundaries() {
19
+ "public class Class1 {"
20
+ " public static final class NestedClass {}"
25
+ "import package1.Class1;"
26
+ "public class Class2 {"
27
+ " public void doStuff(Class1.NestedClass arg) {}"
31
JavaDocBuilder builder = new JavaDocBuilder();
32
builder.addSource(new StringReader(source1));
33
builder.addSource(new StringReader(source2));
36
JavaClass class2 = builder.getClassByName("package2.Class2");
37
JavaMethod method = class2.getMethods()[0];
38
JavaParameter parameter = method.getParameters()[0];
39
Type type = parameter.getType();
42
assertEquals("Should include fully qualified name", "package1.Class1$NestedClass", type.getValue());
45
public void testSurvivesStaticImports() {
50
+ "import static package1.Class1.VALUE;"
51
+ "public class Class2 {"
52
+ " public void doStuff(String arg) {}"
56
JavaDocBuilder builder = new JavaDocBuilder();
57
builder.addSource(new StringReader(source));
60
JavaClass class2 = builder.getClassByName("package2.Class2");
61
assertNotNull(class2);