示例#1
0
        public async Task Should_get_application_feature_by_application_and_feature()
        {
            var feature             = new Feature("Feature01", false);
            var application1        = new Application("Sales", "1.1");
            var applicationFeature1 = new ApplicationFeature(feature, application1, false);
            var application2        = new Application("Sales", "1.2");
            var applicationFeature2 = new ApplicationFeature(feature, application2, true);
            var application3        = new Application("Sales", "1.3");
            var applicationFeature3 = new ApplicationFeature(feature, application3, false);

            await AddEntity(feature, application1, application2, application3, applicationFeature1, applicationFeature2, applicationFeature3);

            var persistedEntity = await ExecuteCommand((contexto) =>
            {
                var featureRepository = new ApplicationFeatureRepository(contexto);
                return(featureRepository.GetAsync(application2.Id, feature.Id));
            });

            using (new AssertionScope())
            {
                persistedEntity.Should().NotBeNull();
                persistedEntity.ApplicationId.Should().Be(application2.Id);
                persistedEntity.FeatureId.Should().Be(feature.Id);
                persistedEntity.IsActive.Should().Be(true);
            }
        }
示例#2
0
        public async Task Should_update_application_feature_data()
        {
            var feature            = new Feature("Feature01", true);
            var application        = new Application("Sales", "1.1");
            var applicationFeature = new ApplicationFeature(feature, application, false);

            await AddEntity(feature, application, applicationFeature);


            await ExecuteCommand(async (contexto) =>
            {
                var applicationFeatureRepository = new ApplicationFeatureRepository(contexto);
                var featureToUpdate = await applicationFeatureRepository.GetAsync(feature.Id);
                featureToUpdate.Enable();
                await contexto.SaveChangesAsync();
            });

            var persistedEntity = await ExecuteCommand((contexto) =>
            {
                var featureRepository = new ApplicationFeatureRepository(contexto);
                return(featureRepository.GetApplicationFeatureAsync(applicationFeature.Id));
            });

            using (new AssertionScope())
            {
                persistedEntity.Should().NotBeNull();
                persistedEntity.Application.Name.Should().Be("Sales");
                persistedEntity.Application.Version.Should().Be("1.1");
                persistedEntity.Feature.Name.Should().Be("Feature01");
                persistedEntity.Feature.IsActive.Should().Be(true);
                persistedEntity.IsActive.Should().Be(true);
            }
        }
示例#3
0
        public async Task Should_toggle_application_feature()
        {
            var application = new Application("App01", "0.1");
            var feature     = new Feature("isButtonGreen", false);

            await AddEntity(application, feature);

            var newFeature = await ExecuteCommand((context) =>
            {
                FeatureAppService featureAppService = GetFeatureAppService(context);
                return(featureAppService.AddApplicationFeature(new ApplicationFeatureModel("App01", "0.1", "isButtonGreen", true)));
            });

            await ExecuteCommand((context) =>
            {
                FeatureAppService featureAppService = GetFeatureAppService(context);
                return(featureAppService.ToggleApplicationFeature(new ApplicationFeatureModel("App01", "0.1", "isButtonGreen", false)));
            });

            var persistedEntity = await ExecuteCommand((contexto) =>
            {
                var featureRepository = new ApplicationFeatureRepository(contexto);
                return(featureRepository.GetAsync(newFeature.Id));
            });

            using (new AssertionScope())
            {
                persistedEntity.ApplicationId.Should().Be(application.Id);
                persistedEntity.FeatureId.Should().Be(feature.Id);
                persistedEntity.IsActive.Should().BeFalse();
            }
        }
示例#4
0
        private FeatureAppService GetFeatureAppService(TogglerContext context)
        {
            var featureRepository            = new FeatureRepository(context);
            var applicationFeatureRepository = new ApplicationFeatureRepository(context);
            var applicationRepository        = new ApplicationRepository(context);
            var uow = new UnitOfWork(context);
            var featureDomainService            = new FeatureDomainService(_mediator, featureRepository);
            var applicationFeatureDomainService = new ApplicationFeatureDomainService(_mediator, applicationFeatureRepository, featureRepository);

            var featureAppService = new FeatureAppService(uow, applicationRepository, featureRepository, featureDomainService, applicationFeatureDomainService, applicationFeatureRepository);

            return(featureAppService);
        }
示例#5
0
        public async Task Should_get_all_application_feature_by_application_and_feature()
        {
            var feature             = new Feature("Feature01", false);
            var feature2            = new Feature("Feature02", false);
            var application1        = new Application("Sales", "1.1");
            var applicationFeature1 = new ApplicationFeature(feature, application1, false);
            var applicationFeature2 = new ApplicationFeature(feature2, application1, false);


            await AddEntity(feature, feature2, application1, applicationFeature1, applicationFeature2);

            var persistedEntities = await ExecuteCommand((contexto) =>
            {
                var featureRepository = new ApplicationFeatureRepository(contexto);
                return(featureRepository.GetAllAsync("Sales", "1.1"));
            });

            using (new AssertionScope())
            {
                persistedEntities.Should().NotBeNull();
                persistedEntities.Should().HaveCount(2);
                persistedEntities.FirstOrDefault(d => d.Id.Equals(feature.Id)).Name.Should().Be("Feature01");
            }
        }