@@ -375,7 +375,7 @@ End Function
375
375
}
376
376
377
377
[ Test ]
378
- [ Category ( "Inspections " ) ]
378
+ [ Category ( "QuickFixes " ) ]
379
379
public void RecursiveIndexedDefaultMemberAccessOnDefaultMemberArrayAccess_QuickFixWorks ( )
380
380
{
381
381
var class1Code = @"
@@ -420,6 +420,185 @@ End Function
420
420
Assert . AreEqual ( expectedModuleCode , actualModuleCode ) ;
421
421
}
422
422
423
+ [ Test ]
424
+ [ Category ( "QuickFixes" ) ]
425
+ [ TestCase ( "Foo = cls" , "Foo = cls.Foo" ) ]
426
+ [ TestCase ( "cls = bar" , "cls.Foo = bar" ) ]
427
+ public void OrdinaryImplicitDefaultMemberAccessExpression_QuickFixWorks ( string statement , string resultStatement )
428
+ {
429
+ var class1Code = @"
430
+ Public Function Foo() As Long
431
+ Attribute Foo.VB_UserMemId = 0
432
+ End Function
433
+ " ;
434
+
435
+ var moduleCode = $@ "
436
+ Private Function Foo() As Long
437
+ Dim cls As New Class1
438
+ Dim bar As Long
439
+ { statement }
440
+ End Function
441
+ " ;
442
+
443
+ var expectedModuleCode = $@ "
444
+ Private Function Foo() As Long
445
+ Dim cls As New Class1
446
+ Dim bar As Long
447
+ { resultStatement }
448
+ End Function
449
+ " ;
450
+
451
+ var vbe = MockVbeBuilder . BuildFromModules (
452
+ ( "Class1" , class1Code , ComponentType . ClassModule ) ,
453
+ ( "Module1" , moduleCode , ComponentType . StandardModule ) ) ;
454
+
455
+ var actualModuleCode = ApplyQuickFixToAllInspectionResults ( vbe . Object , "Module1" , state => new ImplicitDefaultMemberAccessInspection ( state ) , CodeKind . AttributesCode ) ;
456
+ Assert . AreEqual ( expectedModuleCode , actualModuleCode ) ;
457
+ }
458
+
459
+ [ Test ]
460
+ [ Category ( "QuickFixes" ) ]
461
+ [ TestCase ( "Foo = cls" , "Foo = cls.Foo().Baz" ) ]
462
+ [ TestCase ( "cls = bar" , "cls.Foo().Baz = bar" ) ]
463
+ public void RecursiveImplicitDefaultMemberAccessExpression_QuickFixWorks ( string statement , string resultStatement )
464
+ {
465
+ var class1Code = @"
466
+ Public Function Foo() As Class2
467
+ Attribute Foo.VB_UserMemId = 0
468
+ End Function
469
+ " ;
470
+
471
+ var class2Code = @"
472
+ Public Function Baz() As Long
473
+ Attribute Baz.VB_UserMemId = 0
474
+ End Function
475
+ " ;
476
+
477
+ var moduleCode = $@ "
478
+ Private Function Foo() As Long
479
+ Dim cls As New Class1
480
+ Dim bar As Long
481
+ { statement }
482
+ End Function
483
+ " ;
484
+
485
+ var expectedModuleCode = $@ "
486
+ Private Function Foo() As Long
487
+ Dim cls As New Class1
488
+ Dim bar As Long
489
+ { resultStatement }
490
+ End Function
491
+ " ;
492
+
493
+ var vbe = MockVbeBuilder . BuildFromModules (
494
+ ( "Class1" , class1Code , ComponentType . ClassModule ) ,
495
+ ( "Class2" , class2Code , ComponentType . ClassModule ) ,
496
+ ( "Module1" , moduleCode , ComponentType . StandardModule ) ) ;
497
+
498
+ var actualModuleCode = ApplyQuickFixToAllInspectionResults ( vbe . Object , "Module1" , state => new ImplicitRecursiveDefaultMemberAccessInspection ( state ) , CodeKind . AttributesCode ) ;
499
+ Assert . AreEqual ( expectedModuleCode , actualModuleCode ) ;
500
+ }
501
+
502
+ [ Test ]
503
+ [ Category ( "QuickFixes" ) ]
504
+ [ TestCase ( "Foo = cls(0)" , "Foo = cls.Foo(0).Baz" ) ]
505
+ [ TestCase ( "cls(0) = bar" , "cls.Foo(0).Baz = bar" ) ]
506
+ public void OrdinaryImplicitDefaultMemberAccessOnDefaultMemberArrayAccess_QuickFixWorks ( string statement , string resultStatement )
507
+ {
508
+ var class1Code = @"
509
+ Public Function Foo() As Class2()
510
+ Attribute Foo.VB_UserMemId = 0
511
+ End Function
512
+ " ;
513
+
514
+ var class2Code = @"
515
+ Public Function Baz() As Long
516
+ Attribute Baz.VB_UserMemId = 0
517
+ End Function
518
+ " ;
519
+
520
+ var moduleCode = $@ "
521
+ Private Function Foo() As Long
522
+ Dim cls As New Class1
523
+ Dim bar As Long
524
+ { statement }
525
+ End Function
526
+ " ;
527
+
528
+ var expectedModuleCode = $@ "
529
+ Private Function Foo() As Long
530
+ Dim cls As New Class1
531
+ Dim bar As Long
532
+ { resultStatement }
533
+ End Function
534
+ " ;
535
+
536
+ var vbe = MockVbeBuilder . BuildFromModules (
537
+ ( "Class1" , class1Code , ComponentType . ClassModule ) ,
538
+ ( "Class2" , class2Code , ComponentType . ClassModule ) ,
539
+ ( "Module1" , moduleCode , ComponentType . StandardModule ) ) ;
540
+
541
+ var actualModuleCode = ApplyQuickFixToAllInspectionResults ( vbe . Object , "Module1" , state => new ImplicitDefaultMemberAccessInspection ( state ) , CodeKind . AttributesCode ) ;
542
+ Assert . AreEqual ( expectedModuleCode , actualModuleCode ) ;
543
+ }
544
+
545
+ [ Test ]
546
+ [ Category ( "QuickFixes" ) ]
547
+ [ TestCase ( "Foo = cls(0)" , "Foo = cls.Barz().Foo(0).Bar().Baz" ) ]
548
+ [ TestCase ( "cls(0) = bar" , "cls.Barz().Foo(0).Bar().Baz = bar" ) ]
549
+ public void RecursiveImplicitDefaultMemberAccessOnRecursiveDefaultMemberArrayAccess_QuickFixWorks ( string statement , string resultStatement )
550
+ {
551
+ var class1Code = @"
552
+ Public Function Foo() As Class4()
553
+ Attribute Foo.VB_UserMemId = 0
554
+ End Function
555
+ " ;
556
+
557
+ var class2Code = @"
558
+ Public Function Baz() As Long
559
+ Attribute Baz.VB_UserMemId = 0
560
+ End Function
561
+ " ;
562
+
563
+ var class3Code = @"
564
+ Public Function Barz() As Class1
565
+ Attribute Barz.VB_UserMemId = 0
566
+ End Function
567
+ " ;
568
+
569
+ var class4Code = @"
570
+ Public Function Bar() As Class2
571
+ Attribute Bar.VB_UserMemId = 0
572
+ End Function
573
+ " ;
574
+
575
+ var moduleCode = $@ "
576
+ Private Function Foo() As Long
577
+ Dim cls As New Class3
578
+ Dim bar As Long
579
+ { statement }
580
+ End Function
581
+ " ;
582
+
583
+ var expectedModuleCode = $@ "
584
+ Private Function Foo() As Long
585
+ Dim cls As New Class3
586
+ Dim bar As Long
587
+ { resultStatement }
588
+ End Function
589
+ " ;
590
+
591
+ var vbe = MockVbeBuilder . BuildFromModules (
592
+ ( "Class1" , class1Code , ComponentType . ClassModule ) ,
593
+ ( "Class2" , class2Code , ComponentType . ClassModule ) ,
594
+ ( "Class3" , class3Code , ComponentType . ClassModule ) ,
595
+ ( "Class4" , class4Code , ComponentType . ClassModule ) ,
596
+ ( "Module1" , moduleCode , ComponentType . StandardModule ) ) ;
597
+
598
+ var actualModuleCode = ApplyQuickFixToAllInspectionResults ( vbe . Object , "Module1" , state => new ImplicitRecursiveDefaultMemberAccessInspection ( state ) , CodeKind . AttributesCode ) ;
599
+ Assert . AreEqual ( expectedModuleCode , actualModuleCode ) ;
600
+ }
601
+
423
602
protected override IQuickFix QuickFix ( RubberduckParserState state )
424
603
{
425
604
return new ExpandDefaultMemberQuickFix ( state ) ;
0 commit comments