mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
DevKit: add UndesirableClassUsageInspectionTest
This commit is contained in:
@@ -26,7 +26,7 @@ import com.intellij.ui.components.JBTabbedPane;
|
||||
import com.intellij.ui.table.JBTable;
|
||||
import com.intellij.ui.treeStructure.Tree;
|
||||
import com.intellij.util.QueryExecutor;
|
||||
import gnu.trove.THashMap;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
@@ -34,17 +34,17 @@ import java.awt.image.BufferedImage;
|
||||
import java.util.Map;
|
||||
|
||||
public class UndesirableClassUsageInspection extends InternalInspection {
|
||||
private static final Map<String, String> CLASSES = new THashMap<String, String>();
|
||||
static {
|
||||
CLASSES.put(JList.class.getName(), JBList.class.getName());
|
||||
CLASSES.put(JTable.class.getName(), JBTable.class.getName());
|
||||
CLASSES.put(JTree.class.getName(), Tree.class.getName());
|
||||
CLASSES.put(JScrollPane.class.getName(), JBScrollPane.class.getName());
|
||||
CLASSES.put(JTabbedPane.class.getName(), JBTabbedPane.class.getName());
|
||||
CLASSES.put(JComboBox.class.getName(), ComboBox.class.getName());
|
||||
CLASSES.put(QueryExecutor.class.getName(), QueryExecutorBase.class.getName());
|
||||
CLASSES.put(BufferedImage.class.getName(), "UIUtil.createImage()");
|
||||
}
|
||||
|
||||
private static final Map<String, String> CLASSES = ContainerUtil.<String, String>immutableMapBuilder()
|
||||
.put(JList.class.getName(), JBList.class.getName())
|
||||
.put(JTable.class.getName(), JBTable.class.getName())
|
||||
.put(JTree.class.getName(), Tree.class.getName())
|
||||
.put(JScrollPane.class.getName(), JBScrollPane.class.getName())
|
||||
.put(JTabbedPane.class.getName(), JBTabbedPane.class.getName())
|
||||
.put(JComboBox.class.getName(), ComboBox.class.getName())
|
||||
.put(QueryExecutor.class.getName(), QueryExecutorBase.class.getName())
|
||||
.put(BufferedImage.class.getName(), "UIUtil.createImage()")
|
||||
.build();
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package org.jetbrains.idea.devkit.inspections.internal;
|
||||
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import org.jetbrains.idea.devkit.inspections.PluginModuleTestCase;
|
||||
|
||||
public class UndesirableClassUsageInspectionTest extends PluginModuleTestCase {
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
super.setUp();
|
||||
|
||||
myFixture.enableInspections(new UndesirableClassUsageInspection());
|
||||
}
|
||||
|
||||
public void testUsages() {
|
||||
doTest("javax.swing.JList", "com.intellij.ui.components.JBList");
|
||||
doTest("javax.swing.JTable", "com.intellij.ui.table.JBTable");
|
||||
doTest("javax.swing.JTree", "com.intellij.ui.treeStructure.Tree");
|
||||
doTest("javax.swing.JScrollPane", "com.intellij.ui.components.JBScrollPane");
|
||||
doTest("javax.swing.JTabbedPane", "com.intellij.ui.components.JBTabbedPane");
|
||||
doTest("javax.swing.JComboBox", "com.intellij.openapi.ui.ComboBox");
|
||||
doTest("com.intellij.util.QueryExecutor", "com.intellij.openapi.application.QueryExecutorBase");
|
||||
doTest("java.awt.image.BufferedImage", "UIUtil.createImage()");
|
||||
}
|
||||
|
||||
private void doTest(String classFqn, String replacementText) {
|
||||
myFixture.addClass("package " + StringUtil.getPackageName(classFqn) + ";" +
|
||||
"public class " + StringUtil.getShortName(classFqn) + " {}");
|
||||
|
||||
myFixture.configureByText("Testing.java",
|
||||
"public class Testing {" +
|
||||
" public void method() {" +
|
||||
"<warning descr=\"Please use '" + replacementText + "' instead\">" +
|
||||
"new " + classFqn + "()" +
|
||||
"</warning>;" +
|
||||
" }" +
|
||||
"}");
|
||||
myFixture.testHighlighting();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user