public void Test_BookDao() { var nonCachedInstanceFetch = new Stopwatch(); var cachedInstanceFetch = new Stopwatch(); // Test cache efficiency nonCachedInstanceFetch.Start(); Book nonCachedBookInstance = BookDao.FindById(1); nonCachedInstanceFetch.Stop(); cachedInstanceFetch.Start(); Book cachedBookInstance = BookDao.FindById(1); cachedInstanceFetch.Stop(); Assert.IsTrue(cachedInstanceFetch.ElapsedTicks < nonCachedInstanceFetch.ElapsedTicks); /* ***************************** */ // Check if returned by findById() method instances // are BookProxy' instance Assert.IsTrue(cachedBookInstance is BookProxy); Assert.IsTrue(nonCachedBookInstance is BookProxy); // *find* methods tests IList <Book> allBooks = BookDao.FindAll(); IList <Book> foundByTitle = BookDao.FindByTitle("Fast Recipes"); IList <Book> foundByTitle2 = BookDao.FindByTitle("Fake Your Death"); IList <Book> foundByTitle3 = BookDao.FindByTitle("True"); IList <Book> foundByRating = BookDao.FindByRating(7.8f); IList <Book> foundBySection = BookDao.FindBySection(BookSection.FICTION); Assert.AreEqual(1, foundByTitle.Count); Assert.AreEqual(1, foundByTitle2.Count); Assert.AreEqual(2, foundByTitle3.Count); Assert.AreEqual(3, foundByRating.Count); Assert.AreEqual(5, foundBySection.Count); Book temp = BookDao.FindById(1); string tempTitle = temp.Title; // test refresh method temp.Title = "New Title"; BookDao.Refresh(temp); Assert.AreEqual(tempTitle, temp.Title); // test update method temp.Title = "New Title"; BookDao.Update(temp); Book temp1 = BookDao.FindById(temp.Id); Assert.AreEqual(temp1.Title, temp.Title); // test save method again temp.Title = "Title*"; BookDao.Save(temp, SaveOption.UPDATE_IF_EXIST); temp1 = BookDao.FindById(temp.Id); Assert.AreEqual(temp1.Title, temp.Title); }