예제 #1
0
 public void CachedLifetimeCanBeSetAsDefaultLifetime()
 {
     using (var container = new IocContainer(() => new CachedLifetime()))
     {
         Assert.IsInstanceOfType(container.DefaultLifetimeFactory(), typeof(CachedLifetime));
     }
 }
예제 #2
0
 public void CanSetDefaultLifetimeToRequestLifetime()
 {
     using (var container = new IocContainer(() => new RequestLifetime()))
     {
         Assert.IsInstanceOfType(container.DefaultLifetimeFactory(), typeof(RequestLifetime));
     }
 }
예제 #3
0
		public void ContainerCanSetDefaultsUsingTheConstructor()
		{
			Func<ILifetime> lifetimeFactory = () => new ContainerLifetime();
			var compileMode = CompileMode.Dynamic;
			var index = new DirectIndex();
			
			using (var container = new IocContainer(lifetimeFactory, compileMode, index))
			{
				Assert.IsInstanceOfType(container.DefaultLifetimeFactory(), typeof(ContainerLifetime));
				Assert.IsTrue(compileMode == container.DefaultCompileMode);
				Assert.AreSame(index, container.Index);
			}
		}
예제 #4
0
		public void ContainerIsCreatedWithCorrectDefaults()
		{
			using (var container = new IocContainer())
			{
				// Default Lifetime
				Assert.IsInstanceOfType(container.DefaultLifetimeFactory(), typeof(TransientLifetime));

				// Default CompileMode
				Assert.IsTrue(container.DefaultCompileMode == CompileMode.Delegate);

				// Default Index
				Assert.IsInstanceOfType(container.Index, typeof(DirectIndex));
			}
		}
예제 #5
0
        public void CanChangeLifetimeUsingSetLifetime()
        {
            using (var container = new IocContainer(() => new TransientLifetime()))
            {
                Assert.IsInstanceOfType(container.DefaultLifetimeFactory(), typeof(TransientLifetime));

                var registration = container.Register<IFoo>(c => new Foo1()).SetLifetime(new ContainerLifetime());

                Assert.IsInstanceOfType(registration.Lifetime, typeof(ContainerLifetime));

                var foo1 = container.Resolve<IFoo>();
                var foo2 = container.Resolve<IFoo>();

                Assert.AreSame(foo1, foo2);
            }
        }
예제 #6
0
        public void ContainerUsesTheDefaultLifetimeSetWhenRegistering()
        {
            // Make sure the set lifetime is not the default - if changed in the future !?
            // Create a default IocContainer and check that the default lifetime is not ContainerLifetime?

            using (var container = new IocContainer(() => new ContainerLifetime()))
            {
                var defaultLifetime = container.DefaultLifetimeFactory();

                // Default Lifetime
                Assert.IsInstanceOfType(defaultLifetime, typeof(ContainerLifetime));

                var result1 = container.Register<IFoo>(c => new Foo1());
                var result2 = container.Register<IBar>(c => new Bar1());

                Assert.IsInstanceOfType(result1.Lifetime, typeof(ContainerLifetime));
                Assert.IsInstanceOfType(result2.Lifetime, typeof(ContainerLifetime));
            }
        }
예제 #7
0
		public void ContainerUsesTheDefaultLifetimeWhenRegistering()
		{
			using (var container = new IocContainer(() => new ContainerLifetime()))
			{
				var defaultLifetime = container.DefaultLifetimeFactory();

				// Default Lifetime
				Assert.IsInstanceOfType(defaultLifetime, typeof(ContainerLifetime));

				// Try registering with all Register methods using lifetime
				var result1 = container.Register<IFoo>(c => new Foo1());
				var result2 = container.Register<IFoo, Foo1>("Key1");
				var result3 = container.Register(typeof(IFoo), typeof(Foo1), "Key2");

				Assert.IsInstanceOfType(result1.Lifetime, typeof(ContainerLifetime));
				Assert.IsInstanceOfType(result2.Lifetime, typeof(ContainerLifetime));
				Assert.IsInstanceOfType(result3.Lifetime, typeof(ContainerLifetime));
			}
		}