function it_renders_empty_results_by_default(Request $request, ParameterBag $requestQueryParameters, EngineInterface $templatingEngine, Response $response)
 {
     $request->query = $requestQueryParameters;
     $requestQueryParameters->has('isbn')->willReturn(false);
     $templatingEngine->renderResponse('search.html.twig', ['results' => SearchResults::asEmpty()])->willReturn($response);
     $this->searchByIsbnAction($request)->shouldReturn($response);
 }
 function it_searches_book_by_isbn_number(BookInterface $book, ObjectRepository $doctrineRepository)
 {
     $isbn = new Isbn('978-1-56619-909-4');
     $doctrineRepository->findOneBy(array('isbn.number' => $isbn))->willReturn($book);
     $this->searchByIsbn($isbn)->shouldBeLike(SearchResults::fromArrayOfBooks(array($book->getWrappedObject())));
     $doctrineRepository->findOneBy(array('isbn.number' => $isbn))->willReturn(null);
     $this->searchByIsbn($isbn)->shouldBeLike(SearchResults::asEmpty());
 }
 public function searchByIsbnAction(Request $request)
 {
     $searchResults = SearchResults::asEmpty();
     if ($request->query->has('isbn')) {
         $searchResults = $this->library->searchByIsbn(new Isbn($request->query->get('isbn')));
     }
     return $this->templatingEngine->renderResponse('search.html.twig', ['results' => $searchResults]);
 }
 public function searchByIsbn(Isbn $isbn)
 {
     $book = $this->doctrineRepository->findOneBy(array('isbn.number' => $isbn));
     if (null === $book) {
         return SearchResults::asEmpty();
     }
     return SearchResults::fromArrayOfBooks(array($book));
 }
 function it_returns_0_results_when_searching_by_isbn_and_empty()
 {
     $this->searchByIsbn(new Isbn('978-1-56619-909-4'))->shouldBe(SearchResults::asEmpty());
 }
 public function __construct()
 {
     $this->library = new InMemoryLibrary();
     $this->currentSearchResults = SearchResults::asEmpty();
 }