Added test microframework and simple test for checking resolving of references to standard library.
This commit is contained in:
@@ -0,0 +1,2 @@
|
|||||||
|
var x : <ref>Unit?
|
||||||
|
//jet.src/Tuples.jet:Tuple0
|
||||||
+36
-2
@@ -16,21 +16,30 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.plugin.references;
|
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.ClassDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorVisitor;
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptorVisitor;
|
||||||
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
||||||
import org.jetbrains.jet.lang.types.lang.JetStandardClasses;
|
import org.jetbrains.jet.lang.types.lang.JetStandardClasses;
|
||||||
|
import org.jetbrains.jet.plugin.PluginTestCaseBase;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Evgeny Gerashchenko
|
* @author Evgeny Gerashchenko
|
||||||
* @since 5/11/12
|
* @since 5/11/12
|
||||||
*/
|
*/
|
||||||
public class StandardLibraryReferenceResolverTest extends LightCodeInsightTestCase {
|
public class StandardLibraryReferenceResolverTest extends ResolveTestCase {
|
||||||
|
public void testUnit() throws Exception {
|
||||||
|
doTest();
|
||||||
|
}
|
||||||
|
|
||||||
public void testAllReferencesResolved() {
|
public void testAllReferencesResolved() {
|
||||||
StandardLibraryReferenceResolver referenceResolver = getProject().getComponent(StandardLibraryReferenceResolver.class);
|
StandardLibraryReferenceResolver referenceResolver = getProject().getComponent(StandardLibraryReferenceResolver.class);
|
||||||
for (DeclarationDescriptor descriptor : getAllStandardDescriptors(JetStandardClasses.STANDARD_CLASSES_NAMESPACE)) {
|
for (DeclarationDescriptor descriptor : getAllStandardDescriptors(JetStandardClasses.STANDARD_CLASSES_NAMESPACE)) {
|
||||||
@@ -69,4 +78,29 @@ public class StandardLibraryReferenceResolverTest extends LightCodeInsightTestCa
|
|||||||
});
|
});
|
||||||
return descriptors;
|
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/";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user