diff --git a/src/GitHub.Api/Events/RepositoryWatcher.cs b/src/GitHub.Api/Events/RepositoryWatcher.cs index 1ea868b4f..066788dbc 100644 --- a/src/GitHub.Api/Events/RepositoryWatcher.cs +++ b/src/GitHub.Api/Events/RepositoryWatcher.cs @@ -143,15 +143,32 @@ public int CheckAndProcessEvents() signalProcessingEventsDone.Reset(); processingEvents = true; - lastCountOfProcessedEvents = 0; - var fileEvents = nativeInterface.GetEvents(); + var processedEventCount = 0; + var fileEvents = nativeInterface.GetEvents(); if (fileEvents.Length > 0) { - Logger.Trace("Processing {0} Events", fileEvents.Length); + Logger.Trace("Handling {0} Events", fileEvents.Length); + processedEventCount = ProcessEvents(fileEvents); + Logger.Trace("Processed {0} Events", processedEventCount); } + lastCountOfProcessedEvents = processedEventCount; + processingEvents = false; + signalProcessingEventsDone.Set(); + + return processedEventCount; + } + + private int ProcessEvents(Event[] fileEvents) + { + var eventsProcessed = 0; + var configChanged = false; + var headChanged = false; var repositoryChanged = false; + var indexChanged = false; + + string headContent = null; foreach (var fileEvent in fileEvents) { @@ -180,176 +197,190 @@ public int CheckAndProcessEvents() // handling events in .git/* if (fileA.IsChildOf(paths.DotGitPath)) { - HandleEventInDotGit(fileEvent, fileA, fileB); - } - else - { - if (repositoryChanged || ignoredPaths.Any(ignoredPath => fileA.IsChildOf(ignoredPath))) + if (!configChanged && fileA.Equals(paths.DotGitConfig)) { - continue; + configChanged = true; } - - repositoryChanged = true; - } - lastCountOfProcessedEvents++; - } - - if (repositoryChanged) - { - Logger.Trace("RepositoryChanged"); - RepositoryChanged?.Invoke(); - } - - processingEvents = false; - signalProcessingEventsDone.Set(); - return lastCountOfProcessedEvents; - } - - private void HandleEventInDotGit(Event fileEvent, NPath fileA, NPath fileB = null) - { - if (fileA.Equals(paths.DotGitConfig)) - { - Logger.Trace("ConfigChanged"); - - ConfigChanged?.Invoke(); - } - else if (fileA.Equals(paths.DotGitHead)) - { - string headContent = null; - if (fileEvent.Type != EventType.DELETED) - { - headContent = paths.DotGitHead.ReadAllLines().FirstOrDefault(); - } - - Logger.Trace("HeadChanged: {0}", headContent ?? "[null]"); - HeadChanged?.Invoke(headContent); - } - else if (fileA.Equals(paths.DotGitIndex)) - { - Logger.Trace("IndexChanged"); - IndexChanged?.Invoke(); - } - else if (fileA.IsChildOf(paths.RemotesPath)) - { - var relativePath = fileA.RelativeTo(paths.RemotesPath); - var relativePathElements = relativePath.Elements.ToArray(); - - if (!relativePathElements.Any()) - { - return; - } - - var origin = relativePathElements[0]; - - if (fileEvent.Type == EventType.DELETED) - { - if (fileA.ExtensionWithDot == ".lock") + else if (!headChanged && fileA.Equals(paths.DotGitHead)) { - return; - } - - var branch = string.Join(@"/", relativePathElements.Skip(1).ToArray()); + if (fileEvent.Type != EventType.DELETED) + { + headContent = paths.DotGitHead.ReadAllLines().FirstOrDefault(); + } - Logger.Trace("RemoteBranchDeleted: {0}/{1}", origin, branch); - RemoteBranchDeleted?.Invoke(origin, branch); - } - else if (fileEvent.Type == EventType.RENAMED) - { - if (fileA.ExtensionWithDot != ".lock") + headChanged = true; + } + else if (!indexChanged && fileA.Equals(paths.DotGitIndex)) { - return; + indexChanged = true; } - - if (fileB != null && fileB.FileExists()) + else if (fileA.IsChildOf(paths.RemotesPath)) { - if (fileA.FileNameWithoutExtension == fileB.FileNameWithoutExtension) - { - var branchPathElement = relativePathElements.Skip(1) - .Take(relativePathElements.Length-2) - .Union(new [] { fileA.FileNameWithoutExtension }).ToArray(); - - var branch = string.Join(@"/", branchPathElement); + var relativePath = fileA.RelativeTo(paths.RemotesPath); + var relativePathElements = relativePath.Elements.ToArray(); - Logger.Trace("RemoteBranchCreated: {0}/{1}", origin, branch); - RemoteBranchCreated?.Invoke(origin, branch); + if (!relativePathElements.Any()) + { + continue; } - } - } - } - else if (fileA.IsChildOf(paths.BranchesPath)) - { - if (fileEvent.Type == EventType.MODIFIED) - { - if (fileA.DirectoryExists()) - { - return; - } - if (fileA.ExtensionWithDot == ".lock") - { - return; - } + var origin = relativePathElements[0]; - var relativePath = fileA.RelativeTo(paths.BranchesPath); - var relativePathElements = relativePath.Elements.ToArray(); + if (fileEvent.Type == EventType.DELETED) + { + if (fileA.ExtensionWithDot == ".lock") + { + continue; + } - if (!relativePathElements.Any()) - { - return; - } + var branch = string.Join(@"/", relativePathElements.Skip(1).ToArray()); - var branch = string.Join(@"/", relativePathElements.ToArray()); + Logger.Trace("RemoteBranchDeleted: {0}/{1}", origin, branch); + RemoteBranchDeleted?.Invoke(origin, branch); + eventsProcessed++; + } + else if (fileEvent.Type == EventType.RENAMED) + { + if (fileA.ExtensionWithDot != ".lock") + { + continue; + } - Logger.Trace("LocalBranchChanged: {0}", branch); - LocalBranchChanged?.Invoke(branch); - } - else if (fileEvent.Type == EventType.DELETED) - { - if (fileA.ExtensionWithDot == ".lock") - { - return; + if (fileB != null && fileB.FileExists()) + { + if (fileA.FileNameWithoutExtension == fileB.FileNameWithoutExtension) + { + var branchPathElement = relativePathElements + .Skip(1).Take(relativePathElements.Length - 2) + .Union(new[] { fileA.FileNameWithoutExtension }).ToArray(); + + var branch = string.Join(@"/", branchPathElement); + + Logger.Trace("RemoteBranchCreated: {0}/{1}", origin, branch); + RemoteBranchCreated?.Invoke(origin, branch); + eventsProcessed++; + } + } + } } + else if (fileA.IsChildOf(paths.BranchesPath)) + { + if (fileEvent.Type == EventType.MODIFIED) + { + if (fileA.DirectoryExists()) + { + continue; + } - var relativePath = fileA.RelativeTo(paths.BranchesPath); - var relativePathElements = relativePath.Elements.ToArray(); + if (fileA.ExtensionWithDot == ".lock") + { + continue; + } - if (!relativePathElements.Any()) - { - return; - } + var relativePath = fileA.RelativeTo(paths.BranchesPath); + var relativePathElements = relativePath.Elements.ToArray(); - var branch = string.Join(@"/", relativePathElements.ToArray()); + if (!relativePathElements.Any()) + { + continue; + } - Logger.Trace("LocalBranchDeleted: {0}", branch); - LocalBranchDeleted?.Invoke(branch); - } - else if (fileEvent.Type == EventType.RENAMED) - { - if (fileA.ExtensionWithDot != ".lock") - { - return; - } + var branch = string.Join(@"/", relativePathElements.ToArray()); - if (fileB != null && fileB.FileExists()) - { - if (fileA.FileNameWithoutExtension == fileB.FileNameWithoutExtension) + Logger.Trace("LocalBranchChanged: {0}", branch); + LocalBranchChanged?.Invoke(branch); + eventsProcessed++; + } + else if (fileEvent.Type == EventType.DELETED) { - var relativePath = fileB.RelativeTo(paths.BranchesPath); + if (fileA.ExtensionWithDot == ".lock") + { + continue; + } + + var relativePath = fileA.RelativeTo(paths.BranchesPath); var relativePathElements = relativePath.Elements.ToArray(); if (!relativePathElements.Any()) { - return; + continue; } var branch = string.Join(@"/", relativePathElements.ToArray()); - Logger.Trace("LocalBranchCreated: {0}", branch); - LocalBranchCreated?.Invoke(branch); + Logger.Trace("LocalBranchDeleted: {0}", branch); + LocalBranchDeleted?.Invoke(branch); + eventsProcessed++; + } + else if (fileEvent.Type == EventType.RENAMED) + { + if (fileA.ExtensionWithDot != ".lock") + { + continue; + } + + if (fileB != null && fileB.FileExists()) + { + if (fileA.FileNameWithoutExtension == fileB.FileNameWithoutExtension) + { + var relativePath = fileB.RelativeTo(paths.BranchesPath); + var relativePathElements = relativePath.Elements.ToArray(); + + if (!relativePathElements.Any()) + { + continue; + } + + var branch = string.Join(@"/", relativePathElements.ToArray()); + + Logger.Trace("LocalBranchCreated: {0}", branch); + LocalBranchCreated?.Invoke(branch); + eventsProcessed++; + } + } } } } + else + { + if (repositoryChanged || ignoredPaths.Any(ignoredPath => fileA.IsChildOf(ignoredPath))) + { + continue; + } + + repositoryChanged = true; + } } + + if (configChanged) + { + Logger.Trace("ConfigChanged"); + ConfigChanged?.Invoke(); + eventsProcessed++; + } + + if (headChanged) + { + Logger.Trace("HeadChanged: {0}", headContent ?? "[null]"); + HeadChanged?.Invoke(headContent); + eventsProcessed++; + } + + if (indexChanged) + { + Logger.Trace("IndexChanged"); + IndexChanged?.Invoke(); + eventsProcessed++; + } + + if (repositoryChanged) + { + Logger.Trace("RepositoryChanged"); + RepositoryChanged?.Invoke(); + eventsProcessed++; + } + + return eventsProcessed; } private bool disposed; diff --git a/src/tests/IntegrationTests/Events/RepositoryManagerTests.cs b/src/tests/IntegrationTests/Events/RepositoryManagerTests.cs index 7057a74ea..c8d84ebd2 100644 --- a/src/tests/IntegrationTests/Events/RepositoryManagerTests.cs +++ b/src/tests/IntegrationTests/Events/RepositoryManagerTests.cs @@ -10,7 +10,7 @@ namespace IntegrationTests { - [TestFixture/*, Category("TimeSensitive")*/] + [TestFixture] class RepositoryManagerTests : BaseGitEnvironmentTest { private RepositoryManagerEvents repositoryManagerEvents; @@ -53,7 +53,6 @@ public async Task ShouldDetectFileChanges() repositoryManagerListener.Received().OnStatusUpdate(Args.GitStatus); repositoryManagerListener.DidNotReceive().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); @@ -62,7 +61,7 @@ public async Task ShouldDetectFileChanges() result.AssertEqual(expected); } - [Test, Category("TimeSensitive")] + [Test] public async Task ShouldAddAndCommitFiles() { await Initialize(TestRepoMasterCleanSynchronized); @@ -93,14 +92,12 @@ public async Task ShouldAddAndCommitFiles() var testDocumentTxt = TestRepoMasterCleanSynchronized.Combine("Assets", "TestDocument.txt"); testDocumentTxt.WriteAllText("foobar"); await TaskManager.Wait(); - WaitForNotBusy(repositoryManagerEvents, 1); RepositoryManager.WaitForEvents(); WaitForNotBusy(repositoryManagerEvents, 1); repositoryManagerListener.Received().OnStatusUpdate(Args.GitStatus); repositoryManagerListener.DidNotReceive().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); repositoryManagerListener.ReceivedWithAnyArgs().OnIsBusyChanged(Args.Bool); @@ -118,18 +115,18 @@ await RepositoryManager await TaskManager.Wait(); RepositoryManager.WaitForEvents(); WaitForNotBusy(repositoryManagerEvents, 1); + repositoryManagerEvents.OnStatusUpdate.WaitOne(TimeSpan.FromSeconds(1)); - repositoryManagerListener.DidNotReceive().OnStatusUpdate(Args.GitStatus); + repositoryManagerListener.Received().OnStatusUpdate(Args.GitStatus); repositoryManagerListener.DidNotReceive().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); - repositoryManagerListener.Received(2).OnIsBusyChanged(Args.Bool); + repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); } - [Test, Category("TimeSensitive")] + [Test] public async Task ShouldAddAndCommitAllFiles() { await Initialize(TestRepoMasterCleanSynchronized); @@ -162,12 +159,10 @@ public async Task ShouldAddAndCommitAllFiles() await TaskManager.Wait(); WaitForNotBusy(repositoryManagerEvents, 1); RepositoryManager.WaitForEvents(); - WaitForNotBusy(repositoryManagerEvents, 1); repositoryManagerListener.Received().OnStatusUpdate(Args.GitStatus); repositoryManagerListener.DidNotReceive().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); repositoryManagerListener.ReceivedWithAnyArgs().OnIsBusyChanged(Args.Bool); @@ -183,20 +178,19 @@ await RepositoryManager .StartAsAsync(); await TaskManager.Wait(); - RepositoryManager.WaitForEvents(); WaitForNotBusy(repositoryManagerEvents, 1); + RepositoryManager.WaitForEvents(); repositoryManagerListener.DidNotReceive().OnStatusUpdate(Args.GitStatus); repositoryManagerListener.DidNotReceive().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); repositoryManagerListener.Received(2).OnIsBusyChanged(Args.Bool); repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); } - [Test, Category("TimeSensitive")] + [Test] public async Task ShouldDetectBranchChange() { await Initialize(TestRepoMasterCleanSynchronized); @@ -217,14 +211,14 @@ public async Task ShouldDetectBranchChange() await TaskManager.Wait(); RepositoryManager.WaitForEvents(); WaitForNotBusy(repositoryManagerEvents, 5); + repositoryManagerEvents.OnStatusUpdate.WaitOne(TimeSpan.FromSeconds(1)); repositoryManagerListener.Received().OnStatusUpdate(Args.GitStatus); - repositoryManagerListener.Received(1).OnActiveBranchChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.Received(1).OnHeadChanged(); + repositoryManagerListener.Received().OnActiveBranchChanged(Arg.Any()); + repositoryManagerListener.Received().OnActiveRemoteChanged(Arg.Any()); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); - repositoryManagerListener.DidNotReceive().OnIsBusyChanged(Args.Bool); + repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); result.AssertEqual(expected); @@ -240,14 +234,13 @@ public async Task ShouldDetectBranchDelete() await RepositoryManager.DeleteBranch("feature/document", true).StartAsAsync(); await TaskManager.Wait(); - RepositoryManager.WaitForEvents(); WaitForNotBusy(repositoryManagerEvents, 1); + RepositoryManager.WaitForEvents(); repositoryManagerListener.DidNotReceive().OnStatusUpdate(Args.GitStatus); //TODO: Deleting a branch causes a config reload, which raises OnActiveBranchChanged/OnActiveRemoteChanged repositoryManagerListener.Received().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.Received().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.Received(1).OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); repositoryManagerListener.ReceivedWithAnyArgs().OnIsBusyChanged(Args.Bool); @@ -269,7 +262,6 @@ public async Task ShouldDetectBranchCreate() repositoryManagerListener.DidNotReceive().OnStatusUpdate(Args.GitStatus); repositoryManagerListener.DidNotReceive().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.Received(1).OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); repositoryManagerListener.ReceivedWithAnyArgs().OnIsBusyChanged(Args.Bool); @@ -285,7 +277,6 @@ public async Task ShouldDetectBranchCreate() repositoryManagerListener.DidNotReceive().OnStatusUpdate(Args.GitStatus); repositoryManagerListener.DidNotReceive().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.Received(1).OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); repositoryManagerListener.Received(2).OnIsBusyChanged(Args.Bool); @@ -319,9 +310,8 @@ public async Task ShouldDetectChangesToRemotes() repositoryManagerListener.DidNotReceive().OnStatusUpdate(Args.GitStatus); repositoryManagerListener.Received().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.Received().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); - repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); + repositoryManagerListener.Received().OnRemoteBranchListChanged(); repositoryManagerListener.ReceivedWithAnyArgs().OnIsBusyChanged(Args.Bool); repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); @@ -342,14 +332,13 @@ public async Task ShouldDetectChangesToRemotes() repositoryManagerListener.DidNotReceive().OnStatusUpdate(Args.GitStatus); repositoryManagerListener.Received().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.Received().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); repositoryManagerListener.ReceivedWithAnyArgs().OnIsBusyChanged(Args.Bool); repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); } - [Test, Category("TimeSensitive")] + [Test] public async Task ShouldDetectChangesToRemotesWhenSwitchingBranches() { var expectedCloneUrl = "https://github.com/EvilStanleyGoldman/IOTestsRepo.git"; @@ -374,7 +363,6 @@ await RepositoryManager.CreateBranch("branch2", "another/master") repositoryManagerListener.DidNotReceive().OnStatusUpdate(Args.GitStatus); repositoryManagerListener.Received().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.Received().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.Received().OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); repositoryManagerListener.ReceivedWithAnyArgs().OnIsBusyChanged(Args.Bool); @@ -400,7 +388,6 @@ await RepositoryManager.SwitchBranch("branch2") repositoryManagerListener.DidNotReceive().OnStatusUpdate(Args.GitStatus); repositoryManagerListener.Received().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.Received().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); @@ -435,9 +422,8 @@ public async Task ShouldUpdateCloneUrlIfRemoteIsDeleted() repositoryManagerListener.ReceivedWithAnyArgs().OnIsBusyChanged(Args.Bool); repositoryManagerListener.Received().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.Received().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); - repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); + repositoryManagerListener.Received().OnRemoteBranchListChanged(); repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); repositoryManagerListener.ClearReceivedCalls(); @@ -457,13 +443,12 @@ public async Task ShouldUpdateCloneUrlIfRemoteIsDeleted() repositoryManagerListener.ReceivedWithAnyArgs().OnIsBusyChanged(Args.Bool); repositoryManagerListener.Received().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.Received().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); } - [Test, Category("TimeSensitive")] + [Test] public async Task ShouldDetectGitPull() { await Initialize(TestRepoMasterCleanSynchronized); @@ -488,7 +473,6 @@ public async Task ShouldDetectGitPull() repositoryManagerListener.ReceivedWithAnyArgs().OnIsBusyChanged(Args.Bool); repositoryManagerListener.DidNotReceive().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); @@ -515,7 +499,6 @@ public async Task ShouldDetectGitFetch() repositoryManagerListener.ReceivedWithAnyArgs().OnIsBusyChanged(Args.Bool); repositoryManagerListener.DidNotReceive().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); repositoryManagerListener.Received(2).OnRemoteBranchListChanged(); repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); diff --git a/src/tests/IntegrationTests/SetupFixture.cs b/src/tests/IntegrationTests/SetupFixture.cs index 4c9a43b6b..10ab573b3 100644 --- a/src/tests/IntegrationTests/SetupFixture.cs +++ b/src/tests/IntegrationTests/SetupFixture.cs @@ -12,7 +12,10 @@ public void Setup() { Logging.TracingEnabled = true; - Logging.LogAdapter = new MultipleLogAdapter(new FileLogAdapter($"..\\{DateTime.UtcNow.ToString("yyyyMMddHHmmss")}-integration-tests.log")); + Logging.LogAdapter = new MultipleLogAdapter( + new FileLogAdapter($"..\\{DateTime.UtcNow.ToString("yyyyMMddHHmmss")}-integration-tests.log"), + new ConsoleLogAdapter() + ); } } } diff --git a/src/tests/TestUtils/Events/IRepositoryManagerListener.cs b/src/tests/TestUtils/Events/IRepositoryManagerListener.cs index be0aafa76..d9c984e6c 100644 --- a/src/tests/TestUtils/Events/IRepositoryManagerListener.cs +++ b/src/tests/TestUtils/Events/IRepositoryManagerListener.cs @@ -11,7 +11,6 @@ interface IRepositoryManagerListener void OnStatusUpdate(GitStatus status); void OnActiveBranchChanged(ConfigBranch? branch); void OnActiveRemoteChanged(ConfigRemote? remote); - void OnHeadChanged(); void OnLocalBranchListChanged(); void OnRemoteBranchListChanged(); void OnIsBusyChanged(bool busy); @@ -101,7 +100,6 @@ public static void AssertDidNotReceiveAnyCalls(this IRepositoryManagerListener r repositoryManagerListener.DidNotReceive().OnStatusUpdate(Args.GitStatus); repositoryManagerListener.DidNotReceive().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); diff --git a/src/tests/UnitTests/Repository/RepositoryManagerTests.cs b/src/tests/UnitTests/Repository/RepositoryManagerTests.cs index aa4ed882c..be6bfbbe6 100644 --- a/src/tests/UnitTests/Repository/RepositoryManagerTests.cs +++ b/src/tests/UnitTests/Repository/RepositoryManagerTests.cs @@ -181,7 +181,6 @@ public async Task ShouldRefreshAndReturnCombinedStatusAndLockInformation1() repositoryManagerListener.DidNotReceive().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); } @@ -243,7 +242,6 @@ public void ShouldRefreshAndReturnCombinedStatusAndLockInformation2() repositoryManagerListener.DidNotReceive().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); } @@ -282,7 +280,6 @@ public void ShouldRefreshAndReturnWithEmptyGitLockResponse() repositoryManagerListener.DidNotReceive().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); } @@ -321,7 +318,6 @@ public void ShouldRefreshAndReturnWithNoGitLockResponse() repositoryManagerListener.DidNotReceive().OnActiveBranchChanged(Arg.Any()); repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged(Arg.Any()); - repositoryManagerListener.DidNotReceive().OnHeadChanged(); repositoryManagerListener.DidNotReceive().OnLocalBranchListChanged(); repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged(); }