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,12 +44,13 @@ 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
53+ await col . OriginalCompleted ;
4154 Assert . Equal ( 3 , vm . Repositories . Count ) ;
4255 }
4356 }
@@ -53,13 +66,13 @@ public async Task StartsTrueBecomesFalseWhenCompleted()
5366 repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
5467
5568 var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
56- var vm = new RepositoryCloneViewModel (
69+ var vm = GetVM (
5770 repositoryHost ,
5871 cloneService ,
5972 Substitute . For < IOperatingSystem > ( ) ,
6073 Substitute . For < INotificationService > ( ) ) ;
6174
62- Assert . False ( vm . IsLoading ) ;
75+ Assert . True ( vm . IsLoading ) ;
6376
6477 var done = new ReplaySubject < Unit > ( ) ;
6578 done . OnNext ( Unit . Default ) ;
@@ -90,7 +103,7 @@ public void IsFalseWhenLoadingReposFailsImmediately()
90103 repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
91104
92105 var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
93- var vm = new RepositoryCloneViewModel (
106+ var vm = GetVM (
94107 repositoryHost ,
95108 cloneService ,
96109 Substitute . For < IOperatingSystem > ( ) ,
@@ -118,18 +131,19 @@ public void IsTrueInitially()
118131 Substitute . For < IOperatingSystem > ( ) ,
119132 Substitute . For < INotificationService > ( ) ) ;
120133
134+ Assert . False ( vm . LoadingFailed ) ;
121135 Assert . True ( vm . NoRepositoriesFound ) ;
122136 }
123137
124138 [ Fact ]
125- public void IsFalseWhenLoadingAndCompletedWithRepository ( )
139+ public async Task IsFalseWhenLoadingAndCompletedWithRepository ( )
126140 {
127141 var repoSubject = new Subject < IRepositoryModel > ( ) ;
128142 var col = TrackingCollection . Create ( repoSubject ) ;
129143 var repositoryHost = Substitute . For < IRepositoryHost > ( ) ;
130144 repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
131145 var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
132- var vm = new RepositoryCloneViewModel (
146+ var vm = GetVM (
133147 repositoryHost ,
134148 cloneService ,
135149 Substitute . For < IOperatingSystem > ( ) ,
@@ -141,6 +155,8 @@ public void IsFalseWhenLoadingAndCompletedWithRepository()
141155
142156 repoSubject . OnCompleted ( ) ;
143157
158+ await col . OriginalCompleted ;
159+
144160 Assert . Equal ( 1 , vm . Repositories . Count ) ;
145161 Assert . False ( vm . NoRepositoriesFound ) ;
146162 }
@@ -153,7 +169,7 @@ public void IsFalseWhenFailed()
153169 var repositoryHost = Substitute . For < IRepositoryHost > ( ) ;
154170 repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
155171 var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
156- var vm = new RepositoryCloneViewModel (
172+ var vm = GetVM (
157173 repositoryHost ,
158174 cloneService ,
159175 Substitute . For < IOperatingSystem > ( ) ,
@@ -173,7 +189,7 @@ public void IsTrueWhenLoadingCompleteNotFailedAndNoRepositories()
173189 repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
174190
175191 var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
176- var vm = new RepositoryCloneViewModel (
192+ var vm = GetVM (
177193 repositoryHost ,
178194 cloneService ,
179195 Substitute . For < IOperatingSystem > ( ) ,
@@ -195,7 +211,7 @@ public void IsTrueIfLoadingReposFails()
195211 var repositoryHost = Substitute . For < IRepositoryHost > ( ) ;
196212 repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
197213 var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
198- var vm = new RepositoryCloneViewModel (
214+ var vm = GetVM (
199215 repositoryHost ,
200216 cloneService ,
201217 Substitute . For < IOperatingSystem > ( ) ,
@@ -230,7 +246,7 @@ public void IsInvalidWhenDestinationRepositoryExists()
230246 var directories = Substitute . For < IDirectoryFacade > ( ) ;
231247 os . Directory . Returns ( directories ) ;
232248 directories . Exists ( @"c:\foo\bar" ) . Returns ( true ) ;
233- var vm = new RepositoryCloneViewModel (
249+ var vm = GetVM (
234250 repositoryHost ,
235251 cloneService ,
236252 os ,
@@ -253,7 +269,7 @@ public void IsEnabledWhenRepositorySelectedAndPathValid()
253269 repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
254270
255271 var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
256- var vm = new RepositoryCloneViewModel (
272+ var vm = GetVM (
257273 repositoryHost ,
258274 cloneService ,
259275 Substitute . For < IOperatingSystem > ( ) ,
@@ -274,7 +290,7 @@ public void IsNotEnabledWhenPathIsNotValid()
274290 repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
275291
276292 var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
277- var vm = new RepositoryCloneViewModel (
293+ var vm = GetVM (
278294 repositoryHost ,
279295 cloneService ,
280296 Substitute . For < IOperatingSystem > ( ) ,
@@ -298,7 +314,7 @@ public async Task DisplaysErrorMessageWhenExceptionOccurs()
298314 cloneService . CloneRepository ( Args . String , Args . String , Args . String )
299315 . Returns ( Observable . Throw < Unit > ( new InvalidOperationException ( "Oh my! That was bad." ) ) ) ;
300316 var notificationService = Substitute . For < INotificationService > ( ) ;
301- var vm = new RepositoryCloneViewModel (
317+ var vm = GetVM (
302318 repositoryHost ,
303319 cloneService ,
304320 Substitute . For < IOperatingSystem > ( ) ,
0 commit comments