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()); }