Exemplo n.º 1
0
        public void MethodInjectionFromSingleInstanceOfType()
        {
            ImplWithInstanceIndex.instanceCount = 0;

            BindingBuilder bb = new BindingBuilder();

            bb.BindTypeToSingleInstance(typeof(ImplWithInstanceIndex));

            Injector injector = UniInjectUtils.CreateInjector();

            injector.AddBindings(bb);

            NeedsMethodInjection needsInjection1 = injector.CreateAndInject <NeedsMethodInjection>();
            NeedsMethodInjection needsInjection2 = injector.CreateAndInject <NeedsMethodInjection>();
            NeedsMethodInjection needsInjection3 = injector.CreateAndInject <NeedsMethodInjection>();

            // 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);
        }
Exemplo n.º 2
0
        public void MethodInjectionFromNewInstancesOfType()
        {
            ImplWithInstanceIndex.instanceCount = 0;

            BindingBuilder bb = new BindingBuilder();

            bb.BindTypeToNewInstances(typeof(ImplWithInstanceIndex));

            Injector injector = UniInjectUtils.CreateInjector();

            injector.AddBindings(bb);

            NeedsMethodInjection needsInjection1 = injector.CreateAndInject <NeedsMethodInjection>();
            NeedsMethodInjection needsInjection2 = injector.CreateAndInject <NeedsMethodInjection>();
            NeedsMethodInjection needsInjection3 = injector.CreateAndInject <NeedsMethodInjection>();

            // 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);
        }
Exemplo n.º 3
0
        public void MethodInjectionFromExistingInstance()
        {
            BindingBuilder bb = new BindingBuilder();

            bb.BindExistingInstance("abc");

            Injector injector = UniInjectUtils.CreateInjector();

            injector.AddBindings(bb);

            NeedsMethodInjection needsInjection = new NeedsMethodInjection();

            injector.Inject(needsInjection);
            Assert.AreEqual("abc", needsInjection.theString);
        }