public async Task Reconcile()
        {
            //Arrange
            var client = new VstsRestClient(_config.Organization, _config.Token);

            //Act
            var rule = new PipelineHasRequiredRetentionPolicy(client) as IReconcile;
            await rule.ReconcileAsync(_config.Project, PipelineId);
        }
Пример #2
0
        public async Task EvaluateShouldReturnFalseWhenRetainBuildsIsDisabled()
        {
            //Arrange
            CustomizePolicySettings(_fixture, 500, false);
            SetupClient(_client, _fixture);
            var releasePipeline = _fixture.Create <ReleaseDefinition>();

            //Act
            var rule   = new PipelineHasRequiredRetentionPolicy(_client);
            var result = await rule.EvaluateAsync("", releasePipeline);

            //Assert
            result.ShouldBe(false);
        }
        public async Task EvaluateIntegrationTest()
        {
            //Arrange
            var client          = new VstsRestClient(_config.Organization, _config.Token);
            var releasePipeline = await client.GetAsync(ReleaseManagement.Definition(_config.Project, PipelineId))
                                  .ConfigureAwait(false);

            //Act
            var rule   = new PipelineHasRequiredRetentionPolicy(client);
            var result = await rule.EvaluateAsync(_config.Project, releasePipeline);

            //Assert
            result.ShouldBe(true);
        }
Пример #4
0
        public async Task GivenPolicySettingsAreNotCorrect_WhenReconcile_ThenSettingsArePut()
        {
            //Arrange
            CustomizePolicySettings(_fixture, 10, false);
            SetupClient(_client, _fixture);

            //Act
            var rule = new PipelineHasRequiredRetentionPolicy(_client) as IReconcile;
            await rule.ReconcileAsync("", PipelineId);

            // Assert
            await _client
            .Received()
            .PutAsync(Arg.Any <IVstsRequest <ReleaseSettings> >(), Arg.Any <ReleaseSettings>());
        }
Пример #5
0
        public async Task EvaluateShouldReturnFalseWhenReleasesAreRetainedShorterThenRequired()
        {
            //Arrange
            // ReSharper disable once RedundantArgumentDefaultValue
            CustomizePolicySettings(_fixture, 5, true);
            SetupClient(_client, _fixture);
            var releasePipeline = _fixture.Create <ReleaseDefinition>();

            //Act
            var rule   = new PipelineHasRequiredRetentionPolicy(_client);
            var result = await rule.EvaluateAsync("", releasePipeline);

            //Assert
            result.ShouldBe(false);
        }
Пример #6
0
        public async Task GivenPolicySettingsAreCorrect_WhenReconcile_ThenPipelineIsUpdatedAnyway()
        {
            //Arrange
            CustomizePolicySettings(_fixture);
            SetupClient(_client, _fixture);

            //Act
            var rule = new PipelineHasRequiredRetentionPolicy(_client) as IReconcile;
            await rule.ReconcileAsync("", PipelineId);

            // Assert
            await _client
            .Received()
            .PutAsync(Arg.Any <IVstsRequest <object> >(), Arg.Any <JObject>());
        }
Пример #7
0
        public async Task EvaluateShouldReturnFalseWhenAnyStageWithinPipelineDoesNotHaveRequiredRetentionPolicy()
        {
            //Arrange
            // ReSharper disable twice RedundantArgumentDefaultValue
            CustomizePolicySettings(_fixture, 450, true);
            SetupClient(_client, _fixture);
            var releasePipeline = _fixture.Create <ReleaseDefinition>();

            if (releasePipeline.Environments.Any())
            {
                releasePipeline.Environments.First().RetentionPolicy.DaysToKeep = 0;
            }

            //Act
            var rule   = new PipelineHasRequiredRetentionPolicy(_client);
            var result = await rule.EvaluateAsync("", releasePipeline);

            //Assert
            Assert.False(result);
        }