public async Task Handle_InFunctionsDirective_SupportsFileCreationTrue_ReturnsResult() { // Arrange var documentPath = "c:/Test.razor"; var contents = "@page \"/test\"\n@functions { private var x = 1; }"; var request = new CodeActionParams() { TextDocument = new TextDocumentIdentifier(new Uri(documentPath)), Range = new Range(), }; var location = new SourceLocation(contents.IndexOf("functions", StringComparison.Ordinal), -1, -1); var context = CreateRazorCodeActionContext(request, location, documentPath, contents); var provider = new ExtractToCodeBehindCodeActionProvider(); // Act var commandOrCodeActionContainer = await provider.ProvideAsync(context, default); // Assert var codeAction = Assert.Single(commandOrCodeActionContainer); var razorCodeActionResolutionParams = codeAction.Data.ToObject <RazorCodeActionResolutionParams>(); var actionParams = (razorCodeActionResolutionParams.Data as JObject).ToObject <ExtractToCodeBehindCodeActionParams>(); Assert.Equal(14, actionParams.RemoveStart); Assert.Equal(24, actionParams.ExtractStart); Assert.Equal(47, actionParams.ExtractEnd); Assert.Equal(47, actionParams.RemoveEnd); }
public async Task Handle_InCodeDirectiveMalformed_ReturnsNull() { // Arrange var documentPath = "c:/Test.razor"; var contents = "@page \"/test\"\n@code"; var request = new CodeActionParams() { TextDocument = new TextDocumentIdentifier(new Uri(documentPath)), Range = new Range(), }; var location = new SourceLocation(contents.IndexOf("code", StringComparison.Ordinal), -1, -1); var context = CreateRazorCodeActionContext(request, location, documentPath, contents); var provider = new ExtractToCodeBehindCodeActionProvider(); // Act var commandOrCodeActionContainer = await provider.ProvideAsync(context, default); // Assert Assert.Null(commandOrCodeActionContainer); }