private IndexViewModel GetViewModel(string profileName, string status) { var pipelines = _dashboard.Pipelines(); var passedCount = pipelines.Count(p => p.ActualStatus == PipelineStatus.Passed); var showPassedCount = false; IList <GroupedDisplayablePipeline> groups = new List <GroupedDisplayablePipeline>(); var statuses = new List <PipelineStatus>(); if (!string.IsNullOrEmpty(status)) { statuses = status.Split(',') .Select(ParseStatus) .ToList(); } if (!string.IsNullOrEmpty(profileName)) { var profileXml = _xmlProfileRetriever.GetProfileXml(profileName); var profile = new ProfileXmlLoader().Load(profileXml, statuses); var pipelineFilter = new PipelineFilter(pipelines); groups = pipelineFilter.Filter(profile); showPassedCount = profile.ShowPassedCount; } return(new IndexViewModel { Pipelines = pipelines, PassedCount = passedCount, Groups = groups, ShowPassedCount = showPassedCount }); }
public void Should_Filter_By_Pipeline_Status_Failed() { var profile = new Profile { Statuses = new List <PipelineStatus> { PipelineStatus.Failed }, PipelineGroups = { new GroupedPipeline { Name = "Group", ProfilePipelines = new List <ProfilePipeline> { new ProfilePipeline { HideBuildInfo = true, Name = "Pipeline1" }, new ProfilePipeline { HideBuildInfo = true, Name = "Pipeline2" } }, } } }; var pipelines = new List <DisplayablePipeline> { new DisplayablePipeline("Pipeline1", "0000") { Stages = new List <IStage> { new PassedStage("", "", DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss")) } }, new DisplayablePipeline("Pipeline2", "0000") { Stages = new List <IStage> { new FailedStage("", "", DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss")) } } }; var pipelineFilter = new PipelineFilter(pipelines); var filteredPipelines = pipelineFilter.Filter(profile); Assert.That(filteredPipelines.Count(), Is.EqualTo(1)); Assert.That(filteredPipelines[0].Pipelines.Count, Is.EqualTo(1)); Assert.That(filteredPipelines[0].Pipelines[0].Name, Is.EqualTo("Pipeline2")); }
public void Should_Filter_All_Pipelines_By_Status_If_No_Whitelist() { var profile = new Profile { Statuses = new List <PipelineStatus> { PipelineStatus.Failed } }; var pipelines = new List <DisplayablePipeline> { new DisplayablePipeline("Pipeline1", "passed") { Stages = new List <IStage>() { new PassedStage("", "", DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss")) } }, new DisplayablePipeline("Pipeline2", "failed") { Stages = new List <IStage>() { new FailedStage("", "", DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss")) } }, new DisplayablePipeline("Pipeline3", "passed") { Stages = new List <IStage>() { new PassedStage("", "", DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss")) } } }; var pipelineFilter = new PipelineFilter(pipelines); var filteredPipelines = pipelineFilter.Filter(profile); Assert.That(filteredPipelines.Count(), Is.EqualTo(1)); Assert.That(filteredPipelines[0].Pipelines[0].Name, Is.EqualTo("Pipeline2")); }
public void Should_Filter_WhiteListGroup_By_Pipeline_Names() { var group = new GroupedPipeline { Name = "Name", ProfilePipelines = new List <ProfilePipeline> { new ProfilePipeline { HideBuildInfo = true, Name = "Pipeline1" }, new ProfilePipeline { HideBuildInfo = true, Name = "Pipeline2" } } }; var group2 = new GroupedPipeline { Name = "Name2", ProfilePipelines = new List <ProfilePipeline> { new ProfilePipeline { HideBuildInfo = true, Name = "Pipeline3" }, new ProfilePipeline { HideBuildInfo = true, Name = "Pipeline4" } } }; var profile = new Profile { PipelineGroups = new List <GroupedPipeline> { group, group2 } }; var pipelines = new List <DisplayablePipeline> { new DisplayablePipeline("Pipeline1", "passed") { Stages = new List <IStage>() { new FailedStage("", "", DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss")) } }, new DisplayablePipeline("Pipeline2", "failed") { Stages = new List <IStage>() { new FailedStage("", "", DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss")) } }, new DisplayablePipeline("Pipeline3", "passed") { Stages = new List <IStage>() { new FailedStage("", "", DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss")) } }, new DisplayablePipeline("Pipeline4", "passed") { Stages = new List <IStage>() { new FailedStage("", "", DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss")) } }, new DisplayablePipeline("Pipeline5", "passed") { Stages = new List <IStage>() { new FailedStage("", "", DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss")) } }, new DisplayablePipeline("Pipeline6", "passed") { Stages = new List <IStage>() { new FailedStage("", "", DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss")) } } }; var pipelineFilter = new PipelineFilter(pipelines); var filteredPipelines = pipelineFilter.Filter(profile); Assert.That(filteredPipelines.Count(), Is.EqualTo(2)); Assert.That(filteredPipelines[0].Pipelines.Count, Is.EqualTo(2)); Assert.That(filteredPipelines[1].Pipelines.Count, Is.EqualTo(2)); Assert.That(filteredPipelines[0].Pipelines[0].Name, Is.EqualTo("Pipeline1")); Assert.That(filteredPipelines[0].Pipelines[1].Name, Is.EqualTo("Pipeline2")); Assert.That(filteredPipelines[1].Pipelines[0].Name, Is.EqualTo("Pipeline3")); Assert.That(filteredPipelines[1].Pipelines[1].Name, Is.EqualTo("Pipeline4")); }