/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Scripting/VisualBasicTest/PrintOptionsTests.vb
152 строки
6 KB
Jonathon Marolf
update headers
23 янв 2020, 04:01
Не верифицирован
23 янв 2020, 04:01
91571a3
Код
Авторство
О чём код?
' Licensed to the .NET Foundation under one or more agreements. ' The .NET Foundation licenses this file to you under the MIT license. ' See the LICENSE file in the project root for more information. Imports Microsoft.CodeAnalysis.Scripting.Hosting Imports Microsoft.CodeAnalysis.Scripting.Hosting.UnitTests Imports Xunit Namespace Microsoft.CodeAnalysis.VisualBasic.Scripting.Hosting.UnitTests Public Class PrintOptionsTests Inherits ObjectFormatterTestBase Private Shared ReadOnly s_formatter As ObjectFormatter = New TestVisualBasicObjectFormatter() <Fact> Public Sub NullOptions() Assert.Throws(Of ArgumentNullException)(Sub() s_formatter.FormatObject("hello", options:=Nothing)) End Sub <Fact> Public Sub InvalidNumberRadix() Assert.Throws(Of ArgumentOutOfRangeException)( Sub() Dim options As New PrintOptions() options.NumberRadix = 3 End Sub) End Sub <Fact> Public Sub InvalidMemberDisplayFormat() Assert.Throws(Of ArgumentOutOfRangeException)( Sub() Dim options As New PrintOptions() options.MemberDisplayFormat = CType(-1, MemberDisplayFormat) End Sub) End Sub <Fact> Public Sub InvalidMaximumOutputLength() Assert.Throws(Of ArgumentOutOfRangeException)( Sub() Dim options As New PrintOptions() options.MaximumOutputLength = -1 End Sub) Assert.Throws(Of ArgumentOutOfRangeException)( Sub() Dim options As New PrintOptions() options.MaximumOutputLength = 0 End Sub) End Sub <Fact> Public Sub ValidNumberRadix() Dim options = New PrintOptions() Dim array(9) As Integer options.NumberRadix = 10 Assert.Equal("10", s_formatter.FormatObject(10, options)) Assert.Equal("Integer(10) { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }", s_formatter.FormatObject(array, options)) Assert.Equal("ChrW(16)", s_formatter.FormatObject(ChrW(&H10), options)) options.NumberRadix = 16 Assert.Equal("&H0000000A", s_formatter.FormatObject(10, options)) Assert.Equal("Integer(&H0000000A) { &H00000000, &H00000000, &H00000000, &H00000000, &H00000000, &H00000000, &H00000000, &H00000000, &H00000000, &H00000000 }", s_formatter.FormatObject(array, options)) Assert.Equal("ChrW(&H10)", s_formatter.FormatObject(ChrW(&H10), options)) End Sub <Fact(Skip:="https://github.com/dotnet/roslyn/issues/8241")> Public Sub ValidMemberDisplayFormat() Dim options = New PrintOptions() options.MemberDisplayFormat = MemberDisplayFormat.Hidden Assert.Equal("PrintOptions", s_formatter.FormatObject(options, options)) options.MemberDisplayFormat = MemberDisplayFormat.SingleLine Assert.Equal("PrintOptions { Ellipsis=""..."", EscapeNonPrintableCharacters=True, MaximumOutputLength=1024, MemberDisplayFormat=SingleLine, NumberRadix=10 }", s_formatter.FormatObject(options, options)) options.MemberDisplayFormat = MemberDisplayFormat.SeparateLines Assert.Equal("PrintOptions { Ellipsis: ""..."", EscapeNonPrintableCharacters: True, MaximumOutputLength: 1024, MemberDisplayFormat: SeparateLines, NumberRadix: 10, _maximumOutputLength: 1024, _memberDisplayFormat: SeparateLines, _numberRadix: 10 } ", s_formatter.FormatObject(options, options)) End Sub <Fact> Public Sub ValidEscapeNonPrintableCharacters() Dim options = New PrintOptions() options.EscapeNonPrintableCharacters = True Assert.Equal("vbTab", s_formatter.FormatObject(vbTab, options)) Assert.Equal("vbTab", s_formatter.FormatObject(vbTab(0), options)) options.EscapeNonPrintableCharacters = False Assert.Equal("""" + vbTab + """", s_formatter.FormatObject(vbTab, options)) Assert.Equal("""" + vbTab + """c", s_formatter.FormatObject(vbTab(0), options)) End Sub <Fact> Public Sub ValidMaximumOutputLength() Dim options = New PrintOptions() options.MaximumOutputLength = 1 Assert.Equal("1...", s_formatter.FormatObject(123456, options)) options.MaximumOutputLength = 2 Assert.Equal("12...", s_formatter.FormatObject(123456, options)) options.MaximumOutputLength = 3 Assert.Equal("123...", s_formatter.FormatObject(123456, options)) options.MaximumOutputLength = 4 Assert.Equal("1234...", s_formatter.FormatObject(123456, options)) options.MaximumOutputLength = 5 Assert.Equal("12345...", s_formatter.FormatObject(123456, options)) options.MaximumOutputLength = 6 Assert.Equal("123456", s_formatter.FormatObject(123456, options)) options.MaximumOutputLength = 7 Assert.Equal("123456", s_formatter.FormatObject(123456, options)) End Sub <Fact> Public Sub ValidEllipsis() Dim options = New PrintOptions() options.MaximumOutputLength = 1 options.Ellipsis = "." Assert.Equal("1.", s_formatter.FormatObject(123456, options)) options.Ellipsis = ".." Assert.Equal("1..", s_formatter.FormatObject(123456, options)) options.Ellipsis = "" Assert.Equal("1", s_formatter.FormatObject(123456, options)) options.Ellipsis = Nothing Assert.Equal("1", s_formatter.FormatObject(123456, options)) End Sub End Class End Namespace