public void Should_return_false_as_build_has_already_been_alerted_on() { var buildCollection = new BuildCollection(); var project = new Project("name", "activity", "lbs", "lbl", "lbt", "url"); Assert.That(buildCollection.ShouldAlert(project), Is.EqualTo(true)); Assert.That(buildCollection.ShouldAlert(project), Is.EqualTo(false)); }
/// <summary> /// Default constructor /// </summary> /// <param name="parent_form">Owning window</param> #endregion #region Instance Methods public formMainModel(Form parent_form) { this.InitializeForms(parent_form); BuildCollection old_build = JsonSaveEngine.LoadFromJson <BuildCollection>(Path.Combine(Tools.Paths.Documents, "Builds", "Autosave.builds")); this.Builds = old_build ?? new BuildCollection(); return; }
public void SimpleSerialize() { BuildCollection collection = new BuildCollection("Test.BuildCollection"); Build build = collection[0]; build.SetChampion(new PseudoChampionInfo("TestChampion")); for (int i = 0; i < 6; i++) { PseudoItemInfo item = new PseudoItemInfo("TestItem"); build.SetItem(i, item); } collection.SaveAsJson(TestBuildCollectionSave.PATH); Assert.IsTrue(File.Exists(TestBuildCollectionSave.PATH), "JSON File Was Not Created"); string text = File.ReadAllText(TestBuildCollectionSave.PATH); collection = null; collection = JsonConvert.DeserializeObject <BuildCollection>(text, this.jsonSettings); Assert.IsTrue(collection?[0]?.Champion?.Name == "TestChampion", "Failed to Verify Champion Name"); Assert.IsTrue(collection?[0]?.GetItem(0)?.Name == "TestItem", "Failed to Verify Item Name"); }
private async Task <BuildStatus?> GetBuildTypeStatus(BuildType buildType) { if (buildType.IsPaused) { Logger.Verbose("Bypassing because it is paused"); return(null); } string branchLocator = config.IncludeAllBranches ? "branch:default:any" : "branch:(default:any,policy:active_history_and_active_vcs_branches)"; string failedToStartLocator = config.IncludeFailedToStart ? "failedToStart:any" : "failedToStart:false"; DateTimeOffset fromDate = DateTimeOffset.Now.Subtract(config.TimeSpan); string fromDateInTcFormat = Uri.EscapeDataString(fromDate.ToString("yyyyMMdd'T'HHmmssK").Replace(":", "")); string locator = $"{branchLocator},{failedToStartLocator},running:false,sinceDate:{fromDateInTcFormat}"; string buildsXml = await httpClient.GetStringAsync( $"{authPath}/app/rest/buildTypes/id:{buildType.Id}/builds?locator={locator}"); var builds = BuildCollection.FromXml(buildsXml); if (builds.IsEmpty) { Logger.Verbose("Bypassing because no built history is available for it yet."); return(null); } var dictionary = new Dictionary <string, Build>(); foreach (Build build in builds) { string branch = build.BranchName; if (config.OnlyDefaultBranch && !build.DefaultBranch) { continue; } if (!dictionary.ContainsKey(branch) || dictionary[branch].Id < build.Id) { dictionary[branch] = build; } } Build firstFailingBuild = dictionary.Values.FirstOrDefault(v => !v.IsSuccessful); if (firstFailingBuild == null) { return(BuildStatus.Passed); } Logger.Verbose($"Build from branch {firstFailingBuild.BranchName} (id: {firstFailingBuild.Id}) failed"); if (buildType.IsUnstable) { Logger.Verbose("Bypassing because it is marked as unstable."); return(null); } BuildStatus?status = BuildStatus.Failed; Logger.Verbose("Now checking investigation status."); string investigationsXml = await httpClient.GetStringAsync($"/{authPath}/app/rest/investigations?locator=buildType:(id:{buildType.Id})"); var investigation = Investigation.FromXml(investigationsXml); return(investigation.Status ?? status); }