File: Recommendations\Expressions\BinaryOperatorKeywordRecommenderTests.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.VisualBasic.Completion.KeywordRecommenders.Expressions
 
Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.Recommendations.Expressions
    <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
    Public Class BinaryOperatorKeywordRecommenderTests
        Inherits RecommenderTests
 
        Private Shared ReadOnly s_expectedKeywords As String() = BinaryOperatorKeywordRecommender.KeywordList.Select(Function(k) k.Keyword).ToArray()
 
        <Fact>
        Public Sub NoneInClassDeclarationTest()
            VerifyRecommendationsMissing(<ClassDeclaration>|</ClassDeclaration>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneInMethodDeclarationTest()
            VerifyRecommendationsMissing(<MethodBody>|</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub AllAfterLocalDeclarationNumericLiteralInitializerTest()
            VerifyRecommendationsContain(<MethodBody>Dim i As Integer = 1 |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub AllAfterNumberInAssignmentTest()
            VerifyRecommendationsContain(<MethodBody>x = 1 |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub AllAfterStringInAssignmentTest()
            VerifyRecommendationsContain(<MethodBody>x = "asdf" |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub AllAfterObjectCreationInAssignmentTest()
            VerifyRecommendationsContain(<MethodBody>x = New Object() |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneAfterObjectCreationInDeclarationTest()
            VerifyRecommendationsMissing(<MethodBody>Dim x = New Object |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneAfterObjectCreationWithParensInDeclarationTest()
            VerifyRecommendationsMissing(<MethodBody>Dim x = New Object() |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneAfterAsNewInDeclarationTest()
            VerifyRecommendationsMissing(<MethodBody>Dim x As New Object |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneAfterAsNewWithParensInDeclarationTest()
            VerifyRecommendationsMissing(<MethodBody>Dim x As New Object() |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub AllAfterMethodCallInAsNewClauseTest()
            VerifyRecommendationsContain(<MethodBody>Dim x As New Object(Goo() |)</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub AllAfterPropertyAccessInAssignmentTest()
            VerifyRecommendationsContain(<MethodBody>x = Goo.Bar |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub AllAfterMethodCallInAssignmentTest()
            VerifyRecommendationsContain(<MethodBody>x = Goo.Bar() |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneAfterDotInImportsTest()
            VerifyRecommendationsMissing(<File>Imports System.|</File>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneInSubLambdaParameterListTest()
            VerifyRecommendationsMissing(<MethodBody>Dim x = Sub(x |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneInFunctionLambdaParameterListTest()
            VerifyRecommendationsMissing(<MethodBody>Dim x = Function(x |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneInQueryVariableListTest()
            VerifyRecommendationsMissing(<MethodBody>Dim x = From y |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneInQueryVariableList2Test()
            VerifyRecommendationsMissing(<MethodBody>Dim x = From y In {1, 2, 3} Let z |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub AllInSubLambdaBodyTest()
            VerifyRecommendationsContain(<MethodBody>Dim x = Sub(x As Integer) x |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact, WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/541354")>
        Public Sub AfterStringLiteralTest()
            VerifyRecommendationsContain(<MethodBody>test = "F" |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub AllInFunctionLambdaBodyTest()
            VerifyRecommendationsContain(<MethodBody>Dim x = Function(x As Integer) x |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneInObjectMemberInitializer1Test()
            VerifyRecommendationsMissing(<MethodBody>Dim y = New goo() With {|</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneInObjectMemberInitializer2Test()
            VerifyRecommendationsMissing(<MethodBody>Dim y = New goo() With {.|</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneInObjectMemberInitializer3Test()
            VerifyRecommendationsMissing(<MethodBody>Dim y = New goo() With {.x|</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneInObjectMemberInitializer4Test()
            VerifyRecommendationsMissing(<MethodBody>Dim y = New goo() With {.x |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneInCatchStatement1Test()
            VerifyRecommendationsMissing(<MethodBody>
                                             Try
                                             Catch ex |
                                         </MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneInCatchStatement2Test()
            VerifyRecommendationsMissing(<MethodBody>
                                             Try
                                             Catch ex As Exception |
                                         </MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneInDimArrayBounds1Test()
            VerifyRecommendationsMissing(<MethodBody>Dim i(0 |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub AllInDimArrayBounds2Test()
            VerifyRecommendationsContain(<MethodBody>Dim i(0 To 4 |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneInReDimArrayBounds1Test()
            VerifyRecommendationsMissing(<MethodBody>ReDim i(0 |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub AllInReDimArrayBounds2Test()
            VerifyRecommendationsContain(<MethodBody>ReDim i(0 To 4 |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneAfterQueryFromTest()
            VerifyRecommendationsMissing(<MethodBody>Dim query = From |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneAfterQueryAggregateTest()
            VerifyRecommendationsMissing(<MethodBody>Dim query = Aggregate |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact, WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/543637")>
        Public Sub NoneInTypeArgumentListTest()
            Dim code =
            <File>
Module M
    Sub Goo(Of T As Class)()
        Goo(Of T |
    End Sub
End Module
</File>
 
            VerifyRecommendationsMissing(code, s_expectedKeywords)
        End Sub
 
        <Fact, WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/544106")>
        Public Sub NoneAfterAddHandlerEventNameTest()
            VerifyRecommendationsMissing(<MethodBody>AddHandler System.Console.CancelKeyPress |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact, WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/544106")>
        Public Sub NoneAfterAddHandlerIdentifierTest()
            VerifyRecommendationsContain(<MethodBody>AddHandler System.Console.CancelKeyPress, Goo |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact, WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/544106")>
        Public Sub NoneAfterAddHandlerAddressOfIdentifierTest()
            VerifyRecommendationsMissing(<MethodBody>AddHandler System.Console.CancelKeyPress, AddressOf Goo |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact, WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/544106")>
        Public Sub NoneAfterRemoveHandlerEventNameTest()
            VerifyRecommendationsMissing(<MethodBody>RemoveHandler System.Console.CancelKeyPress |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact, WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/544106")>
        Public Sub NoneAfterRemoveHandlerIdentifierTest()
            VerifyRecommendationsContain(<MethodBody>RemoveHandler System.Console.CancelKeyPress, Goo |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact, WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/544106")>
        Public Sub NoneAfterRemoveHandlerAddressOfIdentifierTest()
            VerifyRecommendationsMissing(<MethodBody>RemoveHandler System.Console.CancelKeyPress, AddressOf Goo |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub NoneAfterNamespaceAliasInImportsTest()
            Dim code =
            <File>
Imports S |
</File>
 
            VerifyRecommendationsMissing(code, s_expectedKeywords)
        End Sub
 
        <Fact, WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/546505")>
        Public Sub NoCrashInVariableDeclarationTest()
            VerifyRecommendationsMissing(<MethodBody>Dim x As New TypeInfo(New |)</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact, WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/544278")>
        Public Sub NoneAfterMidStatementTest()
            VerifyRecommendationsMissing(<MethodBody>Mid(s, 1, 1) |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact, WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/544576")>
        Public Sub NoneAfterExternalMethodDeclarationTest()
            VerifyRecommendationsMissing(<ClassDeclaration>Declare Sub S Lib "L" Alias "A" |</ClassDeclaration>, s_expectedKeywords)
        End Sub
 
        <Fact, WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/545988")>
        Public Sub NoneAfterNamedArgumentTest()
            VerifyRecommendationsMissing(<MethodBody>Goo(f:=|</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact, WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/546659")>
        Public Sub NoneInUsingStatementTest()
            VerifyRecommendationsMissing(<MethodBody>Using Goo |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact, WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/531329")>
        Public Sub NoneInForStatementTest()
            VerifyRecommendationsMissing(<MethodBody>For i = 1 |</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact, WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/530953")>
        Public Sub NotAfterEolTest()
            VerifyRecommendationsMissing(
<MethodBody>test = "F" 
|</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact, WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/530953")>
        Public Sub AfterExplicitLineContinuationTest()
            VerifyRecommendationsContain(
<MethodBody>test = "F" _
|</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact>
        Public Sub AfterExplicitLineContinuationTestCommentsAfterLineContinuation()
            VerifyRecommendationsContain(
<MethodBody>test = "F" _ ' Test
|</MethodBody>, s_expectedKeywords)
        End Sub
 
        <Fact, WorkItem("http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/975804")>
        Public Sub NotAfterIncompleteObjectCreationTest()
            VerifyRecommendationsMissing(
<MethodBody>Dim x = new Goo.|
</MethodBody>, s_expectedKeywords)
        End Sub
    End Class
End Namespace