Exemplo n.º 1
0
        public async Task ShouldDetectBranchDelete()
        {
            Logger.Trace("Starting ShouldDetectBranchDelete");

            try
            {
                InitializePlatformAndEnvironment(TestRepoMasterCleanSynchronized);

                using (var repositoryWatcher = CreateRepositoryWatcher(TestRepoMasterCleanSynchronized))
                {
                    var watcherAutoResetEvent = new RepositoryWatcherAutoResetEvent();

                    var repositoryWatcherListener = Substitute.For <IRepositoryWatcherListener>();
                    repositoryWatcherListener.AttachListener(repositoryWatcher, watcherAutoResetEvent);

                    repositoryWatcher.Initialize();
                    repositoryWatcher.Start();
                    repositoryWatcher.Stop();

                    try
                    {
                        Logger.Trace("Issuing Command");

                        await GitClient.DeleteBranch("feature/document", true).StartAsAsync();

                        await TaskManager.Wait();

                        Logger.Trace("Completed Command");

                        repositoryWatcher.Start();

                        watcherAutoResetEvent.ConfigChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();

                        Logger.Trace("Continue test");

                        repositoryWatcherListener.DidNotReceive().HeadChanged();
                        repositoryWatcherListener.Received(1).ConfigChanged();
                        repositoryWatcherListener.DidNotReceive().RepositoryCommitted();
                        repositoryWatcherListener.DidNotReceive().IndexChanged();
                        repositoryWatcherListener.DidNotReceive().RepositoryChanged();
                        repositoryWatcherListener.Received(1).LocalBranchesChanged();
                        repositoryWatcherListener.DidNotReceive().RemoteBranchesChanged();
                    }
                    finally
                    {
                        repositoryWatcher.Stop();
                    }
                }
            }
            finally
            {
                Logger.Trace("Ending ShouldDetectBranchDelete");
            }
        }