示例#1
0
        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);
        }
示例#2
0
        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();
        }