public void GivenHttpGetVerb_WhenRequestHasNoParameterAndServiceHasBooks_ThenShouldReturnAListOfBooksAndStatusOk() { // Arrange var books = BookStub.CreateListOfSize(SIZE); var service = new Mock <IBookService>(); service.Setup(s => s.RetrieveAll()).Returns(books); var controller = new BookController(service.Object); // Act var result = controller.Get() as OkNegotiatedContentResult <List <Book> >; // Assert service.Verify(s => s.RetrieveAll(), Times.Exactly(1)); result.Should().BeOfType <OkNegotiatedContentResult <List <Book> > >(); result.Content.ShouldAllBeEquivalentTo(books); }
public void GivenRetrieveAllInStock_WhenInvoked_ThenShouldReturnAllBooksInStock() { // Arrange var books = BookStub.CreateListOfSize(SIZE, IN_STOCK); var repository = new Mock <IRepository <Book> >(); repository.Setup(r => r.Retrieve(book => book.InStock == true)) .Returns(books); var service = new BookService(repository.Object); // Act var results = service.RetrieveAllInStock(); // Assert results.ShouldAllBeEquivalentTo(books); repository.Verify(r => r.Retrieve(book => book.InStock == true), Times.Exactly(1)); }