text:
' Copyright (c) Microsoft.  All Rights Reserved.  Licensed under the Apache License, Version 2.0.  See License.txt in the project root for license information.

Imports System.Runtime.InteropServices
Imports System.Threading.Tasks
Imports Microsoft.CodeAnalysis
Imports Microsoft.VisualStudio.LanguageServices.VisualBasic.CodeModel.Extenders
Imports Microsoft.VisualStudio.LanguageServices.VisualBasic.CodeModel.Interop
Imports Roslyn.Test.Utilities

Namespace Microsoft.VisualStudio.LanguageServices.UnitTests.CodeModel.VisualBasic
    Public Class CodeClassTests
        Inherits AbstractCodeClassTests

#Region "Access tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAccess1() As Task
            Dim code =

Class $$C : End Class

            Await TestAccess(code, EnvDTE.vsCMAccess.vsCMAccessPublic)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAccess2() As Task
            Dim code =

Friend Class $$C : End Class

            Await TestAccess(code, EnvDTE.vsCMAccess.vsCMAccessProject)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAccess3() As Task
            Dim code =

Public Class $$C : End Class

            Await TestAccess(code, EnvDTE.vsCMAccess.vsCMAccessPublic)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAccess4() As Task
            Dim code =

Class C
    Class $$D
    End Class
End Class

            Await TestAccess(code, EnvDTE.vsCMAccess.vsCMAccessPublic)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAccess5() As Task
            Dim code =

Class C
    Private Class $$D : End Class
End Class

            Await TestAccess(code, EnvDTE.vsCMAccess.vsCMAccessPrivate)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAccess6() As Task
            Dim code =

Class C
    Protected Class $$D : End Class
End Class

            Await TestAccess(code, EnvDTE.vsCMAccess.vsCMAccessProtected)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAccess7() As Task
            Dim code =

Class C
    Protected Friend Class $$D : End Class
End Class

            Await TestAccess(code, EnvDTE.vsCMAccess.vsCMAccessProjectOrProtected)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAccess8() As Task
            Dim code =

Class C
    Friend Class $$D : End Class
End Class

            Await TestAccess(code, EnvDTE.vsCMAccess.vsCMAccessProject)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAccess9() As Task
            Dim code =

Class C
    Public Class $$D : End Class
End Class

            Await TestAccess(code, EnvDTE.vsCMAccess.vsCMAccessPublic)
        End Function

#End Region

#Region "AddBase tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddBase1() As Task
            Dim code =

Class C$$
End Class

Class B
End Class

            Dim expected =

Class C
    Inherits B
End Class

Class B
End Class

            Await TestAddBase(code, "B", Nothing, expected)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddBase2() As Task
            Dim code =

Class C$$
    Inherits B

End Class

            Await TestAddBaseThrows(Of COMException)(code, "A", Nothing)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddBase3() As Task
            Dim code =

Class $$C

            Dim expected =

Class C
    Inherits B

            Await TestAddBase(code, "B", Nothing, expected)
        End Function

#End Region

#Region "ClassKind tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestClassKind_MainClass() As Task
            Dim code =

Class $$C
End Class

            Await TestClassKind(code, EnvDTE80.vsCMClassKind.vsCMClassKindMainClass)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestClassKind_Module() As Task
            Dim code =

Module $$M
End Module

            Await TestClassKind(code, EnvDTE80.vsCMClassKind.vsCMClassKindModule)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestClassKind_PartialClass1() As Task
            Dim code =

Partial Class $$C
End Class

            Await TestClassKind(code, EnvDTE80.vsCMClassKind.vsCMClassKindPartialClass)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestClassKind_PartialClass2() As Task
            Dim code =

Class $$C
End Class

Partial Class C
End Class

            Await TestClassKind(code, EnvDTE80.vsCMClassKind.vsCMClassKindPartialClass)
        End Function

#End Region

#Region "Comment tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestComment1() As Task
            Dim code =

' Foo
Class $$C
End Class

            Dim result = " Foo"

            Await TestComment(code, result)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestComment2() As Task
            Dim code =

' Foo
' Bar
Class $$C
End Class

            Dim result = " Foo" & vbCrLf &
                         " Bar"

            Await TestComment(code, result)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestComment3() As Task
            Dim code =

' Foo

' Bar
Class $$C
End Class

            Dim result = " Bar"

            Await TestComment(code, result)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestComment4() As Task
            Dim code =

Class B
End Class ' Foo

' Bar
Class $$C
End Class

            Dim result = " Bar"

            Await TestComment(code, result)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestComment5() As Task
            Dim code =

' Foo
''' <summary>Bar</summary>
Class $$C
End Class

            Dim result = ""

            Await TestComment(code, result)
        End Function

#End Region

#Region "DocComment tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestDocComment1() As Task
            Dim code =

''' <summary>
''' Foo
''' </summary>
''' <remarks></remarks>
Class $$C
End Class

            Dim result =
" " & vbCrLf &
" Foo" & vbCrLf &
" " & vbCrLf &
" <remarks></remarks>"

            Await TestDocComment(code, result)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestDocComment2() As Task
            Dim code =

'''     <summary>
''' Hello World
''' </summary>
Class $$C
End Class

            Dim result =
"     " & vbCrLf &
" Hello World" & vbCrLf &
" "

            Await TestDocComment(code, result)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestDocComment3() As Task
            Dim code =

''' <summary>
''' Foo
''' </summary>
' Bar
''' <remarks></remarks>
Class $$C
End Class

            Dim result =
" <remarks></remarks>"

            Await TestDocComment(code, result)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestDocComment4() As Task
            Dim code =

Namespace N
    ''' <summary>
    ''' Foo
    ''' </summary>
    ''' <remarks></remarks>
    Class $$C
    End Class
End Namespace

            Dim result =
" " & vbCrLf &
" Foo" & vbCrLf &
" " & vbCrLf &
" <remarks></remarks>"

            Await TestDocComment(code, result)
        End Function

#End Region

#Region "InheritanceKind tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestInheritanceKind_None() As Task
            Dim code =

Class $$C
End Class

            Await TestInheritanceKind(code, EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindNone)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestInheritanceKind_Abstract() As Task
            Dim code =

MustInherit Class $$C
End Class

            Await TestInheritanceKind(code, EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindAbstract)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestInheritanceKind_Sealed() As Task
            Dim code =

NotInheritable Class $$C
End Class

            Await TestInheritanceKind(code, EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindSealed)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestInheritanceKind_New() As Task
            Dim code =

Class Outer
    Protected Class Inner
    End Class
End Class

Class Derived
    Protected Shadows Class $$Inner
    End Class
End Class

            Await TestInheritanceKind(code, EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindNew)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestInheritanceKind_AbstractAndNew() As Task
            Dim code =

Public Class Outer
    Protected Class Inner

    End Class
End Class

Public Class Derived
    Inherits Outer

    Protected MustInherit Shadows Class $$Inner

    End Class
End Class

            Await TestInheritanceKind(code, EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindAbstract Or EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindNew)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestInheritanceKind_AbstractAndNew_Partial1() As Task
            Dim code =

Public Class Outer
    Protected Class Inner

    End Class
End Class

Partial Public Class Derived
    Inherits Outer

    Partial Protected MustInherit Class $$Inner

    End Class
End Class

Partial Public Class Derived

    Protected Shadows Class Inner

    End Class
End Class

            Await TestInheritanceKind(code, EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindAbstract Or EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindNew)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestInheritanceKind_AbstractAndNew_Partial2() As Task
            Dim code =

Public Class Outer
    Protected Class Inner

    End Class
End Class

Partial Public Class Derived
    Inherits Outer

    Partial Protected MustInherit Class Inner

    End Class
End Class

Partial Public Class Derived

    Protected Shadows Class $$Inner

    End Class
End Class

            Await TestInheritanceKind(code, EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindAbstract Or EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindNew)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestInheritanceKind_AbstractAndNew_Partial3() As Task
            Dim code =

Public Class Outer
    Protected Class Inner

    End Class
End Class

Partial Public Class Derived
    Inherits Outer

    Protected MustInherit Class $$Inner

    End Class
End Class

Partial Public Class Derived

    Partial Protected Shadows Class Inner

    End Class
End Class

            Await TestInheritanceKind(code, EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindAbstract Or EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindNew)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestInheritanceKind_AbstractAndNew_Partial4() As Task
            Dim code =

Public Class Outer
    Protected Class Inner

    End Class
End Class

Partial Public Class Derived
    Inherits Outer

    Protected MustInherit Class Inner

    End Class
End Class

Partial Public Class Derived

    Partial Protected Shadows Class $$Inner

    End Class
End Class

            Await TestInheritanceKind(code, EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindAbstract Or EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindNew)
        End Function

#End Region

#Region "IsAbstract tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestIsAbstract1() As Task
            Dim code =

Class $$C
End Class

            Await TestIsAbstract(code, False)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestIsAbstract2() As Task
            Dim code =

MustInherit Class $$C
End Class

            Await TestIsAbstract(code, True)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestIsAbstract3() As Task
            Dim code =

Partial MustInherit Class $$C
End Class

Partial Class C
End Class

            Await TestIsAbstract(code, True)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestIsAbstract4() As Task
            Dim code =

Partial Class $$C
End Class

Partial MustInherit Class C
End Class

            Await TestIsAbstract(code, True)
        End Function

#End Region

#Region "IsShared tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestIsShared1() As Task
            Dim code =

Class $$C
End Class

            Await TestIsShared(code, False)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestIsShared2() As Task
            Dim code =

Module $$M
End Module

            Await TestIsShared(code, True)
        End Function

#End Region

#Region "Kind tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestKind1() As Task
            Dim code =

Class $$C
End Class

            Await TestKind(code, EnvDTE.vsCMElement.vsCMElementClass)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestKind2() As Task
            Dim code =

Module $$M
End Module

            Await TestKind(code, EnvDTE.vsCMElement.vsCMElementModule)
        End Function

#End Region

#Region "Parts tests"
        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestParts1() As Task
            Dim code =

Class $$C
End Class

            Await TestParts(code, 1)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestParts2() As Task
            Dim code =

Partial Class $$C
End Class

            Await TestParts(code, 1)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestParts3() As Task
            Dim code =

Partial Class $$C
End Class

Partial Class C
End Class

            Await TestParts(code, 2)
        End Function
#End Region

#Region "AddFunction tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddFunction1() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

Class C
    Sub Foo()

    End Sub
End Class

            Await TestAddFunction(code, expected, New FunctionData With {.Name = "Foo", .Kind = EnvDTE.vsCMFunction.vsCMFunctionSub})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddFunction2() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

Class C
    Private Function Foo() As Integer

    End Function
End Class

            Await TestAddFunction(code, expected, New FunctionData With {.Name = "Foo", .Access = EnvDTE.vsCMAccess.vsCMAccessPrivate, .Type = "Integer"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddFunction_ConstructorFailure() As Task
            ' Note: Adding a constructor by specifying vsCMFunctionConstructor is not supported by VB code model.

            Dim code =

Module $$M
End Module

            Dim expected =

Module M
    Sub New()
    End Sub
End Module

            Await Assert.ThrowsAsync(Of ArgumentException)(
                Async Function()
                    Await TestAddFunction(code, expected, New FunctionData With {.Kind = EnvDTE.vsCMFunction.vsCMFunctionConstructor})
                End Function)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddFunction_Constructor1() As Task
            Dim code =

Module $$M
End Module

            Dim expected =

Module M
    Sub New()

    End Sub
End Module

            Await TestAddFunction(code, expected, New FunctionData With {.Name = "New", .Kind = EnvDTE.vsCMFunction.vsCMFunctionSub})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddFunction_Constructor2() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

Class C
    Sub New()

    End Sub
End Class

            Await TestAddFunction(code, expected, New FunctionData With {.Name = "New", .Kind = EnvDTE.vsCMFunction.vsCMFunctionSub})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddFunction_Destructor() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

Class C
End Class

            Await Assert.ThrowsAsync(Of ArgumentException)(
                Async Function()
                    Await TestAddFunction(code, expected, New FunctionData With {.Name = "C", .Kind = EnvDTE.vsCMFunction.vsCMFunctionDestructor})
                End Function)
        End Function

        <WorkItem(1172038, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/1172038")>
        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddFunction_AfterIncompleteMember() As Task
            Dim code =

Class $$C
    Private Sub M1()
    End Sub

    Private Sub
End Class

            Dim expected =

Class C
    Private Sub M1()
    End Sub

    Private Sub
Private Sub M2()

    End Sub
End Class

            Await TestAddFunction(code, expected, New FunctionData With {.Name = "M2", .Type = "void", .Position = -1, .Access = EnvDTE.vsCMAccess.vsCMAccessPrivate})
        End Function

#End Region

#Region "AddProperty tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddProperty1() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

Class C
    Private Property Name As String
        Get
            Return Nothing
        End Get
        Set(value As String)
        End Set
    End Property
End Class

            Await TestAddProperty(code, expected, New PropertyData With {.GetterName = "Name", .PutterName = "Name", .Type = EnvDTE.vsCMTypeRef.vsCMTypeRefString})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddProperty2() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

Class C
    Private ReadOnly Property Name As String
        Get
            Return Nothing
        End Get
    End Property
End Class

            Await TestAddProperty(code, expected, New PropertyData With {.GetterName = "Name", .PutterName = Nothing, .Type = EnvDTE.vsCMTypeRef.vsCMTypeRefString})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddProperty3() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

Class C
    Private WriteOnly Property Name As String
        Set(value As String)
        End Set
    End Property
End Class

            Await TestAddProperty(code, expected, New PropertyData With {.GetterName = Nothing, .PutterName = "Name", .Type = EnvDTE.vsCMTypeRef.vsCMTypeRefString})
        End Function

#End Region

#Region "AddImplementedInterface tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddImplementedInterface1() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

Class C
    Implements I
End Class

            Await TestAddImplementedInterface(code, "I", Nothing, expected)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddImplementedInterface2() As Task
            Dim code =

Class $$C
    Implements I
End Class

            Dim expected =

Class C
    Implements J
    Implements I
End Class

            Await TestAddImplementedInterface(code, "J", Nothing, expected)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddImplementedInterface3() As Task
            Dim code =

Class $$C
    Implements I
End Class

            Dim expected =

Class C
    Implements I
    Implements J
End Class

            Await TestAddImplementedInterface(code, "J", -1, expected)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddImplementedInterface4() As Task
            Dim code =

Class $$C
End Class

            Await TestAddImplementedInterfaceThrows(Of ArgumentException)(code, "I", 1)
        End Function

#End Region

#Region "AddVariable tests"

        ' NOTE: Several of these tests have non-ideal expected results, but they are there
        ' to ensure that we are backward compatible with the existing behavior.

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable1() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

Class C
    Dim i As Integer
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable2() As Task
            Dim code =

Class $$C : End Class

            Dim expected =

Class C :
    Dim i As Integer
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable3() As Task
            Dim code =

Class $$C

            Dim expected =

Class C
    Dim i As Integer

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable4() As Task
            Dim code =

Class $$C

End Class

            Dim expected =

Class C
    Dim i As Integer
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable5() As Task
            Dim code =

Class $$C
    Inherits B
End Class

            Dim expected =

Class C
    Inherits B

    Dim i As Integer
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable6() As Task
            Dim code =

Class $$C
    Inherits B

End Class

            Dim expected =

Class C
    Inherits B

    Dim i As Integer
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable7() As Task
            Dim code =

Class $$C
    Sub Foo()
    End Sub
End Class

            Dim expected =

Class C
    Sub Foo()
    End Sub

    Dim i As Integer
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32", .Position = "Foo"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable8() As Task
            Dim code =

Class $$C
    Sub Foo()
    End Sub

            Dim expected =

Class C
    Sub Foo()
    End Sub

    Dim i As Integer

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32", .Position = "Foo"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable9() As Task
            Dim code =

Class $$C
    Dim x As Integer
    Sub Foo()
    End Sub
End Class

            Dim expected =

Class C
    Dim x As Integer
    Dim i As Integer

    Sub Foo()
    End Sub
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32", .Position = "x"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable10() As Task
            Dim code =

Class $$C
    Dim x As Integer
    ' Foo
    Sub Foo()
    End Sub
End Class

            Dim expected =

Class C
    Dim x As Integer
    Dim i As Integer
    ' Foo
    Sub Foo()
    End Sub
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32", .Position = "x"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable11() As Task
            Dim code =

Class $$C
    Dim x As Integer

    Sub Foo()
    End Sub
End Class

            Dim expected =

Class C
    Dim x As Integer
    Dim i As Integer

    Sub Foo()
    End Sub
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32", .Position = "x"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable12() As Task
            Dim code =

Class $$C
    Dim x, y As New Object

    Sub Foo()
    End Sub
End Class

            Dim expected =

Class C
    Dim x, y As New Object
    Dim i As Integer

    Sub Foo()
    End Sub
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32", .Position = "x"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable13() As Task
            Dim code =

Class $$C
    Dim x, y As New Object

    Sub Foo()
    End Sub
End Class

            Dim expected =

Class C
    Dim x, y As New Object
    Dim i As Integer

    Sub Foo()
    End Sub
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32", .Position = "y"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable14() As Task
            Dim code =

Class $$C
    Sub Foo()
    End Sub
End Class

            Dim expected =

Class C
    Dim i As Integer

    Sub Foo()
    End Sub
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32", .Position = 0})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable15() As Task
            Dim code =

Class $$C
    Sub Foo()
    End Sub
End Class

            Dim expected =

Class C
    Sub Foo()
    End Sub

    Dim i As Integer
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32", .Position = -1})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable16() As Task
            Dim code =

Class $$C
    Dim x As Integer
    Dim y As Integer
End Class

            Dim expected =

Class C
    Dim x As Integer
    Dim i As Integer
    Dim y As Integer
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32", .Position = "x"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable17() As Task
            Dim code =

Class $$C
    Dim x, y As New Object
    Dim z As Integer
End Class

            Dim expected =

Class C
    Dim x, y As New Object
    Dim i As Integer
    Dim z As Integer
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32", .Position = "x"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable18() As Task
            Dim code =

Class $$C
    Dim x, y As New Object
    Dim z As Integer
End Class

            Dim expected =

Class C
    Dim x, y As New Object
    Dim i As Integer
    Dim z As Integer
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32", .Position = "y"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable19() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

Class C
    Public i As Integer
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32", .Access = EnvDTE.vsCMAccess.vsCMAccessPublic})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable20() As Task
            Dim code =

Class $$C

End Class

            Dim expected =

Class C
    Private i As Integer
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32", .Access = EnvDTE.vsCMAccess.vsCMAccessPrivate})
        End Function

        <WorkItem(546556, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/546556")>
        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable21() As Task
            Dim code =

Class $$C

End Class

            Dim expected =

Class C
    Friend i As Integer
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32", .Access = EnvDTE.vsCMAccess.vsCMAccessProject})
        End Function

        <WorkItem(546556, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/546556")>
        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable22() As Task
            Dim code =

Class $$C

End Class

            Dim expected =

Class C
    Protected Friend i As Integer
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32", .Access = EnvDTE.vsCMAccess.vsCMAccessProjectOrProtected})
        End Function

        <WorkItem(546556, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/546556")>
        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariable23() As Task
            Dim code =

Class $$C

End Class

            Dim expected =

Class C
    Protected i As Integer
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "i", .Type = "System.Int32", .Access = EnvDTE.vsCMAccess.vsCMAccessProtected})
        End Function

        <WorkItem(529865, "http://vstfdevdiv:8080/DevDiv2/DevDiv/_workitems/edit/529865")>
        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddVariableAfterComment() As Task
            Dim code =

Class $$C
    Dim i As Integer = 0 ' Foo
End Class

            Dim expected =

Class C
    Dim i As Integer = 0 ' Foo
    Dim j As Integer
End Class

            Await TestAddVariable(code, expected, New VariableData With {.Name = "j", .Type = EnvDTE.vsCMTypeRef.vsCMTypeRefInt, .Position = "i"})
        End Function

#End Region

#Region "AddAttribute tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddAttribute1() As Task
            Dim code =

Imports System

Class $$C
End Class

            Dim expected =

Imports System

<Serializable()>
Class C
End Class

            Await TestAddAttribute(code, expected, New AttributeData With {.Name = "Serializable"})
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddAttribute2() As Task
            Dim code =

Imports System

<Serializable>
Class $$C
End Class

            Dim expected =

Imports System

<Serializable>
<CLSCompliant(True)>
Class C
End Class

            Await TestAddAttribute(code, expected, New AttributeData With {.Name = "CLSCompliant", .Value = "True", .Position = 1})
        End Function

        <WorkItem(2825, "https://github.com/dotnet/roslyn/issues/2825")>
        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddAttribute_BelowDocComment1() As Task
            Dim code =

Imports System

''' <summary></summary>
Class $$C
End Class

            Dim expected =

Imports System

''' <summary></summary>
<CLSCompliant(True)>
Class C
End Class

            Await TestAddAttribute(code, expected, New AttributeData With {.Name = "CLSCompliant", .Value = "True"})
        End Function

        <WorkItem(2825, "https://github.com/dotnet/roslyn/issues/2825")>
        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddAttribute_BelowDocComment2() As Task
            Dim code =

Imports System

''' <summary></summary>
<Serializable>
Class $$C
End Class

            Dim expected =

Imports System

''' <summary></summary>
<CLSCompliant(True)>
<Serializable>
Class C
End Class

            Await TestAddAttribute(code, expected, New AttributeData With {.Name = "CLSCompliant", .Value = "True"})
        End Function

        <WorkItem(2825, "https://github.com/dotnet/roslyn/issues/2825")>
        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddAttribute_BelowDocComment3() As Task
            Dim code =

Imports System

''' <summary></summary>
<Serializable>
Class $$C
End Class

            Dim expected =

Imports System

''' <summary></summary>
<Serializable>
<CLSCompliant(True)>
Class C
End Class

            Await TestAddAttribute(code, expected, New AttributeData With {.Name = "CLSCompliant", .Value = "True", .Position = 1})
        End Function

#End Region

#Region "RemoveBase tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveBase1() As Task
            Dim code =

Class $$C
    Inherits B
End Class

            Dim expected =

Class C
End Class

            Await TestRemoveBase(code, "B", expected)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveBase2() As Task
            Dim code =

Class $$C
End Class

            Await TestRemoveBaseThrows(Of COMException)(code, "B")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveBase3() As Task
            Dim code =

Class $$C
    Inherits A, B
End Class

            Dim expected =

Class C
    Inherits A
End Class

            Await TestRemoveBase(code, "B", expected)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveBase4() As Task
            Dim code =

Class $$C
    Inherits A, B
End Class

            Dim expected =

Class C
    Inherits B
End Class

            Await TestRemoveBase(code, "A", expected)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveBase5() As Task
            Dim code =

Class $$C
    Inherits A, B, D
End Class

            Dim expected =

Class C
    Inherits A, D
End Class

            Await TestRemoveBase(code, "B", expected)
        End Function

#End Region

#Region "RemoveImplementedInterface tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveImplementedInterface1() As Task
            Dim code =

Class $$C
    Implements I
End Class

            Dim expected =

Class C
End Class

            Await TestRemoveImplementedInterface(code, "I", expected)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveImplementedInterface2() As Task
            Dim code =

Class $$C
End Class

            Await TestRemoveImplementedInterfaceThrows(Of COMException)(code, "I")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveImplementedInterface3() As Task
            Dim code =

Class $$C
    Implements I, J
End Class

            Dim expected =

Class C
    Implements I
End Class

            Await TestRemoveImplementedInterface(code, "J", expected)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveImplementedInterface4() As Task
            Dim code =

Class $$C
    Implements I, J
End Class

            Dim expected =

Class C
    Implements J
End Class

            Await TestRemoveImplementedInterface(code, "I", expected)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveImplementedInterface5() As Task
            Dim code =

Class $$C
    Implements I, J, K
End Class

            Dim expected =

Class C
    Implements I, K
End Class

            Await TestRemoveImplementedInterface(code, "J", expected)
        End Function

#End Region

#Region "RemoveMember tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveMember1() As Task
            Dim code =

Class $$C
    Sub Foo()
    End Sub
End Class

            Dim expected =

Class C
End Class

            Await TestRemoveChild(code, expected, "Foo")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveMember2() As Task
            Dim code =
<![CDATA[
Class $$C
    '''
    ''' Doc comment.
    '''
    Sub Foo()
    End Sub
End Class
]]>

            Dim expected =

Class C
End Class

            Await TestRemoveChild(code, expected, "Foo")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveMember3() As Task
            Dim code =
<![CDATA[
Class $$C
    ' Comment comment comment
    Sub Foo()
    End Sub
End Class
]]>

            Dim expected =

Class C
End Class

            Await TestRemoveChild(code, expected, "Foo")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveMember4() As Task
            Dim code =
<![CDATA[
Class $$C
    ' Comment comment comment

    Sub Foo()
    End Sub
End Class
]]>

            Dim expected =

Class C
    ' Comment comment comment
End Class

            Await TestRemoveChild(code, expected, "Foo")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveMember5() As Task
            Dim code =
<![CDATA[
Class $$C
#Region "A region"
    Dim a As Integer
#End Region
    '''
    ''' Doc comment.
    '''
    Sub Foo()
    End Sub
End Class
]]>

            Dim expected =

Class C
#Region "A region"
    Dim a As Integer
#End Region
End Class

            Await TestRemoveChild(code, expected, "Foo")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveMember6() As Task
            Dim code =
<![CDATA[
Class $$C
    ' This comment remains.

    ' This comment is deleted.
    '''
    ''' This comment is deleted.
    '''
    Sub Foo()
    End Sub
End Class
]]>

            Dim expected =

Class C
    ' This comment remains.
End Class

            Await TestRemoveChild(code, expected, "Foo")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveMember7() As Task
            Dim code =

Class $$C
    Dim x As Integer
    Dim y As Integer
    Dim z As Integer
End Class

            Dim expected =

Class C
    Dim x As Integer
    Dim z As Integer
End Class

            Await TestRemoveChild(code, expected, "y")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveMember8() As Task
            Dim code =

Class $$C
    Sub Alpha()
    End Sub

    Sub Foo()
    End Sub

    Sub Beta()
    End Sub
End Class

            Dim expected =

Class C
    Sub Alpha()
    End Sub

    Sub Beta()
    End Sub
End Class

            Await TestRemoveChild(code, expected, "Foo")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveMember9() As Task
            Dim code =

Class $$C
    Dim x, y As Integer
End Class

            Dim expected =

Class C
    Dim x As Integer
End Class

            Await TestRemoveChild(code, expected, "y")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveMember10() As Task
            Dim code =

Class $$C
    Dim x, y As Integer
End Class

            Dim expected =

Class C
    Dim y As Integer
End Class

            Await TestRemoveChild(code, expected, "x")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveMember11() As Task
            Dim code =

Class $$C
    Dim x As String, y As Integer
End Class

            Dim expected =

Class C
    Dim y As Integer
End Class

            Await TestRemoveChild(code, expected, "x")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestRemoveMember12() As Task
            Dim code =

Class $$C
    Dim x As String, y As Integer
End Class

            Dim expected =

Class C
    Dim x As String
End Class

            Await TestRemoveChild(code, expected, "y")
        End Function

#End Region

#Region "Set Access tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetAccess1() As Task
            Dim code =

Class $$C : End Class

            Dim expected =

Public Class C : End Class

            Await TestSetAccess(code, expected, EnvDTE.vsCMAccess.vsCMAccessPublic)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetAccess2() As Task
            Dim code =

Public Class $$C : End Class

            Dim expected =

Friend Class C : End Class

            Await TestSetAccess(code, expected, EnvDTE.vsCMAccess.vsCMAccessProject)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetAccess3() As Task
            Dim code =

Protected Friend Class $$C : End Class

            Dim expected =

Public Class C : End Class

            Await TestSetAccess(code, expected, EnvDTE.vsCMAccess.vsCMAccessPublic)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetAccess4() As Task
            Dim code =

Public Class $$C : End Class

            Dim expected =

Public Class C : End Class

            Await TestSetAccess(code, expected, EnvDTE.vsCMAccess.vsCMAccessProjectOrProtected, ThrowsArgumentException(Of EnvDTE.vsCMAccess)())
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetAccess5() As Task
            Dim code =

Public Class $$C : End Class

            Dim expected =

Class C : End Class

            Await TestSetAccess(code, expected, EnvDTE.vsCMAccess.vsCMAccessDefault)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetAccess6() As Task
            Dim code =

Public Class $$C : End Class

            Dim expected =

Public Class C : End Class

            Await TestSetAccess(code, expected, EnvDTE.vsCMAccess.vsCMAccessPrivate, ThrowsArgumentException(Of EnvDTE.vsCMAccess)())
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetAccess7() As Task
            Dim code =

Class C
    Class $$D : End Class
End Class

            Dim expected =

Class C
    Private Class D : End Class
End Class

            Await TestSetAccess(code, expected, EnvDTE.vsCMAccess.vsCMAccessPrivate)
        End Function

#End Region

#Region "Set ClassKind tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetClassKind1() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

Class C
End Class

            Await TestSetClassKind(code, expected, EnvDTE80.vsCMClassKind.vsCMClassKindMainClass)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetClassKind2() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

Partial Class C
End Class

            Await TestSetClassKind(code, expected, EnvDTE80.vsCMClassKind.vsCMClassKindPartialClass)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetClassKind3() As Task
            Dim code =

Partial Class $$C
End Class

            Dim expected =

Class C
End Class

            Await TestSetClassKind(code, expected, EnvDTE80.vsCMClassKind.vsCMClassKindMainClass)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetClassKind4() As Task
            Dim code =

Module $$M
End Module

            Dim expected =

Module M
End Module

            Await TestSetClassKind(code, expected, EnvDTE80.vsCMClassKind.vsCMClassKindMainClass, ThrowsNotImplementedException(Of EnvDTE80.vsCMClassKind))
        End Function

#End Region

#Region "Set DataTypeKind tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetDataTypeKind1() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

Class C
End Class

            Await TestSetDataTypeKind(code, expected, EnvDTE80.vsCMDataTypeKind.vsCMDataTypeKindMain)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetDataTypeKind2() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

Partial Class C
End Class

            Await TestSetDataTypeKind(code, expected, EnvDTE80.vsCMDataTypeKind.vsCMDataTypeKindPartial)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetDataTypeKind3() As Task
            Dim code =

Partial Class $$C
End Class

            Dim expected =

Class C
End Class

            Await TestSetDataTypeKind(code, expected, EnvDTE80.vsCMDataTypeKind.vsCMDataTypeKindMain)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetDataTypeKind4() As Task
            Dim code =

Module $$M

    Sub Foo()
    End Sub

End Module

            Dim expected =

Class M

    Sub Foo()
    End Sub

End Class

            Await TestSetDataTypeKind(code, expected, EnvDTE80.vsCMDataTypeKind.vsCMDataTypeKindMain)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetDataTypeKind5() As Task
            Dim code =

Partial Class $$C

    Sub Foo()
    End Sub

End Class

            Dim expected =

Module C

    Sub Foo()
    End Sub

End Module

            Await TestSetDataTypeKind(code, expected, EnvDTE80.vsCMDataTypeKind.vsCMDataTypeKindModule)
        End Function

#End Region

#Region "Set Comment tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetComment1() As Task
            Dim code =

' Foo

' Bar
Class $$C
End Class

            Dim expected =

' Foo

Class C
End Class

            Await TestSetComment(code, expected, Nothing)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetComment2() As Task
            Dim code =

' Foo
''' <summary>Bar</summary>
Class $$C
End Class

            Dim expected =

' Foo
''' <summary>Bar</summary>
' Bar
Class C
End Class

            Await TestSetComment(code, expected, "Bar")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetComment3() As Task
            Dim code =

' Foo

' Bar
Class $$C
End Class

            Dim expected =

' Foo

' Blah
Class C
End Class

            Await TestSetComment(code, expected, "Blah")
        End Function

#End Region

#Region "Set DocComment tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetDocComment_Nothing1() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

Class C
End Class

            Await TestSetDocComment(code, expected, Nothing)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetDocComment_Nothing2() As Task
            Dim code =

''' <summary>
''' Foo
''' </summary>
Class $$C
End Class

            Dim expected =

Class C
End Class

            Await TestSetDocComment(code, expected, Nothing)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetDocComment_InvalidXml1() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

''' <doc><summary>Blah</doc>
Class C
End Class

            Await TestSetDocComment(code, expected, "<doc>Blah</doc>")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetDocComment_InvalidXml2() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

''' <doc___><summary>Blah</summary></doc___>
Class C
End Class

            Await TestSetDocComment(code, expected, "<doc___>Blah</doc___>")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetDocComment1() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

''' <summary>Hello World</summary>
Class C
End Class

            Await TestSetDocComment(code, expected, "Hello World")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetDocComment2() As Task
            Dim code =

''' <summary>Hello World</summary>
Class $$C
End Class

            Dim expected =

''' <summary>Blah</summary>
Class C
End Class

            Await TestSetDocComment(code, expected, "Blah")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetDocComment3() As Task
            Dim code =

' Foo
Class $$C
End Class

            Dim expected =

' Foo
''' <summary>Blah</summary>
Class C
End Class

            Await TestSetDocComment(code, expected, "Blah")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetDocComment4() As Task
            Dim code =

''' <summary>FogBar</summary>
' Foo
Class $$C
End Class

            Dim expected =

''' <summary>Blah</summary>
' Foo
Class C
End Class

            Await TestSetDocComment(code, expected, "Blah")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetDocComment5() As Task
            Dim code =

Namespace N
    Class $$C
    End Class
End Namespace

            Dim expected =

Namespace N
    ''' <summary>Hello World</summary>
    Class C
    End Class
End Namespace

            Await TestSetDocComment(code, expected, "Hello World")
        End Function

#End Region

#Region "Set InheritanceKind tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetInheritanceKind1() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

MustInherit Class C
End Class

            Await TestSetInheritanceKind(code, expected, EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindAbstract)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetInheritanceKind2() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

NotInheritable Class C
End Class

            Await TestSetInheritanceKind(code, expected, EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindSealed)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetInheritanceKind3() As Task
            Dim code =

Class C
    Class $$D
    End Class
End Class

            Dim expected =

Class C
    MustInherit Class D
    End Class
End Class

            Await TestSetInheritanceKind(code, expected, EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindAbstract)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetInheritanceKind4() As Task
            Dim code =

Class C
    Class $$D
    End Class
End Class

            Dim expected =

Class C
    NotInheritable Shadows Class D
    End Class
End Class

            Await TestSetInheritanceKind(code, expected, EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindSealed Or EnvDTE80.vsCMInheritanceKind.vsCMInheritanceKindNew)
        End Function

#End Region

#Region "Set IsAbstract tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetIsAbstract1() As Task
            Dim code =

Class $$C : End Class

            Dim expected =

MustInherit Class C : End Class

            Await TestSetIsAbstract(code, expected, True)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetIsAbstract2() As Task
            Dim code =

MustInherit $$Class C : End Class

            Dim expected =

Class C : End Class

            Await TestSetIsAbstract(code, expected, False)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetIsAbstract3() As Task
            Dim code =

Class $$C
End Class

            Dim expected =

MustInherit Class C
End Class

            Await TestSetIsAbstract(code, expected, True)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetIsAbstract4() As Task
            Dim code =

MustInherit Class $$C
End Class

            Dim expected =

Class C
End Class

            Await TestSetIsAbstract(code, expected, False)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetIsAbstract5() As Task
            ' Note: This is a behavior change from Dev11 where VB code model will blow
            ' out the Shadows modifier when setting IsAbstract.

            Dim code =

Class C
    Shadows Class $$D
    End Class
End Class

            Dim expected =

Class C
    MustInherit Shadows Class D
    End Class
End Class

            Await TestSetIsAbstract(code, expected, True)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetIsAbstract6() As Task
            ' Note: This is a behavior change from Dev11 where VB code model will blow
            ' out the Shadows modifier when setting IsAbstract.

            Dim code =

Class C
    MustInherit Shadows Class $$D
    End Class
End Class

            Dim expected =

Class C
    Shadows Class D
    End Class
End Class

            Await TestSetIsAbstract(code, expected, False)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetIsAbstract7() As Task
            Dim code =

NotInheritable Class $$C
End Class

            Dim expected =

MustInherit Class C
End Class

            Await TestSetIsAbstract(code, expected, True)
        End Function

#End Region

#Region "Set IsShared tests"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetIsShared1() As Task
            Dim code =

Class $$C : End Class

            Dim expected =

Class C : End Class

            Await TestSetIsShared(code, expected, True, ThrowsNotImplementedException(Of Boolean))
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetIsShared2() As Task
            Dim code =

Module $$M : End Module

            Dim expected =

Module M : End Module

            Await TestSetIsShared(code, expected, True, ThrowsNotImplementedException(Of Boolean))
        End Function

#End Region

#Region "Set Name tests"
        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestSetName1() As Task
            Dim code =

Class $$Foo
End Class

            Dim expected =

Class Bar
End Class

            Await TestSetName(code, expected, "Bar", NoThrow(Of String)())
        End Function
#End Region

#Region "NameSpace Tests"
        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestGetNamespaceNameFromInnerClass() As Task
            Dim code =

Namespace NS1
    Class C1
        Class $$C2
        End Class
    End Class
End NameSpace

            Await TestNamespaceName(code, "NS1")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestGetNamespaceNameFromOuterClass() As Task
            Dim code =

Namespace NS1
    Class $$C1
        Class C2
        End Class
    End Class
End NameSpace

            Await TestNamespaceName(code, "NS1")
        End Function
#End Region

#Region "GenericExtender"

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestGenericExtender_GetBaseTypesCount_Class1() As Task
            Dim code =

Class C$$
End Class

            Await TestGenericNameExtender_GetBaseTypesCount(code, 1)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestGenericExtender_GetBaseTypesCount_Class2() As Task
            Dim code =

Class C$$
    Inherits B
End Class

Class B
End Class

            Await TestGenericNameExtender_GetBaseTypesCount(code, 1)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestGenericExtender_GetBaseGenericName_Class1() As Task
            Dim code =

Class C$$
End Class

            Await TestGenericNameExtender_GetBaseGenericName(code, 1, "Object")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestGenericExtender_GetBaseGenericName_Class2() As Task
            Dim code =

Class C$$
    Inherits B
End Class

Class B
End Class

            Await TestGenericNameExtender_GetBaseGenericName(code, 1, "B")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestGenericExtender_GetImplementedTypesCount_Class1() As Task
            Dim code =

Class C$$
End Class

            Await TestGenericNameExtender_GetImplementedTypesCount(code, 0)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestGenericExtender_GetImplementedTypesCount_Class2() As Task
            Dim code =

Class C$$
    Implements IFoo(Of String)
End Class

Interface IFoo(Of T)
End Interface

            Await TestGenericNameExtender_GetImplementedTypesCount(code, 1)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestGenericExtender_GetImplTypeGenericName_Class1() As Task
            Dim code =

Class C$$
End Class

            Await TestGenericNameExtender_GetImplTypeGenericName(code, 1, Nothing)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestGenericExtender_GetImplTypeGenericName_Class2() As Task
            Dim code =

Class C$$
    Implements IFoo(Of System.String)
End Class

Interface IFoo(Of T)
End Interface

            Await TestGenericNameExtender_GetImplTypeGenericName(code, 1, "IFoo(Of String)")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestGenericExtender_GetBaseTypesCount_Module() As Task
            Dim code =

Module M$$
End Module

            Await TestGenericNameExtender_GetBaseTypesCount(code, 1)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestGenericExtender_GetBaseGenericName_Module() As Task
            Dim code =

Module M$$
End Module

            Await TestGenericNameExtender_GetBaseGenericName(code, 1, "Object")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestGenericExtender_GetImplementedTypesCount_Module() As Task
            Dim code =

Module M$$
End Module

            Await TestGenericNameExtender_GetImplementedTypesCountThrows(Of ArgumentException)(code)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestGenericExtender_GetImplTypeGenericName_Module() As Task
            Dim code =

Module M$$
End Module

            Await TestGenericNameExtender_GetImplTypeGenericNameThrows(Of ArgumentException)(code, 1)
        End Function

#End Region

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestGetBaseName1() As Task
            Dim code =

Imports N.M

Namespace N
    Namespace M
        Class Generic(Of T)
        End Class
    End Namespace
End Namespace

Class $$C
    Inherits Generic(Of String)
End Class

            Await TestGetBaseName(code, "N.M.Generic(Of String)")
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestAddDeleteManyTimes() As Task
            Dim code =

Class C$$
End Class

            Await TestElement(code,
                Sub(codeClass)
                    For i = 1 To 100
                        Dim variable = codeClass.AddVariable("x", "System.Int32")
                        codeClass.RemoveMember(variable)
                    Next
                End Sub)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestExternalClass_ImplementedInterfaces() As Task
            Dim code =

Class $$Foo
    Inherits System.Collections.Generic.List(Of Integer)
End Class

            Await TestElement(code,
                Sub(codeClass)
                    Dim listType = TryCast(codeClass.Bases.Item(1), EnvDTE80.CodeClass2)
                    Assert.NotNull(listType)

                    Assert.Equal(8, listType.ImplementedInterfaces.Count)
                End Sub)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestClassMembersForWithEventsField() As Task
            Dim code =

Class C
    Event E(x As Integer)
End Class

Class D$$
    Inherits C

    Private WithEvents x As C

    Private Sub D_E(x As Integer) Handles Me.E
    End Sub
End Class

            Await TestElement(code,
                Sub(codeElement)
                    Dim members = codeElement.Members
                    Assert.Equal(2, members.Count)

                    Dim member1 = members.Item(1)
                    Assert.Equal("x", member1.Name)
                    Assert.Equal(EnvDTE.vsCMElement.vsCMElementVariable, member1.Kind)

                    Dim member2 = members.Item(2)
                    Assert.Equal("D_E", member2.Name)
                    Assert.Equal(EnvDTE.vsCMElement.vsCMElementFunction, member2.Kind)
                End Sub)
        End Function

        <ConditionalWpfFact(GetType(x86)), Trait(Traits.Feature, Traits.Features.CodeModel)>
        Public Async Function TestClassIncludedDeclareMethods() As Task
            Dim code =

Public Class $$C1
   Private Sub MethodA()
   End Sub
   Private Declare Sub MethodB Lib "MyDll.dll" ()
   Private Declare Function MethodC Lib "MyDll.dll" () As Integer
   Private Sub MethodD()
   End Sub
End Class

            Await TestElement(code,
                Sub(codeClass)
                    Dim members = codeClass.Members
                    Assert.Equal(4, members.Count)

                    Dim member1 = TryCast(members.Item(1), EnvDTE.CodeFunction)
                    Assert.NotNull(member1)
                    Assert.Equal("MethodA", member1.Name)

                    Dim member2 = TryCast(members.Item(2), EnvDTE.CodeFunction)
                    Assert.NotNull(member2)
                    Assert.Equal("MethodB", member2.Name)

                    Dim member3 = TryCast(members.Item(3), EnvDTE.CodeFunction)
                    Assert.NotNull(member3)
                    Assert.Equal("MethodC", member3.Name)

                    Dim member4 = TryCast(members.Item(4), EnvDTE.CodeFunction)
                    Assert.NotNull(member4)
                    Assert.Equal("MethodD", member4.Name)
                End Sub)
        End Function

        Private Function GetGenericExtender(codeElement As EnvDTE80.CodeClass2) As IVBGenericExtender
            Return CType(codeElement.Extender(ExtenderNames.VBGenericExtender), IVBGenericExtender)
        End Function

        Protected Overrides Function GenericNameExtender_GetBaseTypesCount(codeElement As EnvDTE80.CodeClass2) As Integer
            Return GetGenericExtender(codeElement).GetBaseTypesCount()
        End Function

        Protected Overrides Function GenericNameExtender_GetImplementedTypesCount(codeElement As EnvDTE80.CodeClass2) As Integer
            Return GetGenericExtender(codeElement).GetImplementedTypesCount()
        End Function

        Protected Overrides Function GenericNameExtender_GetBaseGenericName(codeElement As EnvDTE80.CodeClass2, index As Integer) As String
            Return GetGenericExtender(codeElement).GetBaseGenericName(index)
        End Function

        Protected Overrides Function GenericNameExtender_GetImplTypeGenericName(codeElement As EnvDTE80.CodeClass2, index As Integer) As String
            Return GetGenericExtender(codeElement).GetImplTypeGenericName(index)
        End Function

        Protected Overrides ReadOnly Property LanguageName As String
            Get
                Return LanguageNames.VisualBasic
            End Get
        End Property
    End Class
End Namespace

redpajama_set_name: RedPajamaGithub


The quality of [[TK_EXAMENGINE]] and [[EXAMSTUDY]] can be seen easily even before the purchasing with the help of our free [[TK_EXAMDEMO]]. The [[TK_EXAMENGINE]] build with outstanding [[EXAMSTUDY]] and preparatory material and provide great help regarding your [[EXAMCERT]].You can download it and evaluate yourself before attempting [[EXAMCERT]]. We provides the opportunity our customers to download free [[TK_EXAMDEMO]] before purchasing our [[TK_EXAMSTUDY]] and [[EXAMSAMPLE]] they can analyze the quality of product. You can trust on our [[TK_EXAMPRACTICE]] and [[EXAMSTUDY]] regarding your [[EXAMCERT]] because the preparatory material provided you created by our professional experts.
Pass the [[EXAMCERT]] with instantly after [[TK_EXAMSTUDY]] with the amazing [[TK_EXAMENGINE]] and [[EXAMDUMP]]. If you prepare from [[TK_EXAMSTUDY]] and [[TK_EXAMQUESTIONS]] then you will find not any difficulty to pass your [[EXAMCERT]] because it is the best for preparation. You must clear [[EXAMCERT]] in first attempt with superb [[TK_EXAMSTUDY]] and [[TK_EXAMENGINE]] which are designed by our professional experts. We offer the great opportunity for those students who want to online study and get excellent marks in [[EXAMCERT]] so [[TK_EXAMSTUDY]] and [[EXAMDUMP]] is the best.
You can download free [[TK_EXAMDEMO]] that helps to review about [[TK_EXAMSTUDY]] and [[EXAMQUESTIONS]] before purchasing it. If you prepare [[EXAMCERT]] from [[TK_EXAMSTUDY]] and [[TK_EXAMENGINE]] and passed with flying colures then you come to know that our product is more useful for the preparation of [[EXAMCERT]].
Our teams and professional experts can design [[EXAMPRACTICE]] and [[EXAMDUMP]] in a way that covers all the contents of your [[EXAMCERT]] with great care. The [[TK_EXAMBOOTCAMP]] and [[EXAMCBT]] build all the important concepts that are required to attempt the [[EXAMCERT]] effectively. If you can do [[TK_EXAMPRACTICE]] and prepare from [[EXAMDUMP]] then you will have no difficulty in passing the [[EXAMCERT]]. The competitive edge of preparation from [[TK_EXAMAUDIO]] is that you can [[EXAMSTUDY]] while traveling in a car or a bus so this option proves helpful for you in passing [[EXAMCERT]]. Download [[EXAMDEMO]] of [[EXAMQUESTIONS]] and [[EXAMSTUDY]] and make your doubts clear before purchasing them pass your [[EXAMCERT]] COMFORTABLY [[TK_EXAMENGINE]] provides you different methods of preparation. More over [[EXAMSTUDY]] in available in PDF format. You can download [[EXAMDEMO]] before purchasing it and make yourself delight.
[[TK_EXAMSTUDY]] in available in PDF format. They help you in preparing theoretical part. [[EXAMQUESTIONS]] is also available. Download [[EXAMDEMO]] to check its quality. [[TK_EXAMQUESTIONS]] is providing you best assistance. Download [[EXAMDEMO]] before purchasing it and get best existence for your [[EXAMCERT]]. We have a 100% passing ratio for the [[EXAMCERT]], because we provide the best [[EXAMSTUDY]] for [[EXAMCERT]]. Our product team has put a lot of effort into making this [[EXAMDUMP]] the best [[EXAMBRAINDUMP]]. We brings products assuring many benefits. Just download [[TK_EXAMQUESTIONS]] and check the benefits by doing [[EXAMPRACTICE]] with [[TK_EXAMBRAINDUMP]] and pass your [[EXAMCERT]]. Pass [[EXAMCERT]] via best assistance as Use the [[TK_EXAMENGINE]] for your [[EXAMPRACTICE]] and get superb marks with little preparation. Do your [[EXAMPRACTICE]] and [[EXAMQUESTIONS]] with the [[TK_EXAMSIMULATION]] and become expert on the [[EXAMCERT]] with just a little [[EXAMSTUDY]] Get best results with [[TK_EXAMENGINE]] and [[TK_EXAMSTUDY]] for the [[EXAMCERT]] and become successful with [[TK_EXAMQUESTIONS]] You will definitely pass [[EXAMCERT]] when you are doing the [[EXAMSTUDY]] with the [[TK_EXAMDUMP]]. The [[EXAMPRACTICE]] with the striking [[TK_EXAMENGINE]] and [[TK_EXAMSIMULATION]] is just great.
Simply submit your e-mail address below to get started with our interactive software demo of your Cisco Implementing Cisco IP Telephony and Video, Part 1 (CIPTV1) exam.


text:
Search For "mizoram"
Updated : 3 hours, 17 min ago IST
Aizawl (Mizoram) [India], January 21 (ANI): Mizoram on Thursday reported 12 new COVID-19 cases, according to the State Health Department.
Assam Rifles recovers 101.3 grams of Heroin in Mizoram, one appreh
Aizawl (Mizoram) [India], January 16 (ANI): The Assam Rifles prevented another attempt to smuggle drugs into Myanmar and recovered 101.3 grams of Heroin. The accused has also been apprehended. The approximate cost of the recovered heroin is Rs 40,52,000.
Mizoram reports 4 new COVID-19 cases
Aizawl (Mizoram) [India], January 16 (ANI): Mizoram reported four new COVID-19 cases in the last 24 hours, said the Department of Information and Public Relations (DIPR), Mizoram.
Mizoram reports no new COVID-19 cases
Aizawl (Mizoram) [India], January 15 (ANI): Mizoram reported no new COVID-19 cases in the last 24 hours, according to the State Health Department.
With 7 new COVID-19 cases, Mizoram's COVID-19 count reaches 4,310
Aizawl (Mizoram) [India], January 14 (ANI): Mizoram reported 7 new COVID-19 cases in the last 24 hours, the state health department said.
With 4 new cases, Mizoram's COVID-19 tally reaches 4,303
Updated : 1 week, 1 day ago IST
Aizawl (Mizoram) [India], January 13 (ANI): With four new COVID-19 cases reported in Mizoram, the total caseload in the state reached 4,303 on Wednesday, informed the Department of Information and Public Relations (DIPR), Mizoram.
Mizoram's COVID-19 count reaches 4,293
Aizawl (Mizoram) [India], January 11 (ANI): With just one fresh COVID-19 case reported in the last 24 hours, Mizoram's count of people infected with the virus has climbed to 4,293.
Israel appoints honorary consul in Northeast India
New Delhi [India], January 8 (ANI): The Embassy of Israel in India has appointed Joyshree Das Verma as the honorary consul in the Northeast region, to be based in Assam with jurisdiction over the states of Assam, Arunachal Pradesh, Nagaland, Manipur, Mizoram, Meghalaya, Tripura and Sikkim.
Amit Shah to visit Mizoram on Jan 9-10
New Delhi [India], January 6 (ANI): Union Home Minister Amit Shah will visit Mizoram between January 9-10, government sources said here on Wednesday.
Chennai hotel staff test positive for COVID-19, Syed Mushtaq Ali p
Chennai (Tamil Nadu) [India], January 4 (ANI): Around 20 staff members of a hotel in Chennai, which is currently the base for three teams Manipur, Meghalaya, and Mizoram, have tested positive for coronavirus ahead of the upcoming Syed Mushtaq Ali Trophy.
Mizoram reports 3 new COVID-19 cases, tally at 4,219
Aizawl (Mizoram) [India], January 2 (ANI): Mizoram has registered three new COVID-19 cases in the last 24 hours which pushed the infection tally to 4,219, according to the Department of Information and Public Relations (DIPR), Government of Mizoram.
Mizoram reports 12 new coronavirus cases
Aizawl (Mizoram) [India], January 1 (ANI): Mizoram has registered 12 new cases of novel coronavirus in the last 24 hours, taking the total number of cases here to 4,216, the state's Department of Information and Public Relations (DIPR) informed on Friday.

redpajama_set_name: RedPajamaCommonCrawl


The creative relation is not extra-mentally additional to the Creator and that which is created. In other words, when Allah ﷻ creates a contingent, there does not emerge a third existent called "creating" between Him and that which He creates.
Rather, this "creating" is a conception in the mind of the one who realizes that the Creator brought the contingent into existence at that moment. And all what exists extra-mentally is the Creator, and that which He creates.
If the affecting were an existent quality, additional to the being of the Effecter and its effect, we ask: is the Effecter affecting the effect or not?
If the first [i.e. the Effecter is affecting its effect]: then there must not exist an intermediary between the Effecter and its effect. Except that this cannot be the case if relations existed extra-mentally. Since the creative relation between the Effecter and its effect would be an intermediary. Entailing that there both exist and not-exist an intermediary between the Effecter and its effect, which is impossible.
If the second [i.e. the Effecter is not affecting its effect]: then the Effecter would not be an effecter, and this is also impossible.
Thus, the creative relation does not exist extra-mentally. It is an extracted abstraction existing in the mind of the one who realizes that a contingent emerged at a moment in time, and that Allah ﷻ is the one who brought this contingent into existence at that moment.
 "Affecting" meaning: the creative relation. The "creating". The fact that Allah ﷻ created the effect.
 The "Effecter" is Allah ﷻ, who brought the contingent into existence. The "effect" is that contingent which was brought into existence.
 If such an intermediary existed, then Allah ﷻ wouldn't be the Effecter. Instead, the effecter would be that intermediary. In other words, if the "creating" were something that existed between Allah ﷻ and what He creates, then this "creating" would be what brought the contingent into existence, not Allah ﷻ.
 Furthermore, if the "creating" were something that occurs between Allah ﷻ and that which He creates, then this "creating" would need to be brought into existence by Allah ﷻ. Entailing the emergence of a second creative relation between Allah ﷻ and the first creative relation (the creating of the creating).
And the emergence of this second creative relation would entail the emergence of a third creative relation for the exact same reason.
And the emergence of a third creative relation, entails the emergence of a fourth. And so on and so forth, ad infinitum. Entailing Tasalsul, which is impossible.


text:
Ex-Pitt player pleads guilty to bank robbery in Squirrel Hill
Jovani Chappel, 26, sentenced to jail time, probation
Jovani Chappel
A former University of Pittsburgh football player has pleaded guilty to robbing a bank.On Tuesday 26-year-old Jovani Chappel pleaded guilty to the August 2013 robbery in Pittsburgh's Squirrel Hill neighborhood. He was sentenced to one to two years in jail plus three years of probation.Police say a witness saw the license plate of the robber and a SWAT team later surrounded the house of Chappel's girlfriend, and he was later found on a nearby porch and arrested.Chappel graduated in 2010 after playing in 37 games over four years as a defensive back. He made 123 tackles and two interceptions.
PITTSBURGH —
A former University of Pittsburgh football player has pleaded guilty to robbing a bank.
On Tuesday 26-year-old Jovani Chappel pleaded guilty to the August 2013 robbery in Pittsburgh's Squirrel Hill neighborhood. He was sentenced to one to two years in jail plus three years of probation.
Former Pitt football player arrested in Greenfield bank robbery
Police say a witness saw the license plate of the robber and a SWAT team later surrounded the house of Chappel's girlfriend, and he was later found on a nearby porch and arrested.
Chappel graduated in 2010 after playing in 37 games over four years as a defensive back. He made 123 tackles and two interceptions.


text:
North America > United States of America > Florida > Inland Florida > Greater Orlando > Apopka
2.2 By car
Apopka is a city in Orange County, Florida. The population of Apopka was around 41,000 at the 2010 census. As at 2019, the city's population was estimated to have jumped to over 53,000. Apopka is a Native American word for "Potato-eating place".
Map of Apopka
Lynx operates a regular bus service from Orlando.
28.6701-81.51091 Apopka Superstop bus station. (updated Mar 2021)
By car[edit]
A couple of Orlando's Florida toll expressways pass through the area. FL-451, also a toll road, connects the expressway network to Apopka.
28.6706-81.51061 Apopka Seaboard Air Line Railway Depot, 36 E Station St. In 1918 the station was built as a part of Florida's extensive railroad network. It was added to the National Register of Historic Places in 1993.
28.6714-81.50942 Carroll Building, 407-409 S Park Ave. Since operated as a bakery, the building was once a history museum. It was added to the National Register of Historic Places in 1993.
28.6778-81.51113 Mitchill-Tibbetts House (Miner House), 21 East Orange St. Added to the National Register in 1991, early residents included R. Mitchell and Union Army General George Tibbetts.
28.6719-81.5094 Museum of the Apopkans, 122 E 5th St, ☏ +1 407 703 1707. Regional history museum. (updated Mar 2021)
28.6717-81.50755 Ryan & Company Lumber Yard (Ryan Bros., Inc.), 215 E 5th St. One of multiple Apopka buildings added to the register in 1993.
28.6775-81.51146 Waite-Davis House (Leslie P. Waite House), 5 South Central Ave. Added to the National Register of Historic Places in 1990.
28.7575-81.50271 Rock Springs Run Kelly Park, 400 E Kelly Park Rd (follow the park road east until it turns left and becomes Baptist Camp Road. Then make a right turn to go to the park), ☏ +1 407 254-1902. summer 8AM–8PM, winter summer 8AM–6PM. Beautiful natural springs with lazy river that you can tube down, crystal clear water.
28.77-81.50112 Wekiwa Springs State Park, 1800 Wekiwa Cir, ☏ +1 407 553-4383. Comprises around 7,000 acres (28 km²) of wild Florida. The springs pump out 42 million gallons of crystal clear water a day. Popular activities at the park include canoeing, swimming, picnicking and fishing. $6 per vehicle. (updated Jul 2021)
28.6688-81.44741 Argo's Family Diner, 3346 E Semoran Blvd, ☏ +1 407 788-1888. M–Sa 6:30AM–3PM, Su 7AM–3PM. (updated Jul 2021)
28.6704-81.45472 Caffe Positano, 3030 E Semoran Blvd, ☏ +1 407 774-8080. Su–Th 11AM–9PM, F–Sa 11AM–10PM. (updated Jul 2021)
28.6739-81.4611 Hampton Inn & Suites Orlando-Apopka, 321 S Lake Cortez Dr, ☏ +1 407 880-7861. Check-in: 3PM, check-out: 11AM. (updated Jul 2021)
28.6727-81.49962 Hilton Garden Inn Apopka City Center, 580 E Main St, ☏ +1 407 703-4493. Check-in: 3PM, check-out: 11AM. (updated Jul 2021)
This city travel guide to Apopka is a usable article. It has information on how to get there and on restaurants and hotels. An adventurous person could use this article, but please feel free to improve it by editing the page.
Retrieved from "https://en.wikivoyage.org/w/index.php?title=Apopka&oldid=4299538"
Greater Orlando


A few weeks ago I had the pleasure of photographing AJ, my best friend Angie's newborn. I'm not a professional photographer but I really enjoy taking pictures! I was really excited about the photo shoot since the last newborn I photographed was JD over 3 years ago. The whole experience was wonderful. I can't thank Angie and Alex enough for trusting me with their little bundle of joy, especially when I placed him in a little red wagon. Here are a few of my favorite pictures of AJ.
I found some great DIY photography ideas online, and set up my own studio at home. Although I do have a Nikon D500 (DSLR) you would be amazed at how many of my pictures were taken with my iPhone! You can pretty much use any camera as long as you have good lighting. I set up the photo shoot in front of our large sliding glass door and also used my recently purchased lighting kit (under $100) from Limo Studios to add a little extra lighting. Make sure to keep the room warm and be ready to take lots of little breaks, for feedings, diaper changing and the occasional need to hold a very precious newborn.
Note: I don't recommend using a table for newborn photography, but in our case we had plenty of people to keep little AJ safe during the shoot.
Hi Adriana. Can I ask you where you found the bulletin board paper. I love the design. Was it hobby lobby or Michaels?
I found this paper at JoAnns for around $7. I also used the same paper for my son's dinosaur party, I love it too!
Thats actually what I was wanting to use it for. Im doing my sons Dino party at a museum, and I wanted to use it as a background somehow. I live in Houston, so ive never heard of a JoAnns, so hopefully they have a website so I can order it. Thanks so much!
Yay! Thanks soo much. I looked up a joanns and there are 2 locations, but the closest is 30 miles away. Thanks for the link.
You are very welcome. Happy Party Planning!


text:
Women and Art
Days of Art 2017-20: Actresses, Photographesses, & Paintresses
This week Emma Watson became the first actor to win a major gender-neutral acting award when she won MTV's first award of the night at their 2017 MTV Movie & TV Awards (see story at MTV.com). Watson claimed the trophy for "Best Actor in a Movie," a peculiarly gender-neutral award that failed to recognize the…
08 May 2017 in Days of Art, Women and Art.
Days of Art 2017-16: The Story of Women and Art 3
Here's part 3 of BBC Two's The Story of Women and Art, a 3-part series detailing the history of women and art in the western world, starring Professor Amanda Vickery.
24 April 2017 in Days of Art, Women and Art, Women Artists.
Here is part two of BBC Two's The Story of Women and Art, a 3-part series detailing the history of women and art in the western world. It stars Prof. Amanda Vickery, historian, writer, radio and TV presenter, as well as professor of early modern history at Queen Mary, University of London. Part 1 can…
23 April 2017 in Days of Art, Women and Art.
Days of Art 2017-14: The Story of Women and Art
BBC Two's The Story of Women and Art, is a 3-part series detailing the history of women and art in the western world and male society's attempt to eradicate them from history. Hopefully, this has been posted with permission and will persist, but there's no way of knowing, and so it could disappear, as will…


text:
IC 5224 — галактика типу Sab (компактна витягнута галактика) у сузір'ї Журавель.

Цей об'єкт міститься в оригінальній редакції індексного каталогу.

Посилання

 IC 5224  в оригінальному новому загальному каталозі
 IC 5224  в оригінальному новому загальному каталозі
 Перевірена інформація про IC 5224
 IC 5224 в базі SIMBAD
 IC 5224 в базі Vizier
 IC 5224 в базі NASA Extragalactic  Database
 Бази даних про об'єкти NGC/IC

IC 5224
IC 5224
IC 5224

redpajama_set_name: RedPajamaWikipedia