Esempio n. 1
0
        public async Task ReconcileIntegrationTest()
        {
            var project = await _client.GetAsync(Project.ProjectById(_config.Project));

            var buildPipeline = await _client.GetAsync(Builds.BuildDefinition(project.Id, "2"))
                                .ConfigureAwait(false);

            await ManagePermissions
            .ForBuildPipeline(_client, project.Id, buildPipeline.Id, buildPipeline.Path)
            .Permissions(Build.DeleteBuilds)
            .SetToAsync(PermissionId.Allow);

            var rule = new NobodyCanDeleteBuilds(_client);

            (await rule.EvaluateAsync(project, buildPipeline))
            .ShouldBe(false);

            await rule.ReconcileAsync(project.Id, buildPipeline.Id);

            await Policy
            .Handle <Exception>()
            .WaitAndRetryAsync(Constants.NumRetries, t => TimeSpan.FromSeconds(t))
            .ExecuteAsync(async() =>
            {
                (await rule.EvaluateAsync(project, buildPipeline)).ShouldBe(true);
            });
        }