11
11
using RubberduckTests . Mocks ;
12
12
using System . Collections . Generic ;
13
13
using System ;
14
+ using Rubberduck . Parsing . Symbols ;
15
+ using Rubberduck . VBEditor . SafeComWrappers ;
14
16
15
17
namespace RubberduckTests . Inspections
16
18
{
@@ -107,7 +109,7 @@ public void AssignedByValParameter_QuickFixWorks()
107
109
Let barByVal = ""test""
108
110
End Sub" ;
109
111
110
- var quickFixResult = ApplyPassParameterByReferenceQuickFixToVBAFragment ( inputCode ) ;
112
+ var quickFixResult = ApplyPassParameterByReferenceQuickFixToCodeFragment ( inputCode ) ;
111
113
Assert . AreEqual ( expectedCode , quickFixResult ) ;
112
114
113
115
//check when ByVal argument is one of several parameters
@@ -120,7 +122,7 @@ public void AssignedByValParameter_QuickFixWorks()
120
122
Let barByVal = ""test""
121
123
End Sub" ;
122
124
123
- quickFixResult = ApplyPassParameterByReferenceQuickFixToVBAFragment ( inputCode ) ;
125
+ quickFixResult = ApplyPassParameterByReferenceQuickFixToCodeFragment ( inputCode ) ;
124
126
Assert . AreEqual ( expectedCode , quickFixResult ) ;
125
127
126
128
inputCode =
151
153
End Sub
152
154
"
153
155
;
154
- quickFixResult = ApplyPassParameterByReferenceQuickFixToVBAFragment ( inputCode ) ;
156
+ quickFixResult = ApplyPassParameterByReferenceQuickFixToCodeFragment ( inputCode ) ;
155
157
Assert . AreEqual ( expectedCode , quickFixResult ) ;
156
158
157
159
inputCode =
171
173
End Sub
172
174
" ;
173
175
174
- quickFixResult = ApplyPassParameterByReferenceQuickFixToVBAFragment ( inputCode ) ;
176
+ quickFixResult = ApplyPassParameterByReferenceQuickFixToCodeFragment ( inputCode ) ;
175
177
Assert . AreEqual ( expectedCode , quickFixResult ) ;
176
178
177
179
inputCode =
191
193
End Sub
192
194
" ;
193
195
194
- quickFixResult = ApplyPassParameterByReferenceQuickFixToVBAFragment ( inputCode ) ;
196
+ quickFixResult = ApplyPassParameterByReferenceQuickFixToCodeFragment ( inputCode ) ;
195
197
Assert . AreEqual ( expectedCode , quickFixResult ) ;
196
198
197
199
inputCode =
209
211
End Sub
210
212
" ;
211
213
212
- quickFixResult = ApplyPassParameterByReferenceQuickFixToVBAFragment ( inputCode ) ;
214
+ quickFixResult = ApplyPassParameterByReferenceQuickFixToCodeFragment ( inputCode ) ;
213
215
Assert . AreEqual ( expectedCode , quickFixResult ) ;
214
216
215
217
inputCode =
@@ -237,7 +239,7 @@ ByRef barbecue _
237
239
bar + foo / barbecue
238
240
End Sub
239
241
" ;
240
- quickFixResult = ApplyPassParameterByReferenceQuickFixToVBAFragment ( inputCode ) ;
242
+ quickFixResult = ApplyPassParameterByReferenceQuickFixToCodeFragment ( inputCode ) ;
241
243
Assert . AreEqual ( expectedCode , quickFixResult ) ;
242
244
243
245
}
@@ -258,7 +260,7 @@ Public Sub Foo(ByVal arg1 As String)
258
260
Let arg1 = ""test""
259
261
End Sub" ;
260
262
261
- var quickFixResult = ApplyIgnoreOnceQuickFixToVBAFragment ( inputCode ) ;
263
+ var quickFixResult = ApplyIgnoreOnceQuickFixToCodeFragment ( inputCode ) ;
262
264
Assert . AreEqual ( expectedCode , quickFixResult ) ;
263
265
}
264
266
@@ -278,7 +280,7 @@ Dim xArg1 As String
278
280
Let xArg1 = ""test""
279
281
End Sub" ;
280
282
281
- var quickFixResult = ApplyLocalVariableQuickFixToVBAFragment ( inputCode ) ;
283
+ var quickFixResult = ApplyLocalVariableQuickFixToCodeFragment ( inputCode ) ;
282
284
Assert . AreEqual ( expectedCode , quickFixResult ) ;
283
285
}
284
286
@@ -303,7 +305,7 @@ Public Sub Foo(ByVal arg1 As String)
303
305
End Sub"
304
306
;
305
307
306
- var quickFixResult = ApplyLocalVariableQuickFixToVBAFragment ( inputCode ) ;
308
+ var quickFixResult = ApplyLocalVariableQuickFixToCodeFragment ( inputCode ) ;
307
309
Assert . AreEqual ( expectedCode , quickFixResult ) ;
308
310
309
311
inputCode =
@@ -322,7 +324,7 @@ Public Sub Foo(ByVal arg1 As String)
322
324
End Sub"
323
325
;
324
326
325
- quickFixResult = ApplyLocalVariableQuickFixToVBAFragment ( inputCode ) ;
327
+ quickFixResult = ApplyLocalVariableQuickFixToCodeFragment ( inputCode ) ;
326
328
Assert . AreEqual ( expectedCode , quickFixResult ) ;
327
329
inputCode =
328
330
@"
@@ -341,7 +343,7 @@ xArg1 As Long
341
343
Let arg1 = ""test""
342
344
End Sub"
343
345
;
344
- quickFixResult = ApplyLocalVariableQuickFixToVBAFragment ( inputCode ) ;
346
+ quickFixResult = ApplyLocalVariableQuickFixToCodeFragment ( inputCode ) ;
345
347
Assert . AreEqual ( expectedCode , quickFixResult ) ;
346
348
347
349
inputCode =
@@ -372,7 +374,7 @@ End Sub
372
374
"
373
375
;
374
376
375
- quickFixResult = ApplyLocalVariableQuickFixToVBAFragment ( inputCode ) ;
377
+ quickFixResult = ApplyLocalVariableQuickFixToCodeFragment ( inputCode ) ;
376
378
Assert . AreEqual ( expectedCode , quickFixResult ) ;
377
379
}
378
380
@@ -419,7 +421,7 @@ Dim arg1 As String
419
421
End Sub"
420
422
;
421
423
422
- var quickFixResult = ApplyLocalVariableQuickFixToVBAFragment ( inputCode ) ;
424
+ var quickFixResult = ApplyLocalVariableQuickFixToCodeFragment ( inputCode ) ;
423
425
Assert . AreEqual ( expectedCode , quickFixResult ) ;
424
426
}
425
427
@@ -471,7 +473,7 @@ Public Function bar() As Long
471
473
End Function
472
474
" ;
473
475
474
- var quickFixResult = ApplyLocalVariableQuickFixToVBAFragment ( inputCode ) ;
476
+ var quickFixResult = ApplyLocalVariableQuickFixToCodeFragment ( inputCode ) ;
475
477
Assert . AreEqual ( expectedCode , quickFixResult ) ;
476
478
}
477
479
@@ -531,7 +533,7 @@ Dim barsAlot as string
531
533
End Sub
532
534
" ;
533
535
534
- var quickFixResult = ApplyLocalVariableQuickFixToVBAFragment ( inputCode ) ;
536
+ var quickFixResult = ApplyLocalVariableQuickFixToCodeFragment ( inputCode ) ;
535
537
Assert . AreEqual ( expectedCode , quickFixResult ) ;
536
538
}
537
539
@@ -560,10 +562,39 @@ End If
560
562
MessingWithByValParameters = xMessWithThis
561
563
End Function
562
564
" ;
563
- var quickFixResult = ApplyLocalVariableQuickFixToVBAFragment ( inputCode ) ;
565
+ var quickFixResult = ApplyLocalVariableQuickFixToCodeFragment ( inputCode ) ;
564
566
Assert . AreEqual ( expectedCode , quickFixResult ) ;
565
567
}
566
568
569
+ [ TestMethod ]
570
+ [ TestCategory ( "Inspections" ) ]
571
+ public void NoResultForLeftHandSideMemberAssignment ( )
572
+ {
573
+ var class1 = @"
574
+ Option Explicit
575
+ Private mSomething As Long
576
+ Public Property Get Something() As Long
577
+ Something = mSomething
578
+ End Property
579
+ Public Property Let Something(ByVal value As Long)
580
+ mSomething = value
581
+ End Property
582
+ " ;
583
+ var caller = @"
584
+ Option Explicit
585
+ Private Sub DoSomething(ByVal foo As Class1)
586
+ foo.Something = 42
587
+ End Sub
588
+ " ;
589
+ var builder = new MockVbeBuilder ( ) ;
590
+ var vbe = builder . ProjectBuilder ( "TestProject" , ProjectProtection . Unprotected )
591
+ . AddComponent ( "Class1" , ComponentType . ClassModule , class1 )
592
+ . AddComponent ( "Module1" , ComponentType . StandardModule , caller )
593
+ . MockVbeBuilder ( )
594
+ . Build ( ) ;
595
+ var results = GetInspectionResults ( vbe ) ;
596
+ Assert . AreEqual ( 0 , results . Count ( ) ) ;
597
+ }
567
598
568
599
[ TestMethod ]
569
600
[ TestCategory ( "Inspections" ) ]
@@ -583,7 +614,8 @@ public void InspectionName()
583
614
Assert . AreEqual ( inspectionName , inspection . Name ) ;
584
615
}
585
616
586
- private string ApplyPassParameterByReferenceQuickFixToVBAFragment ( string inputCode )
617
+
618
+ private string ApplyPassParameterByReferenceQuickFixToCodeFragment ( string inputCode )
587
619
{
588
620
var vbe = BuildMockVBEStandardModuleForVBAFragment ( inputCode ) ;
589
621
var inspectionResults = GetInspectionResults ( vbe ) ;
@@ -593,7 +625,7 @@ private string ApplyPassParameterByReferenceQuickFixToVBAFragment(string inputCo
593
625
return GetModuleContent ( vbe ) ;
594
626
}
595
627
596
- private string ApplyLocalVariableQuickFixToVBAFragment ( string inputCode )
628
+ private string ApplyLocalVariableQuickFixToCodeFragment ( string inputCode )
597
629
{
598
630
var vbe = BuildMockVBEStandardModuleForVBAFragment ( inputCode ) ;
599
631
var inspectionResults = GetInspectionResults ( vbe ) ;
@@ -605,7 +637,8 @@ private string ApplyLocalVariableQuickFixToVBAFragment(string inputCode)
605
637
606
638
return GetModuleContent ( vbe ) ;
607
639
}
608
- private string ApplyIgnoreOnceQuickFixToVBAFragment ( string inputCode )
640
+
641
+ private string ApplyIgnoreOnceQuickFixToCodeFragment ( string inputCode )
609
642
{
610
643
var vbe = BuildMockVBEStandardModuleForVBAFragment ( inputCode ) ;
611
644
var inspectionResults = GetInspectionResults ( vbe ) ;
@@ -614,28 +647,33 @@ private string ApplyIgnoreOnceQuickFixToVBAFragment(string inputCode)
614
647
615
648
return GetModuleContent ( vbe ) ;
616
649
}
650
+
617
651
private string GetModuleContent ( Mock < IVBE > vbe )
618
652
{
619
653
var project = vbe . Object . VBProjects [ 0 ] ;
620
654
var module = project . VBComponents [ 0 ] . CodeModule ;
621
655
return module . Content ( ) ;
622
656
}
657
+
623
658
private IEnumerable < Rubberduck . Inspections . Abstract . InspectionResultBase > GetInspectionResults ( string inputCode )
624
659
{
625
660
var vbe = BuildMockVBEStandardModuleForVBAFragment ( inputCode ) ;
626
661
return GetInspectionResults ( vbe ) ;
627
662
}
663
+
628
664
private IEnumerable < Rubberduck . Inspections . Abstract . InspectionResultBase > GetInspectionResults ( Mock < IVBE > vbe )
629
665
{
630
666
var parser = GetMockParseCoordinator ( vbe ) ;
631
667
var inspection = new AssignedByValParameterInspection ( parser . State ) ;
632
668
return inspection . GetInspectionResults ( ) ;
633
669
}
670
+
634
671
private void AssertVbaFragmentYieldsExpectedInspectionResultCount ( string inputCode , int expectedCount )
635
672
{
636
673
var inspectionResults = GetInspectionResults ( inputCode ) ;
637
674
Assert . AreEqual ( expectedCount , inspectionResults . Count ( ) ) ;
638
675
}
676
+
639
677
private Mock < IVBE > BuildMockVBEStandardModuleForVBAFragment ( string inputCode )
640
678
{
641
679
var builder = new MockVbeBuilder ( ) ;
0 commit comments