public async Task 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 = await previews.TakeNextPreviewAsync(preferredProjectId : s_addedProjectId).ConfigureAwait(true); 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 = await previews.TakeNextPreviewAsync(preferredDocumentId : document.Id).ConfigureAwait(true); 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 = await previews.TakeNextPreviewAsync(preferredProjectId : s_addedProjectId).ConfigureAwait(true); 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 = await previews.TakeNextPreviewAsync(preferredDocumentId : document.Id).ConfigureAwait(true); 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 = await previews.TakeNextPreviewAsync().ConfigureAwait(true); Assert.Null(preview); preview = await previews.TakeNextPreviewAsync().ConfigureAwait(true); Assert.Null(preview); } }
public async Task 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 = await previews.TakeNextPreviewAsync().ConfigureAwait(true); 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 = await previews.TakeNextPreviewAsync().ConfigureAwait(true); 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 = await previews.TakeNextPreviewAsync().ConfigureAwait(true); 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 = await previews.TakeNextPreviewAsync().ConfigureAwait(true); Assert.NotNull(preview); Assert.True(preview is string); text = preview as string; Assert.Contains(AddedProjectName, text, StringComparison.Ordinal); // There are no more previews. preview = await previews.TakeNextPreviewAsync().ConfigureAwait(true); Assert.Null(preview); preview = await previews.TakeNextPreviewAsync().ConfigureAwait(true); Assert.Null(preview); } }