예제 #1
0
        public async Task LastBuildResult_ReturnsInfoCorrectlyMapped(string status, CiBuildResultStatus resultStatus)
        {
            var buildId = _fixture.Create <string>();
            var build   = _fixture
                          .Build <Build>()
                          .With(b => b.Status, status)
                          .Create();

            A.CallTo(() => _teamcityClient.Builds.LastBuildByBuildConfigId(buildId))
            .Returns(build);

            A.CallTo(() => _teamcityClient.Builds.ByBuildId(build.Id))
            .Returns(build);

            var teamCityService = new TeamCityService(_teamcityClient);
            var result          = await teamCityService.LastBuildResult(buildId);

            var expectedResult = new CiBuildResult
            {
                CiSource   = CiSource.TeamCity,
                Id         = build.Id,
                BuildId    = build.BuildType.Id,
                BuildName  = build.BuildType.Name,
                Url        = build.WebUrl,
                FinishDate = build.FinishDate,
                StartDate  = build.StartDate,
                Version    = build.Number,
                Status     = resultStatus
            };

            result.ShouldBeEquivalentTo(expectedResult);
        }
예제 #2
0
        public async Task LastBuildResult_WhenBuildIsRunning_ReturnsRunningBuildStatus()
        {
            var buildId = _fixture.Create <string>();
            var build   = _fixture
                          .Build <Build>()
                          .Create();

            A.CallTo(() => _teamcityClient.Builds.LastBuildByBuildConfigId(buildId))
            .Returns(build);

            A.CallTo(() => _teamcityClient.Builds.ByBuildId(build.Id))
            .Returns(build);

            A.CallTo(() =>
                     _teamcityClient.Builds.ByBuildLocator(A <BuildLocator> .Ignored))
            .Returns(_fixture.Build <Build>().CreateMany().ToList());

            var teamCityService = new TeamCityService(_teamcityClient);
            var result          = await teamCityService.LastBuildResult(buildId);

            var expectedResult = new CiBuildResult
            {
                CiSource   = CiSource.TeamCity,
                Id         = build.Id,
                BuildId    = build.BuildType.Id,
                BuildName  = build.BuildType.Name,
                Url        = build.WebUrl,
                FinishDate = build.FinishDate,
                StartDate  = build.StartDate,
                Version    = build.Number,
                Status     = CiBuildResultStatus.Running
            };

            result.ShouldBeEquivalentTo(expectedResult);
        }
예제 #3
0
        public async Task LastBuildResult_ReturnsStatisticsCorrectlyMapped()
        {
            var buildId = _fixture.Create <string>();
            var build   = _fixture
                          .Build <Build>()
                          .With(b => b.Status, "SUCCESS")
                          .Create();

            A.CallTo(() => _teamcityClient.Builds.LastBuildByBuildConfigId(buildId))
            .Returns(build);

            A.CallTo(() => _teamcityClient.Builds.ByBuildId(build.Id))
            .Returns(build);

            var stats = new List <Property>
            {
                new Property {
                    Name = "PassedTestCount", Value = "1"
                },
                new Property {
                    Name = "FailedTestCount", Value = "2"
                },
                new Property {
                    Name = "IgnoredTestCount", Value = "3"
                },
                new Property {
                    Name = "CodeCoverageAbsSCovered", Value = "4"
                },
                new Property {
                    Name = "CodeCoverageAbsSTotal", Value = "5"
                },
            };

            A.CallTo(() => _teamcityClient.Statistics.GetByBuildId(build.Id))
            .Returns(stats);

            var teamCityService = new TeamCityService(_teamcityClient);
            var result          = await teamCityService.LastBuildResult(buildId);

            var expectedResult = new CiBuildResult
            {
                CiSource                = CiSource.TeamCity,
                Id                      = build.Id,
                BuildId                 = build.BuildType.Id,
                BuildName               = build.BuildType.Name,
                Url                     = build.WebUrl,
                FinishDate              = build.FinishDate,
                StartDate               = build.StartDate,
                Version                 = build.Number,
                Status                  = CiBuildResultStatus.Success,
                NumberTestPassed        = 1,
                NumberTestFailed        = 2,
                NumberTestIgnored       = 3,
                NumberStatementsCovered = 4,
                NumberStatementsTotal   = 5
            };

            result.ShouldBeEquivalentTo(expectedResult);
        }
예제 #4
0
 private void btnTcBuild_Click(object sender, EventArgs e)
 {
     try
     {
         var confirmResult = MessageBox.Show(
             $"Are you sure to run the Teamcity build on {GlobalVariables.Enviroment}?",
             "Teamcity Build",
             MessageBoxButtons.YesNo);
         if (confirmResult == DialogResult.Yes)
         {
             var tcService = new TeamCityService();
             tcService.RunBuildConfig(GlobalVariables.EnvironmentAccounts[GlobalVariables.Enviroment].TCBuildConfig);
             WriteNotification($"Building the appliction zip files on {GlobalVariables.Enviroment}.");
         }
     }
     catch (Exception ex)
     {
         HandleException(ex);
     }
 }
예제 #5
0
        public async Task GetAllBuildConfigs_ReturnsProjectAndBuildTypesCorrectlyMapped_FilteringTheOnesThatTheProjectIsArchived()
        {
            IEnumerable <BuildConfig> buildConfigs = _fixture
                                                     .Build <BuildConfig>()
                                                     .CreateMany();

            IEnumerable <BuildConfig> enumerable     = buildConfigs as IList <BuildConfig> ?? buildConfigs.ToList();
            List <CiBuildConfig>      expectedResult = enumerable.Select(
                b => new CiBuildConfig
            {
                CiSource    = CiSource.TeamCity,
                Id          = b.Id,
                Name        = b.Name,
                Url         = b.WebUrl,
                ProjectName = b.ProjectName
            })
                                                       .ToList();

            A.CallTo(() => _teamcityClient.BuildConfigs.All())
            .Returns(enumerable.ToList());

            foreach (BuildConfig buildConfig in enumerable)
            {
                Project project = _fixture
                                  .Build <Project>()
                                  .With(p => p.Id, buildConfig.ProjectId)
                                  .Create();
                A.CallTo(() => _teamcityClient.Projects.ById(buildConfig.ProjectId))
                .Returns(project);

                if (project.Archived)
                {
                    expectedResult.Remove(expectedResult.First(b => b.Id == buildConfig.Id));
                }
            }

            TeamCityService             teamCityService = new TeamCityService(_teamcityClient);
            IEnumerable <CiBuildConfig> result          = await teamCityService.GetAllBuildConfigs();

            result.ShouldBeEquivalentTo(expectedResult);
        }
예제 #6
0
 public void Arrange()
 {
     _teamCityService = Substitute.For <TeamCityService>();
     _teamCityService.LoadXmlFromUrl(Arg.Any <string>()).ReturnsForAnyArgs(new XmlDocument());
 }