Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }