Some Error handling and acceptance tests

This commit is contained in:
Richard Morgan
2017-05-15 08:56:10 -04:00
parent 42dc785735
commit 2c8c692890
21 changed files with 457 additions and 126 deletions

View File

@@ -8,5 +8,9 @@ class_name: AcceptanceTester
modules:
enabled:
- PhpBrowser:
url: http://localhost/myapp
- \Helper\Acceptance
url: http://localhost
- REST:
depends: PhpBrowser
url: 'http://nginx'
- Asserts
- \Helper\Acceptance

View File

@@ -0,0 +1,18 @@
<?php
class AirportsCest
{
public function _before(AcceptanceTester $I)
{
}
public function _after(AcceptanceTester $I)
{
}
// tests
public function tryToTest(AcceptanceTester $I)
{
}
}

View File

@@ -0,0 +1,18 @@
<?php
class FlightsCest
{
public function _before(AcceptanceTester $I)
{
}
public function _after(AcceptanceTester $I)
{
}
// tests
public function tryToTest(AcceptanceTester $I)
{
}
}

117
tests/acceptance/TripsCest.php Executable file
View File

@@ -0,0 +1,117 @@
<?php
class TripsCest
{
protected $uri = '/trips';
public function _before(AcceptanceTester $I)
{
}
public function _after(AcceptanceTester $I)
{
}
// tests
public function listTripsReturnsJson(AcceptanceTester $I)
{
$params = [];
$I->sendGET($this->uri, $params);
$r = $I->grabResponse();
$I->seeResponseCodeIs(200, $r);
$I->seeResponseIsJson();
}
public function listTripReturns1ItemWhenPerPageIs1(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, $data);
}
public function listTripReturns2ItemWhenPerPageIs2(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, $data);
}
public function getTripReturnsTripJson(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('trips', $data['data']['type']);
$I->assertEquals($tripId, $data['data']['id']);
}
public function getTripReturns400IfTripIdNotFound(AcceptanceTester $I)
{
$params = [];
$uri = $this->uri . '/999999';
$I->sendGET($uri, $params);
$r = $I->grabResponse();
$I->seeResponseCodeIs(400, $r);
$I->seeResponseIsJson();
}
public function addFlightAttachesNewFlightOnTrip(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' => 'YUL'
];
$uri = $this->uri . '/' . $tripId .'/flights';
$I->sendPost($uri, $params);
$r = $I->grabResponse();
$I->seeResponseCodeIs(201, $r);
$I->seeResponseIsJson();
$data = json_decode($r, true);
$I->assertCount($nbFlights+1, $data['data']['attributes']['flights']);
}
}