package spoon.reflect.declaration; import org.junit.Test; import spoon.Launcher; import spoon.reflect.reference.CtExecutableReference; import spoon.reflect.visitor.CtScanner; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; /** * @author Marcel Steinbeck */ public class UnknownDeclarationTest { private static class ExecutableReferenceVisitor extends CtScanner { int referenceCounter = 0; @Override public <T> void visitCtExecutableReference(final CtExecutableReference<T> reference) { final CtExecutable executable = reference.getDeclaration(); assertNull(executable); referenceCounter++; } } @Test public void testUnknownCalls() { final Launcher runLaunch = new Launcher(); runLaunch.getEnvironment().setNoClasspath(true); runLaunch.addInputResource("./src/test/resources/noclasspath/UnknownCalls.java"); runLaunch.buildModel(); final CtPackage rootPackage = runLaunch.getFactory().Package().getRootPackage(); final ExecutableReferenceVisitor visitor = new ExecutableReferenceVisitor(); visitor.scan(rootPackage); // super constructor to Object + // UnknownClass constructor + // UnknownClass method assertEquals(3, visitor.referenceCounter); } }