Ejemplo n.º 1
0
        public void IsTrueInitially()
        {
            var repoSubject    = new Subject <IRemoteRepositoryModel>();
            var col            = TrackingCollection.Create(repoSubject);
            var repositoryHost = Substitute.For <IRepositoryHost>();

            repositoryHost.ModelService.GetRepositories(Arg.Any <ITrackingCollection <IRemoteRepositoryModel> >()).Returns(_ => col);
            var cloneService = Substitute.For <IRepositoryCloneService>();

            var vm = new RepositoryCloneViewModel(
                repositoryHost,
                cloneService,
                Substitute.For <IOperatingSystem>(),
                Substitute.For <INotificationService>(),
                Substitute.For <IUsageTracker>());

            Assert.False(vm.LoadingFailed);
            Assert.True(vm.NoRepositoriesFound);
        }
Ejemplo n.º 2
0
        public void IsFalseWhenLoadingReposFailsImmediately()
        {
            var repoSubject    = Observable.Throw <IRemoteRepositoryModel>(new InvalidOperationException("Doh!"));
            var col            = TrackingCollection.Create(repoSubject);
            var repositoryHost = Substitute.For <IRepositoryHost>();

            repositoryHost.ModelService.GetRepositories(Arg.Any <ITrackingCollection <IRemoteRepositoryModel> >()).Returns(_ => col);

            var cloneService = Substitute.For <IRepositoryCloneService>();
            var vm           = GetVM(
                repositoryHost,
                cloneService,
                Substitute.For <IOperatingSystem>(),
                Substitute.For <INotificationService>(),
                Substitute.For <IUsageTracker>());

            Assert.True(vm.LoadingFailed);
            Assert.False(vm.IsLoading);
        }
        public void IsFalseWhenFailed()
        {
            var repoSubject    = new Subject <IRepositoryModel>();
            var col            = TrackingCollection.Create(repoSubject);
            var repositoryHost = Substitute.For <IRepositoryHost>();

            repositoryHost.ModelService.GetRepositories(Arg.Any <ITrackingCollection <IRepositoryModel> >()).Returns(_ => col);
            var cloneService = Substitute.For <IRepositoryCloneService>();
            var vm           = GetVM(
                repositoryHost,
                cloneService,
                Substitute.For <IOperatingSystem>(),
                Substitute.For <INotificationService>(),
                Substitute.For <IUsageTracker>());

            repoSubject.OnError(new InvalidOperationException());

            Assert.False(vm.NoRepositoriesFound);
        }
Ejemplo n.º 4
0
        public void IsTrueWhenLoadingCompleteNotFailedAndNoRepositories()
        {
            var repoSubject    = new Subject <IRemoteRepositoryModel>();
            var col            = TrackingCollection.Create(repoSubject);
            var repositoryHost = Substitute.For <IRepositoryHost>();

            repositoryHost.ModelService.GetRepositories(Arg.Any <ITrackingCollection <IRemoteRepositoryModel> >()).Returns(_ => col);

            var cloneService = Substitute.For <IRepositoryCloneService>();
            var vm           = GetVM(
                repositoryHost,
                cloneService,
                Substitute.For <IOperatingSystem>(),
                Substitute.For <INotificationService>(),
                Substitute.For <IUsageTracker>());

            repoSubject.OnCompleted();

            Assert.True(vm.NoRepositoriesFound);
        }
Ejemplo n.º 5
0
        public async Task StartsTrueBecomesFalseWhenCompleted()
        {
            var repoSubject    = new Subject <IRemoteRepositoryModel>();
            var col            = TrackingCollection.Create(repoSubject);
            var repositoryHost = Substitute.For <IRepositoryHost>();

            repositoryHost.ModelService.GetRepositories(Arg.Any <ITrackingCollection <IRemoteRepositoryModel> >()).Returns(_ => col);

            var cloneService = Substitute.For <IRepositoryCloneService>();
            var vm           = GetVM(
                repositoryHost,
                cloneService,
                Substitute.For <IOperatingSystem>(),
                Substitute.For <INotificationService>(),
                Substitute.For <IUsageTracker>());

            Assert.True(vm.IsLoading);

            var done = new ReplaySubject <Unit>();

            done.OnNext(Unit.Default);
            done.Subscribe();
            col.Subscribe(t => done?.OnCompleted(), () => { });

            repoSubject.OnNext(Substitute.For <IRemoteRepositoryModel>());
            repoSubject.OnNext(Substitute.For <IRemoteRepositoryModel>());

            await done;

            done = null;

            Assert.True(vm.IsLoading);

            repoSubject.OnCompleted();

            await col.OriginalCompleted;

            Assert.False(vm.IsLoading);
        }
Ejemplo n.º 6
0
        public void IsNotEnabledWhenPathIsNotValid()
        {
            var col            = TrackingCollection.Create(Observable.Empty <IRemoteRepositoryModel>());
            var repositoryHost = Substitute.For <IRepositoryHost>();

            repositoryHost.ModelService.GetRepositories(Arg.Any <ITrackingCollection <IRemoteRepositoryModel> >()).Returns(_ => col);

            var cloneService = Substitute.For <IRepositoryCloneService>();
            var vm           = GetVM(
                repositoryHost,
                cloneService,
                Substitute.For <IOperatingSystem>(),
                Substitute.For <INotificationService>(),
                Substitute.For <IUsageTracker>());

            vm.BaseRepositoryPath = @"c:|fake\path";
            Assert.False(vm.CloneCommand.CanExecute(null));

            vm.SelectedRepository = Substitute.For <IRemoteRepositoryModel>();

            Assert.False(vm.CloneCommand.CanExecute(null));
        }
        public void IsFalseIfLoadingReposFails()
        {
            var repoSubject    = new Subject <IRemoteRepositoryModel>();
            var col            = TrackingCollection.Create(repoSubject);
            var repositoryHost = Substitute.For <IRepositoryHost>();

            repositoryHost.ModelService.GetRepositories(Arg.Any <ITrackingCollection <IRemoteRepositoryModel> >()).Returns(_ => col);
            var cloneService = Substitute.For <IRepositoryCloneService>();
            var vm           = GetVM(
                repositoryHost,
                cloneService,
                Substitute.For <IOperatingSystem>(),
                Substitute.For <INotificationService>(),
                Substitute.For <IUsageTracker>());

            Assert.False(vm.LoadingFailed);

            repoSubject.OnError(new InvalidOperationException("Doh!"));

            Assert.True(vm.LoadingFailed);
            Assert.False(vm.FilterTextIsEnabled);
            repoSubject.OnCompleted();
        }