public void GetToggles_ReturnsAList_WithAllTheToggles_AndTheStatusesOfThoseToggles_ForTheGivenApplication() { //arrange var app = new Application { AppName = "BCC", Id = 1 }; var featureToggle = new FeatureToggle { Application = app, ApplicationId = app.Id }; var env = new DeployEnvironment { Application = app, EnvName = "DEV" }; var devFeatureStatus = new FeatureToggleStatus { Id = 1, Environment = env, FeatureToggle = featureToggle, FeatureToggleId = app.Id, Enabled = true, IsDeployed = true }; var qaFeatureStatus = new FeatureToggleStatus { Id = 2, Environment = env, FeatureToggle = featureToggle, FeatureToggleId = app.Id, Enabled = false, IsDeployed = false }; _context.FeatureToggles.Add(featureToggle); _context.Applications.Add(app); _context.DeployEnvironments.Add(env); _context.FeatureToggleStatuses.AddRange(devFeatureStatus, qaFeatureStatus); _context.SaveChanges(); var controller = new FeatureTogglesController(_context); //act var result = controller.GetToggles(app.Id) as OkObjectResult; result.Should().NotBeNull(); var list = result.Value as IEnumerable <FeatureToggleViewModel>; //assert list.First().Statuses.Count.Should().Be(2); }
public void GetApplicationFeatureToggleValue_ReturnsTheStatus_OfTheGivenFeatureToggle() { //arrange var app = new Application { Id = 1, AppName = "TestApp" }; var environment = new DeployEnvironment { Id = 2, Application = app, ApplicationId = app.Id, EnvName = "TestEnv" }; var featureStatus = new FeatureToggleStatus { Enabled = true, Id = 1, IsDeployed = false, Environment = environment, EnvironmentId = environment.Id }; var feature = new FeatureToggle { Id = 1, Application = app, ApplicationId = app.Id, FeatureToggleStatuses = new List <FeatureToggleStatus> { featureStatus }, ToggleName = "Test" }; _context.FeatureToggleStatuses.Add(featureStatus); _context.Applications.Add(app); _context.DeployEnvironments.Add(environment); _context.FeatureToggles.Add(feature); _context.SaveChanges(); var controller = new FeatureTogglesController(_context); //act var result = controller.GetApplicationFeatureToggleValue(app.AppName, environment.EnvName, feature.ToggleName) as OkObjectResult; var okObjectResult = result.Value as ApplicationFeatureToggleViewModel; //assert okObjectResult.FeatureToggleName.Should().Be(feature.ToggleName); okObjectResult.IsEnabled.Should().BeTrue(); }