Esempio n. 1
0
        public void MakeSureWeDisposeFileSystemWatcher()
        {
            var ops      = Substitute.For <IGitRepoOps>();
            var filename = @"C:\Foo\Bar\Baz.txt";

            ops.FindGitRepo(filename).Returns(@"C:\Foo");
            ops.ProtocolUrlForRepoPath(@"C:\Foo").Returns(default(string));

            var subscriptionCount = 0;
            var countingObs       = Observable.Create <IList <string> >(subj => {
                subscriptionCount++;
                return(Disposable.Create(() => subscriptionCount--));
            });

            var watch = Substitute.For <IFilesystemWatchCache>();

            watch.Register(null).ReturnsForAnyArgs(countingObs);
            Assert.Equal(0, subscriptionCount);

            var fixture = new CommitHintViewModel(filename, Substitute.For <IVisualStudioOps>(), null, ops, watch);

            Assert.NotEqual(0, subscriptionCount);

            fixture.Dispose();
            Assert.Equal(0, subscriptionCount);
        }
Esempio n. 2
0
        public void CanOpenThisRepo()
        {
            var st       = new StackTrace(0, true);
            var filename = st.GetFrame(0).GetFileName();

            var fixture = new CommitHintViewModel(filename, Substitute.For <IVisualStudioOps>());

            Assert.True(fixture.Open.CanExecute(null));
        }
Esempio n. 3
0
        public void CantOpenWhenThereIsNoGitRepo()
        {
            var ops      = Substitute.For <IGitRepoOps>();
            var filename = @"C:\Foo\Bar\Baz.txt";

            ops.FindGitRepo(filename).Returns(default(string));

            var watch = Substitute.For <IFilesystemWatchCache>();

            watch.Register(null).ReturnsForAnyArgs(Observable.Never <IList <string> >());

            var fixture = new CommitHintViewModel(filename, Substitute.For <IVisualStudioOps>(), null, ops, watch);

            this.Log().Info("Protocol URL: {0}", fixture.ProtocolUrl);
            Assert.False(fixture.Open.CanExecute(null));
        }
Esempio n. 4
0
        public void SavesWhenYouClickTheButton()
        {
            var ops      = Substitute.For <IGitRepoOps>();
            var filename = @"C:\Foo\Bar\Baz.txt";

            ops.FindGitRepo(filename).Returns(@"C:\Foo");
            ops.ProtocolUrlForRepoPath(@"C:\Foo").Returns("https://github.com/reactiveui/reactiveui.git");

            var watch = Substitute.For <IFilesystemWatchCache>();

            watch.Register(null).ReturnsForAnyArgs(Observable.Never <IList <string> >());

            var vs      = Substitute.For <IVisualStudioOps>();
            var fixture = new CommitHintViewModel(filename, vs, null, ops, watch);

            Assert.True(fixture.Open.CanExecute(null));

            fixture.Open.Execute(null);
            vs.Received(1).SaveAll();
        }