SpringFacetInspectionTest
authorDmitry Avdeev <Dmitry.Avdeev@jetbrains.com>
Mon, 30 Jan 2012 06:23:58 +0000 (10:23 +0400)
committerDmitry Avdeev <Dmitry.Avdeev@jetbrains.com>
Mon, 30 Jan 2012 06:37:04 +0000 (10:37 +0400)
platform/lang-impl/src/com/intellij/facet/impl/FacetUtil.java
platform/testFramework/src/com/intellij/testFramework/fixtures/impl/CodeInsightTestFixtureImpl.java

index 98ee7e32af01d741404fc5eb817f8f6c446f19a5..ea11e8f0d286e935cfb26207f60e52b313f595fe 100644 (file)
 package com.intellij.facet.impl;
 
 import com.intellij.facet.*;
+import com.intellij.openapi.application.ApplicationManager;
 import com.intellij.openapi.application.Result;
 import com.intellij.openapi.application.WriteAction;
 import com.intellij.openapi.components.PersistentStateComponent;
+import com.intellij.openapi.module.Module;
 import com.intellij.openapi.util.InvalidDataException;
 import com.intellij.openapi.util.WriteExternalException;
 import com.intellij.util.ReflectionUtil;
@@ -36,7 +38,21 @@ import java.util.Arrays;
  * @author nik
  */
 public class FacetUtil {
-  private FacetUtil() {
+
+  public static <F extends Facet> F addFacet(Module module, FacetType<F, ?> type) {
+    final ModifiableFacetModel model = FacetManager.getInstance(module).createModifiableModel();
+    final F facet = createFacet(module, type);
+    ApplicationManager.getApplication().runWriteAction(new Runnable() {
+      public void run() {
+        model.addFacet(facet);
+        model.commit();
+      }
+    });
+    return facet;
+  }
+
+  private static <F extends Facet, C extends FacetConfiguration> F createFacet(final Module module, final FacetType<F, C> type) {
+    return FacetManager.getInstance(module).createFacet(type, type.getPresentableName(), type.createDefaultConfiguration(), null);
   }
 
   public static void deleteFacet(final Facet facet) {
index b6f0c73c7e35391d63c23e88961f11fcb98f34cd..1ffb735211343cf34fc02757768a58becc3feed6 100644 (file)
@@ -496,7 +496,9 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
   @Override
   @NotNull
   public List<IntentionAction> getAllQuickFixes(@NonNls final String... filePaths) {
-    configureByFilesInner(filePaths);
+    if (filePaths.length != 0) {
+      configureByFilesInner(filePaths);
+    }
     List<HighlightInfo> infos = doHighlighting();
     ArrayList<IntentionAction> actions = new ArrayList<IntentionAction>();
     for (HighlightInfo info : infos) {
@@ -1382,7 +1384,9 @@ public class CodeInsightTestFixtureImpl extends BaseFixture implements CodeInsig
     ensureIndexesUpToDate(project);
     DaemonCodeAnalyzerImpl codeAnalyzer = (DaemonCodeAnalyzerImpl)DaemonCodeAnalyzer.getInstance(project);
     TextEditor textEditor = TextEditorProvider.getInstance().getTextEditor(editor);
-    return codeAnalyzer.runPasses(file, editor.getDocument(), textEditor, toIgnore, canChangeDocument, null);
+    List<HighlightInfo> infos = codeAnalyzer.runPasses(file, editor.getDocument(), textEditor, toIgnore, canChangeDocument, null);
+    infos.addAll(DaemonCodeAnalyzerImpl.getFileLevelHighlights(project, file));
+    return infos;
   }
 
   public static void ensureIndexesUpToDate(Project project) {