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();
		}
Example #3
0
		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;
		}