public void TestMostPopularBooks() { var borrowManagerMock = new Mock <IBorrowManager>(); borrowManagerMock.Setup(m => m.GetAllBorrows()) .Returns(new List <Borrow> { new Borrow { Book = new Book { Author = "Albin", Title = "c#" }, Customer = new Customer { DateOfBirth = new DateTime(2010, 10, 10), Borrows = new List <Borrow> { new Borrow { } } } } }); var borrowAPI = new BorrowAPI(borrowManagerMock.Object, null, null); var popularBookList = borrowAPI.GetMostPopularBooksByAgeGroup(); Assert.AreEqual(popularBookList.Count, 1); }
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 ExtendBorrowCustomerHasDebt() { var customerManagerMock = SetupMock(new Customer { CustomerID = 1, Debt = 100 }); var bookManagerMock = SetupMock(new Book { BookID = 1, IsBorrowed = true }); var borrowManagerMock = SetupMock(new Borrow { BorrowID = 1, CustomerID = 1, BookID = 1 }); var borrowAPI = new BorrowAPI(borrowManagerMock.Object, customerManagerMock.Object, bookManagerMock.Object); var result = borrowAPI.AddBorrow(000001, "Circe"); Assert.AreEqual(AddBorrowStatusCodes.CustomerHasDebtCanNotExtendBorrow, result); borrowManagerMock.Verify( m => m.ExtendBorrowDate(It.Is <int>(i => i == 1), It.IsAny <DateTime>(), It.IsAny <DateTime>()), Times.Never()); }
public void TestReturnOneBookWithBill() { 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.GetBookByBookID(It.IsAny <int>())) .Returns(new Book { BookID = 1 }); borrowManagerMock.Setup(m => m.GetBorrowByBookID(It.IsAny <int>())) .Returns(new Borrow { Bill = new Bill { Amount = 100 }, BookID = 1 }); var borrowAPI = new BorrowAPI(borrowManagerMock.Object, bookManagerMock.Object, customerManagerMock.Object); var successfull = borrowAPI.ReturnBook(1, 2); Assert.AreEqual(100, successfull); borrowManagerMock.Verify(m => m.ReturnBorrowedBook(It.IsAny <Borrow>(), It.IsAny <Byte>()), Times.Once()); }
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 CreateInvoiceNoBorrowOverdueDate() { var bookManagerMock = new Mock <IBookManager>(); var borrowManagerMock = new Mock <IBorrowManager>(); var customerManagerMock = new Mock <ICustomerManager>(); var todayDate = DateTime.Today; borrowManagerMock.Setup(m => m.GetBorrowWithOverdueReturnDate(It.IsAny <DateTime>())) .Returns(new List <Borrow>()); borrowManagerMock.Setup(m => m.GetCustomerByBorrow(It.IsAny <Borrow>())) .Returns(new Customer { CustomerNumber = 000001 }); borrowManagerMock.Setup(m => m.GetInvoiceByBorrow(It.IsAny <Borrow>())) .Returns((Invoice)null); var borrowAPI = new BorrowAPI(borrowManagerMock.Object, customerManagerMock.Object, bookManagerMock.Object); var result = borrowAPI.CreateInvoice(); Assert.AreEqual(CreateInvoiceStatusCodes.NoBorrowOverdueDate, result); borrowManagerMock.Verify(m => m.CreateInvoice(It.IsAny <Customer>(), It.IsAny <Borrow>(), It.IsAny <decimal>(), It.IsAny <decimal>()), Times.Never); }
public void ExtendBorrowOk() { var customerManagerMock = SetupMock(new Customer { CustomerID = 1, Debt = 0 }); var bookManagerMock = SetupMock(new Book { BookID = 1, IsBorrowed = true }); var borrowManagerMock = SetupMock(new Borrow { BorrowID = 1, CustomerID = 1, BookID = 1 }); var borrowAPI = new BorrowAPI(borrowManagerMock.Object, customerManagerMock.Object, bookManagerMock.Object); var result = borrowAPI.AddBorrow(000001, "Circe"); Assert.AreEqual(AddBorrowStatusCodes.ExtendBorrowForCustomer, result); borrowManagerMock.Verify( m => m.ExtendBorrowDate(It.Is <int>(i => i == 1), It.IsAny <DateTime>(), It.IsAny <DateTime>()), Times.Once()); borrowManagerMock.Verify( m => m.AddToHistoryListOfBorrow(It.Is <int>(i => i == 000001), It.Is <string>(i => i == "Circe"), It.IsAny <DateTime>()), Times.Once()); }
public void AddBorrowCustomerHasDebt() { var borrowManagerMock = new Mock <IBorrowManager>(); var customerManagerMock = SetupMock(new Customer { CustomerNumber = 000001, Debt = 100 }); var bookManagerMock = SetupMock(new Book { BookTitle = "Circe", IsBorrowed = false }); borrowManagerMock.Setup(m => m.GetAllCurrentBorrowFromCustomer(It.IsAny <int>())) .Returns(new List <Borrow> { new Borrow { CustomerID = 1, BookID = 1 }, }); var borrowAPI = new BorrowAPI(borrowManagerMock.Object, customerManagerMock.Object, bookManagerMock.Object); var result = borrowAPI.AddBorrow(000001, "Circe"); Assert.AreEqual(AddBorrowStatusCodes.CustomerHasDebt, result); borrowManagerMock.Verify( m => m.AddBorrow(It.Is <int>(i => i == 000001), It.Is <string>(i => i == "Circe"), It.IsAny <DateTime>(), It.IsAny <DateTime>()), Times.Never()); }
public void AddBorrowNoSuchCustomer() { var borrowManagerMock = new Mock <IBorrowManager>(); var customerManagerMock = SetupMock((Customer)null); var bookManagerMock = SetupMock(new Book { BookTitle = "Circe" }); var borrowAPI = new BorrowAPI(borrowManagerMock.Object, customerManagerMock.Object, bookManagerMock.Object); var result = borrowAPI.AddBorrow(000020, "Circe"); Assert.AreEqual(AddBorrowStatusCodes.NoSuchCustomer, result); borrowManagerMock.Verify( m => m.AddBorrow(000020, "Circe", new DateTime(), new DateTime()), Times.Never()); }
public void AddBorrowNoSuchBook() { var borrowManagerMock = new Mock <IBorrowManager>(); var customerManagerMock = SetupMock(new Customer { CustomerNumber = 000001 }); var bookManagerMock = SetupMock((Book)null); var borrowAPI = new BorrowAPI(borrowManagerMock.Object, customerManagerMock.Object, bookManagerMock.Object); var result = borrowAPI.AddBorrow(000001, "HejHopp"); Assert.AreEqual(AddBorrowStatusCodes.NoSuchBook, result); borrowManagerMock.Verify( m => m.AddBorrow(000001, "HejHopp", new DateTime(), new DateTime()), Times.Never()); }
public void ReturnBorrowNoSuchBorrow() { var customerManagerMock = SetupMock(new Customer { CustomerNumber = 000001 }); var bookManagerMock = SetupMock(new Book { BookTitle = "Circe" }); var borrowManagerMock = SetupMock((Borrow)null); var borrowAPI = new BorrowAPI(borrowManagerMock.Object, customerManagerMock.Object, bookManagerMock.Object); var result = borrowAPI.ReturnBorrow(000001, "Circe", 4); Assert.AreEqual(ReturnBorrowStatusCodes.NoSuchBorrow, result); borrowManagerMock.Verify(m => m.ReturnBorrow(It.IsAny <int>(), It.IsAny <Book>(), It.IsAny <int>()), Times.Never); }
//ADD BORROW: private AddBorrowStatusCodes AddBorrowNumberOne(Mock <IBorrowManager> borrowManagerMock) { var customerManagerMock = SetupMock(new Customer { CustomerNumber = 000001 }); var bookManagerMock = SetupMock(new Book { BookTitle = "Circe", IsBorrowed = false }); var borrowAPI = new BorrowAPI(borrowManagerMock.Object, customerManagerMock.Object, bookManagerMock.Object); var successfull = borrowAPI.AddBorrow(000001, "Circe"); return(successfull); }
public void AddBorrowBookIsUnavailable() { var borrowManagerMock = new Mock <IBorrowManager>(); var customerManagerMock = SetupMock(new Customer { CustomerNumber = 000001 }); var bookManagerMock = SetupMock(new Book { BookTitle = "Flights", IsBorrowed = true }); var borrowAPI = new BorrowAPI(borrowManagerMock.Object, customerManagerMock.Object, bookManagerMock.Object); var result = borrowAPI.AddBorrow(000001, "Flights"); Assert.AreEqual(AddBorrowStatusCodes.BookIsUnavailable, result); borrowManagerMock.Verify( m => m.AddBorrow(000001, "Flights", new DateTime(), new DateTime()), Times.Never()); }
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()); }