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); }
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); }
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>()); }
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); }