public void ShouldNotAcceptNullWhenAddingFeature() { var feature = new Feature("theflag", new FalseSpecification()); Assert.Throws<ArgumentNullException>(() => feature.AddSpecification(null) ); }
public void ShouldBeDisableIfAnySpecificationReturnFalse() { const string flag = "someFlag"; var feature = new Feature(flag, new FalseSpecification()); feature.AddSpecification(new TrueSpecification()); var toggle = new ToggleChecker(new InMemoryProvider(feature)); toggle.IsEnabled(flag) .Should().Be.False(); }
private Feature addSpecificationToFeature(IDictionary<string, Feature> readFeatures, IDictionary<string, IToggleSpecification> specificationMappings, int rowNumber, StringBuilder exOutput, string specificationName, string toggleName) { IToggleSpecification foundSpecification; Feature feature=null; if (specificationMappings.TryGetValue(specificationName, out foundSpecification)) { if (readFeatures.TryGetValue(toggleName, out feature)) { if (ThrowIfFeatureIsDeclaredTwice) { exOutput.AppendLine(string.Format(MustOnlyBeDeclaredOnce, toggleName, rowNumber)); } else { feature.AddSpecification(foundSpecification); } } else { feature = new Feature(foundSpecification); readFeatures.Add(toggleName, feature); } } else { exOutput.AppendLine(string.Format(MustHaveValidSpecification, specificationName, rowNumber)); } return feature; }