public void ShouldCallFormatterOnceWhenPassedOneStatistic()
        {
            var statistics = new Metric[] {
                new Metric { Name = "Test Metric" }
            };

            var builder = new TeamCityInfoBuilder(_formatterMock.Object);

            builder.AddStatistics(statistics);

            _formatterMock.Verify(m => m.Format(It.IsAny<string>()), Times.Once());
        }
        public void ShouldBeASuccessfulBuild()
        {
            var statistics = new Metric[] {
                new Metric { Name = "Test Metric", Error = false, Warning = false },
            };

            var builder = new TeamCityInfoBuilder(_formatterMock.Object);

            builder.AddStatistics(statistics);
            builder.GenerateStatusInfo();

            var actual = builder.GetTeamCityInfo();
            Assert.AreEqual(BuildStatus.Success, actual.Status);
        }
        public void ShouldReturnAggregatesInHeader()
        {
            var statistics = new Metric[] {
                new Metric { Name = "Test Metric", Error= true, Warning = true },
                new Metric { Name = "Second Metric", Warning = true },
                new Metric { Name = "Third Metric" }
            };

            var builder = new TeamCityInfoBuilder(_formatterMock.Object);

            builder.AddStatistics(statistics);
            builder.GenerateStatusInfo();

            var actual = builder.GetTeamCityInfo();
            Assert.AreEqual(1, actual.StatusInfo.Count());
        }
        public void ShouldReturnFormattedStatistics()
        {
            var statistics = new Metric[] {
                new Metric { Name = "Test Metric", Value = 7 },
                new Metric { Name = "Second Metric", Value = 1 }
            };

            var builder = new TeamCityInfoBuilder(_formatterMock.Object);

            builder.AddStatistics(statistics);

            var actual = builder.GetTeamCityInfo();
            Assert.AreEqual(2, actual.Statistics.Count);
            Assert.AreEqual("test-metric", actual.Statistics.First().Key);
            Assert.AreEqual("second-metric", actual.Statistics.Last().Key);
            Assert.AreEqual(7, actual.Statistics.First().Value);
            Assert.AreEqual(1, actual.Statistics.Last().Value);
        }