public void TestBorrowNoBooksAvailable() { var borrowManagerMock = new Mock <IBorrowManager>(); var bookManagerMock = new Mock <IBookManager>(); var customerManagerMock = new Mock <ICustomerManager>(); customerManagerMock.Setup(m => m.GetCustomer(It.IsAny <int>())) .Returns(new Customer { }); bookManagerMock.Setup(m => m.GetListOfBooksByTitle(It.IsAny <string>())) .Returns(new List <Book> { new Book { BookID = 1, Title = "Clean Code", Borrow = new Borrow { } } }); var borrowAPI = new BorrowAPI(borrowManagerMock.Object, bookManagerMock.Object, customerManagerMock.Object); var successfull = borrowAPI.BorrowBook(1, "Clean Code"); Assert.AreEqual(BorrowErrorCodes.BookAlreadyBorrowed, successfull); borrowManagerMock.Verify(m => m.AddBorrow(It.IsAny <Customer>(), It.IsAny <Book>()), Times.Never()); }
public void TestBorrowOneBook() { var borrowManagerMock = new Mock <IBorrowManager>(); var bookManagerMock = new Mock <IBookManager>(); var customerManagerMock = new Mock <ICustomerManager>(); customerManagerMock.Setup(m => m.GetCustomer(It.IsAny <int>())) .Returns(new Customer { CustomerID = 1 }); bookManagerMock.Setup(m => m.GetListOfBooksByTitle(It.IsAny <string>())) .Returns(new List <Book> { new Book { Title = "Clean Code" } }); var borrowAPI = new BorrowAPI(borrowManagerMock.Object, bookManagerMock.Object, customerManagerMock.Object); var successfull = borrowAPI.BorrowBook(1, "CleanCode"); Assert.AreEqual(BorrowErrorCodes.ok, successfull); borrowManagerMock.Verify(m => m.AddBorrow(It.IsAny <Customer>(), It.IsAny <Book>()), Times.Once()); }
public void TestBorrowNoBooksAvailableUpdateDate() { var borrowManagerMock = new Mock <IBorrowManager>(); var bookManagerMock = new Mock <IBookManager>(); var customerManagerMock = new Mock <ICustomerManager>(); customerManagerMock.Setup(m => m.GetCustomer(It.IsAny <int>())) .Returns(new Customer { Borrows = new List <Borrow> { new Borrow { BorrowID = 1, Book = new Book { BookID = 1, Title = "Clean Code" } } } }); bookManagerMock.Setup(m => m.GetListOfBooksByTitle(It.IsAny <string>())) .Returns(new List <Book> { new Book { Title = "Clean Code", Borrow = new Borrow { } } }); var borrowAPI = new BorrowAPI(borrowManagerMock.Object, bookManagerMock.Object, customerManagerMock.Object); var successfull = borrowAPI.BorrowBook(1, "Clean Code"); Assert.AreEqual(BorrowErrorCodes.CustomerBorrowHasBeenExteneded, successfull); borrowManagerMock.Verify(m => m.UpdateBorrowDate(It.IsAny <Borrow>()), Times.Once()); }
public void TestBorrowOldBill() { var borrowManagerMock = new Mock <IBorrowManager>(); var bookManagerMock = new Mock <IBookManager>(); var customerManagerMock = new Mock <ICustomerManager>(); customerManagerMock.Setup(m => m.GetCustomer(It.IsAny <int>())) .Returns(new Customer { Bills = new List <Bill> { new Bill { BillDate = new DateTime(2018, 12, 10) } } }); bookManagerMock.Setup(m => m.GetListOfBooksByTitle(It.IsAny <string>())) .Returns(new List <Book> { new Book { BookID = 1, Title = "Clean Code" } }); var borrowAPI = new BorrowAPI(borrowManagerMock.Object, bookManagerMock.Object, customerManagerMock.Object); var successfull = borrowAPI.BorrowBook(1, "Clean Code"); Assert.AreEqual(BorrowErrorCodes.CustomerNotAllowedToBorrowMoreBooks, successfull); borrowManagerMock.Verify(m => m.AddBorrow(It.IsAny <Customer>(), It.IsAny <Book>()), Times.Never()); }