Example #1
0
        public void ShouldConfigureGlobalOption()
        {
            CombinedTargetContainerConfig config = new CombinedTargetContainerConfig();

            config.ConfigureOption((TestOption)"global");

            var targets = new TargetContainer(config);

            Assert.Equal("global", targets.GetOption <TestOption>());
        }
Example #2
0
        public void ShouldConfigureServiceSpecicOption()
        {
            CombinedTargetContainerConfig config = new CombinedTargetContainerConfig();

            config.ConfigureOption <TestOption, string>("for System.String");

            var targets = new TargetContainer(config);

            Assert.Equal("for System.String", targets.GetOption <TestOption, string>());
            Assert.Null(targets.GetOption <TestOption>());
        }
        public void ShouldNotAddRegistrationsIfDisabledByOption()
        {
            var configs = new CombinedTargetContainerConfig
            {
                Configuration.InjectLists.Instance,
                Configuration.Configure.Option <Options.EnableListInjection>(false)
            };

            var targets = new TargetContainer(configs);

            Assert.Null(targets.Fetch(typeof(List <string>)));
            Assert.Null(targets.Fetch(typeof(IList <string>)));
        }
Example #4
0
        public void ShouldConfigureGlobalOptionByCallback()
        {
            CombinedTargetContainerConfig config = new CombinedTargetContainerConfig();

            config.ConfigureOption(tc =>
            {
                Assert.NotNull(tc);
                return((TestOption)"global (callback)");
            });

            var targets = new TargetContainer(config);

            Assert.Equal("global (callback)", targets.GetOption <TestOption>());
        }
        public void ShouldConfigureAfterOptionSet()
        {
            CombinedTargetContainerConfig coll = new CombinedTargetContainerConfig
            {
                // add the dependant first
                new ConfiguredByTestOptionConfig(t => Assert.Equal("configured!", t.GetOption <TestOption>()), true)
            };

            // then add the config that configures the option :)
            coll.ConfigureOption <TestOption>("configured!");

            var targets = new TargetContainer(coll);

            // this just ensures that the configure method was actually called
            Assert.IsType <Rezolver.Targets.ObjectTarget>(targets.Fetch(typeof(ConfiguredByTestOptionConfig)));
        }
Example #6
0
        public void ShouldConfigureServiceSpecificOptionByCallback()
        {
            CombinedTargetContainerConfig config = new CombinedTargetContainerConfig();

            config.ConfigureOption(typeof(string), (tc, t) =>
            {
                Assert.NotNull(tc);
                Assert.Equal(typeof(string), t);
                return((TestOption)$"for { t.FullName } (callback)");
            });

            var targets = new TargetContainer(config);

            Assert.Equal($"for { typeof(string).FullName } (callback)", targets.GetOption <TestOption, string>());
            Assert.Null(targets.GetOption <TestOption>());
        }
Example #7
0
        public void ShouldNotAddRegistrationsIfDisabledByOption()
        {
            // note input order reversed from the preferred: tests that InjectCollections config
            // expresses dependency on a configuration which configures the option
            CombinedTargetContainerConfig config = new CombinedTargetContainerConfig()
            {
                InjectCollections.Instance,
                Configure.Option <EnableCollectionInjection>(false)
            };

            var targets = new TargetContainer(config);

            Assert.Null(targets.Fetch(typeof(Collection <string>)));
            Assert.Null(targets.Fetch(typeof(ICollection <string>)));
            Assert.Null(targets.Fetch(typeof(ReadOnlyCollection <string>)));
            Assert.Null(targets.Fetch(typeof(IReadOnlyCollection <string>)));
        }
        public void ShouldAddRegistrations()
        {
            var configs = new CombinedTargetContainerConfig
            {
                Configuration.InjectLists.Instance
            };

            var targets = new TargetContainer(configs);

            var concreteTarget  = targets.Fetch(typeof(List <string>));
            var interfaceTarget = targets.Fetch(typeof(IList <string>));

            Assert.NotNull(concreteTarget);
            Assert.False(concreteTarget.UseFallback);
            Assert.NotNull(interfaceTarget);
            Assert.False(interfaceTarget.UseFallback);
        }
        public void ShouldConfigureAfterAllOptionsSet()
        {
            CombinedTargetContainerConfig coll = new CombinedTargetContainerConfig
            {
                new ConfiguredByTestOptionConfig(t =>
                {
                    Assert.Equal("global configured!", t.GetOption <TestOption>());
                    Assert.Equal("IEnumerable configured!", t.GetOption <TestOption>(typeof(IEnumerable <>)));
                    Assert.Equal("IEnumerable<string> configured!", t.GetOption <TestOption, IEnumerable <string> >());
                    Assert.Equal("IEnumerable configured!", t.GetOption <TestOption, IEnumerable <double> >());
                    Assert.Equal("global configured!", t.GetOption <TestOption, int>());
                }, true)
            };

            coll.ConfigureOption <TestOption, IEnumerable <string> >("IEnumerable<string> configured!");
            coll.ConfigureOption <TestOption>(typeof(IEnumerable <>), "IEnumerable configured!");
            coll.ConfigureOption <TestOption>("global configured!");

            var targets = new TargetContainer(coll);

            Assert.IsType <Rezolver.Targets.ObjectTarget>(targets.Fetch(typeof(ConfiguredByTestOptionConfig)));
        }
Example #10
0
        public void ShouldAddRegistrations()
        {
            CombinedTargetContainerConfig config = new CombinedTargetContainerConfig
            {
                InjectCollections.Instance
            };

            var targets = new TargetContainer(config);

            var rwConcreteTarget  = targets.Fetch(typeof(Collection <string>));
            var rwInterfaceTarget = targets.Fetch(typeof(ICollection <string>));
            var roConcreteTarget  = targets.Fetch(typeof(ReadOnlyCollection <string>));
            var roInterfaceTarget = targets.Fetch(typeof(IReadOnlyCollection <string>));

            Assert.NotNull(rwConcreteTarget);
            Assert.NotNull(rwInterfaceTarget);
            Assert.NotNull(roConcreteTarget);
            Assert.NotNull(roInterfaceTarget);

            Assert.False(rwConcreteTarget.UseFallback);
            Assert.False(rwInterfaceTarget.UseFallback);
            Assert.False(roConcreteTarget.UseFallback);
            Assert.False(roInterfaceTarget.UseFallback);
        }