public void TestPickTheRightPreview_NoPreference() { using (var workspace = CreateWorkspaceFromFile("class D {}", null, null)) { Document document = null; SolutionPreviewResult previews = null; GetMainDocumentAndPreviews(workspace, out document, out previews); // The changed document comes first. var preview = previews.TakeNextPreview(); Assert.NotNull(preview); Assert.True(preview is IWpfDifferenceViewer); var diffView = preview as IWpfDifferenceViewer; var text = diffView.RightView.TextBuffer.AsTextContainer().CurrentText.ToString(); Assert.Equal(ChangedDocumentText, text); diffView.Close(); // The added document comes next. preview = previews.TakeNextPreview(); Assert.NotNull(preview); Assert.True(preview is IWpfDifferenceViewer); diffView = preview as IWpfDifferenceViewer; text = diffView.RightView.TextBuffer.AsTextContainer().CurrentText.ToString(); Assert.Contains(AddedDocumentName, text, StringComparison.Ordinal); Assert.Contains(AddedDocumentText, text, StringComparison.Ordinal); diffView.Close(); // Then comes the removed metadata reference. preview = previews.TakeNextPreview(); Assert.NotNull(preview); Assert.True(preview is string); text = preview as string; Assert.Contains(s_removedMetadataReferenceDisplayName, text, StringComparison.Ordinal); // And finally the added project. preview = previews.TakeNextPreview(); Assert.NotNull(preview); Assert.True(preview is string); text = preview as string; Assert.Contains(AddedProjectName, text, StringComparison.Ordinal); // There are no more previews. preview = previews.TakeNextPreview(); Assert.Null(preview); preview = previews.TakeNextPreview(); Assert.Null(preview); } }
public void TestPickTheRightPreview_WithPreference() { using (var workspace = CreateWorkspaceFromFile("class D {}", null, null)) { Document document = null; SolutionPreviewResult previews = null; GetMainDocumentAndPreviews(workspace, out document, out previews); // Should return preview that matches the preferred (added) project. var preview = previews.TakeNextPreview(preferredProjectId: s_addedProjectId); Assert.NotNull(preview); Assert.True(preview is string); var text = preview as string; Assert.Contains(AddedProjectName, text, StringComparison.Ordinal); // Should return preview that matches the preferred (changed) document. preview = previews.TakeNextPreview(preferredDocumentId: document.Id); Assert.NotNull(preview); Assert.True(preview is IWpfDifferenceViewer); var diffView = preview as IWpfDifferenceViewer; text = diffView.RightView.TextBuffer.AsTextContainer().CurrentText.ToString(); Assert.Equal(ChangedDocumentText, text); diffView.Close(); // There is no longer a preview for the preferred project. Should return the first remaining preview. preview = previews.TakeNextPreview(preferredProjectId: s_addedProjectId); Assert.NotNull(preview); Assert.True(preview is IWpfDifferenceViewer); diffView = preview as IWpfDifferenceViewer; text = diffView.RightView.TextBuffer.AsTextContainer().CurrentText.ToString(); Assert.Contains(AddedDocumentName, text, StringComparison.Ordinal); Assert.Contains(AddedDocumentText, text, StringComparison.Ordinal); diffView.Close(); // There is no longer a preview for the preferred document. Should return the first remaining preview. preview = previews.TakeNextPreview(preferredDocumentId: document.Id); Assert.NotNull(preview); Assert.True(preview is string); text = preview as string; Assert.Contains(s_removedMetadataReferenceDisplayName, text, StringComparison.Ordinal); // There are no more previews. preview = previews.TakeNextPreview(); Assert.Null(preview); preview = previews.TakeNextPreview(); Assert.Null(preview); } }