コード例 #1
0
        public void Can_Save_Load_Bid()
        {
            Assert.AreEqual(1, items.FindAll().Count);

            Bid bid = new Bid(
                new MonetaryAmount(200, "GBP"),
                iMac,
                tobin);

            iMac.AddBid(bid);

            Assert.AreEqual(1, iMac.Bids.Count);
            Assert.AreEqual(1, items.FindAll().Count);

            NHibernateHelper.Session.Save(bid);
            NHibernateHelper.CommitTransaction();
            NHibernateHelper.CloseSession();

            //test that can load the bid "manually" and that
            //the .Item and .Bidder associations are set
            Bid loaded = NHibernateHelper.Session.Get <Bid>(bid.Id);

            Assert.IsNotNull(loaded, "No loaded bid found");
            Assert.IsTrue(iMac.Equals(loaded.Item), "Items not same");
            Assert.AreEqual(iMac, loaded.Item);

            Assert.IsTrue(tobin.Equals(loaded.Bidder), "Bidder not the same");
            Assert.AreEqual(tobin, loaded.Bidder);

            //test that we can reload the Item and that the Bids are restored also
            Item reloaded = items.GetById(iMac.Id);

            Assert.AreEqual(1, reloaded.Bids.Count);
            Assert.AreEqual(bid, reloaded.Bids[0]);
        }
コード例 #2
0
        public void Can_Save_Load_CategorizedItem()
        {
            Category myItems = new Category("My Items");

            categories.MakePersistent(myItems);
            CategorizedItem ci = new CategorizedItem(tobin.Username, myItems, iMac);

            //TODO: Remove explicit saving of categorized item in this test. This should be persisted by reachability?
            NHibernateHelper.Session.Save(ci);
            NHibernateHelper.CommitTransaction();

            Item reloaded = items.GetById(iMac.Id);

            Assert.AreEqual(1, reloaded.CategorizedItems.Count);
        }
コード例 #3
0
        public void Can_Save_Load_Category()
        {
            Category computers = new Category("Computer Equipment");

            computers.AddChildCategory(new Category("Apple"));
            computers.AddChildCategory(new Category("Dell"));
            categories.MakePersistent(computers);
            NHibernateHelper.CommitTransaction();
            NHibernateHelper.CloseSession();

            IList <Category> rootCategories = categories.FindAll(true);

            Assert.AreEqual(1, rootCategories.Count);
            Assert.AreEqual(2, computers.ChildCategories.Count);
        }
コード例 #4
0
        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            try {
                if ((filterContext.Exception != null) && (!filterContext.ExceptionHandled))
                {
                    NHibernateHelper.RollbackTransaction();
                }
                else
                {
                    NHibernateHelper.CommitTransaction();
                }
            }
            finally {
                NHibernateHelper.DisposeSession();
            }

            base.OnResultExecuted(filterContext);
        }
コード例 #5
0
        public void SetUpData()
        {
            //create database
            CreateDatabase();

            //create common test data
            tobin = CreateTobin();
            iMac  = CreateAppleiMac(tobin);

            //save them using DAOs
            items = new ItemDAO();
            users = new UserDAO();

            users.MakePersistent(tobin);
            items.MakePersistent(iMac);

            //commit
            NHibernateHelper.CommitTransaction();
            NHibernateHelper.CloseSession();
        }
コード例 #6
0
        public void Can_Save_Load_BillingDetails()
        {
            BillingDetails cardDetails = new CreditCard("Tobin Harris", tobin, "111222333444", CreditCardType.MasterCard, "05", "08");
            BillingDetails bankDetails = new BankAccount("Tobin Harris", tobin, "12345566", "HSBC", "X-Y-Z");

            tobin.AddBillingDetails(cardDetails);
            tobin.AddBillingDetails(bankDetails);
            Assert.AreEqual(2, tobin.BillingDetails.Count);

            users.MakePersistent(tobin);
            NHibernateHelper.CommitTransaction();
            NHibernateHelper.CloseSession();

            User reloaded = users.GetById(tobin.Id);

            Assert.AreEqual(tobin, reloaded);
            Assert.AreEqual(2, reloaded.BillingDetails.Count);
            Assert.IsTrue(reloaded.BillingDetails.Contains(cardDetails));
            Assert.IsTrue(reloaded.BillingDetails.Contains(bankDetails));
        }
コード例 #7
0
 private void ApplicationEndRequest(object sender, EventArgs e)
 {
     if (RequestMayNeedIterationWithPersistence(sender as HttpApplication))
     {
         try
         {
             if (NHibernateHelper.GetCurrentSession().IsOpen&& NHibernateHelper.GetCurrentSession().Transaction.IsActive)
             {
                 NHibernateHelper.CommitTransaction();
             }
         }
         catch (Exception)
         {
             NHibernateHelper.RollbackTransaction();
             throw;
         }
         finally
         {
             NHibernateHelper.DisposeSession();
         }
     }
 }