Skip to content

Commit db23028

Browse files
committed
Expose list of components mocks. Export test.
1 parent 396c580 commit db23028

File tree

2 files changed

+24
-13
lines changed

2 files changed

+24
-13
lines changed

RubberduckTests/CodeExplorer/CodeExplorerTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ public void ImportModule()
155155
vbComponents.Verify(c => c.Import("C:\\Users\\Rubberduck\\Desktop\\StdModule1.bas"), Times.Once);
156156
}
157157

158-
/*[TestMethod]
158+
[TestMethod]
159159
public void ExportModule()
160160
{
161161
var builder = new MockVbeBuilder();
@@ -164,7 +164,7 @@ public void ExportModule()
164164

165165
var project = projectMock.Build();
166166
var vbe = builder.AddProject(project).Build();
167-
var component = projectMock.Components.First();
167+
var component = projectMock.MockComponents.First();
168168

169169
var saveFileDialog = new Mock<ISaveFileDialog>();
170170
saveFileDialog.Setup(o => o.OverwritePrompt);
@@ -187,7 +187,7 @@ public void ExportModule()
187187
vm.ExportCommand.Execute(vm.SelectedItem);
188188

189189
component.Verify(c => c.Export("C:\\Users\\Rubberduck\\Desktop\\StdModule1.bas"), Times.Once);
190-
}*/
190+
}
191191

192192
[TestMethod]
193193
public void RemoveModule_Cancel()

RubberduckTests/Mocks/MockProjectBuilder.cs

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,25 @@ public class MockProjectBuilder
2020
private readonly Mock<VBComponents> _vbComponents;
2121
private readonly Mock<References> _vbReferences;
2222

23-
private readonly List<VBComponent> _components = new List<VBComponent>();
23+
private readonly List<Mock<VBComponent>> _componentsMock = new List<Mock<VBComponent>>();
24+
//private readonly List<VBComponent> _components = new List<VBComponent>();
2425
private readonly List<Reference> _references = new List<Reference>();
2526

2627
public Mock<VBComponents> MockVBComponents
2728
{
2829
get { return _vbComponents; }
2930
}
3031

32+
public List<Mock<VBComponent>> MockComponents
33+
{
34+
get { return _componentsMock; }
35+
}
36+
37+
private List<VBComponent> Components
38+
{
39+
get { return _componentsMock.Select(m => m.Object).ToList(); }
40+
}
41+
3142
public MockProjectBuilder(string name, string filename, vbext_ProjectProtection protection, Func<VBE> getVbe, MockVbeBuilder mockVbeBuilder)
3243
{
3344
_getVbe = getVbe;
@@ -67,7 +78,7 @@ public MockProjectBuilder(string name, string filename, vbext_ProjectProtection
6778
/// <returns>Returns the <see cref="MockProjectBuilder"/> instance.</returns>
6879
public MockProjectBuilder AddComponent(Mock<VBComponent> component)
6980
{
70-
_components.Add(component.Object);
81+
_componentsMock.Add(component);
7182
_getVbe().ActiveCodePane = component.Object.CodeModule.CodePane;
7283
return this;
7384
}
@@ -136,21 +147,21 @@ private Mock<VBComponents> CreateComponentsMock()
136147
result.SetupGet(m => m.Parent).Returns(() => _project.Object);
137148
result.SetupGet(m => m.VBE).Returns(_getVbe);
138149

139-
result.Setup(c => c.GetEnumerator()).Returns(() => _components.GetEnumerator());
140-
result.As<IEnumerable>().Setup(c => c.GetEnumerator()).Returns(() => _components.GetEnumerator());
150+
result.Setup(c => c.GetEnumerator()).Returns(() => Components.GetEnumerator());
151+
result.As<IEnumerable>().Setup(c => c.GetEnumerator()).Returns(() => Components.GetEnumerator());
141152

142-
result.Setup(m => m.Item(It.IsAny<int>())).Returns<int>(index => _components.ElementAt(index));
143-
result.Setup(m => m.Item(It.IsAny<string>())).Returns<string>(name => _components.Single(item => item.Name == name));
144-
result.SetupGet(m => m.Count).Returns(_components.Count);
153+
result.Setup(m => m.Item(It.IsAny<int>())).Returns<int>(index => Components.ElementAt(index));
154+
result.Setup(m => m.Item(It.IsAny<string>())).Returns<string>(name => Components.Single(item => item.Name == name));
155+
result.SetupGet(m => m.Count).Returns(Components.Count);
145156

146157
result.Setup(m => m.Add(It.IsAny<vbext_ComponentType>())).Callback((vbext_ComponentType c) =>
147158
{
148-
_components.Add(CreateComponentMock("test", c, string.Empty, new Selection()).Object);
159+
_componentsMock.Add(CreateComponentMock("test", c, string.Empty, new Selection()));
149160
});
150161

151162
result.Setup(m => m.Remove(It.IsAny<VBComponent>())).Callback((VBComponent c) =>
152163
{
153-
_components.Remove(c);
164+
_componentsMock.Remove(_componentsMock.First(m => m.Object == c));
154165
});
155166

156167
result.Setup(m => m.Import(It.IsAny<string>())).Callback((string s) =>
@@ -166,7 +177,7 @@ private Mock<VBComponents> CreateComponentsMock()
166177
vbext_ComponentType type;
167178
types.TryGetValue(parts.Last(), out type);
168179

169-
_components.Add(CreateComponentMock(s.Split('\\').Last(), type, string.Empty, new Selection()).Object);
180+
_componentsMock.Add(CreateComponentMock(s.Split('\\').Last(), type, string.Empty, new Selection()));
170181
});
171182

172183
return result;

0 commit comments

Comments
 (0)