public void FetchRebaseBranchesNoMatchedRemoteBranchTest() { // Prepare var mock = new Mock <ICommandRunner>(); var localBranchInfo = "*dev"; var remoteBranchInfo = $"*master{Environment.NewLine}dev1{Environment.NewLine}dev2{Environment.NewLine}dev3"; mock.Setup(f => f.Run("git", "branch -l --no-color", out localBranchInfo)) .Returns(0); mock.Setup(f => f.Run("git", "branch -r --no-color", out remoteBranchInfo)) .Returns(0); var options = new Options() { RebaseBranch = "dev" }; IGrabber grabber = CreateGrabber(options, mock.Object); // Act Exception ex = Record.Exception(() => grabber.FetchRebaseBraches()); // Assert Assert.IsType <MigrateException>(ex); Assert.Equal(string.Format(ExceptionHelper.ExceptionMessage.NO_REMOTE_BRANCH_FOUND, options.RebaseBranch), ex.Message); }
public void FetchRebaseBranchesSingleMatchingRemoteBranchTest() { // Prepare var mock = new Mock <ICommandRunner>(); var localBranchInfo = "*dev"; var remoteBranchInfo = $"*master{Environment.NewLine}dev"; mock.Setup(f => f.Run("git", "branch -l --no-color", out localBranchInfo)) .Returns(0); mock.Setup(f => f.Run("git", "branch -r --no-color", out remoteBranchInfo)) .Returns(0); var options = new Options() { RebaseBranch = "dev" }; var expected = new List <string>(new string[] { "dev" }); IGrabber grabber = CreateGrabber(options, mock.Object); // Act grabber.FetchRebaseBraches(); var actual = grabber.GetMetaInfo().LocalBranches; // Assert Assert.Equal(expected, actual); }
public void FetchRebaseBranchesTooManyMatchingLocalBranchesTest() { // Prepare var mock = new Mock <ICommandRunner>(); var localBranchInfo = $"*master{Environment.NewLine}dev{Environment.NewLine}dev"; var remoteBranchInfo = "dev"; mock.Setup(f => f.Run("git", "branch -l --no-color", out localBranchInfo)) .Returns(0); mock.Setup(f => f.Run("git", "branch -r --no-color", out remoteBranchInfo)) .Returns(0); var options = new Options() { RebaseBranch = "dev" }; IGrabber grabber = CreateGrabber(options, mock.Object); // Act Exception ex = Record.Exception(() => grabber.FetchRebaseBraches()); // Assert Assert.IsType <MigrateException>(ex); Assert.Equal(ExceptionHelper.ExceptionMessage.TOO_MANY_MATCHING_LOCAL_BRANCHES, ex.Message); }
public void Run(IGrabber grabber, IFixer fixer) { if (grabber == null) { throw new ArgumentNullException("grabber"); } if (fixer == null) { throw new ArgumentNullException("fixer"); } try { PreRunPrepare(); if (Options.Rebase) { grabber.FetchBranches(); } else if (!string.IsNullOrWhiteSpace(Options.RebaseBranch)) { grabber.FetchRebaseBraches(); } else { grabber.Clone(); } fixer.FixBranches(); fixer.FixTags(); fixer.FixTrunk(); fixer.OptimizeRepos(); } finally { PostRunCleanup(); } }
public void Run( IGrabber grabber, IFixer fixer, IStaleSvnBranchDeleter svnBranchDeleter, IGitPusher gitPusher, ILockBreaker lockBreaker ) { if (grabber == null) { throw new ArgumentNullException(nameof(grabber)); } if (fixer == null) { throw new ArgumentNullException(nameof(fixer)); } if (svnBranchDeleter == null) { throw new ArgumentNullException(nameof(svnBranchDeleter)); } if (lockBreaker == null) { throw new ArgumentNullException(nameof(lockBreaker)); } try { PreRunPrepare(); lockBreaker.BreakLocksIfEnabled(); if (Options.Rebase) { grabber.FetchBranches(); } else if (!string.IsNullOrWhiteSpace(Options.RebaseBranch)) { grabber.FetchRebaseBraches(); } else { grabber.Clone(); } fixer.FixBranches(); fixer.FixTags(); fixer.FixTrunk(); fixer.OptimizeRepos(); if (Options.StaleSvnBranchPurgeOption != StaleSvnBranchPurgeOptions.nothing) { IEnumerable <string> svnBranches = svnBranchDeleter.QueryHeadSvnBranches(); IEnumerable <string> gitBranchesToPurge = svnBranchDeleter.GetGitBranchesToPurge(svnBranches); svnBranches = null; svnBranchDeleter.PurgeGitBranches(gitBranchesToPurge); gitBranchesToPurge = null; if (Options.StaleSvnBranchPurgeOption == StaleSvnBranchPurgeOptions.delete_local_and_remote) { gitPusher.PushPrune(); } } if (Options.PushWhenDone) { gitPusher.PushAll(); } } finally { PostRunCleanup(); } }