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