public void WithFullBranchState_FileAddedOnBranch() { var f1 = new FileInfo("file1").WithBranch("branch", "1.1.0.2"); var f2 = new FileInfo("file2").WithBranch("branch", "1.1.0.2"); var mainCommit = new Commit("c1").WithRevision(f1, "1.1"); var commits = new[] { mainCommit }; var allFiles = commits.CreateAllFiles(f2); var state = RepositoryState.CreateWithFullBranchState(allFiles); state.Apply(mainCommit); Assert.AreEqual(state["branch"].LiveFiles.Single(), "file1"); Assert.AreEqual(state["branch"]["file1"].ToString(), "1.1"); Assert.AreSame(state["branch"]["file2"], Revision.Empty); }
public void WithFullBranchState_BranchesInheritParentFiles() { var f1 = new FileInfo("file1").WithBranch("branch", "1.1.0.2"); var f2 = new FileInfo("file2").WithBranch("branch", "1.1.0.2"); var f3 = new FileInfo("file3").WithBranch("branch", "1.2.0.2"); var mainCommit1 = new Commit("c1").WithRevision(f1, "1.1").WithRevision(f2, "1.1").WithRevision(f3, "1.1"); var mainCommit2 = new Commit("c2").WithRevision(f3, "1.2"); var branchCommit = new Commit("c3").WithRevision(f1, "1.1.2.1"); mainCommit2.AddBranch(branchCommit); var commits = new[] { mainCommit1, mainCommit2, branchCommit }; var state = RepositoryState.CreateWithFullBranchState(commits.CreateAllFiles()); foreach (var c in commits) state.Apply(c); var liveFiles = state["branch"].LiveFiles.OrderBy(i => i); Assert.IsTrue(liveFiles.SequenceEqual("file1", "file2", "file3")); Assert.AreEqual(state["branch"]["file1"].ToString(), "1.1.2.1"); Assert.AreEqual(state["branch"]["file2"].ToString(), "1.1"); Assert.AreEqual(state["branch"]["file3"].ToString(), "1.2"); }