mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-15 11:53:49 +07:00
83 lines
3.0 KiB
Java
83 lines
3.0 KiB
Java
/*
|
|
* Copyright (c) 2000-2006 JetBrains s.r.o. All Rights Reserved.
|
|
*/
|
|
|
|
/*
|
|
* Created by IntelliJ IDEA.
|
|
* User: yole
|
|
* Date: 11.10.2006
|
|
* Time: 16:03:23
|
|
*/
|
|
package com.intellij.uiDesigner.binding;
|
|
|
|
import com.intellij.openapi.application.ApplicationManager;
|
|
import com.intellij.openapi.application.PluginPathManager;
|
|
import com.intellij.openapi.command.CommandProcessor;
|
|
import com.intellij.openapi.projectRoots.impl.JavaSdkImpl;
|
|
import com.intellij.openapi.roots.LanguageLevelProjectExtension;
|
|
import com.intellij.openapi.vfs.VirtualFile;
|
|
import com.intellij.pom.java.LanguageLevel;
|
|
import com.intellij.psi.PsiClass;
|
|
import com.intellij.psi.PsiEnumConstant;
|
|
import com.intellij.psi.PsiField;
|
|
import com.intellij.psi.search.ProjectScope;
|
|
import com.intellij.psi.search.searches.ReferencesSearch;
|
|
import com.intellij.testFramework.PsiTestCase;
|
|
import com.intellij.testFramework.PsiTestUtil;
|
|
import com.intellij.util.IncorrectOperationException;
|
|
|
|
public class FormEnumUsageTest extends PsiTestCase {
|
|
private VirtualFile myTestProjectRoot;
|
|
|
|
protected void setUp() throws Exception {
|
|
super.setUp();
|
|
|
|
ApplicationManager.getApplication().runWriteAction(
|
|
new Runnable() {
|
|
public void run() {
|
|
try{
|
|
String root = PluginPathManager.getPluginHomePath("ui-designer") + "/testData/binding/" + getTestName(true);
|
|
PsiTestUtil.removeAllRoots(myModule, JavaSdkImpl.getMockJdk("java 1.5"));
|
|
myTestProjectRoot = PsiTestUtil.createTestProjectStructure(myProject, myModule, root, myFilesToDelete);
|
|
}
|
|
catch(Exception e){
|
|
LOG.error(e);
|
|
}
|
|
}
|
|
}
|
|
);
|
|
}
|
|
|
|
@Override protected void tearDown() throws Exception {
|
|
myTestProjectRoot = null;
|
|
super.tearDown();
|
|
}
|
|
|
|
public void testEnumUsage() throws IncorrectOperationException {
|
|
LanguageLevelProjectExtension.getInstance(myJavaFacade.getProject()).setLanguageLevel(LanguageLevel.JDK_1_5);
|
|
CommandProcessor.getInstance().executeCommand(myProject, new Runnable() {
|
|
public void run() {
|
|
try {
|
|
createFile(myModule, myTestProjectRoot, "PropEnum.java", "public enum PropEnum { valueA, valueB }");
|
|
createFile(myModule, myTestProjectRoot, "CustomComponent.java",
|
|
"public class CustomComponent extends JLabel { private PropEnum e; public PropEnum getE() { return e; } public void setE(E newE) { e = newE; } }");
|
|
}
|
|
catch (Exception e) {
|
|
fail(e.getMessage());
|
|
}
|
|
}
|
|
}, "", null);
|
|
|
|
PsiClass enumClass = myJavaFacade.findClass("PropEnum", ProjectScope.getAllScope(myProject));
|
|
PsiField valueBField = enumClass.findFieldByName("valueB", false);
|
|
assertNotNull(valueBField);
|
|
assertTrue(valueBField instanceof PsiEnumConstant);
|
|
final PsiClass componentClass = myJavaFacade.findClass("CustomComponent", ProjectScope.getAllScope(myProject));
|
|
assertNotNull(componentClass);
|
|
|
|
assertEquals(1, ReferencesSearch.search(componentClass).findAll().size());
|
|
|
|
assertEquals(1, ReferencesSearch.search(valueBField).findAll().size());
|
|
}
|
|
|
|
} |