public async Task InitializeAsync_InvokesHandlerWithParamsAndCapabilities() { // Arrange var originalInitParams = new InitializeParams() { Capabilities = new ClientCapabilities() { Experimental = true }, RootUri = new Uri("C:/path/to/workspace"), }; var initializeResult = new InitializeResult(); var handler = new Mock <IRequestHandler <InitializeParams, InitializeResult> >(MockBehavior.Strict); handler.Setup(h => h.HandleRequestAsync(It.IsAny <InitializeParams>(), It.IsAny <ClientCapabilities>(), It.IsAny <CancellationToken>())) .Callback <InitializeParams, ClientCapabilities, CancellationToken>((initParams, clientCapabilities, token) => { Assert.True((bool)initParams.Capabilities.Experimental); Assert.Equal(originalInitParams.RootUri.AbsoluteUri, initParams.RootUri.AbsoluteUri); }) .Returns(Task.FromResult(initializeResult)) .Verifiable(); var metadata = Mock.Of <IRequestHandlerMetadata>(rhm => rhm.MethodName == Methods.InitializeName, MockBehavior.Strict); using var languageServer = new RazorHtmlCSharpLanguageServer(new[] { new Lazy <IRequestHandler, IRequestHandlerMetadata>(() => handler.Object, metadata) }); var serializedInitParams = JToken.FromObject(originalInitParams); // Act var result = await languageServer.InitializeAsync(serializedInitParams, CancellationToken.None).ConfigureAwait(false); // Assert Assert.Same(initializeResult, result); handler.VerifyAll(); }
public async Task ExecuteRequestAsync_InvokesCustomHandler() { // Arrange var handler = new Mock <IRequestHandler <string, int> >(); handler.Setup(h => h.HandleRequestAsync("hello world", It.IsAny <ClientCapabilities>(), It.IsAny <CancellationToken>())) .Returns(Task.FromResult(123)) .Verifiable(); var metadata = Mock.Of <IRequestHandlerMetadata>(rhm => rhm.MethodName == "test"); var languageServer = new RazorHtmlCSharpLanguageServer(new[] { new Lazy <IRequestHandler, IRequestHandlerMetadata>(() => handler.Object, metadata) }); // Act var result = await languageServer.ExecuteRequestAsync <string, int>("test", "hello world", clientCapabilities : null, CancellationToken.None).ConfigureAwait(false); // Assert Assert.Equal(123, result); handler.VerifyAll(); }