public async Task FlipToggles_HavingSheduledTimeInThePast()
        {
            //arrange
            var app = Application.Create("tst", "DEV", false);

            app.AddFeatureToggle("offToggle", null, "workItemId1");
            app.AddFeatureToggle("onToggle", null, "workItemId1");
            app.SetToggle(app.FeatureToggles.Single(f => f.ToggleName == "offToggle").Id, "DEV", false, "username");
            app.SetToggle(app.FeatureToggles.Single(f => f.ToggleName == "onToggle").Id, "DEV", true, "username");
            await _appRepository.AddAsync(app);

            var schedule  = ToggleSchedule.Create("tst", "offToggle", new[] { "DEV" }, true, _dateInThePast, "updatedBy", true);
            var schedule2 = ToggleSchedule.Create("tst", "onToggle", new[] { "DEV" }, false, _dateInThePast, "updatedBy", true);
            await _toggleSchedulesRepository.AddAsync(schedule);

            await _toggleSchedulesRepository.AddAsync(schedule2);

            //act
            await _sut.StartAsync(_cts.Token);

            await _sut.StopAsync(_cts.Token);

            //assert
            var updatedApp = await _appRepository.FindByIdAsync(app.Id);

            var status = FeatureToggleTestHelper.GetFeatureToggleStatus(updatedApp, "offtoggle", "DEV");

            status.Enabled.Should().BeTrue();
            var status2 = FeatureToggleTestHelper.GetFeatureToggleStatus(updatedApp, "onToggle", "DEV");

            status2.Enabled.Should().BeFalse();
        }
        public async Task FeatureToggleShowDeployedEnvironmentIsUpdatedCorrectly()
        {
            //arrange
            var app = Application.Create("TestApp", "DEV", false);

            app.AddFeatureToggle("TestToggle-1", "TestNotes-1", "workItemId1");
            app.AddFeatureToggle("TestToggle-2", "TestNotes-2", "workItemId2");

            await _appRepository.AddAsync(app);

            FeatureToggleTestHelper.UpdateFeatureToggleDeployedStatus(app, "TestToggle-1", "DEV", true);

            var context = new TestConsumeContext <RegisteredTogglesUpdate>(new RegisteredTogglesUpdate
            {
                Environment    = "dev",
                AppName        = "testapp",
                FeatureToggles = new [] { "TestToggle-2" }
            });

            //act
            _sut = new FeatureToggleDeployStatusConsumer(_appRepository);
            await _sut.Consume(context);

            //assert
            var updatedApp = await _appRepository.FindByIdAsync(app.Id);

            FeatureToggleTestHelper.GetFeatureToggleDeployedStatus(updatedApp, "TestToggle-1", "DEV").Should().BeFalse();
            FeatureToggleTestHelper.GetFeatureToggleDeployedStatus(updatedApp, "TestToggle-2", "DEV").Should().BeTrue();
        }
        public async Task WhenThereAreNoSchedulesDoNothing()
        {
            //arrange
            var app = Application.Create("tst", "DEV", false);

            app.AddFeatureToggle("t1", null, "workItemId1");
            await _appRepository.AddAsync(app);

            //act
            await _sut.StartAsync(_cts.Token);

            await _sut.StopAsync(_cts.Token);

            //assert
            var updatedApp = await _appRepository.FindByIdAsync(app.Id);

            var status = FeatureToggleTestHelper.GetFeatureToggleStatus(updatedApp, "t1", "DEV");

            status.Enabled.Should().BeFalse();
        }
Пример #4
0
        public async Task EveryExistingFeatureToggle_IsMarkedAs_Off_ForTheNewEnvironment()
        {
            //arrange
            var app = Application.Create("TestApp", "DEV", false);

            app.AddFeatureToggle("t1", string.Empty, "workItemId1");
            app.AddFeatureToggle("t2", string.Empty, "workItemId2");
            await _appRepository.AddAsync(app);

            var newEnvironment = new AddEnvironmentModel {
                ApplicationId = app.Id, EnvName = "QA"
            };

            //act
            var result = await _featureToggleController.AddEnvironment(newEnvironment);

            //assert
            result.Should().BeOfType <OkResult>();
            var savedApp = await _appRepository.FindByIdAsync(app.Id);

            FeatureToggleTestHelper.GetFeatureToggleStatus(savedApp, "t1", "QA").Enabled.Should().BeFalse();
            FeatureToggleTestHelper.GetFeatureToggleStatus(savedApp, "t2", "QA").Enabled.Should().BeFalse();
        }