public Profile Load(XElement profilesXml, List<PipelineStatus> pipelineStatuses) { var profile = new Profile(); if (profilesXml == null) { return profile; } var xElement = profilesXml.Element("WhiteList"); if (xElement != null) { var groupNodes = xElement.Elements("Group"); var i = 0; foreach (var groupNode in groupNodes) { var xAttribute = groupNode.Attribute("name"); var groupName = xAttribute != null ? xAttribute.Value : i++.ToString(CultureInfo.InvariantCulture); xAttribute = groupNode.Attribute("showName"); var showName = true; if (xAttribute != null) { bool.TryParse(xAttribute.Value, out showName); } var groupPipelineNodes = groupNode.Elements("Pipeline"); var profilePipelines = LoadProfilePipelines(groupPipelineNodes); var groupedPipeline = new GroupedPipeline { Name = groupName, ProfilePipelines = profilePipelines, ShowName = showName }; profile.PipelineGroups.Add(groupedPipeline); } } var statusList = new List<PipelineStatus>(); if (pipelineStatuses.Any()) { statusList = pipelineStatuses; } else { var statusXml = profilesXml.Element("Statuses"); if (statusXml.HasElements) { var statusElements = statusXml.Elements(); foreach (var statusElement in statusElements) { if (statusElement.Name == "Failed") statusList.Add(PipelineStatus.Failed); if (statusElement.Name == "Passed") statusList.Add(PipelineStatus.Passed); if (statusElement.Name == "Building") statusList.Add(PipelineStatus.Building); } } } profile.Statuses = statusList; bool showPassedCount; bool.TryParse( (profilesXml.Element("ShowPassedCount") ?? XElement.Parse("<ShowPassedCount>false</ShowPassedCount>")) .Value, out showPassedCount); profile.ShowPassedCount = showPassedCount; return profile; }
public void Should_WhiteList_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 profile = new Profile { PipelineGroups = new List<GroupedPipeline> { group } }; 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"))}} }; var pipelineFilter = new PipelineFilter(pipelines); var filteredPipelines = pipelineFilter.Filter(profile); Assert.That(filteredPipelines[0].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")); }