File: Serialization\OptionsSerializationTests.vb
Web Access
Project: src\src\Workspaces\VisualBasicTest\Microsoft.CodeAnalysis.VisualBasic.Workspaces.UnitTests.vbproj (Microsoft.CodeAnalysis.VisualBasic.Workspaces.UnitTests)
' Licensed to the .NET Foundation under one or more agreements.
' The .NET Foundation licenses this file to you under the MIT license.
' See the LICENSE file in the project root for more information.
 
Imports System.IO
Imports System.Threading
Imports Microsoft.CodeAnalysis.Serialization
Imports Microsoft.CodeAnalysis.Test.Utilities
Imports Roslyn.Test.Utilities
Imports Roslyn.Utilities
Imports Xunit
 
Namespace Microsoft.CodeAnalysis.VisualBasic.UnitTests.Serialization
    <UseExportProvider>
    Public NotInheritable Class OptionsSerializationTests
        <Fact, WorkItem("https://devdiv.visualstudio.com/DevDiv/_workitems/edit/2325692")>
        Public Sub TestNullGlobalImport()
            Dim options = New VisualBasicCompilationOptions(
                OutputKind.ConsoleApplication,
                "module",
                globalImports:={Nothing})
 
            Using workspace = New AdhocWorkspace()
                Dim service = workspace.Services.GetLanguageServices(LanguageNames.VisualBasic).GetService(Of IOptionsSerializationService)()
 
                Using stream = New MemoryStream()
                    Dim writer = New ObjectWriter(stream, leaveOpen:=True)
                    service.WriteTo(options, writer, CancellationToken.None)
                    stream.Position = 0
 
                    Dim reader = ObjectReader.TryGetReader(stream, leaveOpen:=True)
                    Dim serializedOptions = DirectCast(
                        service.ReadCompilationOptionsFrom(reader, CancellationToken.None),
                        VisualBasicCompilationOptions)
 
                    Assert.Empty(serializedOptions.GlobalImports)
                End Using
            End Using
        End Sub
    End Class
End Namespace