/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/Compilers/CSharp/Test/Syntax/Parsing/VerbatimCrefParsingTests.cs
116 строк
4 KB
Jared Parsons
generated move
28 сен 2020, 19:36
28 сен 2020, 19:36
1cca63b
Код
Авторство
О чём код?
// 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. #nullable disable using System; using System.Linq; using Microsoft.CodeAnalysis.CSharp.Symbols; using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.Text; using Xunit; using Xunit.Abstractions; namespace Microsoft.CodeAnalysis.CSharp.UnitTests { public class VerbatimCrefParsingTests : ParsingTests { public VerbatimCrefParsingTests(ITestOutputHelper output) : base(output) { } protected override SyntaxTree ParseTree(string text, CSharpParseOptions options) { throw new NotSupportedException(); } protected override CSharpSyntaxNode ParseNode(string text, CSharpParseOptions options) { var commentText = string.Format(@"/// <see cref=""{0}""/>", text); var trivia = SyntaxFactory.ParseLeadingTrivia(commentText).Single(); var structure = (DocumentationCommentTriviaSyntax)trivia.GetStructure(); var attr = structure.DescendantNodes().OfType<XmlTextAttributeSyntax>().Single(); return attr; } [Fact] public void NoEscapes() { UsingNode("T:NotARealType"); N(SyntaxKind.XmlTextAttribute); { N(SyntaxKind.XmlName); { N(SyntaxKind.IdentifierToken); } N(SyntaxKind.EqualsToken); N(SyntaxKind.DoubleQuoteToken); N(SyntaxKind.XmlTextLiteralToken); N(SyntaxKind.DoubleQuoteToken); } EOF(); } [Fact] public void EscapedKind() { UsingNode("T:NotARealType"); N(SyntaxKind.XmlTextAttribute); { N(SyntaxKind.XmlName); { N(SyntaxKind.IdentifierToken); } N(SyntaxKind.EqualsToken); N(SyntaxKind.DoubleQuoteToken); N(SyntaxKind.XmlEntityLiteralToken); N(SyntaxKind.XmlTextLiteralToken); N(SyntaxKind.DoubleQuoteToken); } EOF(); } [Fact] public void EscapedColon() { UsingNode("T:NotARealType"); N(SyntaxKind.XmlTextAttribute); { N(SyntaxKind.XmlName); { N(SyntaxKind.IdentifierToken); } N(SyntaxKind.EqualsToken); N(SyntaxKind.DoubleQuoteToken); N(SyntaxKind.XmlTextLiteralToken); N(SyntaxKind.XmlEntityLiteralToken); N(SyntaxKind.XmlTextLiteralToken); N(SyntaxKind.DoubleQuoteToken); } EOF(); } [Fact] public void EscapedKindAndColon() { UsingNode("T:NotARealType"); N(SyntaxKind.XmlTextAttribute); { N(SyntaxKind.XmlName); { N(SyntaxKind.IdentifierToken); } N(SyntaxKind.EqualsToken); N(SyntaxKind.DoubleQuoteToken); N(SyntaxKind.XmlEntityLiteralToken); N(SyntaxKind.XmlEntityLiteralToken); N(SyntaxKind.XmlTextLiteralToken); N(SyntaxKind.DoubleQuoteToken); } EOF(); } } }