@@ -20,14 +20,25 @@ public class MockProjectBuilder
20
20
private readonly Mock < VBComponents > _vbComponents ;
21
21
private readonly Mock < References > _vbReferences ;
22
22
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>();
24
25
private readonly List < Reference > _references = new List < Reference > ( ) ;
25
26
26
27
public Mock < VBComponents > MockVBComponents
27
28
{
28
29
get { return _vbComponents ; }
29
30
}
30
31
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
+
31
42
public MockProjectBuilder ( string name , string filename , vbext_ProjectProtection protection , Func < VBE > getVbe , MockVbeBuilder mockVbeBuilder )
32
43
{
33
44
_getVbe = getVbe ;
@@ -67,7 +78,7 @@ public MockProjectBuilder(string name, string filename, vbext_ProjectProtection
67
78
/// <returns>Returns the <see cref="MockProjectBuilder"/> instance.</returns>
68
79
public MockProjectBuilder AddComponent ( Mock < VBComponent > component )
69
80
{
70
- _components . Add ( component . Object ) ;
81
+ _componentsMock . Add ( component ) ;
71
82
_getVbe ( ) . ActiveCodePane = component . Object . CodeModule . CodePane ;
72
83
return this ;
73
84
}
@@ -136,21 +147,21 @@ private Mock<VBComponents> CreateComponentsMock()
136
147
result . SetupGet ( m => m . Parent ) . Returns ( ( ) => _project . Object ) ;
137
148
result . SetupGet ( m => m . VBE ) . Returns ( _getVbe ) ;
138
149
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 ( ) ) ;
141
152
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 ) ;
145
156
146
157
result . Setup ( m => m . Add ( It . IsAny < vbext_ComponentType > ( ) ) ) . Callback ( ( vbext_ComponentType c ) =>
147
158
{
148
- _components . Add ( CreateComponentMock ( "test" , c , string . Empty , new Selection ( ) ) . Object ) ;
159
+ _componentsMock . Add ( CreateComponentMock ( "test" , c , string . Empty , new Selection ( ) ) ) ;
149
160
} ) ;
150
161
151
162
result . Setup ( m => m . Remove ( It . IsAny < VBComponent > ( ) ) ) . Callback ( ( VBComponent c ) =>
152
163
{
153
- _components . Remove ( c ) ;
164
+ _componentsMock . Remove ( _componentsMock . First ( m => m . Object == c ) ) ;
154
165
} ) ;
155
166
156
167
result . Setup ( m => m . Import ( It . IsAny < string > ( ) ) ) . Callback ( ( string s ) =>
@@ -166,7 +177,7 @@ private Mock<VBComponents> CreateComponentsMock()
166
177
vbext_ComponentType type ;
167
178
types . TryGetValue ( parts . Last ( ) , out type ) ;
168
179
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 ( ) ) ) ;
170
181
} ) ;
171
182
172
183
return result ;
0 commit comments