/** * Run the database seeds. * * @return void */ public function run() { $repo = App::make(Books\BookRepository::class); $faker = App::make(Faker\Generator::class); foreach ($this->isbns as $isbn) { $sellersId = MemberId::generate(); $bookId = Books\BookId::generate(); $book = Books\Book::offer($bookId, $sellersId, $isbn, 1500); $repo->save($book); } }
/** * @test */ public function a_book_cannot_be_sold_twice() { $bookId = BookId::generate(); $memberId = MemberId::generate(); $buyersId1 = MemberId::generate(); $buyersId2 = MemberId::generate(); $book = Book::offer($bookId, $memberId, "0534408133", 1500); //15 euro $book->sellToMember($buyersId1); $this->expectException(\Exception::class); $this->expectExceptionMessage("A book cannot be sold twice"); $book->sellToMember($buyersId2); }
public function store(Request $req, BookRepository $repo) { $isbn = new \Isbn\Isbn(); ///@todo validation if (!$isbn->check->identify($req->input('isbn'))) { throw new \Exception('Not an ISBN'); } $isbn_10 = $isbn->hyphens->removeHyphens($req->input('isbn')); if ($isbn->check->identify($isbn_10) == 13) { $isbn_10 = $isbn->translate->to10($isbn_10); } $book = Book::offer(BookId::generate(), MemberId::generate(), $isbn_10, $req->input('price') * 100); $repo->save($book); return redirect('/books'); }