@@ -16,23 +16,129 @@ public class AssignedByValParameterMakeLocalCopyQuickFixTests
16
16
{
17
17
[ Test ]
18
18
[ Category ( "QuickFixes" ) ]
19
- public void AssignedByValParameter_LocalVariableAssignment ( )
19
+ public void AssignedByValParameter_LocalVariableAssignment_Sub ( )
20
20
{
21
21
var inputCode =
22
- @"Public Sub Foo(ByVal arg1 As String)
22
+ @"Public Sub Foo(ByVal arg1 As String)
23
23
Let arg1 = ""test""
24
24
End Sub" ;
25
25
var expectedCode =
26
- @"Public Sub Foo(ByVal arg1 As String)
27
- Dim localArg1 As String
28
- localArg1 = arg1
26
+ @"Public Sub Foo(ByVal arg1 As String)
27
+ Dim localArg1 As String
28
+ localArg1 = arg1
29
29
Let localArg1 = ""test""
30
30
End Sub" ;
31
31
32
32
var quickFixResult = ApplyLocalVariableQuickFixToCodeFragment ( inputCode ) ;
33
33
Assert . AreEqual ( expectedCode , quickFixResult ) ;
34
34
}
35
35
36
+ [ Test ]
37
+ [ Category ( "QuickFixes" ) ]
38
+ public void AssignedByValParameter_LocalVariableAssignment_SubWithCommentn ( )
39
+ {
40
+ var inputCode =
41
+ @"Public Sub Foo(ByVal arg1 As String) 'Comment is here _
42
+ and here _
43
+ and here
44
+ Let arg1 = ""test""
45
+ End Sub" ;
46
+ var expectedCode =
47
+ @"Public Sub Foo(ByVal arg1 As String) 'Comment is here _
48
+ and here _
49
+ and here
50
+ Dim localArg1 As String
51
+ localArg1 = arg1
52
+ Let localArg1 = ""test""
53
+ End Sub" ;
54
+
55
+ var quickFixResult = ApplyLocalVariableQuickFixToCodeFragment ( inputCode ) ;
56
+ Assert . AreEqual ( expectedCode , quickFixResult ) ;
57
+ }
58
+
59
+ [ Test ]
60
+ [ Category ( "QuickFixes" ) ]
61
+ public void AssignedByValParameter_LocalVariableAssignment_Function ( )
62
+ {
63
+ var inputCode =
64
+ @"Public Function Foo(ByVal arg1 As String) As String
65
+ arg1 = ""test""
66
+ Foo = arg1
67
+ End Function" ;
68
+ var expectedCode =
69
+ @"Public Function Foo(ByVal arg1 As String) As String
70
+ Dim localArg1 As String
71
+ localArg1 = arg1
72
+ localArg1 = ""test""
73
+ Foo = localArg1
74
+ End Function" ;
75
+
76
+ var quickFixResult = ApplyLocalVariableQuickFixToCodeFragment ( inputCode ) ;
77
+ Assert . AreEqual ( expectedCode , quickFixResult ) ;
78
+ }
79
+
80
+ [ Test ]
81
+ [ Category ( "QuickFixes" ) ]
82
+ public void AssignedByValParameter_LocalVariableAssignment_FunctionWithComment ( )
83
+ {
84
+ var inputCode =
85
+ @"Public Function Foo(ByVal arg1 As String) As String 'This is a comment
86
+ arg1 = ""test""
87
+ Foo = arg1
88
+ End Function" ;
89
+ var expectedCode =
90
+ @"Public Function Foo(ByVal arg1 As String) As String 'This is a comment
91
+ Dim localArg1 As String
92
+ localArg1 = arg1
93
+ localArg1 = ""test""
94
+ Foo = localArg1
95
+ End Function" ;
96
+
97
+ var quickFixResult = ApplyLocalVariableQuickFixToCodeFragment ( inputCode ) ;
98
+ Assert . AreEqual ( expectedCode , quickFixResult ) ;
99
+ }
100
+
101
+ [ Test ]
102
+ [ Category ( "QuickFixes" ) ]
103
+ public void AssignedByValParameter_LocalVariableAssignment_Property ( )
104
+ {
105
+ var inputCode =
106
+ @"
107
+ Option Explicit
108
+ Private mBar as Long
109
+ Public Property Let Foo(ByVal bar As Long)
110
+ bar = 42
111
+ bar = bar * 2
112
+ mBar = bar
113
+ End Property
114
+
115
+ Public Property Get Foo() As Long
116
+ Dim bar as Long
117
+ bar = 12
118
+ Foo = mBar
119
+ End Property
120
+ " ;
121
+ var expectedCode =
122
+ @"
123
+ Option Explicit
124
+ Private mBar as Long
125
+ Public Property Let Foo(ByVal bar As Long)
126
+ Dim localBar As Long
127
+ localBar = bar
128
+ localBar = 42
129
+ localBar = localBar * 2
130
+ mBar = localBar
131
+ End Property
132
+
133
+ Public Property Get Foo() As Long
134
+ Dim bar as Long
135
+ bar = 12
136
+ Foo = mBar
137
+ End Property
138
+ " ;
139
+ var quickFixResult = ApplyLocalVariableQuickFixToCodeFragment ( inputCode ) ;
140
+ Assert . AreEqual ( expectedCode , quickFixResult ) ;
141
+ }
36
142
[ Test ]
37
143
[ Category ( "QuickFixes" ) ]
38
144
public void AssignedByValParameter_LocalVariableAssignment_ComplexFormat ( )
@@ -56,8 +162,8 @@ ByRef _
56
162
bar, _
57
163
ByRef barbecue _
58
164
)
59
- Dim localFoo As Long
60
- localFoo = foo
165
+ Dim localFoo As Long
166
+ localFoo = foo
61
167
localFoo = 4
62
168
bar = barbecue * _
63
169
bar + localFoo / barbecue
@@ -83,8 +189,8 @@ End Sub"
83
189
var expectedCode =
84
190
@"
85
191
Public Sub Foo(ByVal arg1 As String)
86
- Dim localArg12 As String
87
- localArg12 = arg1
192
+ Dim localArg12 As String
193
+ localArg12 = arg1
88
194
Dim fooVar, _
89
195
localArg1 As Long
90
196
Let localArg12 = ""test""
@@ -178,8 +284,8 @@ End Sub"
178
284
var expectedCode =
179
285
@"
180
286
Public Sub Foo(ByVal target As Range)
181
- Dim localTarget As Range
182
- Set localTarget = target
287
+ Dim localTarget As Range
288
+ Set localTarget = target
183
289
Set localTarget = Selection
184
290
End Sub"
185
291
;
@@ -201,8 +307,8 @@ End Sub"
201
307
var expectedCode =
202
308
@"
203
309
Public Sub Foo(FirstArg As Long, ByVal arg1)
204
- Dim localArg1 As Variant
205
- localArg1 = arg1
310
+ Dim localArg1 As Variant
311
+ localArg1 = arg1
206
312
localArg1 = Range(""A1: C4"")
207
313
End Sub"
208
314
;
@@ -236,8 +342,8 @@ Enum TestEnum
236
342
End Enum
237
343
238
344
Public Sub Foo(FirstArg As Long, ByVal arg1 As TestEnum)
239
- Dim localArg1 As TestEnum
240
- localArg1 = arg1
345
+ Dim localArg1 As TestEnum
346
+ localArg1 = arg1
241
347
localArg1 = EnumThree
242
348
End Sub"
243
349
;
0 commit comments