### Question:
FindBookByIsbnInteractor implements FindBookByIsbn { @Override public BookOutputData getBook(BookByIsbnInputData bookByIsbnInputData) { Optional<Book> book = bookGateway.getBookByIsbn(bookByIsbnInputData.getIsbn()); if(!book.isPresent()) { throw new BooksNotFoundException(); } return book.get().mapToBookOutputData(); } FindBookByIsbnInteractor(BookGateway bookGateway); @Override BookOutputData getBook(BookByIsbnInputData bookByIsbnInputData);  }### Answer:
@Test public void should_return_a_book_when_we_search_by_isbn() throws Exception { BookByIsbnInputData bookByIsbnInputData = BookByIsbnInputData.builder() .isbn(ISBN) .build(); Optional<Book> book = Optional.of(cleanArchitectureBook); when(bookGateway.getBookByIsbn(any(Long.class))).thenReturn(book); BookOutputData bookOutputData = findBookByIsbnInteractor.getBook(bookByIsbnInputData); assertThat(bookOutputData).isEqualToComparingFieldByField(cleanArchitectureBook.mapToBookOutputData()); }