Ejemplo n.º 1
0
        public void WithRegister_ResolveContainer()
        {
            var container = new DependencyContainer();

            container.Register(typeof(Shark), new Shark().Name);

            Assert.IsTrue(container.CanResolve <Shark>(new Shark().Name));
        }
Ejemplo n.º 2
0
        public void WithAssemblies_ResolvesIAnimal()
        {
            var container = new DependencyContainer();

            container.AutoRegister(Runtime.GetAssemblies());

            Assert.IsTrue(container.CanResolve <ICar>());
        }
Ejemplo n.º 3
0
        public void WithIEnumerable_ResolveContainer()
        {
            var container = new DependencyContainer();

            Assert.IsTrue(container.CanResolve <IEnumerable <string> >());
            container.Register <IEnumerable <string>, StringEnumerable>();

            Assert.AreEqual(typeof(StringEnumerable), container.Resolve <IEnumerable <string> >().GetType());
        }
Ejemplo n.º 4
0
        public void WithAssembliesAndRegisterMultiple_ResolvesICar()
        {
            var container = new DependencyContainer();

            container.AutoRegister(
                Runtime.GetAssemblies(),
                DependencyContainerDuplicateImplementationActions.RegisterMultiple);

            Assert.IsTrue(container.CanResolve <ICar>());
        }
Ejemplo n.º 5
0
        public void WithFailUnregisteredResolutionActions_FailResolveContainer()
        {
            var container = new DependencyContainer();

            var resolveOptions = new DependencyContainerResolveOptions
            {
                UnregisteredResolutionAction = DependencyContainerUnregisteredResolutionActions.Fail
            };

            Assert.IsFalse(container.CanResolve <Shark>(parameters: new Dictionary <string, object>(), options: resolveOptions));
        }
Ejemplo n.º 6
0
        public void WithNoParams_ThrowsDependencyContainerResolutionException()
        {
            Assert.Throws <DependencyContainerResolutionException>(() =>
            {
                var container = new DependencyContainer();
                container.AutoRegister();

                Assert.IsTrue(container.CanResolve <ICar>());
                Assert.AreEqual(new TheOnlyCar().Name, DependencyContainer.Current.Resolve <ICar>().Name);
            });
        }
Ejemplo n.º 7
0
        public void WithAssembliesAndFunc_ResolvesICar()
        {
            var container = new DependencyContainer();

            container.AutoRegister(
                AppDomain.CurrentDomain.GetAssemblies(),
                DependencyContainerDuplicateImplementationAction.RegisterSingle,
                param => true);

            Assert.IsTrue(container.CanResolve <ICar>());
        }
Ejemplo n.º 8
0
        public void WithInstanceAndRegister_ResolveContainer(string registerName, string resolveName)
        {
            var container = new DependencyContainer();

            var resolveOptions = new DependencyContainerResolveOptions
            {
                NamedResolutionFailureAction = DependencyContainerNamedResolutionFailureActions.AttemptUnnamedResolution
            };

            container.Register <IAnimal>(new Human("George"), registerName);

            Assert.IsTrue(container.CanResolve <IAnimal>(resolveName, null, resolveOptions));
        }
Ejemplo n.º 9
0
        public void WithRegisterAndAttemptUnnamedResolution_ResolveContainer()
        {
            var container = new DependencyContainer();

            container.Register(typeof(Shark));

            var resolveOptions = new DependencyContainerResolveOptions
            {
                NamedResolutionFailureAction = DependencyContainerNamedResolutionFailureActions.AttemptUnnamedResolution,
            };

            Assert.IsTrue(container.CanResolve(typeof(Shark), new Shark().Name, resolveOptions));
        }
Ejemplo n.º 10
0
        public bool Can_resolve_inner_dependencies_with_service_provider()
        {
            var container = new DependencyContainer();

            container.Register("A", typeof(IFoo), () => new Bar());

            if (!container.CanResolve <IFoo>("A"))
            {
                return(false); // not in the right slot
            }
            if (container.CanResolve("B", typeof(IFoo)))
            {
                return(false); // not in the right slot
            }
            if (container.TryResolve(out IFoo _))
            {
                return(false); // not in the right slot
            }
            container.Register("B", typeof(Baz), r => new Baz(r.Resolve <IFoo>("A")));

            var result = container.TryResolve <Baz>("B", out var baz);

            return(result && baz?.Foo != null);
        }
Ejemplo n.º 11
0
        public void WithType_ResolveContainer(Type resolveType)
        {
            var container = new DependencyContainer();

            Assert.IsTrue(container.CanResolve(resolveType, new Dictionary <string, object>()));
        }
Ejemplo n.º 12
0
        public void WithoutRegister_FailResolveContainer()
        {
            var container = new DependencyContainer();

            Assert.IsFalse(container.CanResolve <Shark>(new Shark().Name));
        }
Ejemplo n.º 13
0
        public void WithDictionary_ResolveContainer()
        {
            var container = new DependencyContainer();

            Assert.IsTrue(container.CanResolve <Shark>(parameters: new Dictionary <string, object>()));
        }
Ejemplo n.º 14
0
        public void WithType_ResolveContainer(Type resolveType)
        {
            var container = new DependencyContainer();

            Assert.IsTrue(container.CanResolve(resolveType));
        }