public IEnumerable<GitBranchView> GetCombinedBranchesView() { var fullList = new GitBranchViewList(); foreach (var gitProject in Items) { fullList.AddRange(gitProject.GetBranchViews()); } return fullList.Collapse(); }
public void CollapseTest_Main() { var list = new GitBranchViewList { new GitBranchView { Tag = "AA-001", Branch = "AA-001-some-branch", ViewModuleInfos = new List<GitBranchViewModuleInfo> { new GitBranchViewModuleInfo("PR1", "PR1", false, true, true), new GitBranchViewModuleInfo("M1", "PR1", true, true, true), new GitBranchViewModuleInfo("M2", "PR1", true, false, false), new GitBranchViewModuleInfo("M3", "PR1", true, true, false) } }, new GitBranchView { Tag = "AA-002", Branch = "", ViewModuleInfos = new List<GitBranchViewModuleInfo>() }, new GitBranchView { Tag = "AA-003", Branch = "AA-003-some-branch", ViewModuleInfos = new List<GitBranchViewModuleInfo> { new GitBranchViewModuleInfo("PR1", "PR1", true, true, false), new GitBranchViewModuleInfo("M1", "PR1", true, true, true), new GitBranchViewModuleInfo("M3", "PR1", true, true, false) } }, new GitBranchView { Tag = "AA-004", Branch = "", ViewModuleInfos = new List<GitBranchViewModuleInfo>() }, new GitBranchView { Tag = "AA-001", Branch = "AA-001-some-branch", ViewModuleInfos = new List<GitBranchViewModuleInfo> { new GitBranchViewModuleInfo("PR2", "PR2", false, true, true), new GitBranchViewModuleInfo("M1", "PR2", true, true, true), new GitBranchViewModuleInfo("M4", "PR2", true, false, false), } }, new GitBranchView { Tag = "AA-002", Branch = "AA-002-some-branch", ViewModuleInfos = new List<GitBranchViewModuleInfo> { new GitBranchViewModuleInfo("PR2", "PR2", true, false, true), new GitBranchViewModuleInfo("M1", "PR2", true, true, true), new GitBranchViewModuleInfo("M2", "PR2", true, true, false), } }, new GitBranchView { Tag = "AA-002", Branch = "AA-002-some-another-branch", ViewModuleInfos = new List<GitBranchViewModuleInfo> { new GitBranchViewModuleInfo("PR2", "PR2", true, true, false), } }, new GitBranchView { Tag = "AA-003", Branch = "", ViewModuleInfos = new List<GitBranchViewModuleInfo>() }, new GitBranchView { Tag = "AA-004", Branch = "", ViewModuleInfos = new List<GitBranchViewModuleInfo>() }, }; var result = list.Collapse().OrderBy(r => r.Tag).ThenBy(r => r.Branch).ToList(); Assert.AreEqual(5, result.Count); Assert.AreEqual("AA-001", result[0].Tag); Assert.AreEqual("AA-001-some-branch", result[0].Branch); Assert.AreEqual("PR1; PR2; M1", result[0].ModulesMerged); Assert.AreEqual("M3", result[0].ModulesNotMerged); Assert.AreEqual(@"PR1\M2; PR2\M4", result[0].ModulesLocalOnly); Assert.AreEqual("AA-002", result[1].Tag); Assert.AreEqual("AA-002-some-another-branch", result[1].Branch); Assert.AreEqual("", result[1].ModulesMerged); Assert.AreEqual("PR2", result[1].ModulesNotMerged); Assert.AreEqual("", result[1].ModulesLocalOnly); Assert.AreEqual("AA-002", result[2].Tag); Assert.AreEqual("AA-002-some-branch", result[2].Branch); Assert.AreEqual("M1", result[2].ModulesMerged); Assert.AreEqual("M2", result[2].ModulesNotMerged); Assert.AreEqual("PR2", result[2].ModulesLocalOnly); Assert.AreEqual("AA-003", result[3].Tag); Assert.AreEqual("AA-003-some-branch", result[3].Branch); Assert.AreEqual("M1", result[3].ModulesMerged); Assert.AreEqual("PR1; M3", result[3].ModulesNotMerged); Assert.AreEqual("", result[3].ModulesLocalOnly); Assert.AreEqual("AA-004", result[4].Tag); Assert.AreEqual("", result[4].Branch); Assert.AreEqual("", result[4].ModulesMerged); Assert.AreEqual("", result[4].ModulesNotMerged); Assert.AreEqual("", result[4].ModulesLocalOnly); }
public void CollapseTest_Empty() { var list = new GitBranchViewList(); var result = list.Collapse(); Assert.IsEmpty(list); }