Skip to content

Commit 407de69

Browse files
committed
Fix mock for components count
Extend mocks for properties
1 parent 371496a commit 407de69

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

Rubberduck.CodeAnalysis/Inspections/Concrete/SheetAccessedUsingStringInspection.cs

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,20 +101,27 @@ private IVBComponent GetVBComponentMatchingSheetName(IdentifierReferenceInspecti
101101
var sheetName = FormatSheetName(sheetArgumentContext.GetText());
102102
var project = State.Projects.First(p => p.ProjectId == reference.QualifiedName.ProjectId);
103103

104+
105+
//return project.VBComponents.FirstOrDefault(c =>
106+
// c.Type == ComponentType.Document &&
107+
// (string)c.Properties.First(property => property.Name == "Name").Value == sheetName);
104108
using (var components = project.VBComponents)
105109
{
106110
for (var i = 0; i < components.Count; i++)
107111
{
108112
using (var component = components[i])
109113
using (var properties = component.Properties)
110114
{
111-
for (var j = 0; j < properties.Count; j++)
115+
if (component.Type == ComponentType.Document)
112116
{
113-
using (var property = properties[j])
117+
for (var j = 0; j < properties.Count; j++)
114118
{
115-
if (component.Type == ComponentType.Document && property.Name == "Name" && (string)property.Value == sheetName)
119+
using (var property = properties[j])
116120
{
117-
return component;
121+
if (property.Name == "Name" && (string)property.Value == sheetName)
122+
{
123+
return component;
124+
}
118125
}
119126
}
120127
}

RubberduckTests/Mocks/MockProjectBuilder.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ private Mock<IVBComponents> CreateComponentsMock()
189189

190190
result.Setup(m => m[It.IsAny<int>()]).Returns<int>(index => Components.ElementAt(index));
191191
result.Setup(m => m[It.IsAny<string>()]).Returns<string>(name => Components.Single(item => item.Name == name));
192-
result.SetupGet(m => m.Count).Returns(Components.Count);
192+
result.SetupGet(m => m.Count).Returns(() => Components.Count);
193193

194194
result.Setup(m => m.Add(It.IsAny<ComponentType>()))
195195
.Callback((ComponentType c) =>
@@ -284,6 +284,8 @@ private Mock<IVBComponent> CreateComponentMock(string name, ComponentType type,
284284

285285
var propertiesMock = new Mock<IProperties>();
286286
propertiesMock.Setup(m => m.GetEnumerator()).Returns(() => properties?.GetEnumerator());
287+
propertiesMock.SetupGet(m => m.Count).Returns(properties?.Count() ?? 0);
288+
propertiesMock.Setup(m => m[It.IsAny<int>()]).Returns<int>(index => properties.ElementAt(index));
287289
result.SetupGet(m => m.Properties).Returns(propertiesMock.Object);
288290

289291
var module = CreateCodeModuleMock(name, content, selection, result);

0 commit comments

Comments
 (0)