| package testPlugin; |
| |
| |
| import com.intellij.codeInsight.daemon.impl.HighlightInfo; |
| import com.intellij.codeInsight.intention.IntentionAction; |
| import com.intellij.codeInspection.ComparingReferencesInspection; |
| import com.intellij.testFramework.UsefulTestCase; |
| import com.intellij.testFramework.builders.JavaModuleFixtureBuilder; |
| import com.intellij.testFramework.fixtures.*; |
| import junit.framework.Assert; |
| |
| import java.util.List; |
| |
| /** |
| * @see JavaCodeInsightFixtureTestCase |
| * @see LightCodeInsightFixtureTestCase |
| */ |
| public class TestThisPlugin extends UsefulTestCase { |
| |
| protected CodeInsightTestFixture myFixture; |
| // Specify path to your test data directory |
| // e.g. final String dataPath = "c:\\users\\john.doe\\idea\\community\\samples\\ComparingReferences/testData"; |
| final String dataPath = "c:\\users\\John.Doe\\idea\\community\\samples\\comparingReferences/testData"; |
| |
| |
| public void setUp() throws Exception { |
| |
| final IdeaTestFixtureFactory fixtureFactory = IdeaTestFixtureFactory.getFixtureFactory(); |
| final TestFixtureBuilder<IdeaProjectTestFixture> testFixtureBuilder = fixtureFactory.createFixtureBuilder(getName()); |
| myFixture = JavaTestFixtureFactory.getFixtureFactory().createCodeInsightFixture(testFixtureBuilder.getFixture()); |
| myFixture.setTestDataPath(dataPath); |
| final JavaModuleFixtureBuilder builder = testFixtureBuilder.addModule(JavaModuleFixtureBuilder.class); |
| |
| builder.addContentRoot(myFixture.getTempDirPath()).addSourceRoot(""); |
| builder.setMockJdkLevel(JavaModuleFixtureBuilder.MockJdkLevel.jdk15); |
| myFixture.setUp(); |
| } |
| |
| public void tearDown() throws Exception { |
| myFixture.tearDown(); |
| myFixture = null; |
| } |
| |
| protected void doTest(String testName, String hint) throws Throwable { |
| myFixture.configureByFile(testName + ".java"); |
| myFixture.enableInspections(ComparingReferencesInspection.class); |
| List<HighlightInfo> highlightInfos = myFixture.doHighlighting(); |
| Assert.assertTrue(!highlightInfos.isEmpty()); |
| |
| final IntentionAction action = myFixture.findSingleIntention(hint); |
| |
| Assert.assertNotNull(action); |
| myFixture.launchAction(action); |
| myFixture.checkResultByFile(testName + ".after.java"); |
| } |
| |
| // Test the "==" case |
| public void test() throws Throwable { |
| doTest("before", "Use equals()"); |
| } |
| |
| // Test the "!=" case |
| public void test1() throws Throwable { |
| doTest("before1", "Use equals()"); |
| } |
| |
| } |