Package org.osmorc.inspection

Source Code of org.osmorc.inspection.UnregisteredActivatorInspectionTest

package org.osmorc.inspection;

import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.psi.PsiFile;
import org.osmorc.AbstractOsgiTestCase;
import org.osmorc.i18n.OsmorcBundle;

public class UnregisteredActivatorInspectionTest extends AbstractOsgiTestCase {
  public void testPositive() {
    doTest(
      "package pkg;\n" +
      "import org.osgi.framework.*;\n" +
      "public class <error descr=\"Bundle activator is not registered in the manifest\">C</error> implements BundleActivator {\n" +
      "  public void start(BundleContext context) throws Exception { }\n" +
      "  public void stop(BundleContext context) throws Exception { }\n" +
      "}",
      "");
  }

  public void testNegative() {
    doTest(
      "package pkg;\n" +
      "import org.osgi.framework.*;\n" +
      "public class C implements BundleActivator {\n" +
      "  public void start(BundleContext context) throws Exception { }\n" +
      "  public void stop(BundleContext context) throws Exception { }\n" +
      "}",
      "Bundle-Activator: pkg.C\n");
  }

  public void testAbstract() {
    doTest(
      "package pkg;\n" +
      "import org.osgi.framework.*;\n" +
      "public abstract class C implements BundleActivator { }",
      "");
  }

  public void testQuickFix() {
    doTestFix(
      "Bundle-Activator: pkg.X\n",
      "Bundle-Activator: pkg.C\n");
  }

  private void doTest(String classText, String manifestText) {
    myFixture.enableInspections(new UnregisteredActivatorInspection());
    myFixture.addFileToProject("META-INF/MANIFEST.MF", manifestText);
    myFixture.configureByText("C.java", classText);
    myFixture.checkHighlighting(true, false, false);
  }

  private void doTestFix(String text, String expected) {
    myFixture.enableInspections(new UnregisteredActivatorInspection());
    PsiFile manifest = myFixture.addFileToProject("META-INF/MANIFEST.MF", text);
    myFixture.configureByText(
      "C.java",
      "package pkg;" +
      "import org.osgi.framework.*;\n" +
      "public class <caret>C implements BundleActivator {\n" +
      "  public void start(BundleContext context) throws Exception { }\n" +
      "  public void stop(BundleContext context) throws Exception { }\n" +
      "}");
    IntentionAction intention = myFixture.findSingleIntention(OsmorcBundle.message("UnregisteredActivatorInspection.fix.manifest"));
    myFixture.launchAction(intention);
    assertEquals(expected, manifest.getText());
  }
}
TOP

Related Classes of org.osmorc.inspection.UnregisteredActivatorInspectionTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.