/// <exception cref="System.Exception"></exception> private void DoCherryPickAndCheckResult(Git git, RevCommit sideCommit, ResolveMerger.MergeFailureReason reason) { // get current index state string indexState = IndexState(CONTENT); // cherry-pick CherryPickResult result = git.CherryPick().Include(sideCommit.Id).Call(); NUnit.Framework.Assert.AreEqual(CherryPickResult.CherryPickStatus.FAILED, result. GetStatus()); // staged file a causes DIRTY_INDEX NUnit.Framework.Assert.AreEqual(1, result.GetFailingPaths().Count); NUnit.Framework.Assert.AreEqual(reason, result.GetFailingPaths().Get("a")); NUnit.Framework.Assert.AreEqual("a(modified)", Read(new FilePath(db.WorkTree, "a" ))); // index shall be unchanged NUnit.Framework.Assert.AreEqual(indexState, IndexState(CONTENT)); NUnit.Framework.Assert.AreEqual(RepositoryState.SAFE, db.GetRepositoryState()); if (reason == null) { ReflogReader reader = db.GetReflogReader(Constants.HEAD); NUnit.Framework.Assert.IsTrue(reader.GetLastEntry().GetComment().StartsWith("cherry-pick: " )); reader = db.GetReflogReader(db.GetBranch()); NUnit.Framework.Assert.IsTrue(reader.GetLastEntry().GetComment().StartsWith("cherry-pick: " )); } }
/// <exception cref="System.Exception"></exception> private void CheckMergeFailedResult(MergeCommandResult result, ResolveMerger.MergeFailureReason reason, string indexState, FilePath fileA) { NUnit.Framework.Assert.AreEqual(MergeStatus.FAILED, result.GetMergeStatus()); NUnit.Framework.Assert.AreEqual(reason, result.GetFailingPaths().Get("a")); NUnit.Framework.Assert.AreEqual("a(modified)", Read(fileA)); NUnit.Framework.Assert.IsFalse(new FilePath(db.WorkTree, "b").Exists()); NUnit.Framework.Assert.AreEqual("c", Read(new FilePath(db.WorkTree, "c"))); NUnit.Framework.Assert.AreEqual(indexState, IndexState(CONTENT)); NUnit.Framework.Assert.AreEqual(null, result.GetConflicts()); NUnit.Framework.Assert.AreEqual(RepositoryState.SAFE, db.GetRepositoryState()); }