提交 cfb08447 编写于 作者: E Evgeny Gerashchenko

Added test microframework and simple test for checking resolving of references to standard library.

上级 a7f3e12a
var x : <ref>Unit?
//jet.src/Tuples.jet:Tuple0
\ No newline at end of file
......@@ -16,21 +16,30 @@
package org.jetbrains.jet.plugin.references;
import com.intellij.testFramework.LightCodeInsightTestCase;
import com.intellij.psi.*;
import com.intellij.psi.impl.source.tree.PsiCommentImpl;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.testFramework.ResolveTestCase;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorVisitor;
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
import org.jetbrains.jet.lang.types.lang.JetStandardClasses;
import org.jetbrains.jet.plugin.PluginTestCaseBase;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
* @author Evgeny Gerashchenko
* @since 5/11/12
*/
public class StandardLibraryReferenceResolverTest extends LightCodeInsightTestCase {
public class StandardLibraryReferenceResolverTest extends ResolveTestCase {
public void testUnit() throws Exception {
doTest();
}
public void testAllReferencesResolved() {
StandardLibraryReferenceResolver referenceResolver = getProject().getComponent(StandardLibraryReferenceResolver.class);
for (DeclarationDescriptor descriptor : getAllStandardDescriptors(JetStandardClasses.STANDARD_CLASSES_NAMESPACE)) {
......@@ -69,4 +78,29 @@ public class StandardLibraryReferenceResolverTest extends LightCodeInsightTestCa
});
return descriptors;
}
private void doTest() throws Exception {
JetPsiReference reference = (JetPsiReference) configureByFile(getTestName(true) + ".kt");
PsiElement resolved = reference.resolve();
assertNotNull(resolved);
assertEmpty(reference.multiResolve(false));
List<PsiComment> comments = PsiTreeUtil.getChildrenOfTypeAsList(getFile(), PsiComment.class);
String[] expectedTarget = comments.get(comments.size() - 1).getText().substring(2).split(":");
assertEquals(2, expectedTarget.length);
String expectedFile = expectedTarget[0];
String expectedName = expectedTarget[1];
PsiFile targetFile = resolved.getContainingFile();
PsiDirectory targetDir = targetFile.getParent();
assertNotNull(targetDir);
assertEquals(expectedFile, targetDir.getName() + "/" + targetFile.getName());
assertInstanceOf(resolved, PsiNamedElement.class);
assertEquals(expectedName, ((PsiNamedElement) resolved).getName());
}
@Override
protected String getTestDataPath() {
return PluginTestCaseBase.getTestDataPathBase() + "/resolve/std/";
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册