public void Initialize() { _bookRepository = A.Fake<IBookRepository>(); A.CallTo(() => _bookRepository.GetByTitle(ValidTitle)) .Returns(_books.Where(x => x.Title == ValidTitle)); A.CallTo(() => _bookRepository.GetByAuthor(ValidAuthor)) .Returns(_books.Where(x => x.Author == ValidAuthor)); A.CallTo(() => _bookRepository.GetByIsbn(ValidIsbn)) .Returns(_books.Where(x => x.Isbn == ValidIsbn)); A.CallTo(() => _bookRepository.GetByPublisher(ValidPublisher)) .Returns(_books.Where(x => x.Publisher == ValidPublisher)); A.CallTo(() => _bookRepository.GetByStatus(BookStatusAvailable)) .Returns(_books.Where(x => x.Status == BookStatusAvailable)); A.CallTo(() => _bookRepository.GetByStatus(BookStatusUnavailable)) .Returns(_books.Where(x => x.Status == BookStatusUnavailable)); A.CallTo(() => _bookRepository.GetByStatus(BookStatusReserved)) .Returns(_books.Where(x => x.Status == BookStatusReserved)); A.CallTo(() => _bookRepository.GetByTitle(InvalidTitle)) .Throws<BookNotFoundException>(); A.CallTo(() => _bookRepository.GetByAuthor(InvalidAuthor)) .Throws<BookNotFoundException>(); A.CallTo(() => _bookRepository.GetByIsbn(InvalidIsbn)) .Throws<BookNotFoundException>(); A.CallTo(() => _bookRepository.GetByPublisher(InvalidPublisher)) .Throws<BookNotFoundException>(); _bookService = new BookService(_bookRepository); }