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_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_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());
        }
        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);
        }
Exemplo n.º 8
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());
        }