/**
  * @param string $reservationCode
  * @return \Illuminate\Http\JsonResponse
  */
 public function update($reservationCode)
 {
     $validator = (new ReservationValidorBuilder())->create(Input::all());
     if ($validator->fails()) {
         return $this->responseValidationError($validator->messages());
     }
     $reservation = $this->service->read($reservationCode);
     if (empty($reservation)) {
         return $this->responseNotFound();
     }
     $this->service->update($reservation, $this->getUser(), Input::all());
     return $this->responseOk();
 }
 /**
  * @test
  */
 public function update()
 {
     $reservation = Reservation::find(1);
     $user = User::find(2);
     $inputs = ['asin' => 'asin1', 'quantity' => 3];
     $this->sut->update($reservation, $user, $inputs);
     $actual = Reservation::find(1);
     $this->assertSame(2, $actual->user_id);
     $this->assertSame(1, $actual->book_id);
     $this->assertSame(3, $actual->quantity);
     $this->assertSame('code1', $actual->reservation_code);
     $actual = Book::find(2);
     $this->assertSame(4, $actual->inventory);
     $actual = Book::find(1);
     $this->assertSame(7, $actual->inventory);
 }