/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/EditorFeatures/VisualBasicTest/ChangeSignature/ReorderParameters.InvocationLocations.vb
651 строка
21 KB
Tomáš Matoušek
Move async utils to Microsoft.CodeAnalysis.Threading source package (#76937)
05 фев 2025, 23:07
Не верифицирован
05 фев 2025, 23:07
dead7da
Код
Авторство
О чём код?
' 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 Microsoft.CodeAnalysis.ChangeSignature Imports Microsoft.CodeAnalysis.Editor.UnitTests.Extensions Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.ChangeSignature <Trait(Traits.Feature, Traits.Features.ChangeSignature)> Partial Public Class ChangeSignatureTests #Region "Methods" <Fact> Public Async Function TestReorderMethodParameters_InvokeBeforeMethodName() As Task Dim markup = <Text><![CDATA[ Class C Public Sub $$Goo(x As Integer, y As String) End Sub End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Public Sub Goo(y As String, x As Integer) End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact> Public Async Function TestReorderMethodParameters_InvokeInParameterList() As Task Dim markup = <Text><![CDATA[ Class C Public Sub Goo(x As Integer, $$y As String) End Sub End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Public Sub Goo(y As String, x As Integer) End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact> Public Async Function TestReorderMethodParameters_InvokeAfterParameterList() As Task Dim markup = <Text><![CDATA[ Class C Public Sub Goo(x As Integer, y As String)$$ End Sub End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Public Sub Goo(y As String, x As Integer) End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact> Public Async Function TestReorderMethodParameters_InvokeBeforeMethodDeclaration() As Task Dim markup = <Text><![CDATA[ Class C $$Public Sub Goo(x As Integer, y As String) End Sub End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Public Sub Goo(y As String, x As Integer) End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact> Public Async Function TestReorderMethodParameters_InvokeOnMetadataReference_InIdentifier_ShouldFail() As Task Dim markup = <Text><![CDATA[ Class C Public Sub M(x As Integer, y As String) Dim m = DirectCast(Nothing, System.IFormattable).To$$String("test", Nothing) End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, expectedSuccess:=False, expectedFailureReason:=ChangeSignatureFailureKind.DefinedInMetadata) End Function <Fact> Public Async Function TestReorderMethodParameters_InvokeOnMetadataReference_AtBeginningOfInvocation_ShouldFail() As Task Dim markup = <Text><![CDATA[ Class C Public Sub M(x As Integer, y As String) Dim m = $$DirectCast(Nothing, System.IFormattable).ToString("test", Nothing) End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, expectedSuccess:=False, expectedFailureReason:=ChangeSignatureFailureKind.DefinedInMetadata) End Function <Fact> Public Async Function TestReorderMethodParameters_InvokeOnMetadataReference_InArgumentsOfInvocation_ShouldFail() As Task Dim markup = <Text><![CDATA[ Class C Public Sub M(x As Integer, y As String) Dim m = DirectCast(Nothing, System.IFormattable).ToString("test", $$Nothing) End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, expectedSuccess:=False, expectedFailureReason:=ChangeSignatureFailureKind.DefinedInMetadata) End Function <Fact> Public Async Function TestReorderMethodParameters_InvokeOnMetadataReference_AfterInvocation_ShouldFail() As Task Dim markup = <Text><![CDATA[ Class C Public Sub M(x As Integer, y As String) Dim m = DirectCast(Nothing, System.IFormattable).ToString("test", Nothing)$$ End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, expectedSuccess:=False, expectedFailureReason:=ChangeSignatureFailureKind.DefinedInMetadata) End Function <Fact> Public Async Function TestReorderMethodParameters_InvokeInMethodBody() As Task Dim markup = <Text><![CDATA[ Class C Public Sub M(x As Integer, y As String) $$ End Sub End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Public Sub M(y As String, x As Integer) End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact> Public Async Function TestReorderMethodParameters_InvokeOnReference_BeginningOfIdentifier() As Task Dim markup = <Text><![CDATA[ Class C Public Sub M(x As Integer, y As String) $$T(x, y) End Sub Public Sub T(x As Integer, y As String) End Sub End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Public Sub M(x As Integer, y As String) T(y, x) End Sub Public Sub T(y As String, x As Integer) End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact> Public Async Function TestReorderMethodParameters_InvokeOnReference_ArgumentList() As Task Dim markup = <Text><![CDATA[ Class C Public Sub M(x As Integer, y As String) T(x, $$y) End Sub Public Sub T(x As Integer, y As String) End Sub End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Public Sub M(x As Integer, y As String) T(y, x) End Sub Public Sub T(y As String, x As Integer) End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact> Public Async Function TestReorderMethodParameters_InvokeOnReference_NestedCalls1() As Task Dim markup = <Text><![CDATA[ Class C Public Sub M(x As Integer, y As String) D($$J(x, y), y) End Sub Public Sub D(x As Integer, y As String) End Sub Public Function J(x As Integer, y As String) As Integer Return 1 End Function End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Public Sub M(x As Integer, y As String) D(J(y, x), y) End Sub Public Sub D(x As Integer, y As String) End Sub Public Function J(y As String, x As Integer) As Integer Return 1 End Function End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact> Public Async Function TestReorderMethodParameters_InvokeOnReference_NestedCalls2() As Task Dim markup = <Text><![CDATA[ Class C Public Sub M(x As Integer, y As String) D$$(J(x, y), y) End Sub Public Sub D(x As Integer, y As String) End Sub Public Function J(x As Integer, y As String) As Integer Return 1 End Function End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Public Sub M(x As Integer, y As String) D(y, J(x, y)) End Sub Public Sub D(y As String, x As Integer) End Sub Public Function J(x As Integer, y As String) As Integer Return 1 End Function End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact> Public Async Function TestReorderMethodParameters_InvokeOnReference_NestedCalls3() As Task Dim markup = <Text><![CDATA[ Class C Public Sub M(x As Integer, y As String) D(J(x, y), $$y) End Sub Public Sub D(x As Integer, y As String) End Sub Public Function J(x As Integer, y As String) As Integer Return 1 End Function End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Public Sub M(x As Integer, y As String) D(y, J(x, y)) End Sub Public Sub D(y As String, x As Integer) End Sub Public Function J(x As Integer, y As String) As Integer Return 1 End Function End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact> Public Async Function TestReorderMethodParameters_InvokeOnReference_OnlyCandidateSymbols() As Task Dim markup = <Text><![CDATA[ Class C Public Sub M(x As Integer, y As String) End Sub Public Sub M(x As Integer, y As Double) End Sub Public Sub Test() $$M("Test", 5) End Sub End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Public Sub M(y As String, x As Integer) End Sub Public Sub M(x As Integer, y As Double) End Sub Public Sub Test() M(5, "Test") End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact> Public Async Function TestReorderMethodParameters_InvokeInConstructor() As Task Dim markup = <Text><![CDATA[ Class C Public Sub New(x As Integer, y As String) Dim a = 5$$ Dim b = 6 End Sub End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Public Sub New(y As String, x As Integer) Dim a = 5 Dim b = 6 End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function #End Region #Region "Properties" <Fact> Public Async Function TestReorderIndexerParameters_InvokeAtBeginningOfDeclaration() As Task Dim markup = <Text><![CDATA[ Class C $$Default Public Property Item(ByVal index1 As Integer, ByVal index2 As Integer) As Integer Get Return 5 End Get Set(value As Integer) End Set End Property End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Default Public Property Item(ByVal index2 As Integer, ByVal index1 As Integer) As Integer Get Return 5 End Get Set(value As Integer) End Set End Property End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact> Public Async Function TestReorderIndexerParameters_InParameters() As Task Dim markup = <Text><![CDATA[ Class C Default Public Property Item(ByVal index1 As Integer, $$ByVal index2 As Integer) As Integer Get Return 5 End Get Set(value As Integer) End Set End Property End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Default Public Property Item(ByVal index2 As Integer, ByVal index1 As Integer) As Integer Get Return 5 End Get Set(value As Integer) End Set End Property End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact> Public Async Function TestReorderIndexerParameters_InvokeAtEndOfDeclaration() As Task Dim markup = <Text><![CDATA[ Class C Default Public Property Item(ByVal index1 As Integer, ByVal index2 As Integer) As Integer$$ Get Return 5 End Get Set(value As Integer) End Set End Property End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Default Public Property Item(ByVal index2 As Integer, ByVal index1 As Integer) As Integer Get Return 5 End Get Set(value As Integer) End Set End Property End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact> Public Async Function TestReorderIndexerParameters_InvokeInAccessor() As Task Dim markup = <Text><![CDATA[ Class C Default Public Property Item(ByVal index1 As Integer, ByVal index2 As Integer) As Integer Get Return 5$$ End Get Set(value As Integer) End Set End Property End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Default Public Property Item(ByVal index2 As Integer, ByVal index1 As Integer) As Integer Get Return 5 End Get Set(value As Integer) End Set End Property End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact> Public Async Function TestReorderIndexerParameters_InvokeOnReference_BeforeTarget() As Task Dim markup = <Text><![CDATA[ Class C Default Public Property Item(ByVal index1 As Integer, ByVal index2 As Integer) As Integer Get Return 5 End Get Set(value As Integer) End Set End Property Sub Goo() Dim c = New C() Dim x = $$c(1, 2) End Sub End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Default Public Property Item(ByVal index2 As Integer, ByVal index1 As Integer) As Integer Get Return 5 End Get Set(value As Integer) End Set End Property Sub Goo() Dim c = New C() Dim x = c(2, 1) End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact> Public Async Function TestReorderIndexerParameters_InvokeOnReference_InArgumentList() As Task Dim markup = <Text><![CDATA[ Class C Default Public Property Item(ByVal index1 As Integer, ByVal index2 As Integer) As Integer Get Return 5 End Get Set(value As Integer) End Set End Property Sub Goo() Dim c = New C() Dim x = c(1, 2$$) End Sub End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Default Public Property Item(ByVal index2 As Integer, ByVal index1 As Integer) As Integer Get Return 5 End Get Set(value As Integer) End Set End Property Sub Goo() Dim c = New C() Dim x = c(2, 1) End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function #End Region #Region "Delegates" <Fact(Skip:="860578")> Public Async Function TestReorderDelegateParameters_ObjectCreation1() As Task Dim markup = <Text><![CDATA[ Class C Delegate Sub Del(x As Integer, y As Integer) Sub T() Dim x = New $$Del(Sub(a, b) End Sub) End Sub End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Delegate Sub Del(y As Integer, x As Integer) Sub T() Dim x = New Del(Sub(b, a) End Sub) End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact(Skip:="860578")> Public Async Function TestReorderDelegateParameters_ObjectCreation2() As Task Dim markup = <Text><![CDATA[ Class C(Of T) Delegate Sub Del(x As T, y As T) End Class Class Test Sub M() Dim x = New C(Of Integer).$$Del(Sub(a, b) End Sub) End Sub End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C(Of T) Delegate Sub Del(y As T, x As T) End Class Class Test Sub M() Dim x = New C(Of Integer).Del(Sub(b, a) End Sub) End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function #End Region #Region "Code Refactoring" <Fact> Public Async Function ReorderIndexerParameters_CodeRefactoring_InMethodDeclaration() As Task Dim markup = <Text><![CDATA[ Class C Sub Goo(x As Integer[||], y As Integer) End Sub End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Sub Goo(y As Integer, x As Integer) End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCodeActionAsync(markup, expectedCodeAction:=True, updatedSignature:=permutation, expectedCode:=updatedCode) End Function <Fact> Public Async Function ReorderIndexerParameters_CodeRefactoring_NotInMethodBody() As Task Dim markup = <Text><![CDATA[ Class C Sub Goo(x As Integer, y As Integer) [||] End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCodeActionAsync(markup, expectedCodeAction:=False) End Function <Fact> Public Async Function ReorderIndexerParameters_CodeRefactoring_InCallSite_ViaCommand() As Task Dim markup = <Text><![CDATA[ Class C Sub Goo(x As Integer, y As Integer) Goo($$1, 2) End Sub End Class]]></Text>.NormalizedValue() Dim permutation = {1, 0} Dim updatedCode = <Text><![CDATA[ Class C Sub Goo(y As Integer, x As Integer) Goo(2, 1) End Sub End Class]]></Text>.NormalizedValue() Await TestChangeSignatureViaCommandAsync( LanguageNames.VisualBasic, markup, updatedSignature:=permutation, expectedUpdatedInvocationDocumentCode:=updatedCode) End Function <Fact> Public Async Function ReorderIndexerParameters_CodeRefactoring_InCallSite_ViaCodeAction() As Task Dim markup = <Text><![CDATA[ Class C Sub Goo(x As Integer, y As Integer) Goo([||]1, 2) End Sub End Class]]></Text>.NormalizedValue() Await TestMissingAsync(markup) End Function #End Region End Class End Namespace