public async Task add_response_badrequest_when_add_new_toggle_with_parameters_using_nonexisting_deployment() { var permission = Builders.Permission() .WithManagementPermission() .Build(); await _fixture.Given .AddPermission(permission); var deployment = Builders.Deployment() .WithName(EsquioConstants.DEFAULT_DEPLOYMENT_NAME) .WithDefault(true) .Build(); var product = Builders.Product() .WithName("fooproduct") .Build(); product.Deployments.Add(deployment); var feature = Builders.Feature() .WithName("barfeature") .Build(); product.Features .Add(feature); await _fixture.Given .AddProduct(product); var body = new AddToggleRequest() { ProductName = product.Name, FeatureName = feature.Name, ToggleType = typeof(HostEnvironmentToggle).FullName, DeploymentName = "nonexisting", Parameters = new List <AddToggleRequestDetailParameter>() { new AddToggleRequestDetailParameter() { Name = "Environments", Value = "Development", Type = typeof(String).FullName } } }; var response = await _fixture.TestServer .CreateRequest(ApiDefinitions.V3.Toggles.Post()) .WithIdentity(Builders.Identity().WithDefaultClaims().Build()) .PostAsJsonAsync(body); response.StatusCode .Should() .Be(StatusCodes.Status400BadRequest); }
public async Task post_response_bad_request_if_try_to_duplicate_toggle() { 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 body = new AddToggleRequest() { FeatureId = feature.Id, Type = typeof(EnvironmentToggle).FullName, Parameters = new List <AddToggleRequestDetailParameter>() }; var response = await _fixture.TestServer .CreateRequest(ApiDefinitions.V1.Toggles.Post()) .WithIdentity(Builders.Identity().WithDefaultClaims().Build()) .PostAsJsonAsync(body); response.StatusCode .Should() .Be(StatusCodes.Status400BadRequest); }
public async Task add_response_bad_request_if_try_to_duplicate_toggle() { 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) .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); await _fixture.Given .AddProduct(product); var body = new AddToggleRequest() { ProductName = product.Name, FeatureName = feature.Name, ToggleType = typeof(HostEnvironmentToggle).FullName, Parameters = new List <AddToggleRequestDetailParameter>() }; var response = await _fixture.TestServer .CreateRequest(ApiDefinitions.V3.Toggles.Post()) .WithIdentity(Builders.Identity().WithDefaultClaims().Build()) .PostAsJsonAsync(body); response.StatusCode .Should() .Be(StatusCodes.Status400BadRequest); }
public async Task post_response_created_when_add_new_toggle() { 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(); product.Features .Add(feature); await _fixture.Given .AddProduct(product); var body = new AddToggleRequest() { FeatureId = feature.Id, Type = typeof(EnvironmentToggle).FullName, Parameters = new List <AddToggleRequestDetailParameter>() { new AddToggleRequestDetailParameter() { Name = "Environments", Value = "Development", Type = typeof(String).FullName } } }; var response = await _fixture.TestServer .CreateRequest(ApiDefinitions.V1.Toggles.Post()) .WithIdentity(Builders.Identity().WithDefaultClaims().Build()) .PostAsJsonAsync(body); response.StatusCode .Should() .Be(StatusCodes.Status201Created); }
public async Task <IActionResult> Add(AddToggleRequest postToggleRequest, CancellationToken cancellationToken = default) { await _mediator.Send(postToggleRequest, cancellationToken); return(Created($"api/v1/products/{postToggleRequest.ProductName}/features/{postToggleRequest.FeatureName}/toggles/{postToggleRequest.ToggleType}", null)); }
public async Task <IActionResult> Add(AddToggleRequest postToggleRequest, CancellationToken cancellationToken = default) { var toggleId = await _mediator.Send(postToggleRequest, cancellationToken); return(Created($"api/v1/toggle/{toggleId}", null)); }