示例#1
0
        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);
        }
示例#2
0
        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);
        }