/
githubmirror
/
roslyn
Обзор
Документация
Войти
/
githubmirror
/
roslyn
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/LanguageServer/Microsoft.CommonLanguageServerProtocol.Framework.UnitTests/ExampleTests.cs
65 строк
2 KB
David Barbet
Refactor LSP server logging to remove singleton lsp instance (#84001)
16 июн 2026, 05:04
Не верифицирован
16 июн 2026, 05:04
82e81e5
Код
Авторство
О чём код?
// 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; using System.Threading.Tasks; using Roslyn.LanguageServer.Protocol; using Xunit; namespace Microsoft.CommonLanguageServerProtocol.Framework.UnitTests; public sealed partial class ExampleTests { [Fact] public void InitializeServer_WithMethodRegisteredTwice_Fails() { // Act var ex = Assert.Throws<InvalidOperationException>(() => TestExampleLanguageServer.CreateBadLanguageServer()); Assert.Equal("Method textDocument/didOpen was implemented more than once.", ex.Message); } [Fact] public async Task InitializeServer_WithMultipleHandlerRegistration_Succeeds() { var server = TestExampleLanguageServer.CreateLanguageServer(); // Act // Verifying that this does not throw. var _ = await server.InitializeServerAsync(); // Assert var handlerProvider = server.GetTestAccessor().GetQueueAccessor()!.Value.GetHandlerProvider(); var methods = handlerProvider.GetRegisteredMethods(); Assert.Equal(5, methods.Length); Assert.Contains(methods, m => m.MethodName == Methods.TextDocumentDidCloseName); Assert.Contains(methods, m => m.MethodName == Methods.InitializeName); Assert.Contains(methods, m => m.MethodName == Methods.TextDocumentDidOpenName); Assert.Contains(methods, m => m.MethodName == Methods.InitializedName); Assert.Contains(methods, m => m.MethodName == Methods.TextDocumentDidChangeName); } [Fact] public async Task InitializeServer_SerializesCorrectly() { var server = TestExampleLanguageServer.CreateLanguageServer(); var result = await server.InitializeServerAsync(); Assert.True(result.Capabilities.SemanticTokensOptions!.Value.Unify().Range!.Value.First); } [Fact] public async Task ShutdownServer_Succeeds() { var server = TestExampleLanguageServer.CreateLanguageServer(); _ = await server.InitializeServerAsync(); await server.ShutdownServerAsync(); var result = await server.WaitForShutdown(); Assert.True(0 == result, "Server failed to shut down properly"); } }