Ejemplo n.º 1
0
        public async Task get_back_the_list_of_tags_of_a_feature()
        {
            var permission = Builders.Permission()
                             .WithManagementPermission()
                             .Build();

            await _fixture.Given
            .AddPermission(permission);

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

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

            var toggle1 = Builders.Toggle()
                          .WithType("toggle")
                          .Build();

            var tagPerformance = Builders.Tag()
                                 .WithName("performance")
                                 .Build();

            var tagUsability = Builders.Tag()
                               .WithName("usability")
                               .Build();

            var featureTagPerformance = Builders.FeatureTag()
                                        .WithFeature(feature)
                                        .WithTag(tagPerformance)
                                        .Build();

            var featureTagUsability = Builders.FeatureTag()
                                      .WithFeature(feature)
                                      .WithTag(tagUsability)
                                      .Build();

            feature.Toggles.Add(toggle1);
            feature.FeatureTags.Add(featureTagPerformance);
            feature.FeatureTags.Add(featureTagUsability);

            product.Features.Add(feature);
            await _fixture.Given.AddProduct(product);

            var response = await _fixture.TestServer
                           .CreateRequest(ApiDefinitions.V5.Tags.List(product.Name, feature.Name))
                           .WithIdentity(Builders.Identity().WithDefaultClaims().Build())
                           .GetAsync();

            response.StatusCode
            .Should()
            .Be(StatusCodes.Status200OK);

            var content = await response.Content
                          .ReadAs <List <TagResponseDetail> >();

            content.Should().HaveCount(2);
        }
Ejemplo n.º 2
0
        public async Task allow_to_untag_features()
        {
            var product = Builders.Product()
                          .WithName("product#1")
                          .Build();
            var feature = Builders.Feature()
                          .WithName("feature#1")
                          .Build();
            var toggle1 = Builders.Toggle()
                          .WithType("toggle#1")
                          .Build();
            var tag = Builders.Tag()
                      .Build();
            var featureTag = Builders.FeatureTag()
                             .WithFeature(feature)
                             .WithTag(tag)
                             .Build();

            feature.Toggles.Add(toggle1);
            feature.FeatureTags.Add(featureTag);
            product.Features.Add(feature);

            await _fixture.Given.AddProduct(product);

            var response = await _fixture.TestServer
                           .CreateRequest(ApiDefinitions.V1.Tags.Untag(tag.Name, feature.Id))
                           .WithIdentity(Builders.Identity().WithDefaultClaims().Build())
                           .DeleteAsync();

            response.StatusCode
            .Should()
            .Be(StatusCodes.Status204NoContent);
        }
Ejemplo n.º 3
0
        public async Task not_allow_to_tag_features_when_it_has_been_previously_tagged_with_the_same_tag()
        {
            var product = Builders.Product()
                          .WithName("product#1")
                          .Build();
            var feature = Builders.Feature()
                          .WithName("feature#1")
                          .Build();
            var toggle1 = Builders.Toggle()
                          .WithType("toggle#1")
                          .Build();
            var tag = Builders.Tag()
                      .Build();
            var featureTag = Builders.FeatureTag()
                             .WithFeature(feature)
                             .WithTag(tag)
                             .Build();

            feature.Toggles.Add(toggle1);
            feature.FeatureTags.Add(featureTag);
            product.Features.Add(feature);
            await _fixture.Given.AddProduct(product);


            var request = new AddTagRequest(tag.Name);

            var response = await _fixture.TestServer
                           .CreateRequest(ApiDefinitions.V1.Tags.Tag(feature.Id))
                           .WithIdentity(Builders.Identity().WithDefaultClaims().Build())
                           .PostAsJsonAsync(request);

            response.StatusCode
            .Should()
            .Be(StatusCodes.Status400BadRequest);
        }
        public async Task get_configuration_statistics_response_configuration_statistics_when_success()
        {
            var permission = Builders.Permission()
                             .WithReaderPermission()
                             .Build();

            await _fixture.Given
            .AddPermission(permission);

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

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

            var toggle1 = Builders.Toggle()
                          .WithType("toggle")
                          .Build();

            var tag = Builders.Tag()
                      .Build();
            var featureTag = Builders.FeatureTag()
                             .WithFeature(feature)
                             .WithTag(tag)
                             .Build();

            feature.Toggles.Add(toggle1);
            feature.FeatureTags.Add(featureTag);
            product.Features.Add(feature);

            await _fixture.Given.AddProduct(product);

            var response = await _fixture.TestServer
                           .CreateRequest(ApiDefinitions.V5.Statistics.Configuration())
                           .WithIdentity(Builders.Identity().WithDefaultClaims().Build())
                           .GetAsync();

            response.StatusCode
            .Should()
            .Be(StatusCodes.Status200OK);

            var statistics = await response.Content
                             .ReadAs <ConfigurationStatisticsResponse>();

            statistics.TotalProducts
            .Should().Be(1);

            statistics.TotalFeatures
            .Should().Be(1);

            statistics.TotalDeployments
            .Should().Be(0);

            statistics.TotalToggles
            .Should().Be(1);
        }
Ejemplo n.º 5
0
        public async Task allow_to_tag_features_with_existing_tags()
        {
            var permission = Builders.Permission()
                             .WithManagementPermission()
                             .Build();

            await _fixture.Given
            .AddPermission(permission);

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

            var feature1 = Builders.Feature()
                           .WithName("barfeatureone")
                           .Build();

            var feature2 = Builders.Feature()
                           .WithName("barfeaturetwo")
                           .Build();

            var tag = Builders.Tag()
                      .WithName("performance")
                      .Build();

            var featureTag = Builders.FeatureTag()
                             .WithFeature(feature1)
                             .WithTag(tag)
                             .Build();

            feature1.FeatureTags.Add(featureTag);
            product.Features.Add(feature1);
            product.Features.Add(feature2);

            await _fixture.Given.AddProduct(product);

            var request = new AddTagRequest("performance");

            var response = await _fixture.TestServer
                           .CreateRequest(ApiDefinitions.V5.Tags.Tag(product.Name, feature2.Name))
                           .WithIdentity(Builders.Identity().WithDefaultClaims().Build())
                           .PostAsJsonAsync(request);

            response.StatusCode
            .Should()
            .Be(StatusCodes.Status204NoContent);
        }
Ejemplo n.º 6
0
        public async Task allow_to_tag_features_with_existing_tags()
        {
            var permission = Builders.Permission()
                             .WithAllPrivilegesForDefaultIdentity()
                             .Build();

            await _fixture.Given
            .AddPermission(permission);

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

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

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

            var tag = Builders.Tag()
                      .WithName("performance")
                      .Build();

            var featureTag = Builders.FeatureTag()
                             .WithFeature(feature1)
                             .WithTag(tag)
                             .Build();

            feature1.FeatureTags.Add(featureTag);
            product.Features.Add(feature1);
            product.Features.Add(feature2);

            await _fixture.Given.AddProduct(product);

            var request = new AddTagRequest("performance");

            var response = await _fixture.TestServer
                           .CreateRequest(ApiDefinitions.V1.Tags.Tag(feature2.Id))
                           .WithIdentity(Builders.Identity().WithDefaultClaims().Build())
                           .PostAsJsonAsync(request);

            response.StatusCode
            .Should()
            .Be(StatusCodes.Status200OK);
        }
Ejemplo n.º 7
0
        public async Task allow_to_untag_features()
        {
            var permission = Builders.Permission()
                             .WithManagementPermission()
                             .Build();

            await _fixture.Given
            .AddPermission(permission);

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

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

            var toggle1 = Builders.Toggle()
                          .WithType("toggle")
                          .Build();

            var tag = Builders.Tag()
                      .Build();
            var featureTag = Builders.FeatureTag()
                             .WithFeature(feature)
                             .WithTag(tag)
                             .Build();

            feature.Toggles.Add(toggle1);
            feature.FeatureTags.Add(featureTag);
            product.Features.Add(feature);

            await _fixture.Given.AddProduct(product);

            var response = await _fixture.TestServer
                           .CreateRequest(ApiDefinitions.V5.Tags.Untag(product.Name, feature.Name, tag.Name))
                           .WithIdentity(Builders.Identity().WithDefaultClaims().Build())
                           .DeleteAsync();

            response.StatusCode
            .Should()
            .Be(HttpStatusCode.NoContent);
        }