File: EndConstructGeneration\MethodBlockTests.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.
 
Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.EndConstructGeneration
    <[UseExportProvider]>
    <Trait(Traits.Feature, Traits.Features.EndConstructGeneration)>
    Public Class MethodBlockTests
        <WpfFact>
        Public Sub TestApplyAfterSimpleSubDeclarationWithTrailingComment()
            VerifyStatementEndConstructApplied(
                before:="Class c1
  Sub goo() 'Extra Comment
End Class",
                beforeCaret:={1, -1},
                after:="Class c1
  Sub goo() 'Extra Comment
 
  End Sub
End Class",
                afterCaret:={2, -1})
        End Sub
 
        <WpfFact>
        Public Sub TestApplyAfterConstructorDeclaration()
            VerifyStatementEndConstructApplied(
                before:="Class c1
  Sub New()
End Class",
                beforeCaret:={1, -1},
                after:="Class c1
  Sub New()
 
  End Sub
End Class",
                afterCaret:={2, -1})
        End Sub
 
        <WpfFact>
        Public Sub TestApplyAfterConstructorDeclarationForDesignerGeneratedClass()
            VerifyStatementEndConstructApplied(
                before:="<Microsoft.VisualBasic.CompilerServices.DesignerGenerated>
Class c1
    Sub New()
 
    Sub InitializeComponent()
    End Sub
End Class",
                beforeCaret:={2, -1},
                after:=$"<Microsoft.VisualBasic.CompilerServices.DesignerGenerated>
Class c1
    Sub New()
 
        ' {VBEditorResources.This_call_is_required_by_the_designer}
        InitializeComponent()
 
        ' {VBEditorResources.Add_any_initialization_after_the_InitializeComponent_call}
 
    End Sub
 
    Sub InitializeComponent()
    End Sub
End Class",
                afterCaret:={3, -1})
        End Sub
 
        <WpfFact>
        Public Sub TestApplyAfterConstructorDeclarationWithTrailingComment()
            VerifyStatementEndConstructApplied(
                before:="Class c1
  Sub New() 'Extra Comment
End Class",
                beforeCaret:={1, -1},
                after:="Class c1
  Sub New() 'Extra Comment
 
  End Sub
End Class",
                afterCaret:={2, -1})
        End Sub
 
        <WpfFact>
        Public Sub TestApplyAfterSimpleFunctionDeclarationWithTrailingComment()
            VerifyStatementEndConstructApplied(
                before:="Class c1
  Function goo() As Integer 'Extra Comment
End Class",
                beforeCaret:={1, -1},
                after:="Class c1
  Function goo() As Integer 'Extra Comment
 
  End Function
End Class",
                afterCaret:={2, -1})
        End Sub
 
        <WpfFact>
        Public Sub DoNotApplyForInterfaceFunction()
            VerifyStatementEndConstructNotApplied(
                text:="Interface IGoo
Function Goo() as Integer
End Interface",
                 caret:={1, -1})
        End Sub
 
        <WpfFact>
        Public Sub TestVerifySubInAModule()
            VerifyStatementEndConstructApplied(
                before:="Module C
Public Sub s
End Module",
                beforeCaret:={1, -1},
                 after:="Module C
Public Sub s
 
End Sub
End Module",
                afterCaret:={2, -1})
        End Sub
 
        <WpfFact>
        Public Sub TestVerifySubWithParameters()
            VerifyStatementEndConstructApplied(
                before:="Module C
    Private Sub s1(byval x as Integer, Optional y as Integer = 5)
End Module",
                beforeCaret:={1, -1},
                 after:="Module C
    Private Sub s1(byval x as Integer, Optional y as Integer = 5)
 
    End Sub
End Module",
                afterCaret:={2, -1})
        End Sub
 
        <WpfFact>
        Public Sub TestVerifyFuncWithParameters()
            VerifyStatementEndConstructApplied(
                before:="Module C
    Public function f(byval x as Integer,
                      byref y as string) as string
End Module",
                beforeCaret:={2, -1},
                 after:="Module C
    Public function f(byval x as Integer,
                      byref y as string) as string
 
    End function
End Module",
                afterCaret:={3, -1})
        End Sub
 
        <WpfFact>
        Public Sub TestVerifyFuncNamedWithKeyWord()
            VerifyStatementEndConstructApplied(
                before:="Class C
    private funCtion f1(Optional x as integer = 5) as [if]
End Class",
                beforeCaret:={1, -1},
                 after:="Class C
    private funCtion f1(Optional x as integer = 5) as [if]
 
    End funCtion
End Class",
                afterCaret:={2, -1})
        End Sub
 
        <WpfFact>
        Public Sub TestVerifySharedOperator()
            VerifyStatementEndConstructApplied(
                before:="Class C
    Public Shared Operator +(ByVal a As bar, ByVal b As bar) As bar
End Class",
                beforeCaret:={1, -1},
                 after:="Class C
    Public Shared Operator +(ByVal a As bar, ByVal b As bar) As bar
 
    End Operator
End Class",
                afterCaret:={2, -1})
        End Sub
 
        <WpfFact>
        Public Sub VerifyRecommit()
            VerifyStatementEndConstructNotApplied(
                text:="Class C
    Protected friend sub S
    End sub
End Class",
                caret:={1, -1})
        End Sub
 
        <WpfFact>
        Public Sub VerifyInvalidLocation01()
            VerifyStatementEndConstructNotApplied(
                text:="Class C
    Sub S
        Sub P
    End Sub
End Class",
                caret:={2, -1})
        End Sub
 
        <WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/528961")>
        <WpfFact>
        Public Sub TestVerifyInvalidLocation02()
            VerifyStatementEndConstructApplied(
                before:="Sub S",
                beforeCaret:={0, -1},
                after:="Sub S
 
End Sub",
                afterCaret:={1, -1})
        End Sub
 
    End Class
End Namespace