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;
        }
Beispiel #3
0
        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");
        }
Beispiel #4
0
        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);
        }