Skip to content

Commit 7631d6b

Browse files
Fix Windows-specific spans in ExtractToCodeBehindCodeActionProviderTest
1 parent eb9a075 commit 7631d6b

File tree

1 file changed

+39
-18
lines changed

1 file changed

+39
-18
lines changed

src/Razor/test/Microsoft.AspNetCore.Razor.LanguageServer.Test/CodeActions/Razor/ExtractToCodeBehindCodeActionProviderTest.cs

Lines changed: 39 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
// Licensed under the MIT license. See License.txt in the project root for license information.
33

44
using System;
5+
using System.Collections.Immutable;
6+
using System.Linq;
57
using System.Threading.Tasks;
68
using Microsoft.AspNetCore.Razor.Language;
79
using Microsoft.AspNetCore.Razor.Language.Components;
@@ -190,9 +192,15 @@ public async Task Handle_InCodeDirective_SupportsFileCreationTrue_ReturnsResult(
190192
var documentPath = "c:/Test.razor";
191193
var contents = $$"""
192194
@page "/test"
193-
{{codeDirective}} { private var x = 1; }
195+
{|remove:{{codeDirective}}{|extract: { private var x = 1; }|}|}
194196
""";
195-
TestFileMarkupParser.GetPosition(contents, out contents, out var cursorPosition);
197+
198+
TestFileMarkupParser.GetPositionAndSpans(
199+
contents, out contents, out int cursorPosition,
200+
out ImmutableDictionary<string, ImmutableArray<TextSpan>> namedSpans);
201+
202+
var extractSpan = namedSpans["extract"].Single();
203+
var removeSpan = namedSpans["remove"].Single();
196204

197205
var request = new VSCodeActionParams()
198206
{
@@ -216,10 +224,10 @@ public async Task Handle_InCodeDirective_SupportsFileCreationTrue_ReturnsResult(
216224
Assert.NotNull(razorCodeActionResolutionParams);
217225
var actionParams = ((JObject)razorCodeActionResolutionParams.Data).ToObject<ExtractToCodeBehindCodeActionParams>();
218226
Assert.NotNull(actionParams);
219-
Assert.Equal(15, actionParams.RemoveStart);
220-
Assert.Equal(20, actionParams.ExtractStart);
221-
Assert.Equal(43, actionParams.ExtractEnd);
222-
Assert.Equal(43, actionParams.RemoveEnd);
227+
Assert.Equal(removeSpan.Start, actionParams.RemoveStart);
228+
Assert.Equal(extractSpan.Start, actionParams.ExtractStart);
229+
Assert.Equal(extractSpan.End, actionParams.ExtractEnd);
230+
Assert.Equal(removeSpan.End, actionParams.RemoveEnd);
223231
}
224232

225233
[Fact]
@@ -229,9 +237,15 @@ public async Task Handle_AtEndOfCodeDirectiveWithNoSpace_ReturnsResult()
229237
var documentPath = "c:/Test.razor";
230238
var contents = """
231239
@page "/test"
232-
@code$${ private var x = 1; }
240+
{|remove:@code$${|extract:{ private var x = 1; }|}|}
233241
""";
234-
TestFileMarkupParser.GetPosition(contents, out contents, out var cursorPosition);
242+
243+
TestFileMarkupParser.GetPositionAndSpans(
244+
contents, out contents, out int cursorPosition,
245+
out ImmutableDictionary<string, ImmutableArray<TextSpan>> namedSpans);
246+
247+
var extractSpan = namedSpans["extract"].Single();
248+
var removeSpan = namedSpans["remove"].Single();
235249

236250
var request = new VSCodeActionParams()
237251
{
@@ -255,10 +269,11 @@ public async Task Handle_AtEndOfCodeDirectiveWithNoSpace_ReturnsResult()
255269
Assert.NotNull(razorCodeActionResolutionParams);
256270
var actionParams = ((JObject)razorCodeActionResolutionParams.Data).ToObject<ExtractToCodeBehindCodeActionParams>();
257271
Assert.NotNull(actionParams);
258-
Assert.Equal(15, actionParams.RemoveStart);
259-
Assert.Equal(20, actionParams.ExtractStart);
260-
Assert.Equal(42, actionParams.ExtractEnd);
261-
Assert.Equal(42, actionParams.RemoveEnd);
272+
273+
Assert.Equal(removeSpan.Start, actionParams.RemoveStart);
274+
Assert.Equal(extractSpan.Start, actionParams.ExtractStart);
275+
Assert.Equal(extractSpan.End, actionParams.ExtractEnd);
276+
Assert.Equal(removeSpan.End, actionParams.RemoveEnd);
262277
}
263278

264279
[Fact]
@@ -298,9 +313,15 @@ public async Task Handle_InFunctionsDirective_SupportsFileCreationTrue_ReturnsRe
298313
var documentPath = "c:/Test.razor";
299314
var contents = """
300315
@page "/test"
301-
@$$functions { private var x = 1; }
316+
{|remove:@$$functions{|extract: { private var x = 1; }|}|}
302317
""";
303-
TestFileMarkupParser.GetPosition(contents, out contents, out var cursorPosition);
318+
319+
TestFileMarkupParser.GetPositionAndSpans(
320+
contents, out contents, out int cursorPosition,
321+
out ImmutableDictionary<string, ImmutableArray<TextSpan>> namedSpans);
322+
323+
var extractSpan = namedSpans["extract"].Single();
324+
var removeSpan = namedSpans["remove"].Single();
304325

305326
var request = new VSCodeActionParams()
306327
{
@@ -324,10 +345,10 @@ public async Task Handle_InFunctionsDirective_SupportsFileCreationTrue_ReturnsRe
324345
Assert.NotNull(razorCodeActionResolutionParams);
325346
var actionParams = ((JObject)razorCodeActionResolutionParams.Data).ToObject<ExtractToCodeBehindCodeActionParams>();
326347
Assert.NotNull(actionParams);
327-
Assert.Equal(15, actionParams.RemoveStart);
328-
Assert.Equal(25, actionParams.ExtractStart);
329-
Assert.Equal(48, actionParams.ExtractEnd);
330-
Assert.Equal(48, actionParams.RemoveEnd);
348+
Assert.Equal(removeSpan.Start, actionParams.RemoveStart);
349+
Assert.Equal(extractSpan.Start, actionParams.ExtractStart);
350+
Assert.Equal(extractSpan.End, actionParams.ExtractEnd);
351+
Assert.Equal(removeSpan.End, actionParams.RemoveEnd);
331352
}
332353

333354
[Fact]

0 commit comments

Comments
 (0)