10
10
using Rubberduck . UI . SourceControl ;
11
11
using RubberduckTests . Mocks ;
12
12
13
+ // ReSharper disable UnusedVariable
14
+ // Resharper thinks the presenter and toolWindow aren't used, but I promise they are.
15
+
13
16
namespace RubberduckTests . SourceControl
14
17
{
15
18
[ TestClass ]
@@ -19,7 +22,9 @@ public class ScPresenterTests
19
22
private Windows _windows ;
20
23
private Mock < AddIn > _addIn ;
21
24
private Mock < Window > _window ;
25
+ #pragma warning disable 169
22
26
private object _toolWindow ;
27
+ #pragma warning restore 169
23
28
24
29
private Mock < ISourceControlView > _view ;
25
30
@@ -75,6 +80,35 @@ public void InitializeMocks()
75
80
. Returns ( _provider . Object ) ;
76
81
}
77
82
83
+ private SourceControlPresenter CreatePresenter ( )
84
+ {
85
+ var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
86
+ _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
87
+ _settingsPresenter . Object ,
88
+ _folderBrowserFactory . Object , _providerFactory . Object ) ;
89
+ return presenter ;
90
+ }
91
+
92
+ private void SetupValidVbProject ( )
93
+ {
94
+ var project = new Mock < VBProject > ( ) . SetupProperty ( p => p . Name , DummyRepoName ) ;
95
+ _vbe . SetupProperty ( vbe => vbe . ActiveVBProject , project . Object ) ;
96
+ }
97
+
98
+ private void VerifyOffline ( )
99
+ {
100
+ Assert . AreEqual ( "Offline" , _view . Object . Status ) ;
101
+ _changesPresenter . Verify ( c => c . Refresh ( ) , Times . Never ) ;
102
+ _branchesPresenter . Verify ( b => b . RefreshView ( ) , Times . Never ) ;
103
+ }
104
+
105
+ private void VerifyChildPresentersHaveProviders ( )
106
+ {
107
+ Assert . IsNotNull ( _settingsPresenter . Object . Provider , "_settingsPresenter.Provider was null" ) ;
108
+ Assert . IsNotNull ( _branchesPresenter , "_branchesPresenter.Provider was null" ) ;
109
+ Assert . IsNotNull ( _changesPresenter , "_changesPresenter.Provider was null" ) ;
110
+ }
111
+
78
112
[ TestMethod ]
79
113
public void ChangesCurrentBranchRefreshesWhenBranchIsCheckedOut ( )
80
114
{
@@ -101,6 +135,7 @@ public void ChangesCurrentBranchRefreshesWhenBranchIsCheckedOut()
101
135
branchesPresenter . Provider = provider . Object ;
102
136
changesPresenter . Provider = provider . Object ;
103
137
138
+ //purposely createing a new presenter with specific child presenters
104
139
var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
105
140
_view . Object , changesPresenter , branchesPresenter ,
106
141
_settingsPresenter . Object ,
@@ -123,10 +158,7 @@ public void BranchesRefreshOnRefreshEvent()
123
158
124
159
SetupValidVbProject ( ) ;
125
160
126
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
127
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
128
- _settingsPresenter . Object ,
129
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
161
+ var presenter = CreatePresenter ( ) ;
130
162
131
163
//act
132
164
_view . Raise ( v => v . RefreshData += null , new EventArgs ( ) ) ;
@@ -144,10 +176,7 @@ public void ChangesRefreshOnRefreshEvent()
144
176
145
177
SetupValidVbProject ( ) ;
146
178
147
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
148
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
149
- _settingsPresenter . Object ,
150
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
179
+ var presenter = CreatePresenter ( ) ;
151
180
152
181
//act
153
182
_view . Raise ( v => v . RefreshData += null , new EventArgs ( ) ) ;
@@ -162,20 +191,15 @@ public void StatusIsOfflineWhenNoRepoIsFoundInConfig()
162
191
//arrange
163
192
_configService . Setup ( c => c . LoadConfiguration ( ) ) . Returns ( new SourceControlConfiguration ( ) ) ;
164
193
165
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
166
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
167
- _settingsPresenter . Object ,
168
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
194
+ var presenter = CreatePresenter ( ) ;
169
195
170
196
SetupValidVbProject ( ) ;
171
197
172
198
//act
173
199
presenter . RefreshChildren ( ) ;
174
200
175
201
//assert
176
- Assert . AreEqual ( "Offline" , _view . Object . Status ) ;
177
- _changesPresenter . Verify ( c => c . Refresh ( ) , Times . Never ) ;
178
- _branchesPresenter . Verify ( b => b . RefreshView ( ) , Times . Never ) ;
202
+ VerifyOffline ( ) ;
179
203
}
180
204
181
205
[ TestMethod ]
@@ -187,18 +211,13 @@ public void StatusIsOfflineWhenRepoListIsEmpty()
187
211
188
212
SetupValidVbProject ( ) ;
189
213
190
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
191
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
192
- _settingsPresenter . Object ,
193
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
214
+ var presenter = CreatePresenter ( ) ;
194
215
195
216
//act
196
217
presenter . RefreshChildren ( ) ;
197
218
198
219
//assert
199
- Assert . AreEqual ( "Offline" , _view . Object . Status ) ;
200
- _changesPresenter . Verify ( c => c . Refresh ( ) , Times . Never ) ;
201
- _branchesPresenter . Verify ( b => b . RefreshView ( ) , Times . Never ) ;
220
+ VerifyOffline ( ) ;
202
221
}
203
222
204
223
[ TestMethod ]
@@ -211,44 +230,34 @@ public void StatusIsOfflineIfNoMatchingRepoExists()
211
230
var project = new Mock < VBProject > ( ) . SetupProperty ( p => p . Name , "FooBar" ) ;
212
231
_vbe . SetupProperty ( vbe => vbe . ActiveVBProject , project . Object ) ;
213
232
214
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
215
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
216
- _settingsPresenter . Object ,
217
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
233
+ var presenter = CreatePresenter ( ) ;
218
234
219
235
//act
220
236
presenter . RefreshChildren ( ) ;
221
237
222
238
//assert
223
- Assert . AreEqual ( "Offline" , _view . Object . Status ) ;
224
- _changesPresenter . Verify ( c => c . Refresh ( ) , Times . Never ) ;
225
- _branchesPresenter . Verify ( b => b . RefreshView ( ) , Times . Never ) ;
239
+ VerifyOffline ( ) ;
226
240
}
227
241
228
242
[ TestMethod ]
229
243
public void StatusIsOfflineWhenMultipleReposAreFound ( )
230
244
{
231
245
//arrange
232
246
var config = GetDummyConfig ( ) ;
233
- config . Repositories . Add ( new Repository ( ) { Name = dummyRepoName } ) ;
247
+ config . Repositories . Add ( new Repository ( ) { Name = DummyRepoName } ) ;
234
248
235
249
_configService . Setup ( c => c . LoadConfiguration ( ) )
236
250
. Returns ( config ) ;
237
251
238
252
SetupValidVbProject ( ) ;
239
253
240
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
241
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
242
- _settingsPresenter . Object ,
243
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
254
+ var presenter = CreatePresenter ( ) ;
244
255
245
256
//act
246
257
presenter . RefreshChildren ( ) ;
247
258
248
259
//assert
249
- Assert . AreEqual ( "Offline" , _view . Object . Status ) ;
250
- _changesPresenter . Verify ( c => c . Refresh ( ) , Times . Never ) ;
251
- _branchesPresenter . Verify ( b => b . RefreshView ( ) , Times . Never ) ;
260
+ VerifyOffline ( ) ;
252
261
253
262
}
254
263
@@ -261,10 +270,7 @@ public void StatusIsOnlineWhenRepoIsFound()
261
270
262
271
SetupValidVbProject ( ) ;
263
272
264
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
265
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
266
- _settingsPresenter . Object ,
267
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
273
+ var presenter = CreatePresenter ( ) ;
268
274
269
275
//act
270
276
presenter . RefreshChildren ( ) ;
@@ -284,18 +290,15 @@ public void ChildPresentersHaveValidProviderIfRepoIsFoundInConfig()
284
290
285
291
_changesPresenter . SetupProperty ( c => c . Provider ) ;
286
292
_branchesPresenter . SetupProperty ( b => b . Provider ) ;
293
+ _settingsPresenter . SetupProperty ( s => s . Provider ) ;
287
294
288
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
289
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
290
- _settingsPresenter . Object ,
291
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
295
+ var presenter = CreatePresenter ( ) ;
292
296
293
297
//act
294
298
presenter . RefreshChildren ( ) ;
295
299
296
300
//assert
297
- Assert . IsNotNull ( _changesPresenter . Object . Provider ) ;
298
- Assert . IsNotNull ( _branchesPresenter . Object . Provider ) ;
301
+ VerifyChildPresentersHaveProviders ( ) ;
299
302
}
300
303
301
304
[ TestMethod ]
@@ -304,10 +307,7 @@ public void InitRepository_WhenUserCancels_RepoIsNotAddedToConfig()
304
307
//arrange
305
308
_folderBrowser . Setup ( b => b . ShowDialog ( ) ) . Returns ( DialogResult . Cancel ) ;
306
309
307
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
308
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
309
- _settingsPresenter . Object ,
310
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
310
+ var presenter = CreatePresenter ( ) ;
311
311
312
312
//act
313
313
_view . Raise ( v => v . InitializeNewRepository += null , EventArgs . Empty ) ;
@@ -322,10 +322,7 @@ public void InitRepository_WhenUserCancels_RepoIsNotCreated()
322
322
//arrange
323
323
_folderBrowser . Setup ( b => b . ShowDialog ( ) ) . Returns ( DialogResult . Cancel ) ;
324
324
325
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
326
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
327
- _settingsPresenter . Object ,
328
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
325
+ var presenter = CreatePresenter ( ) ;
329
326
330
327
//act
331
328
_view . Raise ( v => v . InitializeNewRepository += null , EventArgs . Empty ) ;
@@ -344,10 +341,7 @@ public void InitRepository_WhenUserConfirms_RepoIsAddedToConfig()
344
341
_folderBrowser . Setup ( b => b . ShowDialog ( ) ) . Returns ( DialogResult . OK ) ;
345
342
_folderBrowser . SetupProperty ( b => b . SelectedPath , @"C:\path\to\repo\" ) ;
346
343
347
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
348
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
349
- _settingsPresenter . Object ,
350
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
344
+ var presenter = CreatePresenter ( ) ;
351
345
352
346
//act
353
347
_view . Raise ( v => v . InitializeNewRepository += null , EventArgs . Empty ) ;
@@ -366,10 +360,7 @@ public void InitRepository_WhenUserConfirms_RepoIsInitalized()
366
360
_folderBrowser . Setup ( b => b . ShowDialog ( ) ) . Returns ( DialogResult . OK ) ;
367
361
_folderBrowser . SetupProperty ( b => b . SelectedPath , @"C:\path\to\repo\" ) ;
368
362
369
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
370
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
371
- _settingsPresenter . Object ,
372
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
363
+ var presenter = CreatePresenter ( ) ;
373
364
374
365
//act
375
366
_view . Raise ( v => v . InitializeNewRepository += null , EventArgs . Empty ) ;
@@ -384,10 +375,7 @@ public void OpenWorkingDir_WhenUserCancels_RepoIsNotAddedToConfig()
384
375
//arrange
385
376
_folderBrowser . Setup ( b => b . ShowDialog ( ) ) . Returns ( DialogResult . Cancel ) ;
386
377
387
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
388
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
389
- _settingsPresenter . Object ,
390
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
378
+ var presenter = CreatePresenter ( ) ;
391
379
392
380
//act
393
381
_view . Raise ( v => v . OpenWorkingDirectory += null , EventArgs . Empty ) ;
@@ -408,10 +396,7 @@ public void OpenWorkingDir_WhenUserConfirms_RepoIsAddedToConfig()
408
396
_folderBrowser . Setup ( b => b . ShowDialog ( ) ) . Returns ( DialogResult . OK ) ;
409
397
_folderBrowser . SetupProperty ( b => b . SelectedPath , @"C:\path\to\repo\" ) ;
410
398
411
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
412
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
413
- _settingsPresenter . Object ,
414
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
399
+ var presenter = CreatePresenter ( ) ;
415
400
416
401
//act
417
402
_view . Raise ( v => v . OpenWorkingDirectory += null , EventArgs . Empty ) ;
@@ -433,10 +418,7 @@ public void InitRepository_WhenUserConfirms_StatusIsOnline()
433
418
_folderBrowser . Setup ( b => b . ShowDialog ( ) ) . Returns ( DialogResult . OK ) ;
434
419
_folderBrowser . SetupProperty ( b => b . SelectedPath , @"C:\path\to\repo\" ) ;
435
420
436
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
437
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
438
- _settingsPresenter . Object ,
439
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
421
+ var presenter = CreatePresenter ( ) ;
440
422
441
423
//act
442
424
_view . Raise ( v => v . InitializeNewRepository += null , EventArgs . Empty ) ;
@@ -457,10 +439,7 @@ public void OpenWorkingDir_WhenUserConfirms_StatusIsOnline()
457
439
_folderBrowser . Setup ( b => b . ShowDialog ( ) ) . Returns ( DialogResult . OK ) ;
458
440
_folderBrowser . SetupProperty ( b => b . SelectedPath , @"C:\path\to\repo\" ) ;
459
441
460
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
461
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
462
- _settingsPresenter . Object ,
463
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
442
+ var presenter = CreatePresenter ( ) ;
464
443
465
444
//act
466
445
_view . Raise ( v => v . OpenWorkingDirectory += null , EventArgs . Empty ) ;
@@ -485,18 +464,13 @@ public void InitRepository_WhenUserConfirms_ChildPresenterSourceControlProviders
485
464
_branchesPresenter . SetupProperty ( b => b . Provider ) ;
486
465
_changesPresenter . SetupProperty ( c => c . Provider ) ;
487
466
488
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
489
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
490
- _settingsPresenter . Object ,
491
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
467
+ var presenter = CreatePresenter ( ) ;
492
468
493
469
//act
494
470
_view . Raise ( v => v . OpenWorkingDirectory += null , EventArgs . Empty ) ;
495
471
496
472
//assert
497
- Assert . IsNotNull ( _settingsPresenter . Object . Provider , "_settingsPresenter.Provider was null" ) ;
498
- Assert . IsNotNull ( _branchesPresenter , "_branchesPresenter.Provider was null" ) ;
499
- Assert . IsNotNull ( _changesPresenter , "_changesPresenter.Provider was null" ) ;
473
+ VerifyChildPresentersHaveProviders ( ) ;
500
474
}
501
475
502
476
[ TestMethod ]
@@ -515,27 +489,16 @@ public void OpenWorkingDir_WhenUserConfirms_ChildPresenterSourceControlProviders
515
489
_branchesPresenter . SetupProperty ( b => b . Provider ) ;
516
490
_changesPresenter . SetupProperty ( c => c . Provider ) ;
517
491
518
- var presenter = new SourceControlPresenter ( _vbe . Object , _addIn . Object , _configService . Object ,
519
- _view . Object , _changesPresenter . Object , _branchesPresenter . Object ,
520
- _settingsPresenter . Object ,
521
- _folderBrowserFactory . Object , _providerFactory . Object ) ;
492
+ var presenter = CreatePresenter ( ) ;
522
493
523
494
//act
524
495
_view . Raise ( v => v . OpenWorkingDirectory += null , EventArgs . Empty ) ;
525
496
526
497
//assert
527
- Assert . IsNotNull ( _settingsPresenter . Object . Provider , "_settingsPresenter.Provider was null" ) ;
528
- Assert . IsNotNull ( _branchesPresenter , "_branchesPresenter.Provider was null" ) ;
529
- Assert . IsNotNull ( _changesPresenter , "_changesPresenter.Provider was null" ) ;
530
- }
531
-
532
- private void SetupValidVbProject ( )
533
- {
534
- var project = new Mock < VBProject > ( ) . SetupProperty ( p => p . Name , dummyRepoName ) ;
535
- _vbe . SetupProperty ( vbe => vbe . ActiveVBProject , project . Object ) ;
498
+ VerifyChildPresentersHaveProviders ( ) ;
536
499
}
537
500
538
- private const string dummyRepoName = "SourceControlTest" ;
501
+ private const string DummyRepoName = "SourceControlTest" ;
539
502
540
503
private SourceControlConfiguration GetDummyConfig ( )
541
504
{
@@ -552,7 +515,7 @@ private static IRepository GetDummyRepo()
552
515
{
553
516
return new Repository
554
517
(
555
- dummyRepoName ,
518
+ DummyRepoName ,
556
519
@"C:\Users\Christopher\Documents\SourceControlTest" ,
557
520
@"https://github.com/ckuhn203/SourceControlTest.git"
558
521
) ;
0 commit comments