public void ExpressionRegistrationCanBeChanged()
		{
			var container = new IocContainer();
			var lifetime = new TransientLifetime();
			var reg = new ExpressionRegistration<IFoo>(container, x => new Foo1(), lifetime, CompileMode.Delegate);

			Assert.AreSame(reg.Lifetime, lifetime);
			Assert.AreEqual(reg.CompileMode, CompileMode.Delegate);

			var get1 = reg.GetInstance();

			var newLifetime = new ContainerLifetime();
			var newCompileMode = CompileMode.Dynamic;

			// Set new lifetime
			reg.SetLifetime(newLifetime);
			Assert.AreSame(reg.Lifetime, newLifetime);

			// Set different compile mode
			reg.SetCompileMode(newCompileMode);
			Assert.AreEqual(reg.CompileMode, newCompileMode);

			var get2 = reg.GetInstance();
			var get3 = reg.GetInstance();

			// Check that the lifetime is also being used
			Assert.AreNotSame(get1, get2);
			Assert.AreSame(get2, get3);
		}
Example #2
0
        public void ExpressionRegistrationCanBeChanged()
        {
            var container = new IocContainer();
            var lifetime  = new TransientLifetime();
            var reg       = new ExpressionRegistration <IFoo>(container, x => new Foo1(), lifetime, CompileMode.Delegate);

            Assert.AreSame(reg.Lifetime, lifetime);
            Assert.AreEqual(reg.CompileMode, CompileMode.Delegate);

            var get1 = reg.GetInstance();

            var newLifetime    = new ContainerLifetime();
            var newCompileMode = CompileMode.Dynamic;

            // Set new lifetime
            reg.SetLifetime(newLifetime);
            Assert.AreSame(reg.Lifetime, newLifetime);

            // Set different compile mode
            reg.SetCompileMode(newCompileMode);
            Assert.AreEqual(reg.CompileMode, newCompileMode);

            var get2 = reg.GetInstance();
            var get3 = reg.GetInstance();

            // Check that the lifetime is also being used
            Assert.AreNotSame(get1, get2);
            Assert.AreSame(get2, get3);
        }
		public void ExpressionRegistrationWorksLikeExpected()
		{
			Expression<Func<IResolver, IFoo>> expression = x => new Foo1();
			var container = new IocContainer();
			var lifetime = new TransientLifetime();
			var compileMode = CompileMode.Dynamic;

			var reg = new ExpressionRegistration<IFoo>(container, expression, lifetime, compileMode);

			Assert.AreEqual(reg.ReturnType, typeof(IFoo));

			Assert.AreEqual(reg.CompileMode, compileMode);
			//Assert.AreSame(reg.Expression, expression); // Is being converted to Expression<Func<IResolver, object>>

			Assert.AreSame(reg.Lifetime, lifetime);
			
			// Test GetInstance
			var instance = reg.GetInstance();
			Assert.IsInstanceOfType(instance, typeof(Foo1));
		}
Example #4
0
        public void ExpressionRegistrationWorksLikeExpected()
        {
            Expression <Func <IResolver, IFoo> > expression = x => new Foo1();
            var container   = new IocContainer();
            var lifetime    = new TransientLifetime();
            var compileMode = CompileMode.Dynamic;

            var reg = new ExpressionRegistration <IFoo>(container, expression, lifetime, compileMode);

            Assert.AreEqual(reg.ReturnType, typeof(IFoo));

            Assert.AreEqual(reg.CompileMode, compileMode);
            //Assert.AreSame(reg.Expression, expression); // Is being converted to Expression<Func<IResolver, object>>

            Assert.AreSame(reg.Lifetime, lifetime);

            // Test GetInstance
            var instance = reg.GetInstance();

            Assert.IsInstanceOfType(instance, typeof(Foo1));
        }