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"); }
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 }
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"); }