/** * @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); }