File: ChangeSignature\AddParameterTests.OptionalParameter.Infer.vb
Web Access
Project: ..\..\..\src\EditorFeatures\VisualBasicTest\Microsoft.CodeAnalysis.VisualBasic.EditorFeatures.UnitTests.vbproj (Microsoft.CodeAnalysis.VisualBasic.EditorFeatures.UnitTests)
' 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.ChangeSignature
Imports Microsoft.CodeAnalysis.Editor.UnitTests.Extensions
Imports Microsoft.CodeAnalysis.Test.Utilities.ChangeSignature
 
Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.ChangeSignature
    <Trait(Traits.Feature, Traits.Features.ChangeSignature)>
    Partial Public Class ChangeSignatureTests
        Inherits AbstractChangeSignatureTests
 
        <Fact>
        Public Async Function AddOptionalParameter_CallsiteInferred_NoOptions() As Task
            Dim markup = <Text><![CDATA[
Class C
    Sub M$$()
        M()
    End Sub
End Class]]></Text>.NormalizedValue()
            Dim updatedSignature = {
                AddedParameterOrExistingIndex.CreateAdded("System.Int32", "a", CallSiteKind.Inferred)}
            Dim updatedCode = <Text><![CDATA[
Class C
    Sub M(a As Integer)
        M(TODO)
    End Sub
End Class]]></Text>.NormalizedValue()
 
            Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=updatedSignature, expectedUpdatedInvocationDocumentCode:=updatedCode)
        End Function
 
        <Fact>
        Public Async Function AddOptionalParameter_CallsiteInferred_SingleLocal() As Task
            Dim markup = <Text><![CDATA[
Class C
    Sub M$$()
        Dim x = 7
        M()
    End Sub
End Class]]></Text>.NormalizedValue()
            Dim updatedSignature = {
                AddedParameterOrExistingIndex.CreateAdded("System.Int32", "a", CallSiteKind.Inferred)}
            Dim updatedCode = <Text><![CDATA[
Class C
    Sub M(a As Integer)
        Dim x = 7
        M(x)
    End Sub
End Class]]></Text>.NormalizedValue()
 
            Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=updatedSignature, expectedUpdatedInvocationDocumentCode:=updatedCode)
        End Function
 
        <Fact>
        Public Async Function AddOptionalParameter_CallsiteInferred_MultipleLocals() As Task
            Dim markup = <Text><![CDATA[
Class C
    Sub M$$()
        Dim x = 7
        Dim y = 8
        M()
    End Sub
End Class]]></Text>.NormalizedValue()
            Dim updatedSignature = {
                AddedParameterOrExistingIndex.CreateAdded("System.Int32", "a", CallSiteKind.Inferred)}
            Dim updatedCode = <Text><![CDATA[
Class C
    Sub M(a As Integer)
        Dim x = 7
        Dim y = 8
        M(y)
    End Sub
End Class]]></Text>.NormalizedValue()
 
            Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=updatedSignature, expectedUpdatedInvocationDocumentCode:=updatedCode)
        End Function
 
        <Fact>
        Public Async Function AddOptionalParameter_CallsiteInferred_SingleParameter() As Task
            Dim markup = <Text><![CDATA[
Class C
    Sub M$$(x As Integer)
        M(1)
    End Sub
End Class]]></Text>.NormalizedValue()
            Dim updatedSignature = {
                New AddedParameterOrExistingIndex(0),
                AddedParameterOrExistingIndex.CreateAdded("System.Int32", "a", CallSiteKind.Inferred)}
            Dim updatedCode = <Text><![CDATA[
Class C
    Sub M(x As Integer, a As Integer)
        M(1, x)
    End Sub
End Class]]></Text>.NormalizedValue()
 
            Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=updatedSignature, expectedUpdatedInvocationDocumentCode:=updatedCode)
        End Function
 
        <Fact>
        Public Async Function AddOptionalParameter_CallsiteInferred_SingleField() As Task
            Dim markup = <Text><![CDATA[
Class C
    Dim x As Integer = 7

    Sub M$$()
        M()
    End Sub
End Class]]></Text>.NormalizedValue()
            Dim updatedSignature = {
                AddedParameterOrExistingIndex.CreateAdded("System.Int32", "a", CallSiteKind.Inferred)}
            Dim updatedCode = <Text><![CDATA[
Class C
    Dim x As Integer = 7

    Sub M(a As Integer)
        M(x)
    End Sub
End Class]]></Text>.NormalizedValue()
 
            Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=updatedSignature, expectedUpdatedInvocationDocumentCode:=updatedCode)
        End Function
 
        <Fact>
        Public Async Function AddOptionalParameter_CallsiteInferred_SingleProperty() As Task
            Dim markup = <Text><![CDATA[
Class C
    Property X As Integer

    Sub M$$()
        M()
    End Sub
End Class]]></Text>.NormalizedValue()
            Dim updatedSignature = {
                AddedParameterOrExistingIndex.CreateAdded("System.Int32", "a", CallSiteKind.Inferred)}
            Dim updatedCode = <Text><![CDATA[
Class C
    Property X As Integer

    Sub M(a As Integer)
        M(X)
    End Sub
End Class]]></Text>.NormalizedValue()
 
            Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=updatedSignature, expectedUpdatedInvocationDocumentCode:=updatedCode)
        End Function
 
        <Fact>
        Public Async Function AddOptionalParameter_CallsiteInferred_ImplicitlyConvertable() As Task
            Dim markup = <Text><![CDATA[
Class B
End Class

Class D
    Inherits B
End Class

Class C
    Sub M$$()
        Dim d As D
        M()
    End Sub
End Class]]></Text>.NormalizedValue()
            Dim updatedSignature = {
                AddedParameterOrExistingIndex.CreateAdded("B", "b", CallSiteKind.Inferred)}
            Dim updatedCode = <Text><![CDATA[
Class B
End Class

Class D
    Inherits B
End Class

Class C
    Sub M(b As B)
        Dim d As D
        M(d)
    End Sub
End Class]]></Text>.NormalizedValue()
 
            Await TestChangeSignatureViaCommandAsync(LanguageNames.VisualBasic, markup, updatedSignature:=updatedSignature, expectedUpdatedInvocationDocumentCode:=updatedCode)
        End Function
    End Class
End Namespace