Skip to content

Commit d53c8f7

Browse files
committed
Move WriteOnlyPropertyInspectionTests for QuickFixes into relevant files under RD.QuickFixes
1 parent 4266b5c commit d53c8f7

File tree

4 files changed

+130
-116
lines changed

4 files changed

+130
-116
lines changed

RubberduckTests/Inspections/WriteOnlyPropertyInspectionTests.cs

Lines changed: 0 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
using System.Threading;
33
using Microsoft.VisualStudio.TestTools.UnitTesting;
44
using Rubberduck.Inspections.Concrete;
5-
using Rubberduck.Inspections.QuickFixes;
65
using Rubberduck.Parsing.Inspections.Resources;
76
using Rubberduck.Parsing.VBA;
87
using Rubberduck.VBEditor.SafeComWrappers;
@@ -174,121 +173,6 @@ Property Let Foo(value)
174173
Assert.IsFalse(inspectionResults.Any());
175174
}
176175

177-
[TestMethod]
178-
[TestCategory("Inspections")]
179-
public void WriteOnlyProperty_AddPropertyGetQuickFixWorks_ImplicitTypesAndAccessibility()
180-
{
181-
const string inputCode =
182-
@"Property Let Foo(value)
183-
End Property";
184-
185-
const string expectedCode =
186-
@"Public Property Get Foo() As Variant
187-
End Property
188-
189-
Property Let Foo(value)
190-
End Property";
191-
192-
193-
IVBComponent component;
194-
var vbe = MockVbeBuilder.BuildFromSingleModule(inputCode, ComponentType.ClassModule, out component);
195-
196-
var state = MockParser.CreateAndParse(vbe.Object);
197-
198-
var inspection = new WriteOnlyPropertyInspection(state);
199-
var inspectionResults = inspection.GetInspectionResults();
200-
201-
new WriteOnlyPropertyQuickFix(state).Fix(inspectionResults.First());
202-
Assert.AreEqual(expectedCode, state.GetRewriter(component).GetText());
203-
}
204-
205-
[TestMethod]
206-
[TestCategory("Inspections")]
207-
public void WriteOnlyProperty_AddPropertyGetQuickFixWorks_ExlicitTypesAndAccessibility()
208-
{
209-
const string inputCode =
210-
@"Public Property Let Foo(ByVal value As Integer)
211-
End Property";
212-
213-
const string expectedCode =
214-
@"Public Property Get Foo() As Integer
215-
End Property
216-
217-
Public Property Let Foo(ByVal value As Integer)
218-
End Property";
219-
220-
IVBComponent component;
221-
var vbe = MockVbeBuilder.BuildFromSingleModule(inputCode, ComponentType.ClassModule, out component);
222-
223-
var state = MockParser.CreateAndParse(vbe.Object);
224-
225-
var inspection = new WriteOnlyPropertyInspection(state);
226-
var inspectionResults = inspection.GetInspectionResults();
227-
228-
new WriteOnlyPropertyQuickFix(state).Fix(inspectionResults.First());
229-
Assert.AreEqual(expectedCode, state.GetRewriter(component).GetText());
230-
}
231-
232-
[TestMethod]
233-
[TestCategory("Inspections")]
234-
public void WriteOnlyProperty_AddPropertyGetQuickFixWorks_MultipleParams()
235-
{
236-
const string inputCode =
237-
@"Public Property Let Foo(value1, ByVal value2 As Integer, ByRef value3 As Long, value4 As Date, ByVal value5, value6 As String)
238-
End Property";
239-
240-
const string expectedCode =
241-
@"Public Property Get Foo(ByRef value1 As Variant, ByVal value2 As Integer, ByRef value3 As Long, ByRef value4 As Date, ByVal value5 As Variant) As String
242-
End Property
243-
244-
Public Property Let Foo(value1, ByVal value2 As Integer, ByRef value3 As Long, value4 As Date, ByVal value5, value6 As String)
245-
End Property";
246-
247-
IVBComponent component;
248-
var vbe = MockVbeBuilder.BuildFromSingleModule(inputCode, ComponentType.ClassModule, out component);
249-
250-
var state = MockParser.CreateAndParse(vbe.Object);
251-
252-
var inspection = new WriteOnlyPropertyInspection(state);
253-
var inspectionResults = inspection.GetInspectionResults();
254-
255-
new WriteOnlyPropertyQuickFix(state).Fix(inspectionResults.First());
256-
Assert.AreEqual(expectedCode, state.GetRewriter(component).GetText());
257-
}
258-
259-
[TestMethod]
260-
[TestCategory("Inspections")]
261-
public void WriteOnlyProperty_IgnoreQuickFixWorks()
262-
{
263-
const string inputCode =
264-
@"Property Let Foo(value)
265-
End Property";
266-
267-
const string expectedCode =
268-
@"'@Ignore WriteOnlyProperty
269-
Property Let Foo(value)
270-
End Property";
271-
272-
var builder = new MockVbeBuilder();
273-
var project = builder.ProjectBuilder("VBAProject", ProjectProtection.Unprotected)
274-
.AddComponent("MyClass", ComponentType.ClassModule, inputCode)
275-
.Build();
276-
var component = project.Object.VBComponents[0];
277-
var vbe = builder.AddProject(project).Build();
278-
279-
var parser = MockParser.Create(vbe.Object);
280-
281-
parser.Parse(new CancellationTokenSource());
282-
if (parser.State.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); }
283-
284-
var inspection = new WriteOnlyPropertyInspection(parser.State);
285-
var inspectionResults = inspection.GetInspectionResults();
286-
287-
new IgnoreOnceQuickFix(parser.State, new[] {inspection}).Fix(inspectionResults.First());
288-
289-
Assert.AreEqual(expectedCode, parser.State.GetRewriter(component).GetText());
290-
}
291-
292176
[TestMethod]
293177
[TestCategory("Inspections")]
294178
public void InspectionType()

RubberduckTests/QuickFixes/IgnoreOnceQuickFixTests.cs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1107,6 +1107,38 @@ Sub Foo(arg1)
11071107
Assert.AreEqual(expectedCode, state.GetRewriter(component).GetText());
11081108
}
11091109

1110+
[TestMethod]
1111+
[TestCategory("QuickFixes")]
1112+
public void WriteOnlyProperty_IgnoreQuickFixWorks()
1113+
{
1114+
const string inputCode =
1115+
@"Property Let Foo(value)
1116+
End Property";
1117+
1118+
const string expectedCode =
1119+
@"'@Ignore WriteOnlyProperty
1120+
Property Let Foo(value)
1121+
End Property";
1122+
1123+
var builder = new MockVbeBuilder();
1124+
var project = builder.ProjectBuilder("VBAProject", ProjectProtection.Unprotected)
1125+
.AddComponent("MyClass", ComponentType.ClassModule, inputCode)
1126+
.Build();
1127+
var component = project.Object.VBComponents[0];
1128+
var vbe = builder.AddProject(project).Build();
1129+
1130+
var parser = MockParser.Create(vbe.Object);
1131+
1132+
parser.Parse(new CancellationTokenSource());
1133+
if (parser.State.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); }
1134+
1135+
var inspection = new WriteOnlyPropertyInspection(parser.State);
1136+
var inspectionResults = inspection.GetInspectionResults();
1137+
1138+
new IgnoreOnceQuickFix(parser.State, new[] { inspection }).Fix(inspectionResults.First());
1139+
1140+
Assert.AreEqual(expectedCode, parser.State.GetRewriter(component).GetText());
1141+
}
11101142

11111143
}
11121144
}
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
using System.Linq;
2+
using Microsoft.VisualStudio.TestTools.UnitTesting;
3+
using Rubberduck.Inspections.Concrete;
4+
using Rubberduck.Inspections.QuickFixes;
5+
using Rubberduck.VBEditor.SafeComWrappers;
6+
using Rubberduck.VBEditor.SafeComWrappers.Abstract;
7+
using RubberduckTests.Mocks;
8+
9+
namespace RubberduckTests.QuickFixes
10+
{
11+
[TestClass]
12+
public class WriteOnlyPropertyQuickFixTests
13+
{
14+
[TestMethod]
15+
[TestCategory("QuickFixes")]
16+
public void WriteOnlyProperty_AddPropertyGetQuickFixWorks_ImplicitTypesAndAccessibility()
17+
{
18+
const string inputCode =
19+
@"Property Let Foo(value)
20+
End Property";
21+
22+
const string expectedCode =
23+
@"Public Property Get Foo() As Variant
24+
End Property
25+
26+
Property Let Foo(value)
27+
End Property";
28+
29+
30+
IVBComponent component;
31+
var vbe = MockVbeBuilder.BuildFromSingleModule(inputCode, ComponentType.ClassModule, out component);
32+
33+
var state = MockParser.CreateAndParse(vbe.Object);
34+
35+
var inspection = new WriteOnlyPropertyInspection(state);
36+
var inspectionResults = inspection.GetInspectionResults();
37+
38+
new WriteOnlyPropertyQuickFix(state).Fix(inspectionResults.First());
39+
Assert.AreEqual(expectedCode, state.GetRewriter(component).GetText());
40+
}
41+
42+
[TestMethod]
43+
[TestCategory("QuickFixes")]
44+
public void WriteOnlyProperty_AddPropertyGetQuickFixWorks_ExlicitTypesAndAccessibility()
45+
{
46+
const string inputCode =
47+
@"Public Property Let Foo(ByVal value As Integer)
48+
End Property";
49+
50+
const string expectedCode =
51+
@"Public Property Get Foo() As Integer
52+
End Property
53+
54+
Public Property Let Foo(ByVal value As Integer)
55+
End Property";
56+
57+
IVBComponent component;
58+
var vbe = MockVbeBuilder.BuildFromSingleModule(inputCode, ComponentType.ClassModule, out component);
59+
60+
var state = MockParser.CreateAndParse(vbe.Object);
61+
62+
var inspection = new WriteOnlyPropertyInspection(state);
63+
var inspectionResults = inspection.GetInspectionResults();
64+
65+
new WriteOnlyPropertyQuickFix(state).Fix(inspectionResults.First());
66+
Assert.AreEqual(expectedCode, state.GetRewriter(component).GetText());
67+
}
68+
69+
[TestMethod]
70+
[TestCategory("QuickFixes")]
71+
public void WriteOnlyProperty_AddPropertyGetQuickFixWorks_MultipleParams()
72+
{
73+
const string inputCode =
74+
@"Public Property Let Foo(value1, ByVal value2 As Integer, ByRef value3 As Long, value4 As Date, ByVal value5, value6 As String)
75+
End Property";
76+
77+
const string expectedCode =
78+
@"Public Property Get Foo(ByRef value1 As Variant, ByVal value2 As Integer, ByRef value3 As Long, ByRef value4 As Date, ByVal value5 As Variant) As String
79+
End Property
80+
81+
Public Property Let Foo(value1, ByVal value2 As Integer, ByRef value3 As Long, value4 As Date, ByVal value5, value6 As String)
82+
End Property";
83+
84+
IVBComponent component;
85+
var vbe = MockVbeBuilder.BuildFromSingleModule(inputCode, ComponentType.ClassModule, out component);
86+
87+
var state = MockParser.CreateAndParse(vbe.Object);
88+
89+
var inspection = new WriteOnlyPropertyInspection(state);
90+
var inspectionResults = inspection.GetInspectionResults();
91+
92+
new WriteOnlyPropertyQuickFix(state).Fix(inspectionResults.First());
93+
Assert.AreEqual(expectedCode, state.GetRewriter(component).GetText());
94+
}
95+
96+
}
97+
}

RubberduckTests/RubberduckTests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@
151151
<Compile Include="QuickFixes\SplitMultipleDeclarationsQuickFixTests.cs" />
152152
<Compile Include="QuickFixes\UntypedFunctionUsageQuickFixTests.cs" />
153153
<Compile Include="QuickFixes\UseSetKeywordForObjectAssignmentQuickFixTests.cs" />
154+
<Compile Include="QuickFixes\WriteOnlyPropertyQuickFixTests.cs" />
154155
<Compile Include="SmartIndenter\VerticalSpacingTests.cs" />
155156
<Compile Include="SourceControl\SynchrounouslyConstructedDeclarationFinderFactory.cs" />
156157
<Compile Include="Symbols\AccessibilityCheckTests.cs" />

0 commit comments

Comments
 (0)