public void test_toUI_LinkedCorrectionProposal() throws Exception { Source source = createTestFileSource(); // fill SourceChange SourceChange sourceChange = new SourceChange("My linked change", source); sourceChange.addEdit(new Edit(10, 1, "a")); sourceChange.addEdit(new Edit(20, 1, "a")); sourceChange.addEdit(new Edit(30, 3, "b")); // create SourceCorrectionProposal SourceCorrectionProposal proposal = new SourceCorrectionProposal(sourceChange, CorrectionKind.QA_ADD_TYPE_ANNOTATION); { List<SourceRange> ranges = ImmutableList.of(new SourceRange(10, 1), new SourceRange(20, 1)); Map<String, List<SourceRange>> linkedPositons = ImmutableMap.of("a", ranges); proposal.setLinkedPositions(linkedPositons); } { List<LinkedPositionProposal> proposals = ImmutableList.of( new LinkedPositionProposal(CorrectionImage.IMG_CORRECTION_CHANGE, "proposalA")); Map<String, List<LinkedPositionProposal>> linkedProposals = ImmutableMap.of("a", proposals); proposal.setLinkedPositionProposals(linkedProposals); } // LinkedCorrectionProposal uiProposal = ServiceUtils.toUI(proposal); CompilationUnitChange ltkChange = (CompilationUnitChange) uiProposal.getChange(); assertEquals("My linked change", ltkChange.getName()); }
public void test_toUI_LinkedCorrectionProposal_noFile() throws Exception { Source source = new FileBasedSource(new File("no-such-file.dart")); SourceChange sourceChange = new SourceChange("My change", source); SourceCorrectionProposal proposal = new SourceCorrectionProposal(sourceChange, CorrectionKind.QA_ADD_TYPE_ANNOTATION); LinkedCorrectionProposal uiProposal = ServiceUtils.toUI(proposal); assertNull(uiProposal); }
public void test_createCoreException() throws Exception { Throwable e = new Throwable("msg"); CoreException coreException = ServiceUtils.createCoreException(e); assertSame(e, coreException.getCause()); // status IStatus status = coreException.getStatus(); assertSame(e, status.getException()); assertSame(IStatus.ERROR, status.getSeverity()); }
public void test_toLTK_Throwable() throws Exception { Throwable e = new Throwable("msg"); org.eclipse.ltk.core.refactoring.RefactoringStatus ltkStatus = ServiceUtils.toLTK(e); org.eclipse.ltk.core.refactoring.RefactoringStatusEntry[] ltkEntries = ltkStatus.getEntries(); assertThat(ltkEntries).hasSize(1); // entry[0] assertEquals("msg", ltkEntries[0].getMessage()); assertEquals( org.eclipse.ltk.core.refactoring.RefactoringStatus.FATAL, ltkEntries[0].getSeverity()); }
public void test_toLTK_Change_SourceChange() throws Exception { Source source = createTestFileSource(); // fill SourceChange SourceChange sourceChange = new SourceChange("My change", source); sourceChange.addEdit(new Edit(10, 1, "a")); sourceChange.addEdit(new Edit(20, 2, "b")); // toLTK TextFileChange ltkChange = (TextFileChange) ServiceUtils.toLTK((Change) sourceChange); assertEquals("My change", ltkChange.getName()); }
public void test_toLTK_RefactoringStatus() throws Exception { RefactoringStatus serviceStatus = RefactoringStatus.createErrorStatus("msg"); org.eclipse.ltk.core.refactoring.RefactoringStatus ltkStatus = ServiceUtils.toLTK(serviceStatus); org.eclipse.ltk.core.refactoring.RefactoringStatusEntry[] ltkEntries = ltkStatus.getEntries(); assertThat(ltkEntries).hasSize(1); // entry[0] assertEquals("msg", ltkEntries[0].getMessage()); assertEquals( org.eclipse.ltk.core.refactoring.RefactoringStatus.ERROR, ltkEntries[0].getSeverity()); }
public void test_toLTK_Change_SourceChange_externalFile() throws Exception { FileBasedSource source = new FileBasedSource(FileUtilities2.createFile("/some/path")); // fill SourceChange SourceChange sourceChange = new SourceChange("My change", source); sourceChange.addEdit(new Edit(10, 1, "a")); sourceChange.addEdit(new Edit(20, 2, "b")); // no IFile for this Source, so no LTK change { org.eclipse.ltk.core.refactoring.Change ltkChange = ServiceUtils.toLTK(sourceChange); assertNull(ltkChange); } // try as part of CompositeChange { CompositeChange compositeChange = new CompositeChange("My composite change", sourceChange); org.eclipse.ltk.core.refactoring.CompositeChange ltkChange = ServiceUtils.toLTK(compositeChange); assertNotNull(ltkChange); // wrong SourceChange was ignored assertThat(ltkChange.getChildren()).isEmpty(); } }
public void test_toLTK_Change_CompositeChange_noFile() throws Exception { Source source = new FileBasedSource(new File("no-such-file.dart")); SourceChange sourceChangeA = new SourceChange("My change A", source); SourceChange sourceChangeB = new SourceChange("My change B", source); CompositeChange compositeChange = new CompositeChange("My composite change", sourceChangeA, sourceChangeB); // toLTK org.eclipse.ltk.core.refactoring.Change ltkChange_ = ServiceUtils.toLTK(compositeChange); org.eclipse.ltk.core.refactoring.CompositeChange ltkChange = (org.eclipse.ltk.core.refactoring.CompositeChange) ltkChange_; assertEquals("My composite change", ltkChange.getName()); org.eclipse.ltk.core.refactoring.Change[] ltkChanges = ltkChange.getChildren(); assertThat(ltkChanges).isEmpty(); }
/** * It is OK to apply more than one insert {@link Edit} with the same offset. * * <p>For example Quick Fix "Implement Missing Overrides" inserts several method declarations. */ public void test_toLTK_SourceChange_twoInserts() throws Exception { Source source = createTestFileSource(); // fill SourceChange SourceChange sourceChange = new SourceChange("My change", source); sourceChange.addEdit(new Edit(2, 0, "a")); sourceChange.addEdit(new Edit(2, 0, "b")); // toLTK TextFileChange ltkChange = ServiceUtils.toLTK(sourceChange); TextEdit textEdit = ltkChange.getEdit(); // apply Document document = new Document("01234"); textEdit.apply(document); assertEquals("01ab234", document.get()); }
public void test_toLTK_Change_CompositeChange() throws Exception { Source source = createTestFileSource(); // fill SourceChange SourceChange sourceChangeA = new SourceChange("My change A", source); SourceChange sourceChangeB = new SourceChange("My change B", source); CompositeChange compositeChange = new CompositeChange("My composite change", sourceChangeA, sourceChangeB); // toLTK org.eclipse.ltk.core.refactoring.Change ltkChange_ = ServiceUtils.toLTK(compositeChange); org.eclipse.ltk.core.refactoring.CompositeChange ltkChange = (org.eclipse.ltk.core.refactoring.CompositeChange) ltkChange_; assertEquals("My composite change", ltkChange.getName()); org.eclipse.ltk.core.refactoring.Change[] ltkChanges = ltkChange.getChildren(); assertThat(ltkChanges).hasSize(2); }
public void test_toUI_ChangeCorrectionProposal() throws Exception { Source source = createTestFileSource(); // fill SourceChange SourceChange sourceChange = new SourceChange("My change", source); sourceChange.addEdit(new Edit(10, 1, "a")); sourceChange.addEdit(new Edit(20, 1, "a")); sourceChange.addEdit(new Edit(30, 3, "b")); // create ChangeCorrectionProposal CorrectionProposal proposal = new ChangeCorrectionProposal(sourceChange, CorrectionKind.QA_ADD_TYPE_ANNOTATION); // com.google.dart.tools.ui.internal.text.correction.proposals.ChangeCorrectionProposal uiProposal = (com.google.dart.tools.ui.internal.text.correction.proposals.ChangeCorrectionProposal) ServiceUtils.toUI(proposal); ReflectionUtils.invokeMethod(uiProposal, "getChange()"); CompilationUnitChange ltkChange = (CompilationUnitChange) uiProposal.getChange(); assertEquals("My change", ltkChange.getName()); }
public void test_toLTK_SourceChange_noGroups() throws Exception { Source source = createTestFileSource(); // fill SourceChange SourceChange sourceChange = new SourceChange("My change", source); sourceChange.addEdit(new Edit(10, 1, "a")); sourceChange.addEdit(new Edit(20, 2, "b")); // toLTK TextFileChange ltkChange = ServiceUtils.toLTK(sourceChange); assertEquals("My change", ltkChange.getName()); // no groups TextEditBasedChangeGroup[] changeGroups = ltkChange.getChangeGroups(); assertThat(changeGroups).isEmpty(); // check edits MultiTextEdit multiTextEdit = (MultiTextEdit) ltkChange.getEdit(); TextEdit[] textEdits = multiTextEdit.getChildren(); assertThat(textEdits).hasSize(2); assertEquals("a", ((ReplaceEdit) textEdits[0]).getText()); assertEquals("b", ((ReplaceEdit) textEdits[1]).getText()); }
public void test_toLTK_Change_MergeCompositeChange_emptyPreview() throws Exception { IFile testFile = testProject.setFileContent("test.dart", "012345"); Source source = createFileSource(testFile); // fill SourceChange SourceChange sourceChangeB = new SourceChange("My change B", source); sourceChangeB.addEdit(new Edit(2, 0, "b")); CompositeChange compositeChangeA = new CompositeChange("A"); CompositeChange compositeChangeB = new CompositeChange("B", sourceChangeB); MergeCompositeChange mergeChange = new MergeCompositeChange("My composite change", compositeChangeA, compositeChangeB); // toLTK org.eclipse.ltk.core.refactoring.Change ltkChange_ = ServiceUtils.toLTK(mergeChange); org.eclipse.ltk.core.refactoring.CompositeChange ltkChange = (org.eclipse.ltk.core.refactoring.CompositeChange) ltkChange_; assertEquals("My composite change", ltkChange.getName()); org.eclipse.ltk.core.refactoring.Change[] ltkChanges = ltkChange.getChildren(); assertThat(ltkChanges).hasSize(1); assertThat(ltkChanges[0]).isInstanceOf(CompilationUnitChange.class); }
public void test_toLTK_SourceChange_withGroups() throws Exception { Source source = createTestFileSource(); // fill SourceChange SourceChange sourceChange = new SourceChange("My change", source); sourceChange.addEdit(new Edit(10, 1, "a1"), "groupA"); sourceChange.addEdit(new Edit(20, 2, "a2"), "groupA"); sourceChange.addEdit(new Edit(30, 3, "b"), "groupB"); // toLTK TextFileChange ltkChange = ServiceUtils.toLTK(sourceChange); assertEquals("My change", ltkChange.getName()); TextEditBasedChangeGroup[] changeGroups = ltkChange.getChangeGroups(); assertThat(changeGroups).hasSize(2); { TextEditBasedChangeGroup group = changeGroups[0]; assertEquals("groupA", group.getName()); TextEdit[] textEdits = group.getTextEdits(); assertThat(textEdits).hasSize(2); assertEquals("a1", ((ReplaceEdit) textEdits[0]).getText()); assertEquals("a2", ((ReplaceEdit) textEdits[1]).getText()); } }
public void test_toLTK_Change_MergeCompositeChange() throws Exception { IFile testFile = testProject.setFileContent("test.dart", "012345"); Source source = createFileSource(testFile); // fill SourceChange SourceChange sourceChangeA = new SourceChange("My change A", source); SourceChange sourceChangeB = new SourceChange("My change B", source); sourceChangeA.addEdit(new Edit(0, 0, "a")); sourceChangeB.addEdit(new Edit(2, 0, "b")); CompositeChange compositeChangeA = new CompositeChange("A", sourceChangeA); CompositeChange compositeChangeB = new CompositeChange("B", sourceChangeB); MergeCompositeChange mergeChange = new MergeCompositeChange("My composite change", compositeChangeA, compositeChangeB); // toLTK org.eclipse.ltk.core.refactoring.Change ltkChange_ = ServiceUtils.toLTK(mergeChange); org.eclipse.ltk.core.refactoring.CompositeChange ltkChange = (org.eclipse.ltk.core.refactoring.CompositeChange) ltkChange_; assertEquals("My composite change", ltkChange.getName()); org.eclipse.ltk.core.refactoring.Change[] ltkChanges = ltkChange.getChildren(); assertThat(ltkChanges).hasSize(2); // ltkChange.perform(NULL_PM); String newContent = testProject.getFileString(testFile); assertEquals("a01b2345", newContent); }
public void test_toLTK_CorrectionImage() throws Exception { assertNotNull(ServiceUtils.toLTK(CorrectionImage.IMG_CORRECTION_CHANGE)); assertNotNull(ServiceUtils.toLTK(CorrectionImage.IMG_CORRECTION_CLASS)); }