public void Debind_NullInstance() { Dojector.Debind <IChild1>(); IChild1 child1 = Factory.Get <IChild1>(); Assert.IsNull(child1, "Child1 was debound but is not null on retrieval"); }
public void TwoDependencies_NonNested() { IParent parent = Factory.Get <IParent>(); IChild1 child1 = parent.Child1; IChild2 child2 = parent.Child2; Assert.IsNotNull(parent, "Parent is null"); Assert.IsNotNull(child1, "Child 1 is null"); Assert.IsNotNull(child2, "Child 2 is null"); }
public void Parent_MultipleConstructors() { Dojector.Bind <IParent>(typeof(ParentMultipleConstructors)); IParent parent = Factory.Get <IParent>(); IChild1 child1 = parent.Child1; IChild2 child2 = parent.Child2; Assert.IsNotNull(parent, "Parent is null"); Assert.IsNotNull(child1, "Child 1 is null"); Assert.IsNotNull(child2, "Child 2 is null"); }
public void NestedDependencies() { INestedParent topLevelParent = Factory.Get <INestedParent>(); IParent parent = topLevelParent.ParentNested; IChild1 child1 = parent.Child1; IChild2 child2 = parent.Child2; Assert.IsNotNull(topLevelParent, "Top level parent is null"); Assert.IsNotNull(parent, "Nested Parent is null"); Assert.IsNotNull(child1, "Child 1 is null"); Assert.IsNotNull(child2, "Child 2 is null"); }
public void Singleton_NoDependencies() { Dojector.Reset(); Dojector.Bind <IChild1>(typeof(Child1), BindingConfig.Singleton); IChild1 instance1 = Factory.Get <IChild1>(); IChild1 instance2 = Factory.Get <IChild1>(); Assert.IsNotNull(instance1, "Instance 1 is null"); Assert.IsNotNull(instance2, "Instance 2 is null"); Assert.IsTrue(instance1.Name == instance2.Name, $"Instance names do not match. Instance1: {instance1.Name}, instance2: {instance2.Name}"); instance1.Name = "Changed"; Assert.IsTrue(instance1.Name == instance2.Name, $"Instance names do not match after change. Instance1: {instance1.Name}, instance2: {instance2.Name}"); }
public ParentMultipleConstructors(IChild1 child1, IChild2 child2) { Child1 = child1; Child2 = child2; }
public Parent(IChild1 child1, IChild2 child2) { Child1 = child1; Child2 = child2; }