/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/EditorFeatures/Test2/FindReferences/FindReferencesCommandHandlerTests.vb
85 строк
4 KB
Cyrus Najmabadi
Organize VB imports
27 июн 2025, 21:53
27 июн 2025, 21:53
e9c47fd
Код
Авторство
О чём код?
' Licensed to the .NET Foundation under one or more agreements. ' The .NET Foundation licenses this file to you under the MIT license. ' See the LICENSE file in the project root for more information. Imports System.Threading Imports Microsoft.CodeAnalysis.Editor.Host Imports Microsoft.CodeAnalysis.Editor.Shared.Utilities Imports Microsoft.CodeAnalysis.FindReferences Imports Microsoft.CodeAnalysis.FindUsages Imports Microsoft.CodeAnalysis.Shared.TestHooks Imports Microsoft.CodeAnalysis.Test.Utilities.FindUsages Imports Microsoft.CodeAnalysis.Text.Shared.Extensions Imports Microsoft.VisualStudio.Text.Editor.Commanding.Commands Namespace Microsoft.CodeAnalysis.Editor.UnitTests.FindReferences Public Class FindReferencesCommandHandlerTests <WorkItem("https://developercommunity.visualstudio.com/content/problem/47594/c-postfix-operators-inhibit-find-all-references-sh.html")> <WpfFact(Skip:="https://github.com/dotnet/roslyn/issues/24794"), Trait(Traits.Feature, Traits.Features.Completion)> Public Async Function TestSelection() As Task Dim source = " class C { void M() { int {|Definition:yyy|} = 0; {|Reference:{|Selection:yyy|}|}++; {|Reference:yyy|}++; } }" Using workspace = EditorTestWorkspace.CreateCSharp(source) Dim testDocument = workspace.Documents.Single() Dim view = testDocument.GetTextView() Dim textBuffer = view.TextBuffer Dim snapshot = textBuffer.CurrentSnapshot view.Selection.Select( testDocument.AnnotatedSpans("Selection").Single().ToSnapshotSpan(snapshot), isReversed:=False) Dim listenerProvider = workspace.ExportProvider.GetExportedValue(Of IAsynchronousOperationListenerProvider) Dim context = New FindUsagesTestContext() Dim commandHandler = New FindReferencesCommandHandler( New FindReferencesNavigationService( workspace.ExportProvider.GetExportedValue(Of IThreadingContext)(), New MockStreamingFindReferencesPresenter(context), listenerProvider, workspace.GlobalOptions)) Dim document = workspace.CurrentSolution.GetDocument(testDocument.Id) commandHandler.ExecuteCommand( New FindReferencesCommandArgs(view, textBuffer), Utilities.TestCommandExecutionContext.Create()) ' Wait for the find refs to be done. Await listenerProvider.GetWaiter(FeatureAttribute.FindReferences).ExpeditedWaitAsync() Assert.Equal(1, context.Definitions.Count) Assert.Equal(testDocument.AnnotatedSpans("Definition").Single(), context.Definitions(0).SourceSpans.Single().SourceSpan) Assert.Equal(testDocument.AnnotatedSpans("Reference").Count, context.References.Count) AssertEx.SetEqual(testDocument.AnnotatedSpans("Reference"), context.References.Select(Function(r) r.SourceSpan.SourceSpan)) End Using End Function Private Class MockStreamingFindReferencesPresenter Implements IStreamingFindUsagesPresenter Private ReadOnly _context As FindUsagesTestContext Public Sub New(context As FindUsagesTestContext) _context = context End Sub Public Sub ClearAll() Implements IStreamingFindUsagesPresenter.ClearAll End Sub Public Function StartSearch(title As String, options As StreamingFindUsagesPresenterOptions) As (FindUsagesContext, CancellationToken) Implements IStreamingFindUsagesPresenter.StartSearch Return (_context, CancellationToken.None) End Function End Class End Class End Namespace