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); }
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); }
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(); }
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); }
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; }