Esempio n. 1
0
        public async Task <IActionResult> AddParameter(AddParameterToggleRequest parameterToggleRequest, CancellationToken cancellationToken = default)
        {
            await _mediator.Send(parameterToggleRequest, cancellationToken);

            //TODO: fix created at action
            return(Created($"api/v1/products/{parameterToggleRequest.ProductName}/features/{parameterToggleRequest.FeatureName}/toggles/{parameterToggleRequest.ToggleType}", null));
        }
Esempio n. 2
0
        public async Task addparameter_response_bad_request_if_value_is_null()
        {
            var permission = Builders.Permission()
                             .WithManagementPermission()
                             .Build();

            await _fixture.Given
            .AddPermission(permission);

            var parameterToggleRequest = new AddParameterToggleRequest()
            {
                ProductName = "fooproduct",
                FeatureName = "barfeature",
                ToggleType  = "type",
                Name        = "Environment",
                Value       = null
            };

            var response = await _fixture.TestServer
                           .CreateRequest(ApiDefinitions.V3.Toggles.PostParameter())
                           .WithIdentity(Builders.Identity().WithDefaultClaims().Build())
                           .PostAsJsonAsync(parameterToggleRequest);

            response.StatusCode
            .Should()
            .Be(StatusCodes.Status400BadRequest);
        }
Esempio n. 3
0
        public async Task addparameter_response_forbidden_if_user_is_not_authorized()
        {
            var permission = Builders.Permission()
                             .WithReaderPermission()
                             .Build();

            await _fixture.Given
            .AddPermission(permission);

            var parameterToggleRequest = new AddParameterToggleRequest()
            {
                ProductName = "fooproduct",
                FeatureName = "barfeature",
                ToggleType  = "type",
                Name        = "Environments",
                Value       = "Development",
            };

            var response = await _fixture.TestServer
                           .CreateRequest(ApiDefinitions.V3.Toggles.PostParameter())
                           .WithIdentity(Builders.Identity().WithDefaultClaims().Build())
                           .PostAsJsonAsync(parameterToggleRequest);

            response.StatusCode
            .Should()
            .Be(StatusCodes.Status403Forbidden);
        }
Esempio n. 4
0
        public async Task <IActionResult> AddParameter(int toggleId, AddParameterToggleRequest parameterToggleRequest, CancellationToken cancellationToken = default)
        {
            parameterToggleRequest.ToggleId = toggleId;
            await _mediator.Send(parameterToggleRequest, cancellationToken);

            return(Created($"api/v1/toggle/{parameterToggleRequest.ToggleId}", null));
        }
Esempio n. 5
0
        public async Task addparameter_response_ok_if_toggle_already_exist_but_parameater_is_newer()
        {
            var permission = Builders.Permission()
                             .WithManagementPermission()
                             .Build();

            await _fixture.Given
            .AddPermission(permission);

            var product = Builders.Product()
                          .WithName("fooproduct")
                          .Build();

            var deployment = Builders.Deployment()
                             .WithName(EsquioConstants.DEFAULT_DEPLOYMENT_NAME)
                             .WithDefault(true)
                             .Build();

            var feature = Builders.Feature()
                          .WithName("barfeature")
                          .Build();

            var toggle = Builders.Toggle()
                         .WithType(typeof(HostEnvironmentToggle).FullName)
                         .Build();

            feature.Toggles
            .Add(toggle);

            product.Features
            .Add(feature);

            product.Deployments
            .Add(deployment);

            await _fixture.Given
            .AddProduct(product);

            var parameterToggleRequest = new AddParameterToggleRequest()
            {
                ProductName    = product.Name,
                FeatureName    = feature.Name,
                ToggleType     = toggle.Type,
                DeploymentName = deployment.Name,
                Name           = "Environments",
                Value          = "Development",
            };

            var response = await _fixture.TestServer
                           .CreateRequest(ApiDefinitions.V3.Toggles.PostParameter())
                           .WithIdentity(Builders.Identity().WithDefaultClaims().Build())
                           .PostAsJsonAsync(parameterToggleRequest);

            response.StatusCode
            .Should()
            .Be(StatusCodes.Status201Created);
        }
        public async Task postparameter_response_ok_if_toggle_exist_but_is_new_parameter()
        {
            var permission = Builders.Permission()
                             .WithAllPrivilegesForDefaultIdentity()
                             .Build();

            await _fixture.Given
            .AddPermission(permission);

            var product = Builders.Product()
                          .WithName("product#1")
                          .Build();

            var feature = Builders.Feature()
                          .WithName("feature#1")
                          .Build();

            var toggle = Builders.Toggle()
                         .WithType(typeof(EnvironmentToggle).FullName)
                         .Build();

            var parameter = Builders.Parameter()
                            .WithName("Environments")
                            .WithValue("Development")
                            .Build();

            toggle.Parameters
            .Add(parameter);

            feature.Toggles
            .Add(toggle);

            product.Features
            .Add(feature);

            await _fixture.Given
            .AddProduct(product);

            var parameterToggleRequest = new AddParameterToggleRequest()
            {
                Name  = "Environments",
                Value = "Production",
            };

            var response = await _fixture.TestServer
                           .CreateRequest(ApiDefinitions.V1.Toggles.PostParameter(toggleId: toggle.Id))
                           .WithIdentity(Builders.Identity().WithDefaultClaims().Build())
                           .PostAsJsonAsync(parameterToggleRequest);

            response.StatusCode
            .Should()
            .Be(StatusCodes.Status201Created);
        }
Esempio n. 7
0
        public async Task postparameter_response_badrequest_if_toggle_does_not_exist()
        {
            var parameterToggleRequest = new AddParameterToggleRequest()
            {
                Name  = "Environments",
                Value = "Development"
            };

            var response = await _fixture.TestServer
                           .CreateRequest(ApiDefinitions.V1.Toggles.PostParameter(toggleId: 100))
                           .WithIdentity(Builders.Identity().WithDefaultClaims().Build())
                           .PostAsJsonAsync(parameterToggleRequest);

            response.StatusCode
            .Should()
            .Be(StatusCodes.Status400BadRequest);
        }
Esempio n. 8
0
        public async Task postparameter_response_bad_request_if_value_is_empty()
        {
            var parameterToggleRequest = new AddParameterToggleRequest()
            {
                Name  = "Environment",
                Value = string.Empty
            };

            var response = await _fixture.TestServer
                           .CreateRequest(ApiDefinitions.V1.Toggles.PostParameter(toggleId: 1))
                           .WithIdentity(Builders.Identity().WithDefaultClaims().Build())
                           .PostAsJsonAsync(parameterToggleRequest);

            response.StatusCode
            .Should()
            .Be(StatusCodes.Status400BadRequest);
        }
Esempio n. 9
0
        public async Task postparameter_response_notfound_if_toggleid_is_non_positve_int()
        {
            var parameterToggleRequest = new AddParameterToggleRequest()
            {
                Name  = "Environments",
                Value = "Development"
            };

            var response = await _fixture.TestServer
                           .CreateRequest(ApiDefinitions.V1.Toggles.PostParameter(toggleId: -1))
                           .WithIdentity(Builders.Identity().WithDefaultClaims().Build())
                           .PostAsJsonAsync(parameterToggleRequest);

            response.StatusCode
            .Should()
            .Be(StatusCodes.Status404NotFound);
        }
Esempio n. 10
0
        public async Task postparameter_response_forbidden_if_user_is_not_authorized()
        {
            var permission = Builders.Permission()
                             .WithAllPrivilegesForDefaultIdentity()
                             .WithWritePermission(false)
                             .Build();

            await _fixture.Given
            .AddPermission(permission);

            var product = Builders.Product()
                          .WithName("product#1")
                          .Build();

            var feature = Builders.Feature()
                          .WithName("feature#1")
                          .Build();

            var toggle = Builders.Toggle()
                         .WithType(typeof(EnvironmentToggle).FullName)
                         .Build();

            feature.Toggles
            .Add(toggle);

            product.Features
            .Add(feature);

            await _fixture.Given
            .AddProduct(product);

            var parameterToggleRequest = new AddParameterToggleRequest()
            {
                Name  = "Environments",
                Value = "Development",
            };

            var response = await _fixture.TestServer
                           .CreateRequest(ApiDefinitions.V1.Toggles.PostParameter(toggleId: toggle.Id))
                           .WithIdentity(Builders.Identity().WithDefaultClaims().Build())
                           .PostAsJsonAsync(parameterToggleRequest);

            response.StatusCode
            .Should()
            .Be(StatusCodes.Status403Forbidden);
        }
Esempio n. 11
0
        public async Task postparameter_response_bad_request_if_value_is_null()
        {
            var permission = Builders.Permission()
                             .WithAllPrivilegesForDefaultIdentity()
                             .Build();

            await _fixture.Given
            .AddPermission(permission);

            var parameterToggleRequest = new AddParameterToggleRequest()
            {
                Name  = "Environment",
                Value = null
            };

            var response = await _fixture.TestServer
                           .CreateRequest(ApiDefinitions.V1.Toggles.PostParameter(toggleId: 1))
                           .WithIdentity(Builders.Identity().WithDefaultClaims().Build())
                           .PostAsJsonAsync(parameterToggleRequest);

            response.StatusCode
            .Should()
            .Be(StatusCodes.Status400BadRequest);
        }