CQRS.Tests.KeyValueStorage.DocumentDbTests.ThrowsIfUsedByMultipleThreads C# (CSharp) Method

ThrowsIfUsedByMultipleThreads() private method

private ThrowsIfUsedByMultipleThreads ( ) : void
return void
        public void ThrowsIfUsedByMultipleThreads()
        {
            var store = CreateStore();
            IDocumentDbSession session = null;
            var wait = new ManualResetEventSlim();
            ThreadPool.QueueUserWorkItem(state =>
                                         {
                                             session = OpenSession(store);
                                             wait.Set();
                                         });
            wait.Wait();

            var user = new User() { Id = Guid.NewGuid() };

            Assert.Throws<MultiThreadedUseException>(() => session.Get<User>(Guid.NewGuid()));
            Assert.Throws<MultiThreadedUseException>(() => session.GetAll<User>());
            Assert.Throws<MultiThreadedUseException>(() => session.Save(user, user.Id));
            Assert.Throws<MultiThreadedUseException>(() => session.Delete(user));
            Assert.Throws<MultiThreadedUseException>(() => session.Dispose());
            Assert.Throws<MultiThreadedUseException>(() => session.Save(new User()));
            Assert.Throws<MultiThreadedUseException>(() => session.SaveChanges());
            Assert.Throws<MultiThreadedUseException>(() => session.TryGet(Guid.NewGuid(), out user));
            Assert.Throws<MultiThreadedUseException>(() => session.TryGetForUpdate(user.Id, out user));
            Assert.Throws<MultiThreadedUseException>(() => session.Delete(user));
        }
DocumentDbTests