示例#1
0
        public void ValidateSetValueSimpleDefaultConstructor()
        {
            var container       = new QuickInjectContainer();
            var lifetimeManager = new TestLifetimeManager();

            container.RegisterType <A>(lifetimeManager);

            container.SealContainer();

            container.Resolve <A>(); // side-effect is that lifetimeManager should have the right value

            Assert.AreEqual(42, (lifetimeManager.GetValue() as A).Value);
        }
示例#2
0
        public void ParameterizedCodeProviderReturnsInstanceThroughItsFactory()
        {
            var container       = new QuickInjectContainer();
            var lifetimeManager = new TestLifetimeManager();

            container.RegisterType <C>(lifetimeManager);
            container.RegisterType <IA>(new ParameterizedLambdaExpressionInjectionFactory <C, IA>(new GetACodeProvider()));

            container.SealContainer();

            var ia = container.Resolve <IA>();

            Assert.AreSame((lifetimeManager.GetValue() as C).PropToVerify, ia);
        }
示例#3
0
        public void DoNotThrowOnUnconstructableTypeIfLifetimeManagerIsSet()
        {
            var container       = new QuickInjectContainer();
            var lifetimeManager = new TestLifetimeManager();

            container.RegisterType <IA>(lifetimeManager);

            container.SealContainer();

            var a = new A();

            lifetimeManager.SetValue(a);

            Assert.AreSame(a, container.Resolve <IA>());
        }
示例#4
0
        public void SimpleDefaultConstructorWithLifetimeManagerGetValueShortCircuit()
        {
            var container       = new QuickInjectContainer();
            var lifetimeManager = new TestLifetimeManager();

            container.RegisterType <A>(lifetimeManager);

            container.SealContainer();

            var instance = new A {
                Value = 43
            };

            lifetimeManager.SetValue(instance);

            var classA = container.Resolve <A>();

            Assert.AreEqual(classA.Value, 43);
        }