public void DoesInjectTransientFromInheritedContainer() { Container containerA = new Container(); Container containerB = new Container(); containerA.Bind <ISomeTypeOne>().To <SomeTypeOne>(); containerB.Inherit(containerA); containerB.Bind <ISomeTypeTwo>().To <SomeTypeTwo>().AsSingleton(); ISomeTypeOne one = containerB.Resolve <ISomeTypeOne>(); Assert.IsNotNull(one.Two, "two did not resolve"); }
public void DoesNotInjectSingletonFromInheritedContainer() { Container containerA = new Container(); Container containerB = new Container(); containerA.Bind <ISomeTypeOne>().To <SomeTypeOne>().AsSingleton(); // Singleton should always resolve from parent container containerB.Inherit(containerA); containerB.Bind <ISomeTypeTwo>().To <SomeTypeTwo>().AsSingleton(); ISomeTypeOne one = containerB.Resolve <ISomeTypeOne>(); Assert.IsNull(one.Two, "two did resolve"); }
public void DoesOverrideInheritedBindingWhenBoundAsTransient() { Container containerA = new Container(); Container containerB = new Container(); containerA.Bind <ISomeTypeOne>().To <SomeTypeOne>().AsTransient(); containerA.Bind <ISomeTypeTwo>().To <SomeTypeTwo>().AsTransient(); containerB.Inherit(containerA); containerB.Bind <ISomeTypeTwo>().To <AnotherTypeTwo>().AsTransient(); ISomeTypeOne one = containerB.Resolve <ISomeTypeOne>(); Assert.IsNotNull(one.Two, "two did not resolve"); Assert.IsInstanceOfType(one.Two, typeof(AnotherTypeTwo), "ContainerB did not override inhjected type"); }
public void DoesResolveFromInheritedContainer() { Container containerA = new Container(); Container containerB = new Container(); containerA.Bind <ISomeTypeTwo>().To <SomeTypeTwo>().AsSingleton(); containerB.Inherit(containerA); containerB.Bind <ISomeTypeOne>().To <SomeTypeOne>().AsSingleton(); ISomeTypeOne one = containerB.Resolve <ISomeTypeOne>(); ISomeTypeTwo two = containerA.Resolve <ISomeTypeTwo>(); //Assert.IsNotNull(one); //Assert.IsNotNull(one.Two); Assert.AreEqual(one.Two, two); }
public void DoesResolveTypeWithObjectCategoryUsingPrimitiveInjectAttribute() { Container container = new Container(); container.Bind <ISomeTypeOne>().To <SomeTypeOneCatPrimitive>(); container.Bind <ISomeTypeTwo>().WithCategory(SomeTypeOneCatPrimitive.Category).To <SomeTypeTwo>(); // Resolve one... should be injected ISomeTypeOne one = container.Resolve <ISomeTypeOne>(); Assert.IsNotNull(one); Assert.IsNotNull(one.Two); // Ensure we can inject additional "Extra" dependencies... Assert.IsNotNull(one.Two.Container); container = null; }
public void DoesResolveTypeWithCategory() { Container container = new Container(); // Transient bindings... container.Bind <ISomeTypeOne>().To <SomeTypeOneCat>(); container.Bind <ISomeTypeTwo>().WithCategory("my-category").To <SomeTypeTwo>(); // Resolve one... should be injected ISomeTypeOne one = container.Resolve <ISomeTypeOne>(); Assert.IsNotNull(one); Assert.IsNotNull(one.Two); // Ensure we can inject additional "Extra" dependencies... Assert.IsNotNull(one.Two.Container); container = null; }
public void DoesResolveTypeWhenGenericBindUsed() { Container container = new Container(); // Transient bindings... container.Bind <ISomeTypeOne, SomeTypeOne>(); container.Bind <ISomeTypeTwo, SomeTypeTwo>(); // Resolve one... should be injected ISomeTypeOne one = container.Resolve <ISomeTypeOne>(); Assert.IsNotNull(one); Assert.IsNotNull(one.Two); // Ensure we can inject additional "Extra" dependencies... Assert.IsNotNull(one.Two.Container); container = null; }
public void DoesResolveSingleton() { Container container = new Container(); // Transient & Singleton binding... container.Bind <ISomeTypeOne>().To <SomeTypeOne>(); container.Bind <ISomeTypeTwo>().To <SomeTypeTwo>().AsSingleton(); // Resolve one... should be injected ISomeTypeOne one = container.Resolve <ISomeTypeOne>(); Assert.IsNotNull(one); Assert.IsNotNull(one.Two); // Resolve singleton ISomeTypeTwo twoTest2 = container.Resolve <ISomeTypeTwo>(); Assert.AreEqual(one.Two, twoTest2); container = null; }