/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Scripting/VisualBasicTest/ObjectFormatterTests.vb
107 строк
5 KB
Cyrus Najmabadi
Use attributes consistently in tests
12 сен 2022, 02:39
12 сен 2022, 02:39
329849a
Код
Авторство
О чём код?
' 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 ObjectFormatterFixtures Imports Xunit Namespace Microsoft.CodeAnalysis.VisualBasic.Scripting.Hosting.UnitTests Public Class ObjectFormatterTests Inherits ObjectFormatterTestBase Private Shared ReadOnly s_formatter As ObjectFormatter = New TestVisualBasicObjectFormatter() <Fact> Public Sub InlineCharacters() Assert.Equal("ChrW(20)", s_formatter.FormatObject(ChrW(20), SingleLineOptions)) Assert.Equal("vbBack", s_formatter.FormatObject(ChrW(&H8), SingleLineOptions)) End Sub <Fact(Skip:="IDK")> Public Sub QuotedStrings() Dim s = "a" & ChrW(&HFFFE) & ChrW(&HFFFF) & vbCrLf & "b" Dim options = New PrintOptions With {.NumberRadix = ObjectFormatterHelpers.NumberRadixHexadecimal} Dim withQuotes = New TestVisualBasicObjectFormatter(quoteStringsAndCharacters:=True) Dim withoutQuotes = New TestVisualBasicObjectFormatter(quoteStringsAndCharacters:=False) ' ObjectFormatter should substitute spaces for non-printable characters Assert.Equal("""a"" & ChrW(&HABCF) & ChrW(&HABCD) & vbCrLf & ""b""", withQuotes.FormatObject(s, options)) Assert.Equal("a b", withoutQuotes.FormatObject(s, options)) End Sub <Fact> Public Sub Objects() Dim str As String Dim nested As Object = New Outer.Nested(Of Integer)() str = s_formatter.FormatObject(nested, SingleLineOptions) Assert.Equal("Outer.Nested(Of Integer) { A=1, B=2 }", str) str = s_formatter.FormatObject(nested, HiddenOptions) Assert.Equal("Outer.Nested(Of Integer)", str) str = s_formatter.FormatObject(A(Of Integer).X, HiddenOptions) Assert.Equal("A(Of Integer).B(Of Integer)", str) Dim obj As Object = New A(Of Integer).B(Of Boolean).C.D(Of String, Double).E() str = s_formatter.FormatObject(obj, HiddenOptions) Assert.Equal("A(Of Integer).B(Of Boolean).C.D(Of String, Double).E", str) Dim sort = New Sort() str = New TestVisualBasicObjectFormatter(maximumLineLength:=51).FormatObject(sort, SingleLineOptions) Assert.Equal("Sort { aB=-1, ab=1, Ac=-1, Ad=1, ad=-1, aE=1, aF=-1...", str) Assert.Equal(51 + 3, str.Length) str = New TestVisualBasicObjectFormatter(maximumLineLength:=5).FormatObject(sort, SingleLineOptions) Assert.Equal("Sort ...", str) Assert.Equal(5 + 3, str.Length) str = New TestVisualBasicObjectFormatter(maximumLineLength:=4).FormatObject(sort, SingleLineOptions) Assert.Equal("Sort...", str) str = New TestVisualBasicObjectFormatter(maximumLineLength:=3).FormatObject(sort, SingleLineOptions) Assert.Equal("Sor...", str) str = New TestVisualBasicObjectFormatter(maximumLineLength:=2).FormatObject(sort, SingleLineOptions) Assert.Equal("So...", str) str = New TestVisualBasicObjectFormatter(maximumLineLength:=1).FormatObject(sort, SingleLineOptions) Assert.Equal("S...", str) str = New TestVisualBasicObjectFormatter(maximumLineLength:=80).FormatObject(sort, SingleLineOptions) Assert.Equal("Sort { aB=-1, ab=1, Ac=-1, Ad=1, ad=-1, aE=1, aF=-1, AG=1 }", str) End Sub <Fact> Public Sub ArrayMethodParameters() Dim result = New TestVisualBasicObjectFormatter(maximumLineLength:=100).FormatMethodSignature(Signatures.Arrays) Assert.Equal("ObjectFormatterFixtures.Signatures.ArrayParameters(Integer(), Integer(,), Integer(,,))", result) End Sub <Fact> Public Sub EscapeWithoutQuotes() Dim primitiveFormatter As New TestPrimitiveObjectFormatter() Assert.Throws(Of ArgumentException)(Sub() primitiveFormatter.TestEscapeStringWithoutQuotes()) Assert.Throws(Of ArgumentException)(Sub() primitiveFormatter.TestEscapeCharWithoutQuotes()) End Sub Private Class TestPrimitiveObjectFormatter Inherits VisualBasicPrimitiveFormatter Public Sub TestEscapeStringWithoutQuotes() FormatLiteral("a", useQuotes:=False, escapeNonPrintable:=True) End Sub Public Sub TestEscapeCharWithoutQuotes() FormatLiteral("a"c, useQuotes:=False, escapeNonPrintable:=True) End Sub End Class ' TODO: port tests from C# End Class End Namespace