@@ -158,6 +158,133 @@ public void AddTestModule()
158
158
components . Verify ( c => c . Add ( ComponentType . StandardModule ) , Times . Once ) ;
159
159
}
160
160
161
+ [ TestCategory ( "Code Explorer" ) ]
162
+ [ TestMethod ]
163
+ public void AddTestModuleWithStubs ( )
164
+ {
165
+ var builder = new MockVbeBuilder ( ) ;
166
+ var project = builder . ProjectBuilder ( "TestProject1" , ProjectProtection . Unprotected )
167
+ . AddComponent ( "Module1" , ComponentType . StandardModule , "" ) ;
168
+
169
+ var components = project . MockVBComponents ;
170
+
171
+ var vbe = builder . AddProject ( project . Build ( ) ) . Build ( ) ;
172
+
173
+ var configLoader = new Mock < ConfigurationLoader > ( null , null , null , null , null , null , null ) ;
174
+ configLoader . Setup ( c => c . LoadConfiguration ( ) ) . Returns ( GetDefaultUnitTestConfig ( ) ) ;
175
+
176
+ var state = new RubberduckParserState ( vbe . Object , new DeclarationFinderFactory ( ) ) ;
177
+ var vbeWrapper = vbe . Object ;
178
+ var commands = new List < CommandBase >
179
+ {
180
+ new AddTestModuleWithStubsCommand ( vbeWrapper , new Rubberduck . UI . Command . AddTestModuleCommand ( vbeWrapper , state , configLoader . Object ) )
181
+ } ;
182
+
183
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state ) , state , commands , _generalSettingsProvider . Object , _windowSettingsProvider . Object ) ;
184
+
185
+ var parser = MockParser . Create ( vbe . Object , state ) ;
186
+ parser . Parse ( new CancellationTokenSource ( ) ) ;
187
+ if ( parser . State . Status >= ParserState . Error ) { Assert . Inconclusive ( "Parser Error" ) ; }
188
+
189
+ vm . SelectedItem = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) ;
190
+ vm . AddTestModuleWithStubsCommand . Execute ( vm . SelectedItem ) ;
191
+
192
+ components . Verify ( c => c . Add ( ComponentType . StandardModule ) , Times . Once ) ;
193
+ }
194
+
195
+ [ TestCategory ( "Code Explorer" ) ]
196
+ [ TestMethod ]
197
+ public void AddTestModuleWithStubs_DisabledWhenParameterIsProject ( )
198
+ {
199
+ var builder = new MockVbeBuilder ( ) ;
200
+ var project = builder . ProjectBuilder ( "TestProject1" , ProjectProtection . Unprotected )
201
+ . AddComponent ( "Module1" , ComponentType . StandardModule , "" ) ;
202
+
203
+ var vbe = builder . AddProject ( project . Build ( ) ) . Build ( ) ;
204
+
205
+ var configLoader = new Mock < ConfigurationLoader > ( null , null , null , null , null , null , null ) ;
206
+ configLoader . Setup ( c => c . LoadConfiguration ( ) ) . Returns ( GetDefaultUnitTestConfig ( ) ) ;
207
+
208
+ var state = new RubberduckParserState ( vbe . Object , new DeclarationFinderFactory ( ) ) ;
209
+ var vbeWrapper = vbe . Object ;
210
+ var commands = new List < CommandBase >
211
+ {
212
+ new AddTestModuleWithStubsCommand ( vbeWrapper , new Rubberduck . UI . Command . AddTestModuleCommand ( vbeWrapper , state , configLoader . Object ) )
213
+ } ;
214
+
215
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state ) , state , commands , _generalSettingsProvider . Object , _windowSettingsProvider . Object ) ;
216
+
217
+ var parser = MockParser . Create ( vbe . Object , state ) ;
218
+ parser . Parse ( new CancellationTokenSource ( ) ) ;
219
+ if ( parser . State . Status >= ParserState . Error ) { Assert . Inconclusive ( "Parser Error" ) ; }
220
+
221
+ vm . SelectedItem = vm . Projects . First ( ) ;
222
+
223
+ Assert . IsFalse ( vm . AddTestModuleWithStubsCommand . CanExecute ( vm . SelectedItem ) ) ;
224
+ }
225
+
226
+ [ TestCategory ( "Code Explorer" ) ]
227
+ [ TestMethod ]
228
+ public void AddTestModuleWithStubs_DisabledWhenParameterIsFolder ( )
229
+ {
230
+ var builder = new MockVbeBuilder ( ) ;
231
+ var project = builder . ProjectBuilder ( "TestProject1" , ProjectProtection . Unprotected )
232
+ . AddComponent ( "Module1" , ComponentType . StandardModule , "" ) ;
233
+
234
+ var vbe = builder . AddProject ( project . Build ( ) ) . Build ( ) ;
235
+
236
+ var configLoader = new Mock < ConfigurationLoader > ( null , null , null , null , null , null , null ) ;
237
+ configLoader . Setup ( c => c . LoadConfiguration ( ) ) . Returns ( GetDefaultUnitTestConfig ( ) ) ;
238
+
239
+ var state = new RubberduckParserState ( vbe . Object , new DeclarationFinderFactory ( ) ) ;
240
+ var vbeWrapper = vbe . Object ;
241
+ var commands = new List < CommandBase >
242
+ {
243
+ new AddTestModuleWithStubsCommand ( vbeWrapper , new Rubberduck . UI . Command . AddTestModuleCommand ( vbeWrapper , state , configLoader . Object ) )
244
+ } ;
245
+
246
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state ) , state , commands , _generalSettingsProvider . Object , _windowSettingsProvider . Object ) ;
247
+
248
+ var parser = MockParser . Create ( vbe . Object , state ) ;
249
+ parser . Parse ( new CancellationTokenSource ( ) ) ;
250
+ if ( parser . State . Status >= ParserState . Error ) { Assert . Inconclusive ( "Parser Error" ) ; }
251
+
252
+ vm . SelectedItem = vm . Projects . First ( ) . Items . First ( ) ;
253
+
254
+ Assert . IsFalse ( vm . AddTestModuleWithStubsCommand . CanExecute ( vm . SelectedItem ) ) ;
255
+ }
256
+
257
+ [ TestCategory ( "Code Explorer" ) ]
258
+ [ TestMethod ]
259
+ public void AddTestModuleWithStubs_DisabledWhenParameterIsModuleMember ( )
260
+ {
261
+ var builder = new MockVbeBuilder ( ) ;
262
+ var project = builder . ProjectBuilder ( "TestProject1" , ProjectProtection . Unprotected )
263
+ . AddComponent ( "Module1" , ComponentType . StandardModule , "Public Sub S()\r \n End Sub" ) ;
264
+
265
+ var vbe = builder . AddProject ( project . Build ( ) ) . Build ( ) ;
266
+
267
+ var configLoader = new Mock < ConfigurationLoader > ( null , null , null , null , null , null , null ) ;
268
+ configLoader . Setup ( c => c . LoadConfiguration ( ) ) . Returns ( GetDefaultUnitTestConfig ( ) ) ;
269
+
270
+ var state = new RubberduckParserState ( vbe . Object , new DeclarationFinderFactory ( ) ) ;
271
+ var vbeWrapper = vbe . Object ;
272
+ var commands = new List < CommandBase >
273
+ {
274
+ new AddTestModuleWithStubsCommand ( vbeWrapper , new Rubberduck . UI . Command . AddTestModuleCommand ( vbeWrapper , state , configLoader . Object ) )
275
+ } ;
276
+
277
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state ) , state , commands , _generalSettingsProvider . Object , _windowSettingsProvider . Object ) ;
278
+
279
+ var parser = MockParser . Create ( vbe . Object , state ) ;
280
+ parser . Parse ( new CancellationTokenSource ( ) ) ;
281
+ if ( parser . State . Status >= ParserState . Error ) { Assert . Inconclusive ( "Parser Error" ) ; }
282
+
283
+ vm . SelectedItem = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) . Items . First ( ) ;
284
+
285
+ Assert . IsFalse ( vm . AddTestModuleWithStubsCommand . CanExecute ( vm . SelectedItem ) ) ;
286
+ }
287
+
161
288
[ TestCategory ( "Code Explorer" ) ]
162
289
[ TestMethod ]
163
290
public void ImportModule ( )
0 commit comments