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 ExpressionRegistrationSetCompileModeThrowsExceptionIfInvalidCompileModeIsSupplied()
        {
            var lifetime = new TransientLifetime();
            var reg = new ExpressionRegistration<IFoo>(x => new Foo1(), lifetime, CompileMode.Delegate);

            reg.SetCompileMode((CompileMode)124);
        }
Example #3
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);
        }
Example #4
0
        public void ExpressionRegistrationSetCompileModeThrowsExceptionIfInvalidCompileModeIsSupplied()
        {
            var container = new IocContainer();
            var lifetime  = new TransientLifetime();
            var reg       = new ExpressionRegistration <IFoo>(container, x => new Foo1(), lifetime, CompileMode.Delegate);

            reg.SetCompileMode((CompileMode)124);
        }