DevKit: add UndesirableClassUsageInspectionTest

This commit is contained in:
Yann Cébron
2014-07-02 20:51:16 +02:00
parent cb0b4a210c
commit a5652e92ad
2 changed files with 67 additions and 12 deletions
@@ -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
@@ -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();
}
}