Tests for navigation to property delegates' accessors
This commit is contained in:
@@ -19,22 +19,22 @@ package org.jetbrains.jet.resolve;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Ordering;
|
||||
import com.intellij.ide.startup.impl.StartupManagerImpl;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.startup.StartupManager;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiPolyVariantReference;
|
||||
import com.intellij.psi.PsiReference;
|
||||
import com.intellij.psi.ResolveResult;
|
||||
import com.intellij.testFramework.LightCodeInsightTestCase;
|
||||
import com.intellij.testFramework.LightProjectDescriptor;
|
||||
import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase;
|
||||
import junit.framework.Assert;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.InTextDirectivesUtils;
|
||||
import org.jetbrains.jet.plugin.PluginTestCaseBase;
|
||||
import org.jetbrains.jet.plugin.JetWithJdkAndRuntimeLightProjectDescriptor;
|
||||
import org.jetbrains.jet.testing.ReferenceUtils;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public abstract class AbstractResolveBaseTest extends LightCodeInsightTestCase {
|
||||
public abstract class AbstractResolveBaseTest extends LightPlatformCodeInsightFixtureTestCase {
|
||||
|
||||
public static final String MULTIRESOLVE = "MULTIRESOLVE";
|
||||
public static final String REF_EMPTY = "REF_EMPTY";
|
||||
@@ -46,9 +46,9 @@ public abstract class AbstractResolveBaseTest extends LightCodeInsightTestCase {
|
||||
}
|
||||
|
||||
protected void doTest(String path) {
|
||||
configureByFile(path);
|
||||
myFixture.configureByFile(path);
|
||||
|
||||
if (InTextDirectivesUtils.isDirectiveDefined(getFile().getText(), MULTIRESOLVE)) {
|
||||
if (InTextDirectivesUtils.isDirectiveDefined(myFixture.getFile().getText(), MULTIRESOLVE)) {
|
||||
doMultiResolveTest();
|
||||
}
|
||||
else {
|
||||
@@ -56,9 +56,9 @@ public abstract class AbstractResolveBaseTest extends LightCodeInsightTestCase {
|
||||
}
|
||||
}
|
||||
|
||||
protected static void doSingleResolveTest() {
|
||||
boolean shouldBeUnresolved = InTextDirectivesUtils.isDirectiveDefined(getFile().getText(), REF_EMPTY);
|
||||
List<String> refs = InTextDirectivesUtils.findLinesWithPrefixesRemoved(getFile().getText(), "REF:");
|
||||
protected void doSingleResolveTest() {
|
||||
boolean shouldBeUnresolved = InTextDirectivesUtils.isDirectiveDefined(myFixture.getFile().getText(), REF_EMPTY);
|
||||
List<String> refs = InTextDirectivesUtils.findLinesWithPrefixesRemoved(myFixture.getFile().getText(), "REF:");
|
||||
|
||||
String referenceToString;
|
||||
if (shouldBeUnresolved) {
|
||||
@@ -74,8 +74,8 @@ public abstract class AbstractResolveBaseTest extends LightCodeInsightTestCase {
|
||||
Assert.assertNotNull("Test data wasn't found, use \"// REF: \" directive", referenceToString);
|
||||
}
|
||||
|
||||
int offset = getEditor().getCaretModel().getOffset();
|
||||
PsiReference psiReference = getFile().findReferenceAt(offset);
|
||||
int offset = myFixture.getEditor().getCaretModel().getOffset();
|
||||
PsiReference psiReference = myFixture.getFile().findReferenceAt(offset);
|
||||
if (psiReference != null) {
|
||||
PsiElement resolvedTo = psiReference.resolve();
|
||||
if (resolvedTo != null) {
|
||||
@@ -93,17 +93,16 @@ public abstract class AbstractResolveBaseTest extends LightCodeInsightTestCase {
|
||||
}
|
||||
}
|
||||
else {
|
||||
Assert.assertNull(
|
||||
String.format("No reference found at offset: %s, but one resolved to %s was expected", offset, referenceToString),
|
||||
referenceToString);
|
||||
Assert.assertNull(String.format("No reference found at offset: %s, but one resolved to %s was expected", offset, referenceToString),
|
||||
referenceToString);
|
||||
}
|
||||
}
|
||||
|
||||
protected static void doMultiResolveTest() {
|
||||
List<String> expectedReferences = InTextDirectivesUtils.findListWithPrefixes(getFile().getText(), "REF:");
|
||||
protected void doMultiResolveTest() {
|
||||
List<String> expectedReferences = InTextDirectivesUtils.findLinesWithPrefixesRemoved(myFixture.getFile().getText(), "REF:");
|
||||
|
||||
PsiReference psiReference =
|
||||
getFile().findReferenceAt(getEditor().getCaretModel().getOffset());
|
||||
myFixture.getFile().findReferenceAt(myFixture.getEditor().getCaretModel().getOffset());
|
||||
|
||||
assertTrue(psiReference instanceof PsiPolyVariantReference);
|
||||
|
||||
@@ -123,8 +122,8 @@ public abstract class AbstractResolveBaseTest extends LightCodeInsightTestCase {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Sdk getProjectJDK() {
|
||||
return PluginTestCaseBase.jdkFromIdeaHome();
|
||||
protected LightProjectDescriptor getProjectDescriptor() {
|
||||
return JetWithJdkAndRuntimeLightProjectDescriptor.INSTANCE;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -31,6 +31,7 @@ import org.jetbrains.jet.resolve.AbstractResolveBaseTest;
|
||||
/** This class is generated by {@link org.jetbrains.jet.generators.tests.GenerateTests}. DO NOT MODIFY MANUALLY */
|
||||
@SuppressWarnings("all")
|
||||
@TestMetadata("idea/testData/resolve/references")
|
||||
@InnerTestClasses({ReferenceResolveTestGenerated.DelegatedPropertyAccessors.class})
|
||||
public class ReferenceResolveTestGenerated extends AbstractResolveBaseTest {
|
||||
public void testAllFilesPresentInReferences() throws Exception {
|
||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/resolve/references"), Pattern.compile("^(.+)\\.kt$"), true);
|
||||
@@ -171,4 +172,82 @@ public class ReferenceResolveTestGenerated extends AbstractResolveBaseTest {
|
||||
doTest("idea/testData/resolve/references/TypeParameterInFunctionLiteral.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("idea/testData/resolve/references/delegatedPropertyAccessors")
|
||||
@InnerTestClasses({DelegatedPropertyAccessors.InSource.class, DelegatedPropertyAccessors.InStandardLibrary.class})
|
||||
public static class DelegatedPropertyAccessors extends AbstractResolveBaseTest {
|
||||
public void testAllFilesPresentInDelegatedPropertyAccessors() throws Exception {
|
||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/resolve/references/delegatedPropertyAccessors"), Pattern.compile("^(.+)\\.kt$"), true);
|
||||
}
|
||||
|
||||
@TestMetadata("unresolved.kt")
|
||||
public void testUnresolved() throws Exception {
|
||||
doTest("idea/testData/resolve/references/delegatedPropertyAccessors/unresolved.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("idea/testData/resolve/references/delegatedPropertyAccessors/inSource")
|
||||
public static class InSource extends AbstractResolveBaseTest {
|
||||
public void testAllFilesPresentInInSource() throws Exception {
|
||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/resolve/references/delegatedPropertyAccessors/inSource"), Pattern.compile("^(.+)\\.kt$"), true);
|
||||
}
|
||||
|
||||
@TestMetadata("getExtension.kt")
|
||||
public void testGetExtension() throws Exception {
|
||||
doTest("idea/testData/resolve/references/delegatedPropertyAccessors/inSource/getExtension.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("getMember.kt")
|
||||
public void testGetMember() throws Exception {
|
||||
doTest("idea/testData/resolve/references/delegatedPropertyAccessors/inSource/getMember.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("getMultipleDeclarations.kt")
|
||||
public void testGetMultipleDeclarations() throws Exception {
|
||||
doTest("idea/testData/resolve/references/delegatedPropertyAccessors/inSource/getMultipleDeclarations.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("getSetExtension.kt")
|
||||
public void testGetSetExtension() throws Exception {
|
||||
doTest("idea/testData/resolve/references/delegatedPropertyAccessors/inSource/getSetExtension.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("getSetMember.kt")
|
||||
public void testGetSetMember() throws Exception {
|
||||
doTest("idea/testData/resolve/references/delegatedPropertyAccessors/inSource/getSetMember.kt");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@TestMetadata("idea/testData/resolve/references/delegatedPropertyAccessors/inStandardLibrary")
|
||||
public static class InStandardLibrary extends AbstractResolveBaseTest {
|
||||
public void testAllFilesPresentInInStandardLibrary() throws Exception {
|
||||
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.GenerateTests", new File("idea/testData/resolve/references/delegatedPropertyAccessors/inStandardLibrary"), Pattern.compile("^(.+)\\.kt$"), true);
|
||||
}
|
||||
|
||||
@TestMetadata("lazy.kt")
|
||||
public void testLazy() throws Exception {
|
||||
doTest("idea/testData/resolve/references/delegatedPropertyAccessors/inStandardLibrary/lazy.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("notNull.kt")
|
||||
public void testNotNull() throws Exception {
|
||||
doTest("idea/testData/resolve/references/delegatedPropertyAccessors/inStandardLibrary/notNull.kt");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public static Test innerSuite() {
|
||||
TestSuite suite = new TestSuite("DelegatedPropertyAccessors");
|
||||
suite.addTestSuite(DelegatedPropertyAccessors.class);
|
||||
suite.addTestSuite(InSource.class);
|
||||
suite.addTestSuite(InStandardLibrary.class);
|
||||
return suite;
|
||||
}
|
||||
}
|
||||
|
||||
public static Test suite() {
|
||||
TestSuite suite = new TestSuite("ReferenceResolveTestGenerated");
|
||||
suite.addTestSuite(ReferenceResolveTestGenerated.class);
|
||||
suite.addTest(DelegatedPropertyAccessors.innerSuite());
|
||||
return suite;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user