@@ -209,6 +209,74 @@ public void IsTrueWhenLoadingCompleteNotFailedAndNoRepositories()
209209 }
210210 }
211211
212+ public class TheFilterTextEnabledProperty : TestBaseClass
213+ {
214+ [ Fact ]
215+ public void IsTrueInitially ( )
216+ {
217+ var repoSubject = new Subject < IRemoteRepositoryModel > ( ) ;
218+ var col = TrackingCollection . Create ( repoSubject ) ;
219+ var repositoryHost = Substitute . For < IRepositoryHost > ( ) ;
220+ repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRemoteRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
221+ var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
222+
223+ var vm = GetVM (
224+ repositoryHost ,
225+ cloneService ,
226+ Substitute . For < IOperatingSystem > ( ) ,
227+ Substitute . For < INotificationService > ( ) ,
228+ Substitute . For < IUsageTracker > ( ) ) ;
229+
230+ Assert . False ( vm . LoadingFailed ) ;
231+ Assert . True ( vm . FilterTextIsEnabled ) ;
232+ }
233+
234+ [ Fact ]
235+ public void IsFalseIfLoadingReposFails ( )
236+ {
237+ var repoSubject = new Subject < IRemoteRepositoryModel > ( ) ;
238+ var col = TrackingCollection . Create ( repoSubject ) ;
239+ var repositoryHost = Substitute . For < IRepositoryHost > ( ) ;
240+ repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRemoteRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
241+ var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
242+ var vm = GetVM (
243+ repositoryHost ,
244+ cloneService ,
245+ Substitute . For < IOperatingSystem > ( ) ,
246+ Substitute . For < INotificationService > ( ) ,
247+ Substitute . For < IUsageTracker > ( ) ) ;
248+
249+ Assert . False ( vm . LoadingFailed ) ;
250+
251+ repoSubject . OnError ( new InvalidOperationException ( "Doh!" ) ) ;
252+
253+ Assert . True ( vm . LoadingFailed ) ;
254+ Assert . False ( vm . FilterTextIsEnabled ) ;
255+ repoSubject . OnCompleted ( ) ;
256+ }
257+
258+ [ Fact ]
259+ public void IsFalseWhenLoadingCompleteNotFailedAndNoRepositories ( )
260+ {
261+ var repoSubject = new Subject < IRemoteRepositoryModel > ( ) ;
262+ var col = TrackingCollection . Create ( repoSubject ) ;
263+ var repositoryHost = Substitute . For < IRepositoryHost > ( ) ;
264+ repositoryHost . ModelService . GetRepositories ( Arg . Any < ITrackingCollection < IRemoteRepositoryModel > > ( ) ) . Returns ( _ => col ) ;
265+
266+ var cloneService = Substitute . For < IRepositoryCloneService > ( ) ;
267+ var vm = GetVM (
268+ repositoryHost ,
269+ cloneService ,
270+ Substitute . For < IOperatingSystem > ( ) ,
271+ Substitute . For < INotificationService > ( ) ,
272+ Substitute . For < IUsageTracker > ( ) ) ;
273+
274+ repoSubject . OnCompleted ( ) ;
275+
276+ Assert . False ( vm . FilterTextIsEnabled ) ;
277+ }
278+ }
279+
212280 public class TheLoadingFailedProperty : TestBaseClass
213281 {
214282 [ Fact ]
0 commit comments