Ejemplo n.º 1
0
        public void RequestLifetimeManagerReturnsSameObjectForSameRequest()
        {
            var context1 = new FakeHttpContext("Http://fakeUrl1.com");
            var context2 = new FakeHttpContext("Http://fakeUrl2.com");

            var requestltm = new RequestLifetime();

            var container = new IocContainer();
            container.Register<IFoo>(c => new Foo1())
                .WithLifetimeManager(requestltm);

            requestltm.SetContext(context1);

            var result1 = container.Resolve<IFoo>();
            var result2 = container.Resolve<IFoo>();

            requestltm.SetContext(context2);

            var result3 = container.Resolve<IFoo>();

            Verify.That(result3).IsNotNull();
            Verify.That(result2).IsNotNull();
            Verify.That(result1).IsNotNull()
                        .IsTheSameObjectAs(result2)
                        .IsNotTheSameObjectAs(result3);
        }