function it_returns_exactly_one_result_when_searching_by_exact_isbn_and_it_matches(BookInterface $book)
 {
     $isbn = new Isbn('978-1-56619-909-4');
     $book->isbn()->willReturn($isbn);
     $this->add($book);
     $this->searchByIsbn($isbn)->shouldBe(SearchResults::fromArrayOfBooks(array($book)));
 }
 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 searchByIsbn(Isbn $isbn)
 {
     $book = $this->doctrineRepository->findOneBy(array('isbn.number' => $isbn));
     if (null === $book) {
         return SearchResults::asEmpty();
     }
     return SearchResults::fromArrayOfBooks(array($book));
 }
 public function searchByIsbn(Isbn $isbn)
 {
     $books = $this->hasBookWithIsbn($isbn) ? array($this->books[(string) $isbn]) : array();
     return SearchResults::fromArrayOfBooks($books);
 }