Ejemplo n.º 1
0
        public void DoesResolveFromFactory()
        {
            Container             container = new Container();
            ISomeTypeTest9Factory factory   = new SomeTypeTest9Factory();

            container.Bind <ISomeTypeTest9>().To <SomeTypeTest9>().FromFactory <ISomeTypeTest9Factory, ISomeTypeTest9>().AsTransient();
            container.Bind <ISomeTypeTest9Factory>(factory).To <SomeTypeTest9Factory>().AsSingleton();

            ISomeTypeTest9 someTypeTest9 = container.Resolve <ISomeTypeTest9>();

            Assert.AreEqual(1, factory.NumCreated, "did not resolve using factory");
        }
Ejemplo n.º 2
0
        public void DoesResolveFromFactoryAsSingleton()
        {
            Container             container = new Container();
            ISomeTypeTest9Factory factory   = new SomeTypeTest9Factory();

            container.Bind <ISomeTypeTest9>().To <SomeTypeTest9>().FromFactory <ISomeTypeTest9Factory, ISomeTypeTest9>().AsSingleton();
            container.Bind <ISomeTypeTest9Factory>(factory).To <SomeTypeTest9Factory>().AsSingleton();

            ISomeTypeTest9 someTypeTest9   = container.Resolve <ISomeTypeTest9>();
            ISomeTypeTest9 someTypeTest9_B = container.Resolve <ISomeTypeTest9>();

            Assert.AreEqual(1, factory.NumCreated, "did not resolve once"); // must not be 2
        }
Ejemplo n.º 3
0
        public void DoesResolveFromFactoryWithInheritedContainer()
        {
            Container parentContainer = new Container();
            Container childContainer  = new Container();

            parentContainer.Bind <ISomeTypeTest9>().To <SomeTypeTest9>().FromFactory <ISomeTypeTest9Factory, ISomeTypeTest9>().AsTransient();

            ISomeTypeTest9Factory factory = new SomeTypeTest9Factory();

            parentContainer.Bind <ISomeTypeTest9Factory>(factory).To <SomeTypeTest9Factory>().AsSingleton();

            childContainer.Inherit(parentContainer);

            childContainer.Bind <ISomeTypeTest9_B>().To <SomeTypeTest9_B>().AsSingleton();

            ISomeTypeTest9_B someTypeTest9 = childContainer.Resolve <ISomeTypeTest9_B>();

            Assert.AreEqual(1, factory.NumCreated, "did not resolve using factory");

            Assert.AreEqual(childContainer, factory.ItemInjectContext.Container, "invalid  container");
            Assert.AreEqual(typeof(SomeTypeTest9_B), factory.ItemInjectContext.DeclaringType, "invalid declaring type");
        }