public void AssertConfigurationIsValid_Returns_False_For_Non_Circular_Dpendency() { var toggle1 = new DependencyToggle(new BooleanToggle(ToggleName, true)); var toggle2 = new DependencyToggle(new BooleanToggle(ToggleName, true)); var toggle3 = new DependencyToggle(new BooleanToggle(ToggleName, true)); var toggle4 = new BooleanToggle(ToggleName, true); toggle1.AddDependency(toggle2); toggle2.AddDependency(toggle3); toggle2.AddDependency(toggle4); toggle3.AddDependency(toggle4); Assert.DoesNotThrow(toggle1.AssertConfigurationIsValid); }
public void Freeze_Freezes_Dependencies() { var toggle1 = new DependencyToggle(new BooleanToggle(ToggleName, true)); var dependency1 = new Mock <IFeatureToggle>(); var dependency2 = new Mock <IFeatureToggle>(); toggle1.AddDependency(dependency1.Object); toggle1.AddDependency(dependency2.Object); dependency1.Setup(x => x.Freeze()); dependency2.Setup(x => x.Freeze()); toggle1.Freeze(); Assert.IsTrue(toggle1.IsFrozen); dependency1.VerifyAll(); dependency2.VerifyAll(); }
public void AssertConfigurationIsValid_Throws_For_CircularDependency() { var toggle1 = new DependencyToggle(new BooleanToggle(ToggleName, true)); var toggle2 = new DependencyToggle(new BooleanToggle(ToggleName, true)); toggle1.AddDependency(toggle2); toggle2.AddDependency(toggle1); Assert.Throws <CircularDependencyException>(toggle1.AssertConfigurationIsValid); }
public void AddDependency_Throws_If_Object_Is_Frozen() { var toggle = new DependencyToggle(new BooleanToggle(ToggleName, true)); toggle.Freeze(); var dependency = new BooleanToggle("a", true); Assert.Throws <ToggleFrozenException>(() => toggle.AddDependency(dependency)); }
public void Can_Add_Dependencies_To_Toggle() { var toggle = new DependencyToggle(new BooleanToggle(ToggleName, true)); Assert.IsFalse(toggle.Dependencies.Any()); var dependency = new BooleanToggle("a", true); toggle.AddDependency(dependency); Assert.IsTrue(toggle.Dependencies.Any()); Assert.AreSame(toggle.Dependencies.Single(), dependency); }
private void BuildDependencies(DependencyToggle dependencyToggle, Dictionary <string, KeyValuePair <ToggleConfig, IFeatureToggle> > toggles, IEnumerable <string> dependencyNames) { foreach (var dependencyName in dependencyNames) { string cleanName = dependencyName.Trim(); if (!toggles.TryGetValue(cleanName, out var dependency)) { throw new ConfigurationErrorsException("Could not find dependency with name \"" + cleanName + "\"."); } dependencyToggle.AddDependency(dependency.Value); } }
private void BuildDependencies(DependencyToggle dependencyToggle, Dictionary<string, KeyValuePair<ToggleConfig, IFeatureToggle>> toggles, IEnumerable<string> dependencyNames) { foreach (var dependencyName in dependencyNames) { string cleanName = dependencyName.Trim(); KeyValuePair<ToggleConfig, IFeatureToggle> dependency; if (!toggles.TryGetValue(cleanName, out dependency)) { throw new ConfigurationErrorsException("Could not find dependency with name \"" + cleanName + "\"."); } dependencyToggle.AddDependency(dependency.Value); } }