/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.lang.java.bugs;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.junit.Ignore;
import org.junit.Test;
import net.sourceforge.pmd.lang.LanguageRegistry;
import net.sourceforge.pmd.lang.LanguageVersionHandler;
import net.sourceforge.pmd.lang.java.JavaLanguageModule;
import net.sourceforge.pmd.lang.java.ast.ASTCompilationUnit;
import net.sourceforge.pmd.typeresolution.testdata.UsesJavaStreams;
@Ignore
public class InterfaceMethodTest {
@Test
public void shouldNotFail() {
ASTCompilationUnit acu = parseAndTypeResolveForClass(UsesJavaStreams.class);
}
// Note: If you're using Eclipse or some other IDE to run this test, you
// _must_ have the regress folder in
// the classpath. Normally the IDE doesn't put source directories themselves
// directly in the classpath, only
// the output directories are in the classpath.
private ASTCompilationUnit parseAndTypeResolveForClass(Class<?> clazz) {
String sourceFile = clazz.getName().replace('.', '/') + ".java";
InputStream is = InterfaceMethodTest.class.getClassLoader().getResourceAsStream(sourceFile);
if (is == null) {
throw new IllegalArgumentException("Unable to find source file " + sourceFile + " for " + clazz);
}
LanguageVersionHandler languageVersionHandler = LanguageRegistry.getLanguage(JavaLanguageModule.NAME)
.getVersion("1.8").getLanguageVersionHandler();
ASTCompilationUnit acu = (ASTCompilationUnit) languageVersionHandler
.getParser(languageVersionHandler.getDefaultParserOptions()).parse(null, new InputStreamReader(is));
languageVersionHandler.getSymbolFacade().start(acu);
languageVersionHandler.getTypeResolutionFacade(InterfaceMethodTest.class.getClassLoader()).start(acu);
return acu;
}
}