package de.plushnikov.intellij.plugin.action; import com.intellij.ide.DataManager; import com.intellij.openapi.actionSystem.ActionManager; import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.actionSystem.DataContext; import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.util.AsyncResult; import de.plushnikov.intellij.plugin.AbstractLombokLightCodeInsightTestCase; public abstract class LombokLightActionTestCase extends AbstractLombokLightCodeInsightTestCase { protected void doTest() throws Exception { myFixture.configureByFile(getBasePath() + "/before" + getTestName(false) + ".java"); performActionTest(); checkResultByFile(getBasePath() + "/after" + getTestName(false) + ".java"); } protected void performActionTest() { AnAction anAction = getAction(); AsyncResult<DataContext> contextResult = DataManager.getInstance().getDataContextFromFocus(); AnActionEvent anActionEvent = new AnActionEvent(null, contextResult.getResult(), "", anAction.getTemplatePresentation(), ActionManager.getInstance(), 0); anAction.actionPerformed(anActionEvent); FileDocumentManager.getInstance().saveAllDocuments(); } protected abstract AnAction getAction(); }