예제 #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);
        }
예제 #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);
        }