/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/EditorFeatures/CSharpTest/Structure/ArgumentListSyntaxStructureTests.cs
92 строки
3 KB
Cyrus Najmabadi
Make tests synchronous
08 июл 2025, 22:11
08 июл 2025, 22:11
542bfda
Код
Авторство
О чём код?
// 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. using System.Threading.Tasks; using Microsoft.CodeAnalysis.CSharp.Structure; using Microsoft.CodeAnalysis.CSharp.Syntax; using Microsoft.CodeAnalysis.Structure; using Microsoft.CodeAnalysis.Test.Utilities; using Xunit; namespace Microsoft.CodeAnalysis.Editor.CSharp.UnitTests.Structure; [Trait(Traits.Feature, Traits.Features.Outlining)] public sealed class ArgumentListSyntaxStructureTests : AbstractCSharpSyntaxNodeStructureTests<ArgumentListSyntax> { internal override AbstractSyntaxStructureProvider CreateProvider() => new ArgumentListStructureProvider(); [Fact] public Task TestInvocationExpressionSingleLine() => VerifyBlockSpansAsync(""" var x = M$$(); """); [Fact] public Task TestInvocationExpressionTwoArgumentsInTwoLines() => VerifyBlockSpansAsync(""" var x = M$$("Hello", "World"); """); [Fact] public Task TestInvocationExpressionThreeLines() => VerifyBlockSpansAsync(""" var x = M$${|span:( "", "")|}; """, Region("span", CSharpStructureHelpers.Ellipsis, autoCollapse: false)); [Fact] public async Task TestTwoInvocationExpressionsThreeLines() { // The inner argument list should be collapsible, but the outer one shouldn't. // While this test shows both as collapsible, they will be deduplicated by AbstractBlockStructureProvider // This test only tests ArgumentListStructureProvider specifically, so it doesn't show the deduplication. // Tests in BlockStructureServiceTests show the overall behavior accurately. await VerifyBlockSpansAsync(""" var x = M(M$${|span:( "", "")|}); """, Region("span", CSharpStructureHelpers.Ellipsis, autoCollapse: false)); await VerifyBlockSpansAsync(""" var x = M$${|span:(M( "", ""))|}; """, Region("span", CSharpStructureHelpers.Ellipsis, autoCollapse: false)); } [Fact] public Task TestObjectCreationSingleLine() => VerifyBlockSpansAsync(""" var x = new C$$(); """); [Fact] public Task TestObjectCreationThreeLines() => VerifyBlockSpansAsync(""" var x = new C$${|span:( "", "")|}; """, Region("span", CSharpStructureHelpers.Ellipsis, autoCollapse: false)); [Fact] public Task TestImplicitObjectCreationSingleLine() => VerifyBlockSpansAsync(""" C x = new$$(); """); [Fact] public Task TestImplicitObjectCreationThreeLines() => VerifyBlockSpansAsync(""" C x = new$${|span:( "", "")|}; """, Region("span", CSharpStructureHelpers.Ellipsis, autoCollapse: false)); }