Skip to content

Commit

Permalink
Merge branch 'next' into next
Browse files Browse the repository at this point in the history
  • Loading branch information
retailcoder committed Oct 5, 2016
2 parents ccfbfa9 + 88f6127 commit b2ff5b8
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 1 deletion.
2 changes: 1 addition & 1 deletion RetailCoder.VBE/Common/DeclarationExtensions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ public static IEnumerable<Declaration> FindBuiltInEventHandlers(this IEnumerable
var classModuleHandlers = declarationList.Where(item =>
item.DeclarationType == DeclarationType.Procedure &&
item.ParentDeclaration.DeclarationType == DeclarationType.ClassModule &&
(item.IdentifierName == "Class_Initialize" || item.IdentifierName == "Class_Terminate"));
(item.IdentifierName.Equals("Class_Initialize", StringComparison.InvariantCultureIgnoreCase) || item.IdentifierName.Equals("Class_Terminate", StringComparison.InvariantCultureIgnoreCase)));

var handlers = declarationList.Where(declaration => !declaration.IsBuiltIn
&& declaration.DeclarationType == DeclarationType.Procedure
Expand Down
2 changes: 2 additions & 0 deletions RetailCoder.VBE/Inspections/ObjectVariableNotSetInspection.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ public override IEnumerable<InspectionResultBase> GetInspectionResults()
var interestingDeclarations =
State.AllUserDeclarations.Where(item =>
!item.IsSelfAssigned &&
!item.IsArray &&
!ValueTypes.Contains(item.AsTypeName) &&
(item.AsTypeDeclaration == null ||
item.AsTypeDeclaration.DeclarationType != DeclarationType.Enumeration &&
Expand All @@ -72,6 +73,7 @@ public override IEnumerable<InspectionResultBase> GetInspectionResults()
var interestingMembers =
State.AllUserDeclarations.Where(item =>
(item.DeclarationType == DeclarationType.Function || item.DeclarationType == DeclarationType.PropertyGet)
&& !item.IsArray
&& item.IsTypeSpecified
&& !ValueTypes.Contains(item.AsTypeName));

Expand Down
85 changes: 85 additions & 0 deletions RubberduckTests/Inspections/ProcedureNotUsedInspectionTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,91 @@ public void ProcedureNotUsed_NoResultForClassInitialize()
Assert.AreEqual(0, inspectionResults.Count());
}

[TestMethod]
[TestCategory("Inspections")]
public void ProcedureNotUsed_NoResultForCasedClassInitialize()
{
//Input
const string inputCode =
@"Private Sub class_initialize()
End Sub";

//Arrange
var builder = new MockVbeBuilder();
var vbe = builder.ProjectBuilder("TestProject", vbext_ProjectProtection.vbext_pp_none)
.AddComponent("TestClass", vbext_ComponentType.vbext_ct_ClassModule, inputCode)
.MockVbeBuilder().Build();

var mockHost = new Mock<IHostApplication>();
mockHost.SetupAllProperties();
var parser = MockParser.Create(vbe.Object, new RubberduckParserState(new Mock<ISinks>().Object));

parser.Parse(new CancellationTokenSource());
if (parser.State.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); }

var inspection = new ProcedureNotUsedInspection(parser.State);
var inspectionResults = inspection.GetInspectionResults();

Assert.AreEqual(0, inspectionResults.Count());
}

[TestMethod]
[TestCategory("Inspections")]
public void ProcedureNotUsed_NoResultForClassTerminate()
{
//Input
const string inputCode =
@"Private Sub Class_Terminate()
End Sub";

//Arrange
var builder = new MockVbeBuilder();
var vbe = builder.ProjectBuilder("TestProject", vbext_ProjectProtection.vbext_pp_none)
.AddComponent("TestClass", vbext_ComponentType.vbext_ct_ClassModule, inputCode)
.MockVbeBuilder().Build();

var mockHost = new Mock<IHostApplication>();
mockHost.SetupAllProperties();
var parser = MockParser.Create(vbe.Object, new RubberduckParserState(new Mock<ISinks>().Object));

parser.Parse(new CancellationTokenSource());
if (parser.State.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); }

var inspection = new ProcedureNotUsedInspection(parser.State);
var inspectionResults = inspection.GetInspectionResults();

Assert.AreEqual(0, inspectionResults.Count());
}

[TestMethod]
[TestCategory("Inspections")]
public void ProcedureNotUsed_NoResultForCasedClassTerminate()
{
//Input
const string inputCode =
@"Private Sub class_terminate()
End Sub";

//Arrange
var builder = new MockVbeBuilder();
var vbe = builder.ProjectBuilder("TestProject", vbext_ProjectProtection.vbext_pp_none)
.AddComponent("TestClass", vbext_ComponentType.vbext_ct_ClassModule, inputCode)
.MockVbeBuilder().Build();

var mockHost = new Mock<IHostApplication>();
mockHost.SetupAllProperties();
var parser = MockParser.Create(vbe.Object, new RubberduckParserState(new Mock<ISinks>().Object));

parser.Parse(new CancellationTokenSource());
if (parser.State.Status >= ParserState.Error) { Assert.Inconclusive("Parser Error"); }

var inspection = new ProcedureNotUsedInspection(parser.State);
var inspectionResults = inspection.GetInspectionResults();

Assert.AreEqual(0, inspectionResults.Count());
}


[TestMethod]
[TestCategory("Inspections")]
public void ProcedureNotUsed_Ignored_DoesNotReturnResult()
Expand Down

0 comments on commit b2ff5b8

Please sign in to comment.