public void DocumentTransactionGlobalParalelTest() { var size = 500; var pages = TestSetup.GeneratePages(size, false); var repos = new ObjectiksOf(); repos.TruncateOf <Pages>(); repos.TruncateOf <Tags>(); var result = Parallel.ForEach(pages, page => { using (var trans = repos.BeginTransaction()) { try { using (var pageWriter = repos.WriterOf <Pages>()) { pageWriter.UseFormatting(); pageWriter.AddDocument(page); pageWriter.SubmitChanges(); } trans.Commit(); } catch (Exception ex) { trans.Rollback(ex); } } }); var logs = DocumentLogger.Logs; Assert.IsTrue(repos.Count <Pages>() == size); }
public void DocumentTransactionTest() { var size = 5; var pages = TestSetup.GeneratePages(size, false); var repos = new ObjectiksOf(); //truncate types.. using (var trans = repos.BeginTransaction()) { try { using (var pageWriter = repos.WriterOf <Pages>()) { pageWriter.Truncate(); } using (var tagWriter = repos.WriterOf <Tags>()) { tagWriter.Truncate(); } trans.Commit(); } catch (Exception ex) { trans.Rollback(ex); } } using (var trans = repos.BeginTransaction()) { try { var tag = new Tags { Name = "Tag1" }; using (var tagWriter = repos.WriterOf <Tags>()) { tagWriter.UseFormatting(); tagWriter.AddDocument(tag); tagWriter.SubmitChanges(); } using (var pageWriter = repos.WriterOf <Pages>()) { pageWriter.UseFormatting(); pageWriter.AddDocuments(pages); pageWriter.SubmitChanges(); } trans.Commit(); } catch (Exception ex) { trans.Rollback(ex); } } var count = repos.Count <Pages>(); Assert.IsTrue(count == size); Assert.IsTrue(repos.Count <Tags>() == 1); }