Exemplo n.º 1
0
        public void Rollback()
        {
            IWindsorContainer container = CreateConfiguredContainer();

            container.AddFacility("transaction", new TransactionFacility());

            container.AddComponent("blogdao", typeof(BlogDao));
            container.AddComponent("orderdao", typeof(OrderDao));
            container.AddComponent("business", typeof(MyBusinessClass));
            container.AddComponent("business2", typeof(MyOtherBusinessClass));

            MyOtherBusinessClass service = (MyOtherBusinessClass)container[typeof(MyOtherBusinessClass)];

            try
            {
                Blog blog = service.CreateWithError(1);
            }
            catch (Exception)
            {
                // Expected
            }

            BlogDao dao   = (BlogDao)container["blogdao"];
            IList   blogs = dao.ObtainBlogs();

            Assert.IsNotNull(blogs);
            Assert.AreEqual(0, blogs.Count);

            OrderDao odao   = (OrderDao)container["orderdao"];
            IList    orders = odao.ObtainOrders();

            Assert.IsNotNull(orders);
            Assert.AreEqual(0, orders.Count);
        }
Exemplo n.º 2
0
        public void BusinessLayerWithTransactions()
        {
            IWindsorContainer container = CreateConfiguredContainer();

            container.AddFacility("transaction", new TransactionFacility());

            container.AddComponent("blogdao", typeof(BlogDao));
            container.AddComponent("orderdao", typeof(OrderDao));
            container.AddComponent("business", typeof(MyBusinessClass));
            container.AddComponent("business2", typeof(MyOtherBusinessClass));

            MyOtherBusinessClass service = (MyOtherBusinessClass)container[typeof(MyOtherBusinessClass)];
            Blog blog = service.Create(1);

            BlogDao dao   = (BlogDao)container["blogdao"];
            IList   blogs = dao.ObtainBlogs();

            Assert.IsNotNull(blogs);
            Assert.AreEqual(1, blogs.Count);

            OrderDao odao   = (OrderDao)container["orderdao"];
            IList    orders = odao.ObtainOrders();

            Assert.IsNotNull(orders);
            Assert.AreEqual(1, orders.Count);
        }
Exemplo n.º 3
0
        public void TransactionalUsageMultithread()
        {
            IWindsorContainer container = CreateConfiguredContainer();

            container.AddFacility("transaction", new TransactionFacility());

            container.AddComponent("blogdao", typeof(BlogDaoTransactional));
            _dao = (BlogDao)container["blogdao"];
            _dao.DeleteAll();

            const int threadCount = 1;

            Thread[] threads = new Thread[threadCount];

            for (int i = 0; i < threadCount; i++)
            {
                threads[i] = new Thread(new ThreadStart(ExecuteMethodUntilSignal));
                threads[i].Start();
            }

            _startEvent.Set();

            Thread.CurrentThread.Join(1 * 2000);

            _stopEvent.Set();
        }
Exemplo n.º 4
0
        public void CommonUsage()
        {
            IWindsorContainer container = CreateConfiguredContainer();

            container.AddComponent("blogdao", typeof(BlogDao));

            BlogDao dao = (BlogDao)container["blogdao"];

            dao.CreateBlog("my blog");

            IList blogs = dao.ObtainBlogs();

            Assert.IsNotNull(blogs);
            Assert.AreEqual(1, blogs.Count);
        }
Exemplo n.º 5
0
        public void TransactionalUsage()
        {
            IWindsorContainer container = CreateConfiguredContainer();

            container.AddFacility("transaction", new TransactionFacility());

            container.AddComponent("blogdao", typeof(BlogDaoTransactional));

            BlogDao dao = (BlogDao)container["blogdao"];

            dao.CreateBlog("my blog");

            IList blogs = dao.ObtainBlogs();

            Assert.IsNotNull(blogs);
            Assert.AreEqual(1, blogs.Count);
        }
 public MyBusinessClass(BlogDao blogDao, IKernel kernel)
 {
     _blogDao    = blogDao;
     this.kernel = kernel;
 }