/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/EditorFeatures/Test2/GoToHelpers/GoToHelpers.vb
75 строк
3 KB
Cyrus Najmabadi
Organize VB imports (#79172)
27 июн 2025, 23:18
Не верифицирован
27 июн 2025, 23:18
af7bebc
Код
Авторство
О чём код?
' 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 Imports Microsoft.CodeAnalysis.Editor.UnitTests Imports Microsoft.CodeAnalysis.Editor.UnitTests.Utilities.GoToHelpers Imports Microsoft.CodeAnalysis.FindUsages Imports Microsoft.CodeAnalysis.Remote.Testing Friend Class GoToHelpers Friend Shared Async Function TestAsync( workspaceDefinition As XElement, testHost As TestHost, testingMethod As Func(Of Document, Integer, SimpleFindUsagesContext, Task), Optional shouldSucceed As Boolean = True, Optional metadataDefinitions As String() = Nothing) As Task Using workspace = EditorTestWorkspace.Create(workspaceDefinition, composition:=EditorTestCompositions.EditorFeatures.WithTestHostParts(testHost)) Dim documentWithCursor = workspace.DocumentWithCursor Dim position = documentWithCursor.CursorPosition.Value Dim solution = workspace.CurrentSolution Dim document = Await solution.GetRequiredDocumentAsync(documentWithCursor.Id, includeSourceGenerated:=True, CancellationToken.None) Dim context = New SimpleFindUsagesContext() Await testingMethod(document, position, context) If Not shouldSucceed Then Assert.NotNull(context.Message) Else Dim actualDefinitions = New List(Of FilePathAndSpan) For Each definition In context.GetDefinitions() For Each sourceSpan In definition.SourceSpans actualDefinitions.Add(New FilePathAndSpan(sourceSpan.Document.FilePath, sourceSpan.SourceSpan)) Next Next actualDefinitions.Sort() Dim expectedDefinitions = workspace.Documents.SelectMany( Function(d) d.SelectedSpans.Select(Function(ss) New FilePathAndSpan(d.FilePath, ss))).ToList() expectedDefinitions.Sort() Assert.Equal(expectedDefinitions.Count, actualDefinitions.Count) For i = 0 To actualDefinitions.Count - 1 Dim actual = actualDefinitions(i) Dim expected = expectedDefinitions(i) Assert.True(actual.CompareTo(expected) = 0, $"Expected: ({expected}) but got: ({actual})") Next Dim actualDefinitionsWithoutSpans = context.GetDefinitions(). Where(Function(d) d.SourceSpans.IsDefaultOrEmpty). Select(Function(di) Return String.Format("{0}:{1}", String.Join("", di.MetadataLocations.Single().Name), String.Join("", di.NameDisplayParts.Select(Function(t) t.Text))) End Function).ToList() actualDefinitionsWithoutSpans.Sort() If metadataDefinitions Is Nothing Then metadataDefinitions = {} End If AssertEx.Equal(metadataDefinitions, actualDefinitionsWithoutSpans) End If End Using End Function End Class