public void TestAddBook() { var mockHelper = new Mock<IBookHelper>(); dao = new BookDAO(mockHelper.Object); var mockBook = new Mock<IBook>(); mockHelper.Setup<IBook>(m => m.MakeBook(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>())).Returns(mockBook.Object); IBook actualBook = dao.AddBook(name, title, callNo); Assert.AreEqual(mockBook.Object, actualBook); mockHelper.VerifyAll(); var field = typeof(BookDAO).GetField("bookDict", BindingFlags.NonPublic | BindingFlags.Instance); var dict = (Dictionary<int, IBook>) field.GetValue(dao); Assert.IsTrue(dict.Count == 1); }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //setup IMemberDAO memberDAO = new MemberDAO(new MemberHelper()); IBookDAO bookDAO = new BookDAO(new BookHelper()); ILoanDAO loanDAO = new LoanDAO(new LoanHelper()); IMember mem = memberDAO.AddMember("John", "Smith", "*****@*****.**", "02 622 94753"); IBook book1 = bookDAO.AddBook("Robert Heinlein", "Space Cadet", "HEI 3.645"); IBook book2 = bookDAO.AddBook("Charles Stross", "The Laundry Files", "STR 7.593"); IBook book3 = bookDAO.AddBook("James Cambias", "A Darkling Sea", "CAM 5.657"); IBook book4 = bookDAO.AddBook("John Steinbeck", "Cannery Row", "STE 9.531"); IBook book5 = bookDAO.AddBook("Terry Pratchett", "Raising Steam", "PRA 1.739"); IBook book6 = bookDAO.AddBook("Vernor Vinge", "Fire Upon the Deep", "VIN 8.927"); /* IBook b = bookDAO.GetBookByID(1); b = bookDAO.GetBookByID(2); b = bookDAO.GetBookByID(3); b = bookDAO.GetBookByID(4); DateTime borrowDate = DateTime.Now; TimeSpan loanPeriod = new TimeSpan(LoanConstants.LOAN_PERIOD, 0, 0, 0); DateTime dueDate = borrowDate.Add(loanPeriod); loanDAO.CreateNewPendingList(mem); loanDAO.CreatePendingLoan(mem, book1, borrowDate, dueDate); loanDAO.CreatePendingLoan(mem, book2, borrowDate, dueDate); loanDAO.CreatePendingLoan(mem, book3, borrowDate, dueDate); loanDAO.CreatePendingLoan(mem, book4, borrowDate, dueDate); loanDAO.CreatePendingLoan(mem, book5, borrowDate, dueDate); loanDAO.CommitPendingLoans(mem); DateTime checkDate = dueDate.Add(new TimeSpan(1, 0, 0, 0)); loanDAO.UpdateOverDueStatus(checkDate); mem.AddFine(10.00f); */ BorrowBookUI gui = new BorrowBookUI(); BorrowBookCTL ctl = new BorrowBookCTL(bookDAO, memberDAO,loanDAO, gui); ctl.Initialise(); Application.Run(gui); }