public void testIsApplicable() throws Exception {
    ParcelableQuickFix fix = new ParcelableQuickFix("Fix Parcelable", IMPLEMENT);

    PsiFile file = myFixture.addFileToProject("src/com/example/Simple.java", SIMPLE_SOURCE);
    PsiIdentifier identifier = findClassIdentifier(file, "Simple");
    assertTrue(
        fix.isApplicable(identifier, identifier, AndroidQuickfixContexts.DesignerContext.TYPE));

    file = myFixture.addFileToProject("src/com/expected/Simple.java", SIMPLE_EXPECTED);
    identifier = findClassIdentifier(file, "Simple");
    assertFalse(
        fix.isApplicable(identifier, identifier, AndroidQuickfixContexts.DesignerContext.TYPE));
  }
 private void doTestApply(
     @NotNull ParcelableQuickFix.Operation operation,
     @NotNull String source,
     @NotNull String expected,
     @NotNull String className) {
   PsiFile file =
       myFixture.addFileToProject(String.format("src/com/example/%s.java", className), source);
   final PsiIdentifier identifier = findClassIdentifier(file, className);
   final ParcelableQuickFix fix = new ParcelableQuickFix("Fix Parcelable", operation);
   assertTrue(
       fix.isApplicable(identifier, identifier, AndroidQuickfixContexts.DesignerContext.TYPE));
   new WriteCommandAction(getProject()) {
     @Override
     protected void run(@NotNull Result result) throws Throwable {
       fix.apply(identifier, identifier, AndroidQuickfixContexts.DesignerContext.getInstance());
     }
   }.execute();
   Document document = FileDocumentManager.getInstance().getDocument(file.getVirtualFile());
   assert document != null;
   String actual = document.getText();
   String diff = lineDiff(actual, expected);
   assertTrue(diff, diff.isEmpty());
 }