public void Should_Load_A_Session_And_Unlock_It_Afterwards() { SessionDatabase.CreateSession(Constants.FullSessionId, ShortData); var store = new SqlSessionStateStore(Constants.ConnectionString, Constants.SessionTimeout); var sessionState = store.Load(_sessionId); sessionState.ShouldEqual(ShortData); var session = SessionDatabase.GetSession(Constants.FullSessionId); session.ShouldNotBeNull("No session found"); session.Locked.ShouldBeFalse(); }
public void Should_Concurrently_Load_A_Session_And_Unlock_It_Afterwards() { SessionDatabase.CreateSession(Constants.FullSessionId, ShortData); var store = new SqlSessionStateStore(Constants.ConnectionString, Constants.SessionTimeout); var results = new ConcurrentBag<bool>(); for (var i = 0; i < 20; i++) ThreadPool.QueueUserWorkItem( x => results.Add((store.Load(_sessionId) ?? new byte[] {}).SequenceEqual(ShortData))); while (results.Count < 20) Thread.Sleep(100); results.All(x => x).ShouldBeTrue(); }
public void Should_Return_A_Null_Session() { var store = new SqlSessionStateStore(Constants.ConnectionString, Constants.SessionTimeout); var session = store.Load(_sessionId); session.ShouldBeNull(); }