public void TestCrud() { var repo = new XmlSessionRepository(); var uow = repo.GetUnitOfWork(); var session1 = new SessionBuilder().StartDefault("session1").Build(); uow.RegisterSavedOrUpdated(session1); uow.Commit(); repo = new XmlSessionRepository(); var sessionsInRepo = repo.GetAllSessions(); Assert.AreEqual(1, sessionsInRepo.Count()); Assert.IsNotNull(sessionsInRepo.FirstOrDefault(s => s.Equals(session1))); repo = new XmlSessionRepository(); uow = repo.GetUnitOfWork(); session1.AddDocument(new SessionDocumentBuilder().StartDefault("doc1").Build()); // <-- adding one document to modify something in the session uow.RegisterSavedOrUpdated(session1); uow.Commit(); repo = new XmlSessionRepository(); sessionsInRepo = repo.GetAllSessions(); Assert.AreEqual(1, sessionsInRepo.Count()); Assert.AreEqual(1, sessionsInRepo.First().GetDocuments().Count()); repo = new XmlSessionRepository(); uow = repo.GetUnitOfWork(); uow.RegisterRemoved(session1); uow.Commit(); repo = new XmlSessionRepository(); sessionsInRepo = repo.GetAllSessions(); Assert.AreEqual(0, sessionsInRepo.Count()); }
public void TestSaveDocuments() { var repo = new XmlSessionRepository(); var uow = repo.GetUnitOfWork(); var session1 = new SessionBuilder().StartDefault("session1").Build(); var doc1 = new SessionDocumentBuilder().StartDefault("doc1").Build(); session1.AddDocument(doc1); var doc2 = new SessionDocumentBuilder().StartDefault("doc2").Build(); session1.AddDocument(doc2); uow.RegisterSavedOrUpdated(session1); uow.Commit(); repo = new XmlSessionRepository(); var sessionsInRepo = repo.GetAllSessions(); Assert.AreEqual(1, sessionsInRepo.Count()); Assert.IsNotNull(sessionsInRepo.FirstOrDefault(s => s.Equals(session1))); Assert.AreEqual(2, sessionsInRepo.First().GetDocuments().Count()); repo = new XmlSessionRepository(); uow = repo.GetUnitOfWork(); session1.RemoveDocument(doc1); uow.RegisterSavedOrUpdated(session1); uow.Commit(); repo = new XmlSessionRepository(); sessionsInRepo = repo.GetAllSessions(); Assert.AreEqual(1, sessionsInRepo.Count()); Assert.IsNotNull(sessionsInRepo.FirstOrDefault(s => s.Equals(session1))); Assert.AreEqual(1, sessionsInRepo.First().GetDocuments().Count()); }
public void TestSaveMoreThanOneSession() { var repo = new XmlSessionRepository(); var uow = repo.GetUnitOfWork(); var session1 = new SessionBuilder().StartDefault("session1").Build(); var session2 = new SessionBuilder().StartDefault("session2").Build(); uow.RegisterSavedOrUpdated(session1); uow.RegisterSavedOrUpdated(session2); uow.Commit(); repo = new XmlSessionRepository(); var sessionsInRepo = repo.GetAllSessions(); Assert.AreEqual(2, sessionsInRepo.Count()); Assert.IsNotNull(sessionsInRepo.FirstOrDefault(s => s.Equals(session1))); Assert.IsNotNull(sessionsInRepo.FirstOrDefault(s => s.Equals(session2))); }