' 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 Microsoft.CodeAnalysis.Editor.Implementation.Interactive Imports Microsoft.CodeAnalysis.Editor.Shared.Utilities Imports Microsoft.CodeAnalysis.Editor.UnitTests Imports Microsoft.CodeAnalysis.Editor.UnitTests.Workspaces Imports Microsoft.CodeAnalysis.Editor.VisualBasic.EncapsulateField Imports Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests Imports Microsoft.CodeAnalysis.Shared.TestHooks Imports Microsoft.VisualStudio.Text.Editor.Commanding.Commands Imports Microsoft.VisualStudio.Text.Operations Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.EncapsulateField <[UseExportProvider]> Public Class EncapsulateFieldCommandHandlerTests Public Sub PrivateField() Dim text = Class C Private goo$$ As Integer Sub bar() goo = 3 End Sub End Class.ConvertTestSourceTag() Dim expected = Class C Private goo As Integer Public Property Goo1 As Integer Get Return goo End Get Set(value As Integer) goo = value End Set End Property Sub bar() Goo1 = 3 End Sub End Class.ConvertTestSourceTag() Using state = EncapsulateFieldTestState.Create(text) state.AssertEncapsulateAs(expected) End Using End Sub Public Sub NonPrivateField() Dim text = Class C Protected goo$$ As Integer Sub bar() goo = 3 End Sub End Class.ConvertTestSourceTag() Dim expected = Class C Private _goo As Integer Protected Property Goo As Integer Get Return _goo End Get Set(value As Integer) _goo = value End Set End Property Sub bar() Goo = 3 End Sub End Class.ConvertTestSourceTag() Using state = EncapsulateFieldTestState.Create(text) state.AssertEncapsulateAs(expected) End Using End Sub Public Sub EncapsulateTwoFields() Dim text = " Class Program [|Shared A As Integer = 1 Shared B As Integer = A|] Sub Main(args As String()) System.Console.WriteLine(A) System.Console.WriteLine(B) End Sub End Class " Dim expected = " Class Program Shared A As Integer = 1 Shared B As Integer = A1 Public Shared Property A1 As Integer Get Return A End Get Set(value As Integer) A = value End Set End Property Public Shared Property B1 As Integer Get Return B End Get Set(value As Integer) B = value End Set End Property Sub Main(args As String()) System.Console.WriteLine(A1) System.Console.WriteLine(B1) End Sub End Class " Using state = EncapsulateFieldTestState.Create(text) state.AssertEncapsulateAs(expected) End Using End Sub Public Sub EncapsulateFieldCommandDisabledInSubmission() Dim exportProvider = ExportProviderCache _ .GetOrCreateExportProviderFactory(TestExportProvider.EntireAssemblyCatalogWithCSharpAndVisualBasic.WithParts(GetType(InteractiveSupportsFeatureService.InteractiveTextBufferSupportsFeatureService))) _ .CreateExportProvider() Using workspace = TestWorkspace.Create( Class C Private $goo As Object End Class , workspaceKind:=WorkspaceKind.Interactive, exportProvider:=exportProvider) ' Force initialization. workspace.GetOpenDocumentIds().Select(Function(id) workspace.GetTestDocument(id).GetTextView()).ToList() Dim textView = workspace.Documents.Single().GetTextView() Dim handler = New EncapsulateFieldCommandHandler( workspace.ExportProvider.GetExportedValue(Of IThreadingContext), workspace.GetService(Of ITextBufferUndoManagerProvider), workspace.ExportProvider.GetExportedValue(Of IAsynchronousOperationListenerProvider)()) Dim state = handler.GetCommandState(New EncapsulateFieldCommandArgs(textView, textView.TextBuffer)) Assert.True(state.IsUnspecified) End Using End Sub End Class End Namespace