2
2
// Licensed under the MIT license. See License.txt in the project root for license information.
3
3
4
4
using System ;
5
+ using System . Collections . Immutable ;
6
+ using System . Linq ;
5
7
using System . Threading . Tasks ;
6
8
using Microsoft . AspNetCore . Razor . Language ;
7
9
using Microsoft . AspNetCore . Razor . Language . Components ;
@@ -190,9 +192,15 @@ public async Task Handle_InCodeDirective_SupportsFileCreationTrue_ReturnsResult(
190
192
var documentPath = "c:/Test.razor" ;
191
193
var contents = $$ """
192
194
@page "/test"
193
- {{ codeDirective }} { private var x = 1; }
195
+ {|remove: {{ codeDirective }} {|extract: { private var x = 1; }|}| }
194
196
""" ;
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 ( ) ;
196
204
197
205
var request = new VSCodeActionParams ( )
198
206
{
@@ -216,10 +224,10 @@ public async Task Handle_InCodeDirective_SupportsFileCreationTrue_ReturnsResult(
216
224
Assert . NotNull ( razorCodeActionResolutionParams ) ;
217
225
var actionParams = ( ( JObject ) razorCodeActionResolutionParams . Data ) . ToObject < ExtractToCodeBehindCodeActionParams > ( ) ;
218
226
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 ) ;
223
231
}
224
232
225
233
[ Fact ]
@@ -229,9 +237,15 @@ public async Task Handle_AtEndOfCodeDirectiveWithNoSpace_ReturnsResult()
229
237
var documentPath = "c:/Test.razor" ;
230
238
var contents = """
231
239
@page "/test"
232
- @code$${ private var x = 1; }
240
+ {|remove: @code$${|extract:{ private var x = 1; }|}| }
233
241
""" ;
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 ( ) ;
235
249
236
250
var request = new VSCodeActionParams ( )
237
251
{
@@ -255,10 +269,11 @@ public async Task Handle_AtEndOfCodeDirectiveWithNoSpace_ReturnsResult()
255
269
Assert . NotNull ( razorCodeActionResolutionParams ) ;
256
270
var actionParams = ( ( JObject ) razorCodeActionResolutionParams . Data ) . ToObject < ExtractToCodeBehindCodeActionParams > ( ) ;
257
271
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 ) ;
262
277
}
263
278
264
279
[ Fact ]
@@ -298,9 +313,15 @@ public async Task Handle_InFunctionsDirective_SupportsFileCreationTrue_ReturnsRe
298
313
var documentPath = "c:/Test.razor" ;
299
314
var contents = """
300
315
@page "/test"
301
- @$$functions { private var x = 1; }
316
+ {|remove: @$$functions{|extract: { private var x = 1; }|}| }
302
317
""" ;
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 ( ) ;
304
325
305
326
var request = new VSCodeActionParams ( )
306
327
{
@@ -324,10 +345,10 @@ public async Task Handle_InFunctionsDirective_SupportsFileCreationTrue_ReturnsRe
324
345
Assert . NotNull ( razorCodeActionResolutionParams ) ;
325
346
var actionParams = ( ( JObject ) razorCodeActionResolutionParams . Data ) . ToObject < ExtractToCodeBehindCodeActionParams > ( ) ;
326
347
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 ) ;
331
352
}
332
353
333
354
[ Fact ]
0 commit comments