finish acceptance tests and refactor IotaCodesClient to service container
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
|
||||
class AirportsCest
|
||||
{
|
||||
protected $uri = '/airports';
|
||||
|
||||
public function _before(AcceptanceTester $I)
|
||||
{
|
||||
}
|
||||
@@ -12,7 +14,81 @@ class AirportsCest
|
||||
}
|
||||
|
||||
// tests
|
||||
public function tryToTest(AcceptanceTester $I)
|
||||
public function listAirportsReturnsJson(AcceptanceTester $I)
|
||||
{
|
||||
$params = [];
|
||||
|
||||
$I->sendGET($this->uri, $params);
|
||||
$r = $I->grabResponse();
|
||||
|
||||
$I->seeResponseCodeIs(200, $r);
|
||||
$I->seeResponseIsJson();
|
||||
}
|
||||
|
||||
public function listAirportsReturns1ItemWhenPerPageIs1(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 listAirportsReturns2ItemWhenPerPageIs2(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 getAirportReturnsTripJson(AcceptanceTester $I)
|
||||
{
|
||||
$I->sendGET($this->uri, []);
|
||||
$r = $I->grabResponse();
|
||||
$data = json_decode($r, true);
|
||||
$airportId = $data['data'][0]['id'];
|
||||
|
||||
$params = [];
|
||||
$uri = $this->uri . '/' . $airportId;
|
||||
|
||||
$I->sendGET($uri, $params);
|
||||
$r = $I->grabResponse();
|
||||
|
||||
$I->seeResponseCodeIs(200, $r);
|
||||
$I->seeResponseIsJson();
|
||||
|
||||
$data = json_decode($r, true);
|
||||
$I->assertEquals('airports', $data['data']['type']);
|
||||
$I->assertEquals($airportId, $data['data']['id']);
|
||||
}
|
||||
|
||||
public function getAirportReturns400IfTripIdNotFound(AcceptanceTester $I)
|
||||
{
|
||||
$params = [];
|
||||
$uri = $this->uri . '/999999';
|
||||
|
||||
$I->sendGET($uri, $params);
|
||||
$r = $I->grabResponse();
|
||||
|
||||
$I->seeResponseCodeIs(400, $r);
|
||||
$I->seeResponseIsJson();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
|
||||
class FlightsCest
|
||||
{
|
||||
protected $uri = '/flights';
|
||||
|
||||
public function _before(AcceptanceTester $I)
|
||||
{
|
||||
}
|
||||
@@ -12,7 +14,133 @@ class FlightsCest
|
||||
}
|
||||
|
||||
// tests
|
||||
public function tryToTest(AcceptanceTester $I)
|
||||
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 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);
|
||||
}
|
||||
|
||||
private function getFirstTripId(AcceptanceTester $I)
|
||||
{
|
||||
$uri = '/trips/';
|
||||
$I->sendGET($this->uri, []);
|
||||
$r = $I->grabResponse();
|
||||
$data = json_decode($r, true);
|
||||
$tripId = $data['data'][0]['id'];
|
||||
return $tripId;
|
||||
}
|
||||
|
||||
private function addFlightToTrip(AcceptanceTester $I, $destination, $tripId)
|
||||
{
|
||||
$uri = '/trips/' . $tripId .'/flights';
|
||||
|
||||
$I->sendPost($uri, [
|
||||
'destination' => $destination
|
||||
]);
|
||||
return $I->grabResponse();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ class TripsCest
|
||||
$I->seeResponseIsJson();
|
||||
|
||||
$data = json_decode($r);
|
||||
$I->assertCount(1, $data->data, $data);
|
||||
$I->assertCount(1, $data->data, json_encode($data));
|
||||
}
|
||||
|
||||
public function listTripReturns2ItemWhenPerPageIs2(AcceptanceTester $I)
|
||||
@@ -56,7 +56,7 @@ class TripsCest
|
||||
$I->seeResponseIsJson();
|
||||
|
||||
$data = json_decode($r);
|
||||
$I->assertCount(2, $data->data, $data);
|
||||
$I->assertCount(2, $data->data, json_encode($data));
|
||||
}
|
||||
|
||||
public function getTripReturnsTripJson(AcceptanceTester $I)
|
||||
@@ -114,4 +114,42 @@ class TripsCest
|
||||
$data = json_decode($r, true);
|
||||
$I->assertCount($nbFlights+1, $data['data']['attributes']['flights']);
|
||||
}
|
||||
|
||||
public function addFlightReturns400WhenDestinationInvalid(AcceptanceTester $I)
|
||||
{
|
||||
$I->sendGET($this->uri, []);
|
||||
$r = $I->grabResponse();
|
||||
$data = json_decode($r, true);
|
||||
$tripId = $data['data'][0]['id'];
|
||||
$nbFlights = count($data['data'][0]['attributes']['flights']);
|
||||
|
||||
$params = [
|
||||
'destination' => 'BlueFin'
|
||||
];
|
||||
$uri = $this->uri . '/' . $tripId .'/flights';
|
||||
|
||||
$I->sendPost($uri, $params);
|
||||
$r = $I->grabResponse();
|
||||
|
||||
$I->seeResponseCodeIs(400, $r);
|
||||
$I->seeResponseIsJson();
|
||||
}
|
||||
|
||||
public function addFlightReturns400WhenDestinationNotSet(AcceptanceTester $I)
|
||||
{
|
||||
$I->sendGET($this->uri, []);
|
||||
$r = $I->grabResponse();
|
||||
$data = json_decode($r, true);
|
||||
$tripId = $data['data'][0]['id'];
|
||||
$nbFlights = count($data['data'][0]['attributes']['flights']);
|
||||
|
||||
$params = [];
|
||||
$uri = $this->uri . '/' . $tripId .'/flights';
|
||||
|
||||
$I->sendPost($uri, $params);
|
||||
$r = $I->grabResponse();
|
||||
|
||||
$I->seeResponseCodeIs(400, $r);
|
||||
$I->seeResponseIsJson();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user