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 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 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_Toggle() { var toggle1 = new DependencyToggle(new BooleanToggle(ToggleName, true)); toggle1.Freeze(); Assert.IsTrue(toggle1.IsFrozen); }
public void Toggle_Is_Unfrozen_By_Default() { var toggle1 = new DependencyToggle(new BooleanToggle(ToggleName, true)); Assert.IsFalse(toggle1.IsFrozen); }
public void Evaluate_Returns_True_If_Enabled_With_No_Dependencies() { var toggle = new DependencyToggle(new BooleanToggle(ToggleName, true), new IFeatureToggle[0]); Assert.IsTrue(toggle.IsEnabled()); }
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 Evaluate_Returns_True_If_Dependencies_Not_Disabled() { var toggles = new IFeatureToggle[] { new BooleanToggle("a", true), new BooleanToggle("b", true) }; var toggle = new DependencyToggle(new BooleanToggle(ToggleName, true), toggles); Assert.IsTrue(toggle.IsEnabled()); }
public void Evaluate_Returns_False_If_Disabled() { var toggle = new DependencyToggle(new BooleanToggle(ToggleName, false), new IFeatureToggle[0]); Assert.IsFalse(toggle.IsEnabled()); }
public void Construction_Saves_Name() { var toggle = new DependencyToggle(new BooleanToggle(ToggleName, true), new IFeatureToggle[0]); Assert.AreEqual(ToggleName, toggle.Name); }
public void Construction_Saves_Dependencies() { var toggles = new IFeatureToggle[] { new BooleanToggle("a", true), new BooleanToggle("b", true) }; var toggle = new DependencyToggle(new BooleanToggle(ToggleName, true), toggles); CollectionAssert.AreEquivalent(toggles, toggle.Dependencies); }
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); }