From cfb0844706b9647b50837012802c40a3b03fa8af Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Sat, 12 May 2012 19:21:17 +0400 Subject: [PATCH] Added test microframework and simple test for checking resolving of references to standard library. --- idea/testData/resolve/std/unit.kt | 2 + .../StandardLibraryReferenceResolverTest.java | 38 ++++++++++++++++++- 2 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 idea/testData/resolve/std/unit.kt diff --git a/idea/testData/resolve/std/unit.kt b/idea/testData/resolve/std/unit.kt new file mode 100644 index 00000000000..9e42d93b7ba --- /dev/null +++ b/idea/testData/resolve/std/unit.kt @@ -0,0 +1,2 @@ +var x : Unit? +//jet.src/Tuples.jet:Tuple0 \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/references/StandardLibraryReferenceResolverTest.java b/idea/tests/org/jetbrains/jet/plugin/references/StandardLibraryReferenceResolverTest.java index c5fb704168c..6c539bebd6d 100644 --- a/idea/tests/org/jetbrains/jet/plugin/references/StandardLibraryReferenceResolverTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/references/StandardLibraryReferenceResolverTest.java @@ -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 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/"; + } }