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)); }
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); }
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); }
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)); }
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); }
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); }
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); }
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); }
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); }
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); }