Skip to content

Commit f32c499

Browse files
committed
Add a few tests
1 parent 47ca544 commit f32c499

File tree

3 files changed

+92
-0
lines changed

3 files changed

+92
-0
lines changed

RubberduckTests/Inspections/ImplicitByRefParameterInspectionTests.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,36 @@ Sub IClass1_Foo(arg1 As Integer)
173173
Assert.AreEqual(1, inspectionResults.Count());
174174
}
175175

176+
[TestMethod]
177+
[TestCategory("Inspections")]
178+
public void ImplicitByRefParameter_DoesNotReturnResult_BuiltInEvent()
179+
{
180+
//Input
181+
const string inputCode =
182+
@"Private Sub UserForm_Zoom(Percent As Integer)
183+
184+
End Sub";
185+
186+
//Arrange
187+
var builder = new MockVbeBuilder();
188+
var project = builder.ProjectBuilder("TestProject1", vbext_ProjectProtection.vbext_pp_none)
189+
.AddComponent("Class1", vbext_ComponentType.vbext_ct_MSForm, inputCode)
190+
.Build();
191+
var vbe = builder.AddProject(project).Build();
192+
193+
var mockHost = new Mock<IHostApplication>();
194+
mockHost.SetupAllProperties();
195+
var parser = MockParser.Create(vbe.Object, new RubberduckParserState());
196+
197+
parser.Parse();
198+
if (parser.State.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); }
199+
200+
var inspection = new ImplicitByRefParameterInspection(parser.State);
201+
var inspectionResults = inspection.GetInspectionResults();
202+
203+
Assert.AreEqual(0, inspectionResults.Count());
204+
}
205+
176206
[TestMethod]
177207
[TestCategory("Inspections")]
178208
public void ImplicitByRefParameter_QuickFixWorks_PassByRef()

RubberduckTests/Inspections/ParameterCanBeByValInspectionTests.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,32 @@ public void ParameterCanByByVal_DoesNotReturnResult_PassedByRefAndAssigned()
139139
Assert.AreEqual(0, inspectionResults.Count());
140140
}
141141

142+
[TestMethod]
143+
[TestCategory("Inspections")]
144+
public void ParameterCanByByVal_DoesNotReturnResult_BuiltInEventParam()
145+
{
146+
const string inputCode =
147+
@"Sub Foo(ByRef arg1 As String)
148+
arg1 = ""test""
149+
End Sub";
150+
151+
//Arrange
152+
var builder = new MockVbeBuilder();
153+
VBComponent component;
154+
var vbe = builder.BuildFromSingleStandardModule(inputCode, out component);
155+
var mockHost = new Mock<IHostApplication>();
156+
mockHost.SetupAllProperties();
157+
var parser = MockParser.Create(vbe.Object, new RubberduckParserState());
158+
159+
parser.Parse();
160+
if (parser.State.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); }
161+
162+
var inspection = new ParameterCanBeByValInspection(parser.State);
163+
var inspectionResults = inspection.GetInspectionResults();
164+
165+
Assert.AreEqual(0, inspectionResults.Count());
166+
}
167+
142168
[TestMethod]
143169
[TestCategory("Inspections")]
144170
public void ParameterCanByByVal_ReturnsResult_SomeParams()

RubberduckTests/Inspections/ProcedureShouldBeFunctionInspectionTests.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,42 @@ Private Sub abc_Foo(ByRef arg1 As Integer)
290290
Assert.AreEqual(0, inspectionResults.Count());
291291
}
292292

293+
[TestMethod]
294+
[TestCategory("Inspections")]
295+
public void ProcedureShouldBeFunction_DoesNotReturnResult_BuiltInEventImplementation()
296+
{
297+
//Input
298+
const string inputCode =
299+
@"Private Sub UserForm_Zoom(Percent As Integer)
300+
301+
End Sub";
302+
303+
//Arrange
304+
var settings = new Mock<IGeneralConfigService>();
305+
var config = GetTestConfig();
306+
settings.Setup(x => x.LoadConfiguration()).Returns(config);
307+
308+
var builder = new MockVbeBuilder();
309+
var project = builder.ProjectBuilder("TestProject1", vbext_ProjectProtection.vbext_pp_none)
310+
.AddComponent("Class1", vbext_ComponentType.vbext_ct_MSForm, inputCode)
311+
.Build();
312+
var vbe = builder.AddProject(project).Build();
313+
314+
var mockHost = new Mock<IHostApplication>();
315+
mockHost.SetupAllProperties();
316+
var parser = MockParser.Create(vbe.Object, new RubberduckParserState());
317+
318+
parser.Parse();
319+
if (parser.State.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); }
320+
321+
var inspection = new ProcedureCanBeWrittenAsFunctionInspection(parser.State);
322+
var inspector = new Inspector(settings.Object, new IInspection[] { inspection });
323+
324+
var inspectionResults = inspector.FindIssuesAsync(parser.State, CancellationToken.None).Result;
325+
326+
Assert.AreEqual(0, inspectionResults.Count());
327+
}
328+
293329
[TestMethod]
294330
[TestCategory("Inspections")]
295331
public void ProcedureShouldBeFunction_QuickFixWorks()

0 commit comments

Comments
 (0)