Пример #1
0
        public void ShouldOverrideToggleValuesThatAreSetInProdEnvironment()
        {
            string appEnvironment = "preprod";

            var featureTogglesReader = new FeatureTogglesReader(YamlFile, appEnvironment, Logger.Object);

            var featureToggles = featureTogglesReader.Build <FakeFeatureToggles>();

            featureToggles.OverriddenFeature.Should().Be(true);
        }
Пример #2
0
        public void ShouldSetToggleValuesToFalseForGivenEnvironment()
        {
            string appEnvironment = "prod";

            var featureTogglesReader = new FeatureTogglesReader(YamlFile, appEnvironment, Logger.Object);

            var featureToggles = featureTogglesReader.Build <FakeFeatureToggles>();

            featureToggles.AToZ.Should().Be(false);
        }
        public static IServiceCollection AddFeatureToggles(this IServiceCollection services, string contentRootPath, string appEnvironment)
        {
            services.AddTransient(p =>
            {
                var featureTogglesReader = new FeatureTogglesReader($"{contentRootPath}/featureToggles.yml", appEnvironment,
                                                                    p.GetService <ILogger <FeatureTogglesReader> >());
                return(featureTogglesReader.Build <FeatureToggles>());
            });

            return(services);
        }
Пример #4
0
        public void ShouldInheritToggleValuesFromProdEnvironment()
        {
            string appEnvironment = "preprod";

            var featureTogglesReader = new FeatureTogglesReader(YamlFile, appEnvironment, Logger.Object);

            var featureToggles = featureTogglesReader.Build <FakeFeatureToggles>();

            featureToggles.SearchBar.Should().Be(true);
            featureToggles.AToZ.Should().Be(false);
        }
Пример #5
0
        public void ShouldSetToggleValuesToTrueForGivenEnvironment()
        {
            const string appEnvironment = "prod";

            _featureTogglesReader = new FeatureTogglesReader(YamlFile, appEnvironment, Logger.Object);
            var featureTogglesReader = _featureTogglesReader;

            var featureToggles = featureTogglesReader.Build <FakeFeatureToggles>();

            featureToggles.SearchBar.Should().Be(true);
        }
Пример #6
0
        public void ShouldLogInformationTheLoadedFeatureToggles()
        {
            string appEnvironment = "preprod";

            var featureTogglesReader = new FeatureTogglesReader(YamlFile, appEnvironment, Logger.Object);

            var featureToggles = featureTogglesReader.Build <FakeFeatureToggles>();

            LogTesting.Assert(Logger, LogLevel.Information,
                              $"Feature Toggles for: {appEnvironment}\n" +
                              $"SearchBar: {featureToggles.SearchBar}, " +
                              $"AToZ: {featureToggles.AToZ}, " +
                              $"OverriddenFeature: {featureToggles.OverriddenFeature}, ");
        }
Пример #7
0
        public void ShouldDefaultAllFeatureTogglesToFalseIfEnvironmentIsNotFound()
        {
            string appEnvironment = "notfound";

            var featureTogglesReader = new FeatureTogglesReader(YamlFile, appEnvironment, Logger.Object);

            var featureToggles = featureTogglesReader.Build <FakeFeatureToggles>();

            featureToggles.AToZ.Should().Be(false);
            featureToggles.SearchBar.Should().Be(false);
            featureToggles.OverriddenFeature.Should().Be(false);

            LogTesting.Assert(Logger, LogLevel.Warning,
                              $"No feature toggle configuration found for environment: {appEnvironment}. Setting all features to false.");
        }
Пример #8
0
        public void ShouldDefaultToFalseIfFileCannotBeParsed()
        {
            string appEnvironment = "prod";

            var featureTogglesReader = new FeatureTogglesReader(invalidYamlFile, appEnvironment, Logger.Object);

            var featureToggles = featureTogglesReader.Build <FakeFeatureToggles>();

            featureToggles.AToZ.Should().Be(false);
            featureToggles.SearchBar.Should().Be(false);
            featureToggles.OverriddenFeature.Should().Be(false);

            LogTesting.Assert(Logger, LogLevel.Warning,
                              $"Cannot parse feature toggles in {invalidYamlFile}. Setting all features to false.");
        }
Пример #9
0
        public void ShouldDefaultToFalseIfFileNotFound()
        {
            string appEnvironment = "prod";

            var nonExistentFile      = "notfound";
            var featureTogglesReader = new FeatureTogglesReader(nonExistentFile, appEnvironment, Logger.Object);

            var featureToggles = featureTogglesReader.Build <FakeFeatureToggles>();

            featureToggles.AToZ.Should().Be(false);
            featureToggles.SearchBar.Should().Be(false);
            featureToggles.OverriddenFeature.Should().Be(false);

            LogTesting.Assert(Logger, LogLevel.Warning,
                              $"No feature toggle configuration file found ({nonExistentFile}). Setting all features to false.");
        }