public void BorrowBookModifiesLendList(string isbn, string cnp) { var mockValidator = new Mock <IValidationService>(); mockValidator.Setup(x => x.IsValidCNP(cnp)).Returns(true); var dependencyService = new DependencyService(); dependencyService.Register <IValidationService>(mockValidator.Object); var availableBooks = new List <BookProductInfo> { new BookProductInfo { Book = new Book { ISBN = isbn }, Quantity = 1 } }; var library = new LibraryRepository(availableBooks, dependencyService); var borrowResult = library.Borrow(isbn, cnp); Assert.True(borrowResult); var borrowedBook = Assert.Single(library.BorrowedBooks); Assert.NotNull(borrowedBook); Assert.Equal(isbn, borrowedBook.ISBN); Assert.False(borrowedBook.HasBeenReturned); // timestamps }
public void BorrowInexistingBook(string isbn, string cnp) { var mockValidator = new Mock <IValidationService>(); mockValidator.Setup(x => x.IsValidCNP(cnp)).Returns(true); var dependencyService = new DependencyService(); dependencyService.Register <IValidationService>(mockValidator.Object); var availableBooks = new List <BookProductInfo>(); var library = new LibraryRepository(availableBooks, dependencyService); var borrowResult = library.Borrow(isbn, cnp); Assert.False(borrowResult); Assert.Empty(library.BorrowedBooks); }
public void BorrowBookCnpInvalid(string isbn, string cnp) { var mockValidator = new Mock <IValidationService>(); mockValidator.Setup(x => x.IsValidCNP(cnp)).Returns(false); var dependencyService = new DependencyService(); dependencyService.Register <IValidationService>(mockValidator.Object); var availableBooks = new List <BookProductInfo> { new BookProductInfo { Book = new Book { ISBN = isbn }, Quantity = 1 } }; var library = new LibraryRepository(availableBooks, dependencyService); var borrowResult = library.Borrow(isbn, cnp); Assert.False(borrowResult); Assert.Empty(library.BorrowedBooks); }
public void BorrowBookModifiesAvailableQuantity(string isbn, string cnp) { var mockValidator = new Mock <IValidationService>(); mockValidator.Setup(x => x.IsValidCNP(cnp)).Returns(true); var dependencyService = new DependencyService(); dependencyService.Register <IValidationService>(mockValidator.Object); var availableBooks = new List <BookProductInfo> { new BookProductInfo { Book = new Book { ISBN = isbn }, Quantity = 1 } }; var library = new LibraryRepository(availableBooks, dependencyService); var borrowResult = library.Borrow(isbn, cnp); Assert.True(borrowResult); var availableQuantity = Assert.Single(library.AvailableBooks).Quantity; Assert.Equal(0, availableQuantity); }