Inheritance: NHibernateGenericDao
        public void TransactionNotHijackingTheSession()
        {
            ISessionManager sessionManager = container.Resolve <ISessionManager>();

            ITransaction transaction;

            using (ISession session = sessionManager.OpenSession())
            {
                transaction = session.Transaction;

                Assert.IsFalse(transaction.IsActive);

                FirstDao service = container.Resolve <FirstDao>("myfirstdao");

                // This call is transactional
                Blog blog = service.Create();

                RootService rootService = container.Resolve <RootService>();

                Array blogs = rootService.FindAll(typeof(Blog));
                Assert.AreEqual(1, blogs.Length);
            }

            Assert.IsTrue(transaction.WasCommitted);
        }
        public void SessionBeingSharedByMultipleTransactionsInSequenceStateless()
        {
            ISessionManager sessionManager = container.Resolve <ISessionManager>();

            ITransaction transaction;

            using (IStatelessSession session = sessionManager.OpenStatelessSession())
            {
                transaction = session.Transaction;
                Assert.IsFalse(transaction.IsActive);

                FirstDao service = container.Resolve <FirstDao>("myfirstdao");

                // This call is transactional
                service.CreateStateless();

                // This call is transactional
                service.CreateStateless("ps2's blogs");

                // This call is transactional
                service.CreateStateless("game cube's blogs");

                RootService rootService = container.Resolve <RootService>();

                Array blogs = rootService.FindAllStateless(typeof(Blog));
                Assert.AreEqual(3, blogs.Length);
            }

            Assert.IsTrue(transaction.WasCommitted);
        }
        public void ExceptionOnEndWithTwoDatabases()
        {
            RootService service  = container.Resolve <RootService>();
            OrderDao    orderDao = container.Resolve <OrderDao>("myorderdao");

            try
            {
                service.DoTwoDBOperation_Create(true);
            }
            catch (InvalidOperationException)
            {
                // Expected
            }

            Array blogs     = service.FindAll(typeof(Blog));
            Array blogitems = service.FindAll(typeof(BlogItem));
            Array orders    = orderDao.FindAll(typeof(Order));

            Assert.IsNotNull(blogs);
            Assert.IsNotNull(blogitems);
            Assert.IsNotNull(orders);
            Assert.AreEqual(0, blogs.Length);
            Assert.AreEqual(0, blogitems.Length);
            Assert.AreEqual(0, orders.Length);
        }
Ejemplo n.º 4
0
        public void SessionBeingSharedByMultipleTransactionsInSequence()
        {
            ISessionManager sessionManager = (ISessionManager)
                                             container[typeof(ISessionManager)];

            using (ISession session = sessionManager.OpenSession())
            {
                Assert.IsNull(session.Transaction);

                FirstDao service = (FirstDao)container["myfirstdao"];

                // This call is transactional
                service.Create();

                Assert.IsTrue(session.Transaction.WasCommitted);

                // This call is transactional
                service.Create("ps2's blogs");

                Assert.IsTrue(session.Transaction.WasCommitted);

                // This call is transactional
                service.Create("game cube's blogs");

                RootService rootService = (RootService)container["root"];

                Array blogs = rootService.FindAll(typeof(Blog));
                Assert.AreEqual(3, blogs.Length);
            }
        }
        public void SimpleAndSucessfulSituationUsingRootTransactionBoundaryStateless()
        {
            RootService service = container.Resolve <RootService>();

            service.SuccessFullCallStateless();

            Array blogs     = service.FindAllStateless(typeof(Blog));
            Array blogitems = service.FindAllStateless(typeof(BlogItem));

            Assert.IsNotNull(blogs);
            Assert.IsNotNull(blogitems);
            Assert.AreEqual(1, blogs.Length);
            Assert.AreEqual(1, blogitems.Length);
        }
Ejemplo n.º 6
0
        public void SimpleAndSucessfulSituationUsingRootTransactionBoundary()
        {
            RootService service = (RootService)container["root"];

            service.SuccessFullCall();

            Array blogs     = service.FindAll(typeof(Blog));
            Array blogitems = service.FindAll(typeof(BlogItem));

            Assert.IsNotNull(blogs);
            Assert.IsNotNull(blogitems);
            Assert.AreEqual(1, blogs.Length);
            Assert.AreEqual(1, blogitems.Length);
        }
        public void TestTransactionStatelessUsingDetachedCriteria()
        {
            RootService service = container.Resolve <RootService>();

            string blogName = "Delicious Food!";

            var blogA = service.CreateBlogStatelessUsingDetachedCriteria(blogName);

            Assert.IsNotNull(blogA);

            var blogB = service.FindBlogStatelessUsingDetachedCriteria(blogName);

            Assert.IsNotNull(blogB);

            Assert.AreEqual(blogA.Name, blogB.Name);
        }
        public void SuccessfulSituationWithTwoDatabasesStateless()
        {
            RootService service  = container.Resolve <RootService>();
            OrderDao    orderDao = container.Resolve <OrderDao>("myorderdao");

            service.DoTwoDBOperation_Create_Stateless(false);

            Array blogs     = service.FindAllStateless(typeof(Blog));
            Array blogitems = service.FindAllStateless(typeof(BlogItem));
            Array orders    = orderDao.FindAllStateless(typeof(Order));

            Assert.IsNotNull(blogs);
            Assert.IsNotNull(blogitems);
            Assert.IsNotNull(orders);
            Assert.AreEqual(1, blogs.Length);
            Assert.AreEqual(1, blogitems.Length);
            Assert.AreEqual(1, orders.Length);
        }
        public void TestTransaction()
        {
            RootService service = container.Resolve <RootService>();
            FirstDao    dao     = container.Resolve <FirstDao>("myfirstdao");

            Blog blog = dao.Create("Blog1");

            try
            {
                service.DoBlogRefOperation(blog);

                // Expects a constraint exception on Commit
                Assert.Fail("Must fail");
            }
            catch (Exception)
            {
                // transaction exception expected
            }
        }
        public void CallWithExceptionStateless2()
        {
            RootService service = container.Resolve <RootService>();

            try
            {
                service.CallWithExceptionStateless2();
            }
            catch (NotSupportedException)
            {
            }

            // Ensure rollback happened

            Array blogs     = service.FindAllStateless(typeof(Blog));
            Array blogitems = service.FindAllStateless(typeof(BlogItem));

            Assert.IsEmpty(blogs);
            Assert.IsEmpty(blogitems);
        }
Ejemplo n.º 11
0
        public void CallWithException2()
        {
            RootService service = (RootService)container["root"];

            try
            {
                service.CallWithException2();
            }
            catch (Exception)
            {
            }

            // Ensure rollback happened

            Array blogs     = service.FindAll(typeof(Blog));
            Array blogitems = service.FindAll(typeof(BlogItem));

            Assert.IsNull(blogs);
            Assert.IsNull(blogitems);
        }
        public void NonTransactionalRootStateless()
        {
            ISessionManager sessionManager = container.Resolve <ISessionManager>();

            ITransaction transaction;

            using (IStatelessSession session = sessionManager.OpenStatelessSession())
            {
                transaction = session.Transaction;

                Assert.IsFalse(transaction.IsActive);

                FirstDao  first  = container.Resolve <FirstDao>("myfirstdao");
                SecondDao second = container.Resolve <SecondDao>("myseconddao");

                // This call is transactional
                Blog blog = first.CreateStateless();

                // TODO: Assert transaction was committed
                // Assert.IsTrue(session.Transaction.WasCommitted);

                try
                {
                    second.CreateWithExceptionStateless2(blog);
                }
                catch (Exception)
                {
                    // Expected
                }

                // TODO: Assert transaction was rolledback
                // Assert.IsTrue(session.Transaction.WasRolledBack);

                RootService rootService = container.Resolve <RootService>();

                Array blogs = rootService.FindAllStateless(typeof(Blog));
                Assert.AreEqual(1, blogs.Length);
                Array blogitems = rootService.FindAllStateless(typeof(BlogItem));
                Assert.IsEmpty(blogitems);
            }
        }
Ejemplo n.º 13
0
        public void TransactionNotHijackingTheSession()
        {
            ISessionManager sessionManager = (ISessionManager)
                                             container[typeof(ISessionManager)];

            using (ISession session = sessionManager.OpenSession())
            {
                Assert.IsNull(session.Transaction);

                FirstDao service = (FirstDao)container["myfirstdao"];

                // This call is transactional
                Blog blog = service.Create();

                Assert.IsTrue(session.Transaction.WasCommitted);

                RootService rootService = (RootService)container["root"];

                Array blogs = rootService.FindAll(typeof(Blog));
                Assert.AreEqual(1, blogs.Length);
            }
        }
Ejemplo n.º 14
0
        public void NonTransactionalRoot()
        {
            ISessionManager sessionManager = (ISessionManager)
                                             container[typeof(ISessionManager)];

            using (ISession session = sessionManager.OpenSession())
            {
                Assert.IsNull(session.Transaction);

                FirstDao  first  = (FirstDao)container["myfirstdao"];
                SecondDao second = (SecondDao)container["myseconddao"];

                // This call is transactional
                Blog blog = first.Create();

                Assert.IsTrue(session.Transaction.WasCommitted);

                try
                {
                    second.CreateWithException2(blog);
                }
                catch (Exception)
                {
                    // Expected
                }

                Assert.IsTrue(session.Transaction.WasRolledBack);

                RootService rootService = (RootService)container["root"];

                Array blogs = rootService.FindAll(typeof(Blog));
                Assert.AreEqual(1, blogs.Length);
                Array blogitems = rootService.FindAll(typeof(BlogItem));
                Assert.IsNull(blogitems);
            }
        }