public void SessionLifetimeReturnsSameInstanceForSameSessionAndDifferentInstanceForDifferentSession()
		{
			// Arrange
			using (var container = new IocContainer())
			{
				var sessionItems1 = new SessionStateItemCollection();
				var sessionItems2 = new SessionStateItemCollection();
				var context1 = new FakeHttpContext("Http://fakeUrl1.com", null, null, null, null, sessionItems1);
				var context2 = new FakeHttpContext("Http://fakeUrl2.com", null, null, null, null, sessionItems2);

				HttpContextBase currentContext = null;

				var lifetime = new SessionLifetime(() => currentContext);		// better solution for injecting HttpContext ?

				container.Register<IFoo>(c => new Foo1()).SetLifetime(lifetime);

				// Act
				currentContext = context1;

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

				currentContext = context2;

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

				// Assert
				Assert.IsNotNull(result1);
				Assert.IsNotNull(result2);
				Assert.IsNotNull(result3);

				Assert.AreSame(result1, result2);
				Assert.AreNotSame(result1, result3);
			}
		}
        public void SessionLifetimeReturnsSameInstanceForSameSessionAndDifferentInstanceForDifferentSession()
        {
            // Arrange
            using (var container = new IocContainer())
            {
                var sessionItems1 = new SessionStateItemCollection();
                var sessionItems2 = new SessionStateItemCollection();
                var context1      = new FakeHttpContext("Http://fakeUrl1.com", null, null, null, null, sessionItems1);
                var context2      = new FakeHttpContext("Http://fakeUrl2.com", null, null, null, null, sessionItems2);

                HttpContextBase currentContext = null;

                var lifetime = new SessionLifetime(() => currentContext);                               // better solution for injecting HttpContext ?

                container.Register <IFoo>(c => new Foo1()).SetLifetime(lifetime);

                // Act
                currentContext = context1;

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

                currentContext = context2;

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

                // Assert
                Assert.IsNotNull(result1);
                Assert.IsNotNull(result2);
                Assert.IsNotNull(result3);

                Assert.AreSame(result1, result2);
                Assert.AreNotSame(result1, result3);
            }
        }
Beispiel #3
0
        public void SessionLifetimeManagerReturnsDifferentObjectForDifferentSession()
        {
            var sessionItems1 = new SessionStateItemCollection();
            var sessionItems2 = new SessionStateItemCollection();
            var context1      = new FakeHttpContext("Http://fakeUrl1.com", null, null, null, null, sessionItems1);
            var context2      = new FakeHttpContext("Http://fakeUrl2.com", null, null, null, null, sessionItems2);

            var sessionltm = new SessionLifetime();

            var container = new Container();

            container.Register <IFoo>(c => new Foo1())
            .WithLifetimeManager(sessionltm);

            sessionltm.SetContext(context1);

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

            sessionltm.SetContext(context2);

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

            Assert.IsNotNull(result1);
            Assert.IsNotNull(result2);
            Assert.IsNotNull(result3);

            Assert.AreSame(result1, result2);       // same session
            Assert.AreNotSame(result2, result3);    // different sessions
        }
 public QzoneResourceSession(IHttpSupplier httpSupplier, AccessToken accessToken, RefrechToken refrechToken = null, SessionLifetime lifetime = null)
 {
     HttpSupplier = httpSupplier;
     AccessToken  = accessToken;
     RefrechToken = refrechToken;
     Lifetime     = lifetime;
 }
Beispiel #5
0
        public void SessionLifetimeManagerReturnsDifferentObjectForDifferentSession()
        {
            var sessionItems1 = new SessionStateItemCollection();
            var sessionItems2 = new SessionStateItemCollection();
            var context1      = new FakeHttpContext("Http://fakeUrl1.com", null, null, null, null, sessionItems1);
            var context2      = new FakeHttpContext("Http://fakeUrl2.com", null, null, null, null, sessionItems2);

            var sessionltm = new SessionLifetime();

            var container = new IocContainer();

            container.Register <IFoo>(c => new Foo1())
            .WithLifetimeManager(sessionltm);

            sessionltm.SetContext(context1);

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

            sessionltm.SetContext(context2);

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

            Verify.That(result3).IsNotNull();
            Verify.That(result2).IsNotNull();
            Verify.That(result1).IsNotNull()
            .IsTheSameObjectAs(result2)
            .IsNotTheSameObjectAs(result3);
        }
Beispiel #6
0
 public static void SetParameters(ILogger logger, bool firstRendering, PhpScriptProviderType type, SessionLifetime lifetime)
 {
     _setParameters(logger, firstRendering, type, lifetime, null);
 }