diff --git a/docs/contributing/how-to-test.md b/docs/contributing/how-to-test.md new file mode 100644 index 000000000..fd29a20b1 --- /dev/null +++ b/docs/contributing/how-to-test.md @@ -0,0 +1,10 @@ + +Unit and Integration tests for Unity can be found under `src/tests/`. + +## Testing requirements +Tests currently run with NUnit 2.6.4. + +## Running tests +Tests can be run after building the Unity project. To run the tests execute `test.cmd` on Windows or `test.sh` on Mac. + +We use [Appveyor](https://ci.appveyor.com/project/github-windows/unity/build/tests) as the CI for this project to run tests, but it is also necessary to run tests locally when making code changes. diff --git a/src/GitHub.Api/Events/RepositoryWatcher.cs b/src/GitHub.Api/Events/RepositoryWatcher.cs index 6528b0d3a..4832f453f 100644 --- a/src/GitHub.Api/Events/RepositoryWatcher.cs +++ b/src/GitHub.Api/Events/RepositoryWatcher.cs @@ -167,7 +167,7 @@ private int ProcessEvents(Event[] fileEvents) break; } - //Logger.Trace(fileEvent.Describe()); + Logger.Trace(fileEvent.Describe()); var eventDirectory = new NPath(fileEvent.Directory); var fileA = eventDirectory.Combine(fileEvent.FileA); diff --git a/src/tests/IntegrationTests/BaseGitEnvironmentTest.cs b/src/tests/IntegrationTests/BaseGitEnvironmentTest.cs index 892878acf..d9a74da97 100644 --- a/src/tests/IntegrationTests/BaseGitEnvironmentTest.cs +++ b/src/tests/IntegrationTests/BaseGitEnvironmentTest.cs @@ -9,7 +9,7 @@ namespace IntegrationTests class BaseGitEnvironmentTest : BaseGitRepoTest { protected async Task Initialize(NPath repoPath, NPath environmentPath = null, - bool enableEnvironmentTrace = false) + bool enableEnvironmentTrace = false, bool initializeRepository = true) { TaskManager = new TaskManager(); SyncContext = new ThreadSynchronizationContext(TaskManager.Token); @@ -34,8 +34,11 @@ protected async Task Initialize(NPath repoPath, NPath environmentP RepositoryManager = GitHub.Unity.RepositoryManager.CreateInstance(Platform, TaskManager, GitClient, repoPath); RepositoryManager.Initialize(); - Environment.Repository = new Repository(repoPath, cacheContainer); - Environment.Repository.Initialize(RepositoryManager); + if (initializeRepository) + { + Environment.Repository = new Repository(repoPath, cacheContainer); + Environment.Repository.Initialize(RepositoryManager); + } RepositoryManager.Start(); diff --git a/src/tests/IntegrationTests/Events/RepositoryManagerTests.cs b/src/tests/IntegrationTests/Events/RepositoryManagerTests.cs index 8d18690f8..2a759617f 100644 --- a/src/tests/IntegrationTests/Events/RepositoryManagerTests.cs +++ b/src/tests/IntegrationTests/Events/RepositoryManagerTests.cs @@ -11,7 +11,7 @@ namespace IntegrationTests { - [TestFixture, Ignore] + [TestFixture] class RepositoryManagerTests : BaseGitEnvironmentTest { private RepositoryManagerEvents repositoryManagerEvents; @@ -25,74 +25,33 @@ public override void OnSetup() [Test] public async Task ShouldDoNothingOnInitialize() { - await Initialize(TestRepoMasterCleanSynchronized); + await Initialize(TestRepoMasterCleanSynchronized, initializeRepository: false); var repositoryManagerListener = Substitute.For(); repositoryManagerListener.AttachListener(RepositoryManager, repositoryManagerEvents); RepositoryManager.WaitForEvents(); - repositoryManagerEvents.WaitForNotBusy(2); + repositoryManagerEvents.WaitForNotBusy(); repositoryManagerListener.AssertDidNotReceiveAnyCalls(); - - Repository.Name.Should().Be("IOTestsRepo"); - Repository.CloneUrl.ToString().Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.Owner.Should().Be("EvilStanleyGoldman"); - Repository.LocalPath.Should().Be(TestRepoMasterCleanSynchronized); - Repository.IsGitHub.Should().BeTrue(); - Repository.CurrentBranchName.Should().Be("master"); - Repository.CurrentBranch.HasValue.Should().BeTrue(); - Repository.CurrentBranch.Value.Name.Should().Be("master"); - Repository.CurrentRemote.HasValue.Should().BeTrue(); - Repository.CurrentRemote.Value.Name.Should().Be("origin"); - Repository.CurrentRemote.Value.Url.Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.LocalBranches.Should().BeEquivalentTo(new[] { - new GitBranch("master", "origin/master", true), - new GitBranch("feature/document", "origin/feature/document", false), - new GitBranch("feature/other-feature", "origin/feature/other-feature", false), - }); - Repository.Remotes.Should().BeEquivalentTo(new GitRemote("origin", "https://github.com/EvilStanleyGoldman/IOTestsRepo.git")); - Repository.RemoteBranches.Should().BeEquivalentTo(new[] { - new GitBranch("origin/master", "[None]", false), - new GitBranch("origin/feature/document-2", "[None]", false), - new GitBranch("origin/feature/other-feature", "[None]", false), - }); } [Test] public async Task ShouldDetectFileChanges() { - await Initialize(TestRepoMasterCleanSynchronized); + await Initialize(TestRepoMasterCleanSynchronized, initializeRepository: false); var repositoryManagerListener = Substitute.For(); repositoryManagerListener.AttachListener(RepositoryManager, repositoryManagerEvents); - var expected = new GitStatus { - Behind = 1, - LocalBranch = "master", - RemoteBranch = "origin/master", - Entries = - new List { - new GitStatusEntry("foobar.txt", TestRepoMasterCleanSynchronized.Combine("foobar.txt"), - "foobar.txt", GitFileStatus.Untracked) - } - }; - - var result = new GitStatus(); - //TODO: Figure this out - //Environment.Repository.OnStatusChanged += status => { result = status; }; - var foobarTxt = TestRepoMasterCleanSynchronized.Combine("foobar.txt"); foobarTxt.WriteAllText("foobar"); await TaskManager.Wait(); RepositoryManager.WaitForEvents(); repositoryManagerEvents.WaitForNotBusy(); - repositoryManagerEvents.WaitForStatusUpdated(); - repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); - repositoryManagerListener.Received().OnStatusUpdated(Args.GitStatus); - repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); + repositoryManagerListener.DidNotReceive().OnIsBusyChanged(Args.Bool); repositoryManagerListener.DidNotReceive().OnCurrentBranchAndRemoteUpdated(Arg.Any(), Arg.Any()); repositoryManagerListener.DidNotReceive().OnLocalBranchListUpdated(Arg.Any>()); repositoryManagerListener.DidNotReceive().OnRemoteBranchListUpdated(Arg.Any>(), Arg.Any>>()); @@ -101,35 +60,17 @@ public async Task ShouldDetectFileChanges() repositoryManagerListener.DidNotReceive().OnLocalBranchRemoved(Args.String); repositoryManagerListener.DidNotReceive().OnRemoteBranchAdded(Args.String, Args.String); repositoryManagerListener.DidNotReceive().OnRemoteBranchRemoved(Args.String, Args.String); - - result.AssertEqual(expected); } [Test] public async Task ShouldAddAndCommitFiles() { - await Initialize(TestRepoMasterCleanSynchronized); + await Initialize(TestRepoMasterCleanSynchronized, initializeRepository: false); var repositoryManagerListener = Substitute.For(); repositoryManagerListener.AttachListener(RepositoryManager, repositoryManagerEvents); var expectedLocalBranch = "master"; - var expectedAfterChanges = new GitStatus { - Behind = 1, - LocalBranch = expectedLocalBranch, - RemoteBranch = "origin/master", - Entries = - new List { - new GitStatusEntry("Assets\\TestDocument.txt", - TestRepoMasterCleanSynchronized.Combine("Assets", "TestDocument.txt"), - "Assets\\TestDocument.txt", GitFileStatus.Modified), - new GitStatusEntry("foobar.txt", TestRepoMasterCleanSynchronized.Combine("foobar.txt"), - "foobar.txt", GitFileStatus.Untracked) - } - }; - - var result = new GitStatus(); - //RepositoryManager.OnStatusUpdated += status => { result = status; }; var foobarTxt = TestRepoMasterCleanSynchronized.Combine("foobar.txt"); foobarTxt.WriteAllText("foobar"); @@ -142,15 +83,10 @@ public async Task ShouldAddAndCommitFiles() //Intentionally wait two cycles, in case the first cycle did not pick up all events RepositoryManager.WaitForEvents(); repositoryManagerEvents.WaitForNotBusy(); - repositoryManagerEvents.WaitForStatusUpdated(); RepositoryManager.WaitForEvents(); repositoryManagerEvents.WaitForNotBusy(); - repositoryManagerEvents.WaitForStatusUpdated(); - - repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); - repositoryManagerListener.Received().OnStatusUpdated(Args.GitStatus); - repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); + repositoryManagerListener.DidNotReceive().OnIsBusyChanged(Args.Bool); repositoryManagerListener.DidNotReceive().OnCurrentBranchAndRemoteUpdated(Arg.Any(), Arg.Any()); repositoryManagerListener.DidNotReceive().OnLocalBranchListUpdated(Arg.Any>()); repositoryManagerListener.DidNotReceive().OnRemoteBranchListUpdated(Arg.Any>(), Arg.Any>>()); @@ -160,8 +96,6 @@ public async Task ShouldAddAndCommitFiles() repositoryManagerListener.DidNotReceive().OnRemoteBranchAdded(Args.String, Args.String); repositoryManagerListener.DidNotReceive().OnRemoteBranchRemoved(Args.String, Args.String); - result.AssertEqual(expectedAfterChanges); - repositoryManagerListener.ClearReceivedCalls(); repositoryManagerEvents.Reset(); @@ -174,8 +108,6 @@ await RepositoryManager repositoryManagerEvents.WaitForNotBusy(); repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); - repositoryManagerListener.DidNotReceive().OnStatusUpdated(Args.GitStatus); - repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); repositoryManagerListener.DidNotReceive().OnCurrentBranchAndRemoteUpdated(Arg.Any(), Arg.Any()); repositoryManagerListener.DidNotReceive().OnLocalBranchListUpdated(Arg.Any>()); repositoryManagerListener.DidNotReceive().OnRemoteBranchListUpdated(Arg.Any>(), Arg.Any>>()); @@ -186,32 +118,15 @@ await RepositoryManager repositoryManagerListener.DidNotReceive().OnRemoteBranchRemoved(Args.String, Args.String); } - [Test, Ignore("Fails often")] + [Test] public async Task ShouldAddAndCommitAllFiles() { - await Initialize(TestRepoMasterCleanSynchronized); + await Initialize(TestRepoMasterCleanSynchronized, initializeRepository: false); var repositoryManagerListener = Substitute.For(); repositoryManagerListener.AttachListener(RepositoryManager, repositoryManagerEvents); var expectedLocalBranch = "master"; - var expectedAfterChanges = new GitStatus { - Behind = 1, - LocalBranch = expectedLocalBranch, - RemoteBranch = "origin/master", - Entries = - new List { - new GitStatusEntry("Assets\\TestDocument.txt", - TestRepoMasterCleanSynchronized.Combine("Assets", "TestDocument.txt"), - "Assets\\TestDocument.txt", GitFileStatus.Modified), - new GitStatusEntry("foobar.txt", TestRepoMasterCleanSynchronized.Combine("foobar.txt"), - "foobar.txt", GitFileStatus.Untracked) - } - }; - - var result = new GitStatus(); - //TODO: Figure this out - //RepositoryManager.OnStatusUpdated += status => { result = status; }; var foobarTxt = TestRepoMasterCleanSynchronized.Combine("foobar.txt"); foobarTxt.WriteAllText("foobar"); @@ -222,11 +137,8 @@ public async Task ShouldAddAndCommitAllFiles() await TaskManager.Wait(); RepositoryManager.WaitForEvents(); repositoryManagerEvents.WaitForNotBusy(); - repositoryManagerEvents.WaitForStatusUpdated(); - repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); - repositoryManagerListener.Received().OnStatusUpdated(Args.GitStatus); - repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); + repositoryManagerListener.DidNotReceive().OnIsBusyChanged(Args.Bool); repositoryManagerListener.DidNotReceive().OnCurrentBranchAndRemoteUpdated(Arg.Any(), Arg.Any()); repositoryManagerListener.DidNotReceive().OnLocalBranchListUpdated(Arg.Any>()); repositoryManagerListener.DidNotReceive().OnRemoteBranchListUpdated(Arg.Any>(), Arg.Any>>()); @@ -236,8 +148,6 @@ public async Task ShouldAddAndCommitAllFiles() repositoryManagerListener.DidNotReceive().OnRemoteBranchAdded(Args.String, Args.String); repositoryManagerListener.DidNotReceive().OnRemoteBranchRemoved(Args.String, Args.String); - result.AssertEqual(expectedAfterChanges); - repositoryManagerListener.ClearReceivedCalls(); repositoryManagerEvents.Reset(); @@ -250,8 +160,6 @@ await RepositoryManager repositoryManagerEvents.WaitForNotBusy(); repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); - repositoryManagerListener.DidNotReceive().OnStatusUpdated(Args.GitStatus); - repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); repositoryManagerListener.DidNotReceive().OnCurrentBranchAndRemoteUpdated(Arg.Any(), Arg.Any()); repositoryManagerListener.DidNotReceive().OnLocalBranchListUpdated(Arg.Any>()); repositoryManagerListener.DidNotReceive().OnRemoteBranchListUpdated(Arg.Any>(), Arg.Any>>()); @@ -265,21 +173,12 @@ await RepositoryManager [Test] public async Task ShouldDetectBranchChange() { - await Initialize(TestRepoMasterCleanSynchronized); + await Initialize(TestRepoMasterCleanSynchronized, initializeRepository: false); var repositoryManagerListener = Substitute.For(); repositoryManagerListener.AttachListener(RepositoryManager, repositoryManagerEvents); var expectedLocalBranch = "feature/document"; - var expected = new GitStatus { - LocalBranch = expectedLocalBranch, - RemoteBranch = "origin/feature/document", - Entries = new List() - }; - - var result = new GitStatus(); - //TODO: Figure this out - //RepositoryManager.OnStatusUpdated += status => { result = status; }; Logger.Trace("Starting test"); @@ -288,11 +187,8 @@ public async Task ShouldDetectBranchChange() await TaskManager.Wait(); RepositoryManager.WaitForEvents(); repositoryManagerEvents.WaitForNotBusy(); - repositoryManagerEvents.WaitForStatusUpdated(); repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); - repositoryManagerListener.Received().OnStatusUpdated(Args.GitStatus); - repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); repositoryManagerListener.Received().OnCurrentBranchAndRemoteUpdated(Arg.Any(), Arg.Any()); repositoryManagerListener.DidNotReceive().OnLocalBranchListUpdated(Arg.Any>()); repositoryManagerListener.DidNotReceive().OnRemoteBranchListUpdated(Arg.Any>(), Arg.Any>>()); @@ -301,37 +197,12 @@ public async Task ShouldDetectBranchChange() repositoryManagerListener.DidNotReceive().OnLocalBranchRemoved(Args.String); repositoryManagerListener.DidNotReceive().OnRemoteBranchAdded(Args.String, Args.String); repositoryManagerListener.DidNotReceive().OnRemoteBranchRemoved(Args.String, Args.String); - - result.AssertEqual(expected); - - Repository.Name.Should().Be("IOTestsRepo"); - Repository.CloneUrl.ToString().Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.Owner.Should().Be("EvilStanleyGoldman"); - Repository.LocalPath.Should().Be(TestRepoMasterCleanSynchronized); - Repository.IsGitHub.Should().BeTrue(); - Repository.CurrentBranchName.Should().Be("feature/document"); - Repository.CurrentBranch.HasValue.Should().BeTrue(); - Repository.CurrentBranch.Value.Name.Should().Be("feature/document"); - Repository.CurrentRemote.HasValue.Should().BeTrue(); - Repository.CurrentRemote.Value.Name.Should().Be("origin"); - Repository.CurrentRemote.Value.Url.Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.LocalBranches.Should().BeEquivalentTo(new[] { - new GitBranch("master", "origin/master", false), - new GitBranch("feature/document", "origin/feature/document", true), - new GitBranch("feature/other-feature", "origin/feature/other-feature", false), - }); - Repository.Remotes.Should().BeEquivalentTo(new GitRemote("origin", "https://github.com/EvilStanleyGoldman/IOTestsRepo.git")); - Repository.RemoteBranches.Should().BeEquivalentTo(new[] { - new GitBranch("origin/master", "[None]", false), - new GitBranch("origin/feature/document-2", "[None]", false), - new GitBranch("origin/feature/other-feature", "[None]", false), - }); } [Test] public async Task ShouldDetectBranchDelete() { - await Initialize(TestRepoMasterCleanSynchronized); + await Initialize(TestRepoMasterCleanSynchronized, initializeRepository: false); var repositoryManagerListener = Substitute.For(); repositoryManagerListener.AttachListener(RepositoryManager, repositoryManagerEvents); @@ -343,8 +214,6 @@ public async Task ShouldDetectBranchDelete() repositoryManagerEvents.WaitForNotBusy(); repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); - repositoryManagerListener.DidNotReceive().OnStatusUpdated(Args.GitStatus); - repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); repositoryManagerListener.Received().OnCurrentBranchAndRemoteUpdated(Arg.Any(), Arg.Any()); repositoryManagerListener.Received().OnLocalBranchListUpdated(Arg.Any>()); repositoryManagerListener.Received().OnRemoteBranchListUpdated(Arg.Any>(), Arg.Any>>()); @@ -353,34 +222,12 @@ public async Task ShouldDetectBranchDelete() repositoryManagerListener.Received().OnLocalBranchRemoved(deletedBranch); repositoryManagerListener.DidNotReceive().OnRemoteBranchAdded(Args.String, Args.String); repositoryManagerListener.DidNotReceive().OnRemoteBranchRemoved(Args.String, Args.String); - - Repository.Name.Should().Be("IOTestsRepo"); - Repository.CloneUrl.ToString().Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.Owner.Should().Be("EvilStanleyGoldman"); - Repository.LocalPath.Should().Be(TestRepoMasterCleanSynchronized); - Repository.IsGitHub.Should().BeTrue(); - Repository.CurrentBranchName.Should().Be("master"); - Repository.CurrentBranch.HasValue.Should().BeTrue(); - Repository.CurrentBranch.Value.Name.Should().Be("master"); - Repository.CurrentRemote.HasValue.Should().BeTrue(); - Repository.CurrentRemote.Value.Name.Should().Be("origin"); - Repository.CurrentRemote.Value.Url.Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.LocalBranches.Should().BeEquivalentTo(new[] { - new GitBranch("master", "origin/master", true), - new GitBranch("feature/other-feature", "origin/feature/other-feature", false), - }); - Repository.Remotes.Should().BeEquivalentTo(new GitRemote("origin","https://github.com/EvilStanleyGoldman/IOTestsRepo.git")); - Repository.RemoteBranches.Should().BeEquivalentTo(new[] { - new GitBranch("origin/master", "[None]", false), - new GitBranch("origin/feature/document-2", "[None]", false), - new GitBranch("origin/feature/other-feature", "[None]", false), - }); } [Test] public async Task ShouldDetectBranchCreate() { - await Initialize(TestRepoMasterCleanSynchronized); + await Initialize(TestRepoMasterCleanSynchronized, initializeRepository: false); var repositoryManagerListener = Substitute.For(); repositoryManagerListener.AttachListener(RepositoryManager, repositoryManagerEvents); @@ -392,8 +239,6 @@ public async Task ShouldDetectBranchCreate() repositoryManagerEvents.WaitForNotBusy(); repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); - repositoryManagerListener.DidNotReceive().OnStatusUpdated(Args.GitStatus); - repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); repositoryManagerListener.DidNotReceive().OnCurrentBranchAndRemoteUpdated(Arg.Any(), Arg.Any()); repositoryManagerListener.DidNotReceive().OnLocalBranchListUpdated(Arg.Any>()); repositoryManagerListener.DidNotReceive().OnRemoteBranchListUpdated(Arg.Any>(), Arg.Any>>()); @@ -403,30 +248,6 @@ public async Task ShouldDetectBranchCreate() repositoryManagerListener.DidNotReceive().OnRemoteBranchAdded(Args.String, Args.String); repositoryManagerListener.DidNotReceive().OnRemoteBranchRemoved(Args.String, Args.String); - Repository.Name.Should().Be("IOTestsRepo"); - Repository.CloneUrl.ToString().Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.Owner.Should().Be("EvilStanleyGoldman"); - Repository.LocalPath.Should().Be(TestRepoMasterCleanSynchronized); - Repository.IsGitHub.Should().BeTrue(); - Repository.CurrentBranchName.Should().Be("master"); - Repository.CurrentBranch.HasValue.Should().BeTrue(); - Repository.CurrentBranch.Value.Name.Should().Be("master"); - Repository.CurrentRemote.HasValue.Should().BeTrue(); - Repository.CurrentRemote.Value.Name.Should().Be("origin"); - Repository.CurrentRemote.Value.Url.Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.LocalBranches.Should().BeEquivalentTo(new[] { - new GitBranch("master", "origin/master", true), - new GitBranch("feature/document", "origin/feature/document", false), - new GitBranch("feature/document2", "[None]", false), - new GitBranch("feature/other-feature", "origin/feature/other-feature", false), - }); - Repository.Remotes.Should().BeEquivalentTo(new GitRemote("origin","https://github.com/EvilStanleyGoldman/IOTestsRepo.git")); - Repository.RemoteBranches.Should().BeEquivalentTo(new[] { - new GitBranch("origin/master", "[None]", false), - new GitBranch("origin/feature/document-2", "[None]", false), - new GitBranch("origin/feature/other-feature", "[None]", false), - }); - repositoryManagerListener.ClearReceivedCalls(); repositoryManagerEvents.Reset(); @@ -437,8 +258,6 @@ public async Task ShouldDetectBranchCreate() repositoryManagerEvents.WaitForNotBusy(); repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); - repositoryManagerListener.DidNotReceive().OnStatusUpdated(Args.GitStatus); - repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); repositoryManagerListener.DidNotReceive().OnCurrentBranchAndRemoteUpdated(Arg.Any(), Arg.Any()); repositoryManagerListener.DidNotReceive().OnLocalBranchListUpdated(Arg.Any>()); repositoryManagerListener.DidNotReceive().OnRemoteBranchListUpdated(Arg.Any>(), Arg.Any>>()); @@ -447,69 +266,16 @@ public async Task ShouldDetectBranchCreate() repositoryManagerListener.DidNotReceive().OnLocalBranchRemoved(Args.String); repositoryManagerListener.DidNotReceive().OnRemoteBranchAdded(Args.String, Args.String); repositoryManagerListener.DidNotReceive().OnRemoteBranchRemoved(Args.String, Args.String); - - Repository.Name.Should().Be("IOTestsRepo"); - Repository.CloneUrl.ToString().Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.Owner.Should().Be("EvilStanleyGoldman"); - Repository.LocalPath.Should().Be(TestRepoMasterCleanSynchronized); - Repository.IsGitHub.Should().BeTrue(); - Repository.CurrentBranchName.Should().Be("master"); - Repository.CurrentBranch.HasValue.Should().BeTrue(); - Repository.CurrentBranch.Value.Name.Should().Be("master"); - Repository.CurrentRemote.HasValue.Should().BeTrue(); - Repository.CurrentRemote.Value.Name.Should().Be("origin"); - Repository.CurrentRemote.Value.Url.Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.LocalBranches.Should().BeEquivalentTo(new[] { - new GitBranch("master", "origin/master", true), - new GitBranch("feature/document", "origin/feature/document", false), - new GitBranch("feature/document2", "[None]", false), - new GitBranch("feature2/document2", "[None]", false), - new GitBranch("feature/other-feature", "origin/feature/other-feature", false), - }); - Repository.Remotes.Should().BeEquivalentTo(new GitRemote("origin","https://github.com/EvilStanleyGoldman/IOTestsRepo.git")); - Repository.RemoteBranches.Should().BeEquivalentTo(new[] { - new GitBranch("origin/master", "[None]", false), - new GitBranch("origin/feature/document-2", "[None]", false), - new GitBranch("origin/feature/other-feature", "[None]", false), - }); } [Test] public async Task ShouldDetectChangesToRemotes() { - await Initialize(TestRepoMasterCleanSynchronized); + await Initialize(TestRepoMasterCleanSynchronized, initializeRepository: false); var repositoryManagerListener = Substitute.For(); repositoryManagerListener.AttachListener(RepositoryManager, repositoryManagerEvents); - RepositoryManager.WaitForEvents(); - repositoryManagerEvents.WaitForNotBusy(2); - - repositoryManagerListener.AssertDidNotReceiveAnyCalls(); - - Repository.Name.Should().Be("IOTestsRepo"); - Repository.CloneUrl.ToString().Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.Owner.Should().Be("EvilStanleyGoldman"); - Repository.LocalPath.Should().Be(TestRepoMasterCleanSynchronized); - Repository.IsGitHub.Should().BeTrue(); - Repository.CurrentBranchName.Should().Be("master"); - Repository.CurrentBranch.HasValue.Should().BeTrue(); - Repository.CurrentBranch.Value.Name.Should().Be("master"); - Repository.CurrentRemote.HasValue.Should().BeTrue(); - Repository.CurrentRemote.Value.Name.Should().Be("origin"); - Repository.CurrentRemote.Value.Url.Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.LocalBranches.Should().BeEquivalentTo(new[] { - new GitBranch("master", "origin/master", true), - new GitBranch("feature/document", "origin/feature/document", false), - new GitBranch("feature/other-feature", "origin/feature/other-feature", false), - }); - Repository.Remotes.Should().BeEquivalentTo(new GitRemote("origin","https://github.com/EvilStanleyGoldman/IOTestsRepo.git")); - Repository.RemoteBranches.Should().BeEquivalentTo(new[] { - new GitBranch("origin/master", "[None]", false), - new GitBranch("origin/feature/document-2", "[None]", false), - new GitBranch("origin/feature/other-feature", "[None]", false), - }); - await RepositoryManager.RemoteRemove("origin").StartAsAsync(); await TaskManager.Wait(); @@ -520,8 +286,6 @@ public async Task ShouldDetectChangesToRemotes() repositoryManagerEvents.OnLocalBranchListUpdated.WaitOne(TimeSpan.FromSeconds(1)); repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); - repositoryManagerListener.DidNotReceive().OnStatusUpdated(Args.GitStatus); - repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); repositoryManagerListener.Received().OnCurrentBranchAndRemoteUpdated(Arg.Any(), Arg.Any()); repositoryManagerListener.Received().OnLocalBranchListUpdated(Arg.Any>()); repositoryManagerListener.Received().OnRemoteBranchListUpdated(Arg.Any>(), Arg.Any>>()); @@ -531,18 +295,6 @@ public async Task ShouldDetectChangesToRemotes() repositoryManagerListener.DidNotReceive().OnRemoteBranchAdded(Args.String, Args.String); repositoryManagerListener.Received().OnRemoteBranchRemoved(Args.String, Args.String); - Repository.Name.Should().Be("IOTestsRepo_master_clean_sync"); - Repository.CloneUrl.Should().BeNull(); - Repository.Owner.Should().BeNull(); - Repository.LocalPath.Should().Be(TestRepoMasterCleanSynchronized); - Repository.IsGitHub.Should().BeFalse(); - Repository.CurrentBranchName.Should().Be("master"); - Repository.CurrentBranch.HasValue.Should().BeTrue(); - Repository.CurrentBranch.Value.Name.Should().Be("master"); - Repository.CurrentRemote.HasValue.Should().BeFalse(); - Repository.Remotes.Should().BeEquivalentTo(); - Repository.RemoteBranches.Should().BeEmpty(); - repositoryManagerListener.ClearReceivedCalls(); repositoryManagerEvents.Reset(); @@ -554,8 +306,6 @@ public async Task ShouldDetectChangesToRemotes() repositoryManagerEvents.OnLocalBranchListUpdated.WaitOne(TimeSpan.FromSeconds(1)); repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); - repositoryManagerListener.DidNotReceive().OnStatusUpdated(Args.GitStatus); - repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); repositoryManagerListener.Received().OnCurrentBranchAndRemoteUpdated(Arg.Any(), Arg.Any()); repositoryManagerListener.Received().OnLocalBranchListUpdated(Arg.Any>()); repositoryManagerListener.Received().OnRemoteBranchListUpdated(Arg.Any>(), Arg.Any>>()); @@ -564,68 +314,16 @@ public async Task ShouldDetectChangesToRemotes() repositoryManagerListener.DidNotReceive().OnLocalBranchRemoved(Args.String); repositoryManagerListener.DidNotReceive().OnRemoteBranchAdded(Args.String, Args.String); repositoryManagerListener.DidNotReceive().OnRemoteBranchRemoved(Args.String, Args.String); - - Repository.Name.Should().Be("IOTestsRepo"); - Repository.CloneUrl.ToString().Should().Be("https://github.com/EvilShana/IOTestsRepo.git"); - Repository.Owner.Should().Be("EvilShana"); - Repository.LocalPath.Should().Be(TestRepoMasterCleanSynchronized); - Repository.IsGitHub.Should().BeTrue(); - Repository.CurrentBranchName.Should().Be("master"); - Repository.CurrentBranch.HasValue.Should().BeTrue(); - Repository.CurrentBranch.Value.Name.Should().Be("master"); - Repository.CurrentRemote.HasValue.Should().BeTrue(); - Repository.CurrentRemote.Value.Name.Should().Be("origin"); - Repository.CurrentRemote.Value.Url.Should().Be("https://github.com/EvilShana/IOTestsRepo.git"); - Repository.LocalBranches.Should().BeEquivalentTo(new[] { - new GitBranch("master", "[None]", true), - new GitBranch("feature/document", "[None]", false), - new GitBranch("feature/other-feature", "[None]", false), - }); - Repository.Remotes.Should().BeEquivalentTo(new GitRemote("origin","https://github.com/EvilShana/IOTestsRepo.git")); - Repository.RemoteBranches.Should().BeEmpty(); } [Test] public async Task ShouldDetectChangesToRemotesWhenSwitchingBranches() { - await Initialize(TestRepoMasterTwoRemotes); + await Initialize(TestRepoMasterTwoRemotes, initializeRepository: false); var repositoryManagerListener = Substitute.For(); repositoryManagerListener.AttachListener(RepositoryManager, repositoryManagerEvents); - RepositoryManager.WaitForEvents(); - repositoryManagerEvents.WaitForNotBusy(2); - - repositoryManagerListener.AssertDidNotReceiveAnyCalls(); - - Repository.Name.Should().Be("IOTestsRepo"); - Repository.CloneUrl.ToString().Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.Owner.Should().Be("EvilStanleyGoldman"); - Repository.LocalPath.Should().Be(TestRepoMasterTwoRemotes); - Repository.IsGitHub.Should().BeTrue(); - Repository.CurrentBranchName.Should().Be("master"); - Repository.CurrentBranch.HasValue.Should().BeTrue(); - Repository.CurrentBranch.Value.Name.Should().Be("master"); - Repository.CurrentRemote.HasValue.Should().BeTrue(); - Repository.CurrentRemote.Value.Name.Should().Be("origin"); - Repository.CurrentRemote.Value.Url.Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.LocalBranches.Should().BeEquivalentTo(new[] { - new GitBranch("master", "origin/master", true), - new GitBranch("feature/document", "origin/feature/document", false), - new GitBranch("feature/other-feature", "origin/feature/other-feature", false), - }); - Repository.Remotes.Should().BeEquivalentTo( - new GitRemote("origin","https://github.com/EvilStanleyGoldman/IOTestsRepo.git"), - new GitRemote("another","https://another.remote/Owner/Url.git")); - Repository.RemoteBranches.Should().BeEquivalentTo(new[] { - new GitBranch("origin/master", "[None]", false), - new GitBranch("origin/feature/document-2", "[None]", false), - new GitBranch("origin/feature/other-feature", "[None]", false), - new GitBranch("another/master", "[None]", false), - new GitBranch("another/feature/document-2", "[None]", false), - new GitBranch("another/feature/other-feature", "[None]", false), - }); - await RepositoryManager.CreateBranch("branch2", "another/master") .StartAsAsync(); @@ -634,8 +332,6 @@ await RepositoryManager.CreateBranch("branch2", "another/master") repositoryManagerEvents.WaitForNotBusy(); repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); - repositoryManagerListener.DidNotReceive().OnStatusUpdated(Args.GitStatus); - repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); repositoryManagerListener.Received().OnCurrentBranchAndRemoteUpdated(Arg.Any(), Arg.Any()); repositoryManagerListener.Received().OnLocalBranchListUpdated(Arg.Any>()); repositoryManagerListener.Received().OnRemoteBranchListUpdated(Arg.Any>(), Arg.Any>>()); @@ -645,35 +341,6 @@ await RepositoryManager.CreateBranch("branch2", "another/master") repositoryManagerListener.DidNotReceive().OnRemoteBranchAdded(Args.String, Args.String); repositoryManagerListener.DidNotReceive().OnRemoteBranchRemoved(Args.String, Args.String); - Repository.Name.Should().Be("IOTestsRepo"); - Repository.CloneUrl.ToString().Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.Owner.Should().Be("EvilStanleyGoldman"); - Repository.LocalPath.Should().Be(TestRepoMasterTwoRemotes); - Repository.IsGitHub.Should().BeTrue(); - Repository.CurrentBranchName.Should().Be("master"); - Repository.CurrentBranch.HasValue.Should().BeTrue(); - Repository.CurrentBranch.Value.Name.Should().Be("master"); - Repository.CurrentRemote.HasValue.Should().BeTrue(); - Repository.CurrentRemote.Value.Name.Should().Be("origin"); - Repository.CurrentRemote.Value.Url.Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.LocalBranches.Should().BeEquivalentTo(new[] { - new GitBranch("master", "origin/master", true), - new GitBranch("branch2", "another/branch2", false), - new GitBranch("feature/document", "origin/feature/document", false), - new GitBranch("feature/other-feature", "origin/feature/other-feature", false), - }); - Repository.Remotes.Should().BeEquivalentTo( - new GitRemote("origin","https://github.com/EvilStanleyGoldman/IOTestsRepo.git"), - new GitRemote("another","https://another.remote/Owner/Url.git")); - Repository.RemoteBranches.Should().BeEquivalentTo(new[] { - new GitBranch("origin/master", "[None]", false), - new GitBranch("origin/feature/document-2", "[None]", false), - new GitBranch("origin/feature/other-feature", "[None]", false), - new GitBranch("another/master", "[None]", false), - new GitBranch("another/feature/document-2", "[None]", false), - new GitBranch("another/feature/other-feature", "[None]", false), - }); - repositoryManagerListener.ClearReceivedCalls(); repositoryManagerEvents.Reset(); @@ -686,8 +353,6 @@ await RepositoryManager.SwitchBranch("branch2") repositoryManagerEvents.WaitForHeadUpdated(); repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); - repositoryManagerListener.Received().OnStatusUpdated(Args.GitStatus); - repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); repositoryManagerListener.Received().OnCurrentBranchAndRemoteUpdated(Arg.Any(), Arg.Any()); repositoryManagerListener.DidNotReceive().OnLocalBranchListUpdated(Arg.Any>()); repositoryManagerListener.DidNotReceive().OnRemoteBranchListUpdated(Arg.Any>(), Arg.Any>>()); @@ -696,64 +361,22 @@ await RepositoryManager.SwitchBranch("branch2") repositoryManagerListener.DidNotReceive().OnLocalBranchRemoved(Args.String); repositoryManagerListener.DidNotReceive().OnRemoteBranchAdded(Args.String, Args.String); repositoryManagerListener.DidNotReceive().OnRemoteBranchRemoved(Args.String, Args.String); - - Repository.Name.Should().Be("Url"); - Repository.CloneUrl.ToString().Should().Be("https://another.remote/Owner/Url.git"); - Repository.Owner.Should().Be("Owner"); - Repository.LocalPath.Should().Be(TestRepoMasterTwoRemotes); - Repository.IsGitHub.Should().BeFalse(); - Repository.CurrentBranchName.Should().Be("branch2"); - Repository.CurrentBranch.HasValue.Should().BeTrue(); - Repository.CurrentBranch.Value.Name.Should().Be("branch2"); - Repository.CurrentRemote.HasValue.Should().BeTrue(); - Repository.CurrentRemote.Value.Name.Should().Be("another"); - Repository.CurrentRemote.Value.Url.Should().Be("https://another.remote/Owner/Url.git"); - Repository.LocalBranches.Should().BeEquivalentTo(new[] { - new GitBranch("master", "origin/master", false), - new GitBranch("branch2", "another/branch2", true), - new GitBranch("feature/document", "origin/feature/document", false), - new GitBranch("feature/other-feature", "origin/feature/other-feature", false), - }); - Repository.Remotes.Should().BeEquivalentTo( - new GitRemote("origin","https://github.com/EvilStanleyGoldman/IOTestsRepo.git"), - new GitRemote("another","https://another.remote/Owner/Url.git")); - Repository.RemoteBranches.Should().BeEquivalentTo(new[] { - new GitBranch("origin/master", "[None]", false), - new GitBranch("origin/feature/document-2", "[None]", false), - new GitBranch("origin/feature/other-feature", "[None]", false), - new GitBranch("another/master", "[None]", false), - new GitBranch("another/feature/document-2", "[None]", false), - new GitBranch("another/feature/other-feature", "[None]", false), - }); } [Test] public async Task ShouldDetectGitPull() { - await Initialize(TestRepoMasterCleanSynchronized); + await Initialize(TestRepoMasterCleanSynchronized, initializeRepository: false); var repositoryManagerListener = Substitute.For(); repositoryManagerListener.AttachListener(RepositoryManager, repositoryManagerEvents); - var expected = new GitStatus { - LocalBranch = "master", - RemoteBranch = "origin/master", - Entries = new List() - }; - - var result = new GitStatus(); - //TODO: Figure this out - //RepositoryManager.OnStatusUpdated += status => { result = status; }; - await RepositoryManager.Pull("origin", "master").StartAsAsync(); await TaskManager.Wait(); RepositoryManager.WaitForEvents(); repositoryManagerEvents.WaitForNotBusy(); - repositoryManagerEvents.WaitForStatusUpdated(); repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); - repositoryManagerListener.Received().OnStatusUpdated(Args.GitStatus); - repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); repositoryManagerListener.DidNotReceive().OnCurrentBranchAndRemoteUpdated(Arg.Any(), Arg.Any()); repositoryManagerListener.DidNotReceive().OnLocalBranchListUpdated(Arg.Any>()); repositoryManagerListener.DidNotReceive().OnRemoteBranchListUpdated(Arg.Any>(), Arg.Any>>()); @@ -763,31 +386,6 @@ public async Task ShouldDetectGitPull() repositoryManagerListener.DidNotReceive().OnRemoteBranchAdded(Args.String, Args.String); repositoryManagerListener.DidNotReceive().OnRemoteBranchRemoved(Args.String, Args.String); - result.AssertEqual(expected); - - Repository.Name.Should().Be("IOTestsRepo"); - Repository.CloneUrl.ToString().Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.Owner.Should().Be("EvilStanleyGoldman"); - Repository.LocalPath.Should().Be(TestRepoMasterCleanSynchronized); - Repository.IsGitHub.Should().BeTrue(); - Repository.CurrentBranchName.Should().Be("master"); - Repository.CurrentBranch.HasValue.Should().BeTrue(); - Repository.CurrentBranch.Value.Name.Should().Be("master"); - Repository.CurrentRemote.HasValue.Should().BeTrue(); - Repository.CurrentRemote.Value.Name.Should().Be("origin"); - Repository.CurrentRemote.Value.Url.Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.LocalBranches.Should().BeEquivalentTo(new[] { - new GitBranch("master", "origin/master", true), - new GitBranch("feature/document", "origin/feature/document", false), - new GitBranch("feature/other-feature", "origin/feature/other-feature", false), - }); - Repository.Remotes.Should().BeEquivalentTo(new GitRemote("origin","https://github.com/EvilStanleyGoldman/IOTestsRepo.git")); - Repository.RemoteBranches.Should().BeEquivalentTo(new[] { - new GitBranch("origin/master", "[None]", false), - new GitBranch("origin/feature/document-2", "[None]", false), - new GitBranch("origin/feature/other-feature", "[None]", false), - }); - repositoryManagerEvents.Reset(); repositoryManagerEvents.WaitForNotBusy(); } @@ -795,45 +393,17 @@ public async Task ShouldDetectGitPull() [Test] public async Task ShouldDetectGitFetch() { - await Initialize(TestRepoMasterCleanUnsynchronized); + await Initialize(TestRepoMasterCleanUnsynchronized, initializeRepository: false); var repositoryManagerListener = Substitute.For(); repositoryManagerListener.AttachListener(RepositoryManager, repositoryManagerEvents); - RepositoryManager.WaitForEvents(); - repositoryManagerEvents.WaitForNotBusy(2); - - repositoryManagerListener.AssertDidNotReceiveAnyCalls(); - - Repository.Name.Should().Be("IOTestsRepo"); - Repository.CloneUrl.ToString().Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.Owner.Should().Be("EvilStanleyGoldman"); - Repository.LocalPath.Should().Be(TestRepoMasterCleanUnsynchronized); - Repository.IsGitHub.Should().BeTrue(); - Repository.CurrentBranchName.Should().Be("master"); - Repository.CurrentBranch.HasValue.Should().BeTrue(); - Repository.CurrentBranch.Value.Name.Should().Be("master"); - Repository.CurrentRemote.HasValue.Should().BeTrue(); - Repository.CurrentRemote.Value.Name.Should().Be("origin"); - Repository.CurrentRemote.Value.Url.Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.LocalBranches.Should().BeEquivalentTo(new[] { - new GitBranch("feature/document", "origin/feature/document", false), - }); - Repository.Remotes.Should().BeEquivalentTo(new GitRemote("origin","https://github.com/EvilStanleyGoldman/IOTestsRepo.git")); - Repository.RemoteBranches.Should().BeEquivalentTo(new[] { - new GitBranch("origin/master", "[None]", false), - new GitBranch("origin/feature/document", "[None]", false), - new GitBranch("origin/feature/document-2", "[None]", false), - }); - await RepositoryManager.Fetch("origin").StartAsAsync(); await TaskManager.Wait(); RepositoryManager.WaitForEvents(); repositoryManagerEvents.WaitForNotBusy(); repositoryManagerListener.Received().OnIsBusyChanged(Args.Bool); - repositoryManagerListener.DidNotReceive().OnStatusUpdated(Args.GitStatus); - repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); repositoryManagerListener.DidNotReceive().OnCurrentBranchAndRemoteUpdated(Arg.Any(), Arg.Any()); repositoryManagerListener.DidNotReceive().OnLocalBranchListUpdated(Arg.Any>()); repositoryManagerListener.DidNotReceive().OnRemoteBranchListUpdated(Arg.Any>(), Arg.Any>>()); @@ -842,29 +412,6 @@ public async Task ShouldDetectGitFetch() repositoryManagerListener.DidNotReceive().OnLocalBranchRemoved(Args.String); repositoryManagerListener.Received().OnRemoteBranchAdded(Args.String, Args.String); repositoryManagerListener.DidNotReceive().OnRemoteBranchRemoved(Args.String, Args.String); - - Repository.Name.Should().Be("IOTestsRepo"); - Repository.CloneUrl.ToString().Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.Owner.Should().Be("EvilStanleyGoldman"); - Repository.LocalPath.Should().Be(TestRepoMasterCleanUnsynchronized); - Repository.IsGitHub.Should().BeTrue(); - Repository.CurrentBranchName.Should().Be("master"); - Repository.CurrentBranch.HasValue.Should().BeTrue(); - Repository.CurrentBranch.Value.Name.Should().Be("master"); - Repository.CurrentRemote.HasValue.Should().BeTrue(); - Repository.CurrentRemote.Value.Name.Should().Be("origin"); - Repository.CurrentRemote.Value.Url.Should().Be("https://github.com/EvilStanleyGoldman/IOTestsRepo.git"); - Repository.LocalBranches.Should().BeEquivalentTo(new[] { - new GitBranch("feature/document", "origin/feature/document", false), - }); - Repository.Remotes.Should().BeEquivalentTo(new GitRemote("origin","https://github.com/EvilStanleyGoldman/IOTestsRepo.git")); - Repository.RemoteBranches.Should().BeEquivalentTo(new[] { - new GitBranch("origin/master", "[None]", false), - new GitBranch("origin/feature/document", "[None]", false), - new GitBranch("origin/feature/document-2", "[None]", false), - new GitBranch("origin/feature/new-feature", "[None]", false), - new GitBranch("origin/feature/other-feature", "[None]", false), - }); } } } diff --git a/src/tests/IntegrationTests/SetUpFixture.cs b/src/tests/IntegrationTests/SetUpFixture.cs index 21c14f375..62793030c 100644 --- a/src/tests/IntegrationTests/SetUpFixture.cs +++ b/src/tests/IntegrationTests/SetUpFixture.cs @@ -14,7 +14,7 @@ public void Setup() Logging.LogAdapter = new MultipleLogAdapter( new FileLogAdapter($"..\\{DateTime.UtcNow.ToString("yyyyMMddHHmmss")}-integration-tests.log") - //, new ConsoleLogAdapter() + , new ConsoleLogAdapter() ); } } diff --git a/src/tests/TestUtils/Events/IRepositoryManagerListener.cs b/src/tests/TestUtils/Events/IRepositoryManagerListener.cs index 2d43f6304..f232b0fe4 100644 --- a/src/tests/TestUtils/Events/IRepositoryManagerListener.cs +++ b/src/tests/TestUtils/Events/IRepositoryManagerListener.cs @@ -10,8 +10,6 @@ namespace TestUtils.Events interface IRepositoryManagerListener { void OnIsBusyChanged(bool busy); - void OnStatusUpdated(GitStatus status); - void OnLocksUpdated(IEnumerable locks); void OnLocalBranchListUpdated(Dictionary branchList); void OnRemoteBranchListUpdated(Dictionary remotesList, Dictionary> remoteBranchList); void OnLocalBranchUpdated(string name); @@ -27,7 +25,6 @@ class RepositoryManagerEvents { public EventWaitHandle OnIsBusy { get; } = new AutoResetEvent(false); public EventWaitHandle OnIsNotBusy { get; } = new AutoResetEvent(false); - public EventWaitHandle OnStatusUpdated { get; } = new AutoResetEvent(false); public EventWaitHandle OnLocksUpdated { get; } = new AutoResetEvent(false); public EventWaitHandle OnCurrentBranchAndRemoteUpdated { get; } = new AutoResetEvent(false); public EventWaitHandle OnHeadUpdated { get; } = new AutoResetEvent(false); @@ -44,7 +41,6 @@ public void Reset() { OnIsBusy.Reset(); OnIsNotBusy.Reset(); - OnStatusUpdated.Reset(); OnLocksUpdated.Reset(); OnCurrentBranchAndRemoteUpdated.Reset(); OnHeadUpdated.Reset(); @@ -64,11 +60,6 @@ public void WaitForNotBusy(int seconds = 1) OnIsNotBusy.WaitOne(TimeSpan.FromSeconds(seconds)); } - public void WaitForStatusUpdated(int seconds = 1) - { - OnStatusUpdated.WaitOne(TimeSpan.FromSeconds(seconds)); - } - public void WaitForHeadUpdated(int seconds = 1) { OnHeadUpdated.WaitOne(TimeSpan.FromSeconds(seconds)); @@ -149,8 +140,6 @@ public static void AttachListener(this IRepositoryManagerListener listener, public static void AssertDidNotReceiveAnyCalls(this IRepositoryManagerListener repositoryManagerListener) { repositoryManagerListener.DidNotReceive().OnIsBusyChanged(Args.Bool); - repositoryManagerListener.DidNotReceive().OnStatusUpdated(Args.GitStatus); - repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock); repositoryManagerListener.DidNotReceive().OnCurrentBranchAndRemoteUpdated(Arg.Any(), Arg.Any()); repositoryManagerListener.DidNotReceive().OnLocalBranchListUpdated(Arg.Any>()); repositoryManagerListener.DidNotReceive().OnRemoteBranchListUpdated(Arg.Any>(), Arg.Any>>()); diff --git a/test.cmd b/test.cmd new file mode 100644 index 000000000..c102066da --- /dev/null +++ b/test.cmd @@ -0,0 +1,24 @@ +@echo off +setlocal + +set Config=Debug +if not %1.==. ( + set Config=%1 +) + +set Exclude='' +if not %2.==. ( + set Exclude=%2 +) + +:: make sure at Unity project root directory +set NunitDirectory=packages\NUnit.Runners.2.6.4\tools +echo %NunitDirectory% +set ConsoleRunner=%NunitDirectory%\nunit-console.exe +echo %ConsoleRunner% + +:: run tests +echo Running "build\IntegrationTests\IntegrationTests.dll" "build\IntegrationTests\TestUtils.dll" "build\TaskSystemIntegrationTests\TaskSystemIntegrationTests.dll" "build\UnitTests\TestUtils.dll" "build\UnitTests\UnitTests.dll" "src\tests\TestUtils\bin\%Config%\TestUtils.dll" /exclude=%Exclude% +call %ConsoleRunner% "build\IntegrationTests\IntegrationTests.dll" "build\IntegrationTests\TestUtils.dll" "build\TaskSystemIntegrationTests\TaskSystemIntegrationTests.dll" "build\UnitTests\TestUtils.dll" "build\UnitTests\UnitTests.dll" "src\tests\TestUtils\bin\%Config%\TestUtils.dll" /exclude=%Exclude% + +endlocal diff --git a/test.sh b/test.sh new file mode 100644 index 000000000..ac199a445 --- /dev/null +++ b/test.sh @@ -0,0 +1,15 @@ +#!/bin/sh -eu +Configuration="Debug" +if [ $# -gt 0 ]; then + Configuration=$1 +fi + +Exclude="" +if [ $# -gt 1 ]; then + Exclude="/exclude=$2" +fi + +NunitDirectory="packages\NUnit.Runners.2.6.4\tools" +ConsoleRunner="$NunitDirectory\nunit-console.exe" + +$ConsoleRunner "build\IntegrationTests\IntegrationTests.dll" "build\IntegrationTests\TestUtils.dll" "build\TaskSystemIntegrationTests\TaskSystemIntegrationTests.dll" "build\UnitTests\TestUtils.dll" "build\UnitTests\UnitTests.dll" "src\tests\TestUtils\bin\\$Configuration\TestUtils.dll" $Exclude \ No newline at end of file