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);
        }
Ejemplo n.º 3
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 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 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.º 6
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.º 7
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);
            }
        }
		public RootService(FirstDao firstDao, SecondDao secondDao, ISessionManager sessManager) : base(sessManager)
		{
			this.firstDao = firstDao;
			this.secondDao = secondDao;
		}
Ejemplo n.º 9
0
 public RootService(FirstDao firstDao, SecondDao secondDao, ISessionManager sessManager) : base(sessManager)
 {
     this.firstDao  = firstDao;
     this.secondDao = secondDao;
 }