public void Clone_LocalRepoEmpty_ReposAreIdentical() { using (var e = new TestEnvironment("hgresumetest", ApiServerType.Pull)) using (var provider = GetTransportProviderForTest(e)) { e.RemoteAddAndCommit(); e.RemoteAddAndCommit(); e.RemoteAddAndCommit(); var transport = provider.Transport; transport.Clone(); Assert.That(e.Local.Repository.GetTip().Number.Hash, Is.EqualTo(e.Remote.Repository.GetTip().Number.Hash)); } }
public void Push_RemoteRepoIsUnrelated_Throws() { using (var e1 = new TestEnvironment("hgresumetest", ApiServerType.Push)) using (var provider = GetTransportProviderForTest(e1)) { e1.LocalAddAndCommit(); e1.RemoteAddAndCommit(); var transport = provider.Transport; Assert.That(() => transport.Push(), Throws.TypeOf <HgResumeOperationFailed>()); } }
public void Pull_BundleInOneChunk_Success() { using (var e = new TestEnvironment("hgresumetest", ApiServerType.Pull)) using (var provider = GetTransportProviderForTest(e)) { e.LocalAddAndCommit(); e.CloneRemoteFromLocal(); e.RemoteAddAndCommit(); var transport = provider.Transport; transport.Pull(); Assert.That(e.Progress.AllMessages, Contains.Item("Pull operation completed successfully")); } }
public void Pull_SucessfulPull_PullBundleDataIsRemoved() { using (var e = new TestEnvironment("hgresumetest", ApiServerType.Pull)) using (var provider = GetTransportProviderForTest(e)) { e.LocalAddAndCommit(); e.CloneRemoteFromLocal(); e.RemoteAddAndCommit(); var transport = provider.Transport; transport.Pull(); Assert.That(e.Progress.AllMessages, Contains.Item("Pull operation completed successfully")); var dirInfo = new DirectoryInfo(Path.Combine(transport.PathToLocalStorage, "pullData")); Assert.That(dirInfo.GetFiles().Length, Is.EqualTo(0)); } }
public void Pull_InvalidBaseHashFromServer_ClientRecoversSuccessfully() { using (var e = new TestEnvironment("hgresumetest", ApiServerType.Pull)) using (var provider = GetTransportProviderForTest(e)) { e.LocalAddAndCommit(); e.CloneRemoteFromLocal(); e.RemoteAddAndCommit(); var transport = provider.Transport; transport.Pull(); // at this point the local server has cached the tip of the repo e.Remote.Repository.RollbackWorkingDirectoryToLastCheckin(); transport.Pull(); Assert.That(e.Progress.AllMessages, Has.No.Member("Pull operation failed")); } }
public void Pull_UserCancelsMidwayTheRemoteRepoChanges_PullFinishesSecondPull() { using (var e = new TestEnvironment("hgresumetest", ApiServerType.Pull)) using (var provider = GetTransportProviderForTest(e)) { e.LocalAddAndCommit(); e.CloneRemoteFromLocal(); e.RemoteAddAndCommitLargeFile(); e.ApiServer.AddCancelResponse(2); var transport = provider.Transport; Assert.That(() => transport.Pull(), Throws.Exception.TypeOf <UserCancelledException>()); e.Progress.CancelRequested = false; e.RemoteAddAndCommit(); transport.Pull(); IEnumerable <string> msgs = e.Progress.Messages.Where(x => x == "Pull operation completed successfully"); Assert.That(msgs.ToList(), Has.Count.EqualTo(1)); } }
public void Push_UserCancelsMidwayThenRepoChanges_PushDoesNotResume() { using (var e = new TestEnvironment("hgresumetest", ApiServerType.Push)) using (var provider = GetTransportProviderForTest(e)) { e.LocalAddAndCommit(); e.CloneRemoteFromLocal(); e.LocalAddAndCommitLargeFile(); e.ApiServer.AddCancelResponse(2); var transport = provider.Transport; Assert.That(() => transport.Push(), Throws.Exception.TypeOf <UserCancelledException>()); e.Progress.CancelRequested = false; e.RemoteAddAndCommit(); transport.Push(); Assert.That(e.Progress.AllMessagesString().Contains("Resuming push operation at"), Is.Not.True); Assert.That(e.Progress.AllMessages, Contains.Item("Finished sending")); } }
public void Push_UserCancelsMidwayThenRepoChanges_PushDoesNotResume() { using (var e = new TestEnvironment("hgresumetest", ApiServerType.Push)) using (var provider = GetTransportProviderForTest(e)) { e.LocalAddAndCommit(); e.CloneRemoteFromLocal(); e.LocalAddAndCommitLargeFile(); e.ApiServer.AddCancelResponse(2); var transport = provider.Transport; Assert.That(() => transport.Push(), Throws.Exception.TypeOf<UserCancelledException>()); e.Progress.CancelRequested = false; e.RemoteAddAndCommit(); transport.Push(); Assert.That(e.Progress.AllMessagesString().Contains("Resuming push operation at"), Is.Not.True); Assert.That(e.Progress.AllMessages, Contains.Item("Finished sending")); } }
public void Push_RemoteRepoIsUnrelated_Throws() { using (var e1 = new TestEnvironment("hgresumetest", ApiServerType.Push)) using (var provider = GetTransportProviderForTest(e1)) { e1.LocalAddAndCommit(); e1.RemoteAddAndCommit(); var transport = provider.Transport; Assert.That(() => transport.Push(), Throws.TypeOf<HgResumeOperationFailed>()); } }
public void Pull_UserCancelsMidwayTheRemoteRepoChanges_PullFinishesSecondPull() { using (var e = new TestEnvironment("hgresumetest", ApiServerType.Pull)) using (var provider = GetTransportProviderForTest(e)) { e.LocalAddAndCommit(); e.CloneRemoteFromLocal(); e.RemoteAddAndCommitLargeFile(); e.ApiServer.AddCancelResponse(2); var transport = provider.Transport; Assert.That(() => transport.Pull(), Throws.Exception.TypeOf<UserCancelledException>()); e.Progress.CancelRequested = false; e.RemoteAddAndCommit(); transport.Pull(); IEnumerable<string> msgs = e.Progress.Messages.Where(x => x == "Pull operation completed successfully"); Assert.That(msgs.ToList(), Has.Count.EqualTo(1)); } }