package mobi.hsz.idea.gitignore.inspections; import com.intellij.openapi.util.text.StringUtil; import com.intellij.testFramework.fixtures.LightPlatformCodeInsightFixtureTestCase; import mobi.hsz.idea.gitignore.lang.kind.GitLanguage; import org.jetbrains.annotations.NotNull; import java.io.File; abstract public class InspectionTestCase extends LightPlatformCodeInsightFixtureTestCase { private static final String FILENAME = GitLanguage.INSTANCE.getFilename(); @Override protected String getTestDataPath() { return new File("testData/inspections/" + name()).getAbsolutePath(); } private String name() { return StringUtil.decapitalize(StringUtil.trimEnd(StringUtil.trimStart(getClass().getSimpleName(), "Gitignore"), "InspectionTest")); } @Override protected boolean isWriteActionRequired() { return false; } protected void doHighlightingTest() { myFixture.copyDirectoryToProject(getTestName(true), getTestName(true)); myFixture.testHighlighting(true, false, true, getTestName(true) + "/" + FILENAME); } protected void doHighlightingFileTest() { myFixture.configureByFile(getTestName(true) + FILENAME); myFixture.testHighlighting(true, false, true); } protected void doHighlightingFileTestWithQuickFix(@NotNull String quickFixName) { myFixture.configureByFile(getTestName(true) + FILENAME); myFixture.testHighlighting(true, false, true); myFixture.launchAction(myFixture.findSingleIntention(quickFixName)); myFixture.checkResultByFile(getTestName(true) + "-after" + FILENAME); } }