public void FieldInjectionFromSingleInstanceOfType() { ImplWithInstanceIndex.instanceCount = 0; BindingBuilder bb = new BindingBuilder(); bb.BindTypeToSingleInstance(typeof(ImplWithInstanceIndex)); Injector injector = UniInjectUtils.CreateInjector(); injector.AddBindings(bb); NeedsFieldInjection needsInjection1 = injector.CreateAndInject <NeedsFieldInjection>(); NeedsFieldInjection needsInjection2 = injector.CreateAndInject <NeedsFieldInjection>(); NeedsFieldInjection needsInjection3 = injector.CreateAndInject <NeedsFieldInjection>(); // Assert injection was successful Assert.NotNull(needsInjection1); Assert.NotNull(needsInjection2); Assert.NotNull(needsInjection3); // Assert only one instance was created Assert.AreEqual(1, needsInjection1.implWithInstanceCounter.instanceIndex); Assert.AreEqual(1, needsInjection2.implWithInstanceCounter.instanceIndex); Assert.AreEqual(1, needsInjection3.implWithInstanceCounter.instanceIndex); Assert.AreEqual(1, ImplWithInstanceIndex.instanceCount); }
public void FieldInjectionFromNewInstancesOfType() { ImplWithInstanceIndex.instanceCount = 0; BindingBuilder bb = new BindingBuilder(); bb.BindTypeToNewInstances(typeof(ImplWithInstanceIndex)); Injector injector = UniInjectUtils.CreateInjector(); injector.AddBindings(bb); NeedsFieldInjection needsInjection1 = injector.CreateAndInject <NeedsFieldInjection>(); NeedsFieldInjection needsInjection2 = injector.CreateAndInject <NeedsFieldInjection>(); NeedsFieldInjection needsInjection3 = injector.CreateAndInject <NeedsFieldInjection>(); // Assert injection was successful Assert.NotNull(needsInjection1); Assert.NotNull(needsInjection2); Assert.NotNull(needsInjection3); // Assert that different instances were injected. Assert.AreEqual(1, needsInjection1.implWithInstanceCounter.instanceIndex); Assert.AreEqual(2, needsInjection2.implWithInstanceCounter.instanceIndex); Assert.AreEqual(3, needsInjection3.implWithInstanceCounter.instanceIndex); Assert.AreEqual(3, ImplWithInstanceIndex.instanceCount); }
public void FieldInjectionFromExistingInstance() { BindingBuilder bb = new BindingBuilder(); bb.BindExistingInstance("abc"); Injector injector = UniInjectUtils.CreateInjector(); injector.AddBindings(bb); NeedsFieldInjection needsInjection = new NeedsFieldInjection(); injector.Inject(needsInjection); Assert.AreEqual("abc", needsInjection.theString); }