| package com.intellij.psi.impl.source.tree.java; |
| |
| import com.intellij.psi.*; |
| import com.intellij.psi.codeStyle.CodeStyleSettings; |
| import com.intellij.psi.codeStyle.CodeStyleSettingsManager; |
| import com.intellij.psi.search.GlobalSearchScope; |
| |
| /** |
| * @author dsl |
| */ |
| public class BindToGenericClassTest extends GenericsTestCase { |
| private boolean myOldFQNamesSetting; |
| |
| @Override |
| protected void setUp() throws Exception { |
| super.setUp(); |
| setupGenericSampleClasses(); |
| final CodeStyleSettings currentSettings = CodeStyleSettingsManager.getInstance(myProject).getCurrentSettings(); |
| |
| myOldFQNamesSetting = currentSettings.USE_FQ_CLASS_NAMES; |
| currentSettings.USE_FQ_CLASS_NAMES = true; |
| } |
| |
| @Override |
| protected void tearDown() throws Exception { |
| final CodeStyleSettings currentSettings = CodeStyleSettingsManager.getInstance(myProject).getCurrentSettings(); |
| currentSettings.USE_FQ_CLASS_NAMES = myOldFQNamesSetting; |
| super.tearDown(); |
| } |
| |
| public void testReferenceElement() throws Exception { |
| final JavaPsiFacade manager = getJavaFacade(); |
| final PsiClass classA = manager.getElementFactory().createClassFromText("class A extends List<String>{}", null).getInnerClasses()[0]; |
| final PsiClass classTestList = manager.findClass("test.List", GlobalSearchScope.moduleWithDependenciesAndLibrariesScope(myModule)); |
| assertNotNull(classTestList); |
| classA.getExtendsList().getReferenceElements()[0].bindToElement(classTestList); |
| assertEquals("class A extends test.List<String>{}", classA.getText()); |
| } |
| |
| public void testReference() throws Exception { |
| final JavaPsiFacade manager = getJavaFacade(); |
| final PsiExpression psiExpression = manager.getElementFactory().createExpressionFromText("List", null); |
| final PsiClass classTestList = manager.findClass("test.List", GlobalSearchScope.moduleWithDependenciesAndLibrariesScope(myModule)); |
| assertNotNull(classTestList); |
| final PsiElement result = ((PsiReferenceExpression) psiExpression).bindToElement(classTestList); |
| assertEquals("test.List", result.getText()); |
| } |
| } |