@@ -201,7 +201,7 @@ public void VbeThrowsExceptionOnActivation_TryActiveDoesNotChangeTheActiveModule
201
201
}
202
202
203
203
[ Test ]
204
- public void ComponentExists_TrySetActiveSelectionSetsActiveSelectionAndReturnsTrue ( )
204
+ public void ComponentExists_TrySetActiveSelectionSetsActiveSelectionAndReturnsTrue_QualifiedSelection ( )
205
205
{
206
206
var vbe = MockVbeBuilder . BuildFromStdModules ( new [ ]
207
207
{
@@ -232,7 +232,7 @@ public void ComponentExists_TrySetActiveSelectionSetsActiveSelectionAndReturnsTr
232
232
}
233
233
234
234
[ Test ]
235
- public void ComponentDoesNotExist_TrySetActiveSelectionDoesNotChangeTheActiveSelectionAndReturnsFalse ( )
235
+ public void ComponentDoesNotExist_TrySetActiveSelectionDoesNotChangeTheActiveSelectionAndReturnsFalse_QualifiedSelection ( )
236
236
{
237
237
var vbe = MockVbeBuilder . BuildFromStdModules ( new [ ]
238
238
{
@@ -263,7 +263,7 @@ public void ComponentDoesNotExist_TrySetActiveSelectionDoesNotChangeTheActiveSel
263
263
}
264
264
265
265
[ Test ]
266
- public void VbeThrowsExceptionOnComponentActivation_TrySetActiveSelectionDoesNotChangeTheActiveSelectionAndReturnsFalse ( )
266
+ public void VbeThrowsExceptionOnComponentActivation_TrySetActiveSelectionDoesNotChangeTheActiveSelectionAndReturnsFalse_QualifiedSelection ( )
267
267
{
268
268
var vbeMock = MockVbeBuilder . BuildFromStdModules ( new [ ]
269
269
{
@@ -297,7 +297,7 @@ public void VbeThrowsExceptionOnComponentActivation_TrySetActiveSelectionDoesNot
297
297
}
298
298
299
299
[ Test ]
300
- public void SomeCodePaneOpen_ThrowsExceptionOnSelectionChange_TrySetActiveSelectionDoesNotChangeTheActiveCodePaneAndReturnsFalse ( )
300
+ public void SomeCodePaneOpen_ThrowsExceptionOnSelectionChange_TrySetActiveSelectionDoesNotChangeTheActiveCodePaneAndReturnsFalse_QualifiedSelection ( )
301
301
{
302
302
var vbeBuilder = new MockVbeBuilder ( ) ;
303
303
var activeSelection = new Selection ( 2 , 1 ) ;
@@ -331,6 +331,133 @@ public void SomeCodePaneOpen_ThrowsExceptionOnSelectionChange_TrySetActiveSelect
331
331
Assert . AreEqual ( activeSelection , actualSelection ) ; ;
332
332
}
333
333
334
+ [ Test ]
335
+ public void ComponentExists_TrySetActiveSelectionSetsActiveSelectionAndReturnsTrue_QualifiedModuleNameAndSelection ( )
336
+ {
337
+ var vbe = MockVbeBuilder . BuildFromStdModules ( new [ ]
338
+ {
339
+ ( "activeModule" , $ "{ Environment . NewLine } { Environment . NewLine } { Environment . NewLine } ") ,
340
+ ( "otherModule" , $ "{ Environment . NewLine } { Environment . NewLine } { Environment . NewLine } ")
341
+ } ) . Object ;
342
+ var activeCodePane = vbe . VBProjects . Single ( ) . VBComponents . Single ( comp => comp . Name . Equals ( "activeModule" ) ) . CodeModule . CodePane ;
343
+ var activeSelection = new Selection ( 2 , 1 ) ;
344
+ activeCodePane . Selection = activeSelection ;
345
+ vbe . ActiveCodePane = activeCodePane ;
346
+ var projectsProvider = new ProjectsRepository ( vbe ) ;
347
+ projectsProvider . Refresh ( ) ;
348
+ var selectionService = new SelectionService ( vbe , projectsProvider ) ;
349
+
350
+ var otherModule = vbe . VBProjects . Single ( ) . VBComponents . Single ( comp => comp . Name . Equals ( "otherModule" ) ) . QualifiedModuleName ;
351
+ var newSelection = new Selection ( 3 , 1 ) ;
352
+
353
+ var success = selectionService . TrySetActiveSelection ( otherModule , newSelection ) ;
354
+
355
+ var expectedActiveModule = otherModule ;
356
+ var actualActiveModule = vbe . ActiveCodePane . QualifiedModuleName ;
357
+ var actualSelection = vbe . ActiveCodePane . Selection ;
358
+
359
+ Assert . IsTrue ( success ) ;
360
+ Assert . AreEqual ( expectedActiveModule , actualActiveModule ) ;
361
+ Assert . AreEqual ( newSelection , actualSelection ) ;
362
+ }
363
+
364
+ [ Test ]
365
+ public void ComponentDoesNotExist_TrySetActiveSelectionDoesNotChangeTheActiveSelectionAndReturnsFalse_QualifiedModuleNameAndSelection ( )
366
+ {
367
+ var vbe = MockVbeBuilder . BuildFromStdModules ( new [ ]
368
+ {
369
+ ( "activeModule" , $ "{ Environment . NewLine } { Environment . NewLine } { Environment . NewLine } ") ,
370
+ ( "otherModule" , $ "{ Environment . NewLine } { Environment . NewLine } { Environment . NewLine } ")
371
+ } ) . Object ;
372
+ var activeCodePane = vbe . VBProjects . Single ( ) . VBComponents . Single ( comp => comp . Name . Equals ( "activeModule" ) ) . CodeModule . CodePane ;
373
+ var activeSelection = new Selection ( 2 , 1 ) ;
374
+ activeCodePane . Selection = activeSelection ;
375
+ vbe . ActiveCodePane = activeCodePane ;
376
+ var projectsProvider = new ProjectsRepository ( vbe ) ;
377
+ projectsProvider . Refresh ( ) ;
378
+ var selectionService = new SelectionService ( vbe , projectsProvider ) ;
379
+
380
+ var nonExistentModule = new QualifiedModuleName ( "test" , string . Empty , "nonExistentModule" ) ;
381
+ var newSelection = new Selection ( 3 , 1 ) ;
382
+
383
+ var success = selectionService . TrySetActiveSelection ( nonExistentModule , newSelection ) ;
384
+
385
+ var expectedActiveModule = activeCodePane . QualifiedModuleName ;
386
+ var actualActiveModule = vbe . ActiveCodePane . QualifiedModuleName ;
387
+ var actualSelection = vbe . ActiveCodePane . Selection ;
388
+
389
+ Assert . IsFalse ( success ) ;
390
+ Assert . AreEqual ( expectedActiveModule , actualActiveModule ) ;
391
+ Assert . AreEqual ( activeSelection , actualSelection ) ;
392
+ }
393
+
394
+ [ Test ]
395
+ public void VbeThrowsExceptionOnComponentActivation_TrySetActiveSelectionDoesNotChangeTheActiveSelectionAndReturnsFalse_QualifiedModuleNameAndSelection ( )
396
+ {
397
+ var vbeMock = MockVbeBuilder . BuildFromStdModules ( new [ ]
398
+ {
399
+ ( "activeModule" , $ "{ Environment . NewLine } { Environment . NewLine } { Environment . NewLine } ") ,
400
+ ( "otherModule" , $ "{ Environment . NewLine } { Environment . NewLine } { Environment . NewLine } ")
401
+ } ) ;
402
+ var vbe = vbeMock . Object ;
403
+ var activeCodePane = vbe . VBProjects . Single ( ) . VBComponents . Single ( comp => comp . Name . Equals ( "activeModule" ) ) . CodeModule . CodePane ;
404
+ var activeSelection = new Selection ( 2 , 1 ) ;
405
+ activeCodePane . Selection = activeSelection ;
406
+ vbe . ActiveCodePane = activeCodePane ;
407
+ var projectsProvider = new ProjectsRepository ( vbe ) ;
408
+ projectsProvider . Refresh ( ) ;
409
+ var selectionService = new SelectionService ( vbe , projectsProvider ) ;
410
+
411
+ var otherCodePane = vbe . VBProjects . Single ( ) . VBComponents . Single ( comp => comp . Name . Equals ( "otherModule" ) ) . CodeModule . CodePane ;
412
+ var otherModule = otherCodePane . QualifiedModuleName ;
413
+ var newSelection = new Selection ( 3 , 1 ) ;
414
+ vbeMock . SetupSet ( m => m . ActiveCodePane = otherCodePane ) . Callback ( ( ) => throw new COMException ( ) ) ;
415
+
416
+ var success = selectionService . TrySetActiveSelection ( otherModule , newSelection ) ;
417
+
418
+ var expectedActiveModule = activeCodePane . QualifiedModuleName ;
419
+ var actualActiveModule = vbe . ActiveCodePane . QualifiedModuleName ;
420
+ var actualSelection = vbe . ActiveCodePane . Selection ;
421
+
422
+ Assert . IsFalse ( success ) ;
423
+ Assert . AreEqual ( expectedActiveModule , actualActiveModule ) ;
424
+ Assert . AreEqual ( activeSelection , actualSelection ) ;
425
+ }
426
+
427
+ [ Test ]
428
+ public void SomeCodePaneOpen_ThrowsExceptionOnSelectionChange_TrySetActiveSelectionDoesNotChangeTheActiveCodePaneAndReturnsFalse_QualifiedModuleNameAndSelection ( )
429
+ {
430
+ var vbeBuilder = new MockVbeBuilder ( ) ;
431
+ var activeSelection = new Selection ( 2 , 1 ) ;
432
+ var projectBuilder = vbeBuilder . ProjectBuilder ( "test" , ProjectProtection . Unprotected )
433
+ . AddComponent ( "activeModule" , ComponentType . StandardModule , $ "{ Environment . NewLine } { Environment . NewLine } { Environment . NewLine } ", activeSelection )
434
+ . AddComponent ( "otherModule" , ComponentType . StandardModule , $ "{ Environment . NewLine } { Environment . NewLine } { Environment . NewLine } ") ;
435
+
436
+ var vbe = projectBuilder . AddProjectToVbeBuilder ( ) . Build ( ) . Object ;
437
+ var activeCodePane = vbe . VBProjects . Single ( ) . VBComponents . Single ( comp => comp . Name . Equals ( "activeModule" ) ) . CodeModule . CodePane ;
438
+ vbe . ActiveCodePane = activeCodePane ;
439
+ var projectsProvider = new ProjectsRepository ( vbe ) ;
440
+ projectsProvider . Refresh ( ) ;
441
+ var selectionService = new SelectionService ( vbe , projectsProvider ) ;
442
+
443
+ var otherCodeModuleMock = projectBuilder . MockCodeModules . Single ( mock => mock . Object . Name . Equals ( "otherModule" ) ) ;
444
+ var otherPaneMock = new Mock < ICodePane > ( ) ;
445
+ otherPaneMock . SetupSet ( m => m . Selection = It . IsAny < Selection > ( ) ) . Callback ( ( ) => throw new COMException ( ) ) ;
446
+ otherCodeModuleMock . SetupGet ( m => m . CodePane ) . Returns ( otherPaneMock . Object ) ;
447
+ var otherModule = otherCodeModuleMock . Object . QualifiedModuleName ;
448
+ var newSelection = new Selection ( 3 , 1 ) ;
449
+
450
+ var success = selectionService . TrySetActiveSelection ( otherModule , newSelection ) ;
451
+
452
+ var expectedActiveModule = activeCodePane . QualifiedModuleName ;
453
+ var actualActiveModule = vbe . ActiveCodePane . QualifiedModuleName ;
454
+ var actualSelection = vbe . ActiveCodePane . Selection ;
455
+
456
+ Assert . IsFalse ( success ) ;
457
+ Assert . AreEqual ( expectedActiveModule , actualActiveModule ) ;
458
+ Assert . AreEqual ( activeSelection , actualSelection ) ; ;
459
+ }
460
+
334
461
[ Test ]
335
462
public void ComponentExists_TrySetSelectionSetsSelectionOfModuleAndReturnsTrue ( )
336
463
{
0 commit comments