From 6446012411dbd4458978e609897d812ff406428b Mon Sep 17 00:00:00 2001 From: richard Date: Wed, 21 Mar 2018 21:25:38 -0400 Subject: [PATCH] update .env.example to include redis config fix broken test --- .env.example | 2 + app/Http/Controllers/FlightController.php | 18 +++--- tests/acceptance/FlightsCest.php | 69 ++++++++++++----------- 3 files changed, 46 insertions(+), 43 deletions(-) diff --git a/.env.example b/.env.example index b1e21e7..e9fd414 100644 --- a/.env.example +++ b/.env.example @@ -13,5 +13,7 @@ DB_PASSWORD=jqbdui1bdb CACHE_DRIVER=redis QUEUE_DRIVER=sync +REDIS_HOST=redis +REDIS_PORT=6379 IATACODE_API_KEY=8105c628-a86c-41af-85da-828bcf8190e0 diff --git a/app/Http/Controllers/FlightController.php b/app/Http/Controllers/FlightController.php index 51f6255..90f685d 100644 --- a/app/Http/Controllers/FlightController.php +++ b/app/Http/Controllers/FlightController.php @@ -35,7 +35,7 @@ class FlightController extends Controller public function listFlights(Request $request) { $flightCollection = Flights::all(); - + //add pagination $per_page = $request->input('per_page', 10); $per_page = (empty($per_page)) ? 10 : $per_page; @@ -46,13 +46,13 @@ class FlightController extends Controller $per_page, $page ); - + $result = (new Collection($paginator, new FlightTransform(), 'trips')) ->setPaginator(new IlluminatePaginatorAdapter($paginator)); - + return $this->JsonApiResponse($result, 200); } - + /** * @api {get} /flights/:id get flight * @apiName Get Flight @@ -71,16 +71,16 @@ class FlightController extends Controller public function getFlight(Request $request, $id) { $flight = Flights::find($id); - + if (! $flight) { return $this->returnErrorMessage("flight id $id not found", 400); } - + $result = new Item($flight, new FlightTransform(), 'flights'); - + return $this->JsonApiResponse($result, 200); } - + /** * @api {delete} /flights/:id delete a flight * @apiName Delete a Flight @@ -101,6 +101,6 @@ class FlightController extends Controller $deleted = $flight->delete(); } - return response()->json(['message' => "flight $id has been removed"], 200); + return response()->json('', 204); } } diff --git a/tests/acceptance/FlightsCest.php b/tests/acceptance/FlightsCest.php index 13a543a..801ee88 100755 --- a/tests/acceptance/FlightsCest.php +++ b/tests/acceptance/FlightsCest.php @@ -4,7 +4,7 @@ class FlightsCest { protected $uri = '/flights'; - + public function _before(AcceptanceTester $I) { } @@ -17,127 +17,128 @@ class FlightsCest public function listFlightsReturnsJson(AcceptanceTester $I) { $params = []; - + $I->sendGET($this->uri, $params); $r = $I->grabResponse(); - + $I->seeResponseCodeIs(200, $r); $I->seeResponseIsJson(); } - + public function listFlightsReturns1ItemWhenPerPageIs1(AcceptanceTester $I) { $params = [ 'page' => 1, 'per_page' => 1 ]; - + $I->sendGET($this->uri, $params); $r = $I->grabResponse(); - + $I->seeResponseCodeIs(200, $r); $I->seeResponseIsJson(); - + $data = json_decode($r); $I->assertCount(1, $data->data, json_encode($data)); } - + public function listFlightsReturns2ItemWhenPerPageIs2(AcceptanceTester $I) { $params = [ 'page' => 1, 'per_page' => 2 ]; - + $I->sendGET($this->uri, $params); $r = $I->grabResponse(); - + $I->seeResponseCodeIs(200, $r); $I->seeResponseIsJson(); - + $data = json_decode($r); $I->assertCount(2, $data->data, json_encode($data)); } - + public function listFlightsDoesNotReturn500WhenPerPageIsInvalid(AcceptanceTester $I) { $params = [ 'page' => 1, 'per_page' => '' ]; - + $I->sendGET($this->uri, $params); $r = $I->grabResponse(); - + $I->seeResponseCodeIs(200, $r); $I->seeResponseIsJson(); } - + public function listFlightsReturns0ItemWhenPageIsBeyondEndOfCollection(AcceptanceTester $I) { $params = [ 'page' => 99999, 'per_page' => 2 ]; - + $I->sendGET($this->uri, $params); $r = $I->grabResponse(); - + $I->seeResponseCodeIs(200, $r); $I->seeResponseIsJson(); - + $data = json_decode($r); $I->assertCount(0, $data->data, json_encode($data)); } - - + + public function getFlightReturnsTripJson(AcceptanceTester $I) { $I->sendGET($this->uri, []); $r = $I->grabResponse(); $data = json_decode($r, true); $tripId = $data['data'][0]['id']; - + $params = []; $uri = $this->uri . '/' . $tripId; - + $I->sendGET($uri, $params); $r = $I->grabResponse(); - + $I->seeResponseCodeIs(200, $r); $I->seeResponseIsJson(); - + $data = json_decode($r, true); $I->assertEquals('flights', $data['data']['type']); $I->assertEquals($tripId, $data['data']['id']); } - + public function getFlightReturns400IfTripIdNotFound(AcceptanceTester $I) { $params = []; $uri = $this->uri . '/999999'; - + $I->sendGET($uri, $params); $r = $I->grabResponse(); - + $I->seeResponseCodeIs(400, $r); $I->seeResponseIsJson(); } - + public function removeFlightRemovesFlightFromTrips(AcceptanceTester $I) { $tripId = $this->getFirstTripId($I); $r = $this->addFlightToTrip($I, 'YUL', $tripId); $data = json_decode($r, true); - + $flightId = $data['data']['attributes']['flights'][0]['id']; $uri = $this->uri .'/'.$flightId; - + $I->sendDELETE($uri); - + $I->seeResponseCodeIs(204); + $I->seeResponseEquals(''); } - + private function getFirstTripId(AcceptanceTester $I) { $uri = '/trips/'; @@ -147,11 +148,11 @@ class FlightsCest $tripId = $data['data'][0]['id']; return $tripId; } - + private function addFlightToTrip(AcceptanceTester $I, $destination, $tripId) { $uri = '/trips/' . $tripId .'/flights'; - + $I->sendPost($uri, [ 'destination' => $destination ]);