public void Read_Sets_Dependency_Toggle_Dependencies_To_The_Wrapped_DependencyToggle()
        {
            var reader = new ApplicationConfigurationReader(() => new DummyToggleConfig
            {
                Toggles = new FeatureToggleCollection
                {
                    new ToggleConfig
                    {
                        Name         = "a",
                        Dependencies = "b"
                    },
                    new ToggleConfig
                    {
                        Name         = "b",
                        Dependencies = "c"
                    },
                    new ToggleConfig
                    {
                        Name = "c"
                    },
                }
            });

            var features = reader.GetFeatures().ToList();

            Assert.IsInstanceOf <DependencyToggle>(features.OfType <DependencyToggle>().Single(x => x.Name == "a").Dependencies.Single());
        }
        public void Read_Throws_Configuration_Exception_For_Unknown_Tasks_In_Dependencies()
        {
            var reader = new ApplicationConfigurationReader(() => new DummyToggleConfig
            {
                Toggles = new FeatureToggleCollection
                {
                    new ToggleConfig
                    {
                        Name         = "a",
                        Dependencies = "b,d"
                    },
                    new ToggleConfig
                    {
                        Name = "b"
                    },
                    new ToggleConfig
                    {
                        Name = "c"
                    },
                }
            });

            // ReSharper disable ReturnValueOfPureMethodIsNotUsed
            Assert.Throws <ConfigurationErrorsException>(() => reader.GetFeatures().ToList());
            // ReSharper restore ReturnValueOfPureMethodIsNotUsed
        }
        public void Read_Returns_No_Elements_If_Configuration_Section_Not_Found()
        {
            var reader   = new ApplicationConfigurationReader(() => null);
            var features = reader.GetFeatures();

            Assert.IsNotNull(features);
            CollectionAssert.IsEmpty(features);
        }
        public void Read_Returns_Established_Toggle_If_Feature_Is_Established()
        {
            var reader = new ApplicationConfigurationReader();
            List <IFeatureToggle> features = reader.GetFeatures().ToList();

            var feature = features.Single(x => x.Name == "testEstablished") as EstablishedFeatureToggle;

            Assert.IsNotNull(feature);
        }
        public void Read_Returns_Simple_Boolean_Toggles()
        {
            var reader = new ApplicationConfigurationReader();
            List <IFeatureToggle> features = reader.GetFeatures().ToList();

            var feature1 = features.Single(x => x.Name == "testSimpleEnabled");
            var feature2 = features.Single(x => x.Name == "testSimpleDisabled");

            Assert.IsTrue(feature1.IsEnabled());
            Assert.IsFalse(feature2.IsEnabled());
        }
Пример #6
0
 public Application(IFileSystem fileSystem, IEnvironment environment, ILog log,
                    ApplicationConfigurationReader configurationReader, TemplateEngine engine,
                    IEnumerable <IContentGenerator> generators)
 {
     _fileSystem          = fileSystem;
     _environment         = environment;
     _log                 = log;
     _configurationReader = configurationReader;
     _engine              = engine;
     _generators          = generators;
 }
        public void Read_Returns_Dependency_Toggles()
        {
            var reader = new ApplicationConfigurationReader();

            List <IFeatureToggle> features = reader.GetFeatures().ToList();
            var feature = features.Single(x => x.Name == "testDependencies") as DependencyToggle;

            Assert.IsNotNull(feature);

            IEnumerable <IFeatureToggle> dependencies = feature.Dependencies.ToList();

            Assert.AreEqual(2, dependencies.Count());
            Assert.IsTrue(dependencies.Any(x => x.Name == "testSimpleEnabled"));
            Assert.IsTrue(dependencies.Any(x => x.Name == "testSimpleDisabled"));
        }
        public void Read_Returns_DateRange_Toggles_If_Only_From_Date_Has_Been_Specified()
        {
            var reader = new ApplicationConfigurationReader();
            List <IFeatureToggle> features = reader.GetFeatures().ToList();

            var feature = features.Single(x => x.Name == "testDateRangeFromOnly") as DateRangeToggle;

            Assert.IsNotNull(feature);

            Assert.IsNotNull(feature.EnabledFromDate);
            Assert.AreEqual(2012, feature.EnabledFromDate.Value.Year);
            Assert.AreEqual(11, feature.EnabledFromDate.Value.Month);
            Assert.AreEqual(1, feature.EnabledFromDate.Value.Day);

            Assert.IsNull(feature.EnabledToDate);
        }
Пример #9
0
        public void Read_Throws_CircularDependecy_Exception_For_Circular_Dependencies()
        {
            var reader = new ApplicationConfigurationReader(() => new DummyToggleConfig
            {
                Toggles = new FeatureToggleCollection
                {
                    new ToggleConfig
                    {
                        Name         = "a",
                        Dependencies = "b,d"
                    },
                    new ToggleConfig
                    {
                        Name = "b"
                    },
                    new ToggleConfig
                    {
                        Name = "c"
                    },
                    new ToggleConfig
                    {
                        Name         = "d",
                        Dependencies = "b, a"
                    },
                }
            });

            var configuration = new FeatureConfiguration();
            var features      = reader.GetFeatures().ToList();

            Assert.Throws <CircularDependencyException>(() =>
            {
                foreach (var feature in features)
                {
                    configuration.Add(feature);
                }
            });
        }
        public void Read_Allows_For_Whitespace_In_Dependency_Configuration()
        {
            var reader = new ApplicationConfigurationReader(() => new DummyToggleConfig
            {
                Toggles = new FeatureToggleCollection
                {
                    new ToggleConfig
                    {
                        Name         = "a",
                        Dependencies = "b, c"
                    },
                    new ToggleConfig
                    {
                        Name = "b"
                    },
                    new ToggleConfig
                    {
                        Name = "c"
                    },
                }
            });

            Assert.AreEqual(3, reader.GetFeatures().Count());
        }