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); }
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 container = new IocContainer(); var lifetime = new TransientLifetime(); var reg = new ExpressionRegistration <IFoo>(container, x => new Foo1(), lifetime, CompileMode.Delegate); reg.SetCompileMode((CompileMode)124); }