コード例 #1
0
        public async Task Handle_ResolveEditBasedCodeActionCommand()
        {
            // Arrange
            var codeActionEndpoint = new CodeActionResolutionEndpoint(
                Array.Empty <RazorCodeActionResolver>(),
                new CSharpCodeActionResolver[] {
                new MockCSharpCodeActionResolver("Test"),
            },
                LoggerFactory);
            var requestParams = new RazorCodeActionResolutionParams()
            {
                Action   = LanguageServerConstants.CodeActions.EditBasedCodeActionCommand,
                Language = LanguageServerConstants.CodeActions.Languages.Razor,
                Data     = JToken.FromObject(new WorkspaceEdit())
            };

            var request = new CodeAction()
            {
                Title = "Valid request",
                Data  = JToken.FromObject(requestParams)
            };

            // Act
            var razorCodeAction = await codeActionEndpoint.Handle(request, default);

            // Assert
            Assert.NotNull(razorCodeAction.Edit);
        }
コード例 #2
0
        public async Task Handle_Valid_CSharpCodeAction_WithMultipleLanguageResolvers()
        {
            // Arrange
            var codeActionEndpoint = new CodeActionResolutionEndpoint(
                new RazorCodeActionResolver[] {
                new MockRazorCodeActionResolver("TestRazor"),
            },
                new CSharpCodeActionResolver[] {
                new MockCSharpCodeActionResolver("TestCSharp"),
            },
                LoggerFactory);
            var requestParams = new RazorCodeActionResolutionParams()
            {
                Action   = "TestCSharp",
                Language = LanguageServerConstants.CodeActions.Languages.CSharp,
                Data     = JObject.FromObject(new CSharpCodeActionParams())
            };
            var request = new CodeAction()
            {
                Title = "Valid request",
                Data  = JToken.FromObject(requestParams)
            };

            // Act
            var razorCodeAction = await codeActionEndpoint.Handle(request, default);

            // Assert
            Assert.NotNull(razorCodeAction.Edit);
        }
コード例 #3
0
        public async Task Handle_Valid_RazorCodeAction_WithResolver()
        {
            // Arrange
            var codeActionEndpoint = new CodeActionResolutionEndpoint(
                new RazorCodeActionResolver[] {
                new MockRazorCodeActionResolver("Test"),
            },
                Array.Empty <CSharpCodeActionResolver>(),
                LoggerFactory);
            var requestParams = new RazorCodeActionResolutionParams()
            {
                Action   = "Test",
                Language = LanguageServerConstants.CodeActions.Languages.Razor,
                Data     = new AddUsingsCodeActionParams()
            };
            var request = new CodeAction()
            {
                Title = "Valid request",
                Data  = JToken.FromObject(requestParams)
            };

            // Act
            var razorCodeAction = await codeActionEndpoint.Handle(request, default);

            // Assert
            Assert.NotNull(razorCodeAction.Edit);
        }
コード例 #4
0
        public async Task ResolveCSharpCodeAction_ResolveMultipleLanguageProviders()
        {
            // Arrange
            var codeActionEndpoint = new CodeActionResolutionEndpoint(
                new RazorCodeActionResolver[] {
                new MockRazorNullCodeActionResolver("A"),
                new MockRazorCodeActionResolver("B"),
            },
                new CSharpCodeActionResolver[] {
                new MockCSharpNullCodeActionResolver("C"),
                new MockCSharpCodeActionResolver("D"),
            },
                LoggerFactory);
            var codeAction = new CodeAction();
            var request    = new RazorCodeActionResolutionParams()
            {
                Action   = "D",
                Language = LanguageServerConstants.CodeActions.Languages.CSharp,
                Data     = JObject.FromObject(new CSharpCodeActionParams())
            };

            // Act
            var resolvedCodeAction = await codeActionEndpoint.ResolveCSharpCodeActionAsync(codeAction, request, default);

            // Assert
            Assert.NotNull(resolvedCodeAction.Edit);
        }
コード例 #5
0
        public async Task Handle_Valid_CSharpCodeAction_WithRazorResolver_ResolvesNull()
        {
            // Arrange
            var codeActionEndpoint = new CodeActionResolutionEndpoint(
                new RazorCodeActionResolver[] {
                new MockRazorCodeActionResolver("Test"),
            },
                Array.Empty <CSharpCodeActionResolver>(),
                LoggerFactory);
            var requestParams = new RazorCodeActionResolutionParams()
            {
                Action   = "Test",
                Language = LanguageServerConstants.CodeActions.Languages.CSharp,
                Data     = JObject.FromObject(new CSharpCodeActionParams())
            };
            var request = new CodeAction()
            {
                Title = "Valid request",
                Data  = JToken.FromObject(requestParams)
            };

#if DEBUG
            // Act & Assert (Throws due to debug asserts)
            await Assert.ThrowsAnyAsync <Exception>(async() => await codeActionEndpoint.Handle(request, default));
#else
            // Act
            var resolvedCodeAction = await codeActionEndpoint.Handle(request, default);

            // Assert
            Assert.Null(resolvedCodeAction.Edit);
#endif
        }
コード例 #6
0
        public async Task Handle_Valid_RazorCodeAction_WithoutResolver()
        {
            // Arrange
            var codeActionEndpoint = new CodeActionResolutionEndpoint(
                Array.Empty <RazorCodeActionResolver>(),
                Array.Empty <CSharpCodeActionResolver>(),
                LoggerFactory);
            var requestParams = new RazorCodeActionResolutionParams()
            {
                Action   = "Test",
                Language = LanguageServerConstants.CodeActions.Languages.Razor,
                Data     = new AddUsingsCodeActionParams()
            };
            var request = new CodeAction()
            {
                Title = "Valid request",
                Data  = JToken.FromObject(requestParams)
            };

#if DEBUG
            // Act & Assert (Throws due to debug assert on no Razor.Test resolver)
            await Assert.ThrowsAnyAsync <Exception>(async() => await codeActionEndpoint.Handle(request, default));
#else
            // Act
            var resolvedCodeAction = await codeActionEndpoint.Handle(request, default);

            // Assert
            Assert.Null(resolvedCodeAction.Edit);
#endif
        }
コード例 #7
0
        public async Task Handle_Resolve()
        {
            // Arrange
            var codeActionEndpoint = new CodeActionResolutionEndpoint(new RazorCodeActionResolver[] {
                new MockCodeActionResolver("Test"),
            }, LoggerFactory);
            var request = new RazorCodeActionResolutionParams()
            {
                Action = "Test",
                Data   = null
            };

            // Act
            var workspaceEdit = await codeActionEndpoint.Handle(request, default);

            // Assert
            Assert.NotNull(workspaceEdit);
        }
コード例 #8
0
        public async Task Handle_ResolveMultipleProviders_SecondMatches()
        {
            // Arrange
            var codeActionEndpoint = new CodeActionResolutionEndpoint(new RazorCodeActionResolver[] {
                new NullMockCodeActionResolver("A"),
                new MockCodeActionResolver("B"),
            }, LoggerFactory);
            var request = new RazorCodeActionResolutionParams()
            {
                Action = "B",
                Data   = null
            };

            // Act
            var workspaceEdit = await codeActionEndpoint.Handle(request, default);

            // Assert
            Assert.NotNull(workspaceEdit);
        }
コード例 #9
0
        public async Task GetWorkspaceEditAsync_ResolveMultipleProviders_FirstMatches()
        {
            // Arrange
            var codeActionEndpoint = new CodeActionResolutionEndpoint(new RazorCodeActionResolver[] {
                new MockCodeActionResolver("A"),
                new NullMockCodeActionResolver("B"),
            }, LoggerFactory);
            var request = new RazorCodeActionResolutionParams()
            {
                Action = "A",
                Data   = new AddUsingsCodeActionParams()
            };

            // Act
            var workspaceEdit = await codeActionEndpoint.GetWorkspaceEditAsync(request, default);

            // Assert
            Assert.NotNull(workspaceEdit);
        }
コード例 #10
0
        public async Task Handle_Valid_RazorCodeAction_Resolve()
        {
            // Arrange
            var codeActionEndpoint = new CodeActionResolutionEndpoint(new RazorCodeActionResolver[] {
                new MockCodeActionResolver("Test"),
            }, LoggerFactory);
            var requestParams = new RazorCodeActionResolutionParams()
            {
                Action = "Test",
                Data   = new AddUsingsCodeActionParams()
            };
            var request = new RazorCodeAction()
            {
                Title = "Valid request",
                Data  = JObject.FromObject(requestParams)
            };

            // Act
            var razorCodeAction = await codeActionEndpoint.Handle(request, default);

            // Assert
            Assert.NotNull(razorCodeAction.Edit);
        }
コード例 #11
0
        public async Task ResolveRazorCodeAction_ResolveMultipleRazorProviders_SecondMatches()
        {
            // Arrange
            var codeActionEndpoint = new CodeActionResolutionEndpoint(
                new RazorCodeActionResolver[] {
                new MockRazorNullCodeActionResolver("A"),
                new MockRazorCodeActionResolver("B"),
            },
                Array.Empty <CSharpCodeActionResolver>(),
                LoggerFactory);
            var codeAction = new CodeAction();
            var request    = new RazorCodeActionResolutionParams()
            {
                Action   = "B",
                Language = LanguageServerConstants.CodeActions.Languages.Razor,
                Data     = new AddUsingsCodeActionParams()
            };

            // Act
            var resolvedCodeAction = await codeActionEndpoint.ResolveRazorCodeActionAsync(codeAction, request, default);

            // Assert
            Assert.NotNull(resolvedCodeAction.Edit);
        }