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)); }
public void starting_from_empty() { CVQueryModel cvQueryModel = null; CVQueryModelUpdater cvQueryModelUpdater = null; IDocumentDbSession documentDbSession = null; Guid cvId = Guid.Parse("00000000-0000-0000-0000-000000000001"); before = () => { cvQueryModel = null; documentDbSession = new DocumentDbSession(new InMemoryDocumentDb(), new SingleThreadUseGuard(), NullOpDocumentDbSessionInterceptor.Instance); cvQueryModelUpdater = new CVQueryModelUpdater(documentDbSession); }; context["after receiving CVRegisteredAvent"] = () => { CVRegisteredEvent registeredEvent = null; before = () => { registeredEvent = new CVRegisteredEvent() { AggregateRootId = cvId, Email = "Email", Password = "******", }; cvQueryModelUpdater.Handle(registeredEvent); cvQueryModel = documentDbSession.Get <CVQueryModel>(cvId); }; it["does not crash :)"] = () => Assert.True(true); it["_resultingModel.Id is template.id"] = () => cvQueryModel.Id.Should().Be(registeredEvent.AggregateRootId); it["_resultingModel.Email is template.Email"] = () => cvQueryModel.Email.Should().Be(registeredEvent.Email); it["_resultingModel.Password is template.Password"] = () => cvQueryModel.Password.Should().Be(registeredEvent.Password); context["after receiving CVSkillsEditedEvent"] = () => { CVSkillsEdited skillsEdited = null; before = () => { skillsEdited = new CVSkillsEdited() { AggregateRootId = registeredEvent.AggregateRootId, AddedSkills = new List <string> { "AddedSkill1", "AddedSkill2", "AddedSkill3" }, RemovedSkills = new List <string> { "RemovedSkill1" } }; cvQueryModelUpdater.Handle(skillsEdited); }; it["CVQueryModel.Skills is event.AddedSkills "] = () => cvQueryModel.Skills.Should().Equal(skillsEdited.AddedSkills); }; }; }
public DocumentDbSessionInspector(IDocumentDbSession session) { Session = session; }
protected DocumentDbSessionProxy(IDocumentDbSession session) { Session = session; }
public DocumentDbSessionInspector(IDocumentDbSession session) { Session = session; }