public void ShouldBeDisabledIfNotDefined() { var toggle = new ToggleChecker(new InMemoryProvider()); toggle.IsEnabled("non existing") .Should().Be.False(); }
public void ShouldBeEnabled() { var content = new[] { "someflag=true" }; var toggleChecker = new ToggleChecker(new FileProvider(new FileReaderHardCoded(content))); toggleChecker.IsEnabled("someflag2") .Should().Be.False(); }
public void ShouldFindUntrimmedSpecification() { var content = new[] { "someflag= true " }; var toggleChecker = new ToggleChecker(new FileProvider(new FileReaderHardCoded(content))); toggleChecker.IsEnabled("someflag") .Should().Be.True(); }
public void ShouldFindFlagWithWrongCasing() { var content = new[] { "SOMEfLAg=true" }; var toggleChecker = new ToggleChecker(new FileProvider(new FileReaderHardCoded(content))); toggleChecker.IsEnabled("someflag") .Should().Be.True(); }
public void ShouldFindSpecificationWithWrongCasing() { var content = new[] { "someflag=TrUE" }; var toggleChecker = new ToggleChecker(new FileProvider(new FileReaderHardCoded(content))); toggleChecker.IsEnabled("someflag") .Should().Be.True(); }
public void ShouldBeEnabled() { var content = new[] {"someflag=true"}; tempPath = Path.GetTempFileName(); File.WriteAllLines(tempPath, content); var toggleChecker = new ToggleChecker(new FileProvider(new FileReader(tempPath))); toggleChecker.IsEnabled("someflag") .Should().Be.True(); }
public void ShouldContainValidSpecification() { var content = new[] { "someflag=maybe" }; var toggleChecker = new ToggleChecker(new FileProvider(new FileReaderHardCoded(content))); Assert.Throws<IncorrectTextFileException>(() => toggleChecker.IsEnabled("someflag") .Should().Be.False() ).ToString() .Should().Contain(string.Format(FileProvider.MustHaveValidSpecification, "maybe", 1)); }
public void ShouldNotContainMoreThanOneEqualSign() { var content = new[] { "someflag=true=true" }; var toggleChecker = new ToggleChecker(new FileProvider(new FileReaderHardCoded(content))); Assert.Throws<IncorrectTextFileException>(() => toggleChecker.IsEnabled("someflag") .Should().Be.False() ).ToString() .Should().Contain(string.Format(FileProvider.MustOnlyContainOneEqualSign, 1)); }
public void ShouldBeEnabled() { const string flag = "someFlag"; var toggle = new ToggleChecker(new InMemoryProvider( new Feature(flag, new TrueSpecification()) )); toggle.IsEnabled(flag) .Should().Be.True(); }
public void ShouldBeAbleToWriteRemarks() { var content = new[] { "#this should not throw", "someflag=true", " # and neither should this" }; var toggleChecker = new ToggleChecker(new FileProvider(new FileReaderHardCoded(content))); toggleChecker.IsEnabled("someflag") .Should().Be.True(); }
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(); }
public void ShouldAllowBlankLines() { var content = new[] { " ", "someflag=true", "", string.Empty }; var toggleChecker = new ToggleChecker(new FileProvider(new FileReaderHardCoded(content))); toggleChecker.IsEnabled("someflag") .Should().Be.True(); }
public void ShouldSupportMultipleFeatures() { const string trueFlag = "someFlag"; const string falseFlag = "someOtherFlag"; var toggle = new ToggleChecker(new InMemoryProvider( new Feature(trueFlag, new TrueSpecification()), new Feature(falseFlag, new FalseSpecification()) )); toggle.IsEnabled(trueFlag).Should().Be.True(); toggle.IsEnabled(falseFlag).Should().Be.False(); }
public void ShouldReturnAllExceptions() { var content = new[] { "missingEqual", "multipleEqual=false=true" }; var toggleChecker = new ToggleChecker(new FileProvider(new FileReaderHardCoded(content))); var ex = Assert.Throws<IncorrectTextFileException>(() => toggleChecker.IsEnabled("someflag") .Should().Be.False() ).ToString(); ex.Should().Contain(string.Format(FileProvider.MustContainEqualSign, 1)); ex.Should().Contain(string.Format(FileProvider.MustOnlyContainOneEqualSign, 2)); }