public void ShouldOverrideToggleValuesThatAreSetInProdEnvironment() { string appEnvironment = "preprod"; var featureTogglesReader = new FeatureTogglesReader(YamlFile, appEnvironment, Logger.Object); var featureToggles = featureTogglesReader.Build <FakeFeatureToggles>(); featureToggles.OverriddenFeature.Should().Be(true); }
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); }
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); }
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); }
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}, "); }
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."); }
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."); }
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."); }