blob: 8d0d653a505c87b170c9e7d56f10e9f9aac0aee4 [file] [log] [blame]
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());
}
}