1616
1717public class RepositoryCloneViewModelTests
1818{
19+ static RepositoryCloneViewModel GetVM ( IRepositoryHost repositoryHost , IRepositoryCloneService cloneService ,
20+ IOperatingSystem os , INotificationService notificationService )
21+ {
22+ var vm = new RepositoryCloneViewModel (
23+ repositoryHost ,
24+ cloneService ,
25+ os ,
26+ notificationService ) ;
27+ vm . Initialize ( null ) ;
28+ return vm ;
29+ }
30+
1931 public class TheLoadRepositoriesCommand : TestBaseClass
2032 {
2133 [ Fact ]
22- public void LoadsRepositories ( )
34+ public async Task LoadsRepositories ( )
2335 {
2436 var repos = new IRepositoryModel [ ]
2537 {
@@ -32,13 +44,14 @@ public void LoadsRepositories()
3244 repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
3345
3446 var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
35- var vm = new RepositoryCloneViewModel (
47+ var vm = GetVM (
3648 repositoryHost ,
3749 cloneService ,
3850 Substitute . For < IOperatingSystem > ( ) ,
3951 Substitute . For < INotificationService > ( ) ,
4052 Substitute . For < IUsageTracker > ( ) ) ;
4153
54+ await col . OriginalCompleted ;
4255 Assert . Equal ( 3 , vm . Repositories . Count ) ;
4356 }
4457 }
@@ -54,14 +67,14 @@ public async Task StartsTrueBecomesFalseWhenCompleted()
5467 repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
5568
5669 var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
57- var vm = new RepositoryCloneViewModel (
70+ var vm = GetVM (
5871 repositoryHost ,
5972 cloneService ,
6073 Substitute . For < IOperatingSystem > ( ) ,
6174 Substitute . For < INotificationService > ( ) ,
6275 Substitute . For < IUsageTracker > ( ) ) ;
6376
64- Assert . False ( vm . IsLoading ) ;
77+ Assert . True ( vm . IsLoading ) ;
6578
6679 var done = new ReplaySubject < Unit > ( ) ;
6780 done . OnNext ( Unit . Default ) ;
@@ -92,7 +105,7 @@ public void IsFalseWhenLoadingReposFailsImmediately()
92105 repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
93106
94107 var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
95- var vm = new RepositoryCloneViewModel (
108+ var vm = GetVM (
96109 repositoryHost ,
97110 cloneService ,
98111 Substitute . For < IOperatingSystem > ( ) ,
@@ -122,18 +135,19 @@ public void IsTrueInitially()
122135 Substitute . For < INotificationService > ( ) ,
123136 Substitute . For < IUsageTracker > ( ) ) ;
124137
138+ Assert . False ( vm . LoadingFailed ) ;
125139 Assert . True ( vm . NoRepositoriesFound ) ;
126140 }
127141
128142 [ Fact ]
129- public void IsFalseWhenLoadingAndCompletedWithRepository ( )
143+ public async Task IsFalseWhenLoadingAndCompletedWithRepository ( )
130144 {
131145 var repoSubject = new Subject < IRepositoryModel > ( ) ;
132146 var col = TrackingCollection . Create ( repoSubject ) ;
133147 var repositoryHost = Substitute . For < IRepositoryHost > ( ) ;
134148 repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
135149 var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
136- var vm = new RepositoryCloneViewModel (
150+ var vm = GetVM (
137151 repositoryHost ,
138152 cloneService ,
139153 Substitute . For < IOperatingSystem > ( ) ,
@@ -146,6 +160,8 @@ public void IsFalseWhenLoadingAndCompletedWithRepository()
146160
147161 repoSubject . OnCompleted ( ) ;
148162
163+ await col . OriginalCompleted ;
164+
149165 Assert . Equal ( 1 , vm . Repositories . Count ) ;
150166 Assert . False ( vm . NoRepositoriesFound ) ;
151167 }
@@ -158,7 +174,7 @@ public void IsFalseWhenFailed()
158174 var repositoryHost = Substitute . For < IRepositoryHost > ( ) ;
159175 repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
160176 var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
161- var vm = new RepositoryCloneViewModel (
177+ var vm = GetVM (
162178 repositoryHost ,
163179 cloneService ,
164180 Substitute . For < IOperatingSystem > ( ) ,
@@ -179,7 +195,7 @@ public void IsTrueWhenLoadingCompleteNotFailedAndNoRepositories()
179195 repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
180196
181197 var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
182- var vm = new RepositoryCloneViewModel (
198+ var vm = GetVM (
183199 repositoryHost ,
184200 cloneService ,
185201 Substitute . For < IOperatingSystem > ( ) ,
@@ -202,7 +218,7 @@ public void IsTrueIfLoadingReposFails()
202218 var repositoryHost = Substitute . For < IRepositoryHost > ( ) ;
203219 repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
204220 var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
205- var vm = new RepositoryCloneViewModel (
221+ var vm = GetVM (
206222 repositoryHost ,
207223 cloneService ,
208224 Substitute . For < IOperatingSystem > ( ) ,
@@ -238,7 +254,7 @@ public void IsInvalidWhenDestinationRepositoryExists()
238254 var directories = Substitute . For < IDirectoryFacade > ( ) ;
239255 os . Directory . Returns ( directories ) ;
240256 directories . Exists ( @"c:\foo\bar" ) . Returns ( true ) ;
241- var vm = new RepositoryCloneViewModel (
257+ var vm = GetVM (
242258 repositoryHost ,
243259 cloneService ,
244260 os ,
@@ -262,7 +278,7 @@ public void IsEnabledWhenRepositorySelectedAndPathValid()
262278 repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
263279
264280 var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
265- var vm = new RepositoryCloneViewModel (
281+ var vm = GetVM (
266282 repositoryHost ,
267283 cloneService ,
268284 Substitute . For < IOperatingSystem > ( ) ,
@@ -284,7 +300,7 @@ public void IsNotEnabledWhenPathIsNotValid()
284300 repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
285301
286302 var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
287- var vm = new RepositoryCloneViewModel (
303+ var vm = GetVM (
288304 repositoryHost ,
289305 cloneService ,
290306 Substitute . For < IOperatingSystem > ( ) ,
@@ -309,7 +325,7 @@ public async Task DisplaysErrorMessageWhenExceptionOccurs()
309325 cloneService . CloneRepository ( Args . String , Args . String , Args . String )
310326 . Returns ( Observable . Throw < Unit > ( new InvalidOperationException ( "Oh my! That was bad." ) ) ) ;
311327 var notificationService = Substitute . For < INotificationService > ( ) ;
312- var vm = new RepositoryCloneViewModel (
328+ var vm = GetVM (
313329 repositoryHost ,
314330 cloneService ,
315331 Substitute . For < IOperatingSystem > ( ) ,
0 commit comments