void OnGUI() { GUILayout.Label("Custom Git", EditorStyles.boldLabel); if (GUILayout.Button("Commit Stuff")) { gitClient.AddAll().Then(gitClient.Commit(DateTime.Now.ToString(), string.Empty)).Start(); } }
public async Task ShouldDetectFileChangesAndCommit() { Logger.Trace("Starting ShouldDetectFileChangesAndCommit"); 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 { var foobarTxt = TestRepoMasterCleanSynchronized.Combine("foobar.txt"); Logger.Trace("Issuing Changes"); foobarTxt.WriteAllText("foobar"); await TaskManager.Wait(); Logger.Trace("Continue test"); repositoryWatcher.Start(); watcherAutoResetEvent.RepositoryChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue(); watcherAutoResetEvent.Reset(); repositoryWatcherListener.DidNotReceive().HeadChanged(); repositoryWatcherListener.DidNotReceive().ConfigChanged(); repositoryWatcherListener.DidNotReceive().RepositoryCommitted(); repositoryWatcherListener.DidNotReceive().IndexChanged(); repositoryWatcherListener.Received().RepositoryChanged(); repositoryWatcherListener.DidNotReceive().LocalBranchesChanged(); repositoryWatcherListener.DidNotReceive().RemoteBranchesChanged(); repositoryWatcherListener.ClearReceivedCalls(); repositoryWatcher.Stop(); Logger.Trace("Issuing Command"); await GitClient.AddAll().StartAsAsync(); Logger.Trace("Completed Command"); repositoryWatcher.Start(); watcherAutoResetEvent.IndexChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue(); watcherAutoResetEvent.Reset(); repositoryWatcherListener.DidNotReceive().HeadChanged(); repositoryWatcherListener.DidNotReceive().ConfigChanged(); repositoryWatcherListener.DidNotReceive().RepositoryCommitted(); repositoryWatcherListener.Received(1).IndexChanged(); repositoryWatcherListener.DidNotReceive().RepositoryChanged(); repositoryWatcherListener.DidNotReceive().LocalBranchesChanged(); repositoryWatcherListener.DidNotReceive().RemoteBranchesChanged(); repositoryWatcherListener.ClearReceivedCalls(); repositoryWatcher.Stop(); Logger.Trace("Issuing Command"); await GitClient.Commit("Test Commit", string.Empty).StartAsAsync(); Logger.Trace("Completed Command"); repositoryWatcher.Start(); watcherAutoResetEvent.RepositoryCommitted.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue(); watcherAutoResetEvent.IndexChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue(); watcherAutoResetEvent.Reset(); repositoryWatcherListener.DidNotReceive().HeadChanged(); repositoryWatcherListener.DidNotReceive().ConfigChanged(); repositoryWatcherListener.Received(1).RepositoryCommitted(); repositoryWatcherListener.Received(1).IndexChanged(); repositoryWatcherListener.DidNotReceive().RepositoryChanged(); repositoryWatcherListener.Received(1).LocalBranchesChanged(); repositoryWatcherListener.DidNotReceive().RemoteBranchesChanged(); repositoryWatcherListener.ClearReceivedCalls(); } finally { repositoryWatcher.Stop(); } } } finally { Logger.Trace("Ending ShouldDetectFileChangesAndCommit"); } }