@@ -276,6 +276,87 @@ Dim ws As Worksheet
276
276
}
277
277
}
278
278
279
+ [ Test ]
280
+ [ Category ( "QuickFixes" ) ]
281
+ public void SheetAccessedUsingString_QuickFixWorks_TransientReferenceSetStatement ( )
282
+ {
283
+ const string inputCode = @"
284
+ Sub Test()
285
+ Dim ws As Worksheet
286
+ Set ws = Worksheets.Add(Worksheets(""Sheet1""))
287
+ Debug.Print ws.Name
288
+ End Sub" ;
289
+
290
+ const string expectedCode = @"
291
+ Sub Test()
292
+ Dim ws As Worksheet
293
+ Set ws = Worksheets.Add(Sheet1)
294
+ Debug.Print ws.Name
295
+ End Sub" ;
296
+
297
+ using ( var state = ArrangeParserAndParse ( inputCode , out var component ) )
298
+ {
299
+ var inspection = new SheetAccessedUsingStringInspection ( state ) ;
300
+ var inspectionResults = inspection . GetInspectionResults ( CancellationToken . None ) ;
301
+
302
+ new AccessSheetUsingCodeNameQuickFix ( state ) . Fix ( inspectionResults . First ( ) ) ;
303
+ Assert . AreEqual ( expectedCode , state . GetRewriter ( component ) . GetText ( ) ) ;
304
+ }
305
+ }
306
+
307
+ [ Test ]
308
+ [ Category ( "QuickFixes" ) ]
309
+ public void SheetAccessedUsingString_QuickFixWorks_TransientReferenceNoSetStatement ( )
310
+ {
311
+ const string inputCode = @"
312
+ Sub Test()
313
+ If Not Worksheets.Add(Worksheets(""Sheet1"")) Is Nothing Then
314
+ Debug.Print ""Added""
315
+ End If
316
+ End Sub" ;
317
+
318
+ const string expectedCode = @"
319
+ Sub Test()
320
+ If Not Worksheets.Add(Sheet1) Is Nothing Then
321
+ Debug.Print ""Added""
322
+ End If
323
+ End Sub" ;
324
+
325
+ using ( var state = ArrangeParserAndParse ( inputCode , out var component ) )
326
+ {
327
+ var inspection = new SheetAccessedUsingStringInspection ( state ) ;
328
+ var inspectionResults = inspection . GetInspectionResults ( CancellationToken . None ) ;
329
+
330
+ new AccessSheetUsingCodeNameQuickFix ( state ) . Fix ( inspectionResults . First ( ) ) ;
331
+ Assert . AreEqual ( expectedCode , state . GetRewriter ( component ) . GetText ( ) ) ;
332
+ }
333
+ }
334
+
335
+ [ Test ]
336
+ [ Category ( "QuickFixes" ) ]
337
+ public void SheetAccessedUsingString_QuickFixWorks_ImplicitVariableAssignment ( )
338
+ {
339
+ const string inputCode = @"
340
+ Sub Test()
341
+ Set ws = Worksheets(""Sheet1"")
342
+ Debug.Print ws.Name
343
+ End Sub" ;
344
+
345
+ const string expectedCode = @"
346
+ Sub Test()
347
+ Sheet1.Name
348
+ End Sub" ;
349
+
350
+ using ( var state = ArrangeParserAndParse ( inputCode , out var component ) )
351
+ {
352
+ var inspection = new SheetAccessedUsingStringInspection ( state ) ;
353
+ var inspectionResults = inspection . GetInspectionResults ( CancellationToken . None ) ;
354
+
355
+ new AccessSheetUsingCodeNameQuickFix ( state ) . Fix ( inspectionResults . First ( ) ) ;
356
+ Assert . AreEqual ( expectedCode , state . GetRewriter ( component ) . GetText ( ) ) ;
357
+ }
358
+ }
359
+
279
360
private static RubberduckParserState ArrangeParserAndParse ( string inputCode , out IVBComponent component )
280
361
{
281
362
var builder = new MockVbeBuilder ( ) ;
0 commit comments