tests/acceptance/TripControllerTest.php
<?php
namespace Tests\Acceptance;
use Tests\AcceptanceTestCase;
use App\Entities\Trip;
use App\Entities\Type;
class TripControllerTest extends AcceptanceTestCase
{
public function testView()
{
$this->visit('/')->see('mdl-navigation__link" href="'.$this->baseUrl.'/trip">');
$this->visit('/trip')
->see('<i class="material-icons">filter_list</i>')
;
}
public function testCreate()
{
$fuelType = Type::where('entity_key', 'fuel')->where('name', 'unleaded')->first();
$this->visit('/trip')->see('<a href="'.$this->baseUrl.'/trip/create');
$this->visit('/trip/create');
$this->type('01/01/2016 15:15:15', 'pickup_date')
->type('02/01/2016 15:15:15', 'deliver_date')
->type('1200 First Av', 'pickup_place')
->type('345 63th St', 'deliver_place')
->type('320', 'begin_mileage')
->type('450', 'end_mileage')
->type('130', 'total_mileage')
->type('13.60', 'fuel_cost')
->type('50.00', 'fuel_amount')
->type('Descricao', 'description')
->type($fuelType->id, 'fuel_type')
->select('0', 'tank_fill_up')
->press('Enviar')
->seePageIs('/trip')
;
$this->seeInDatabase(
'trips',
[
'pickup_date' => '2016-01-01 15:15:15',
'deliver_date' => '2016-01-02 15:15:15',
'pickup_place' => '1200 First Av',
'deliver_place' => '345 63th St',
'begin_mileage' => 320,
'end_mileage' => 450,
'total_mileage' => 130,
'fuel_cost' => 13.6,
'fuel_amount' => 50,
'fuel_type' => $fuelType->id,
'tank_fill_up' => 0,
'description' => 'Descricao',
]
);
}
public function testUpdate()
{
$fuelType = Type::where('entity_key', 'fuel')->where('name', 'premium')->first();
$this->visit('/trip/'.Trip::all()->last()['id'].'/edit');
$this->type('01/02/2016 15:15:15', 'pickup_date')
->type('02/02/2016 15:15:15', 'deliver_date')
->type('1220 First Av', 'pickup_place')
->type('342 63th St', 'deliver_place')
->type('322', 'begin_mileage')
->type('452', 'end_mileage')
->type('132', 'total_mileage')
->type('13.20', 'fuel_cost')
->type('20.00', 'fuel_amount')
->type('Descricao2', 'description')
->type($fuelType->id, 'fuel_type')
->select('1', 'tank_fill_up')
->press('Enviar')
->seePageIs('/trip')
;
$this->seeInDatabase(
'trips',
[
'pickup_date' => '2016-02-01 15:15:15',
'deliver_date' => '2016-02-02 15:15:15',
'pickup_place' => '1220 First Av',
'deliver_place' => '342 63th St',
'begin_mileage' => 322,
'end_mileage' => 452,
'total_mileage' => 132,
'fuel_cost' => 13.2,
'fuel_amount' => 20,
'fuel_type' => $fuelType->id,
'tank_fill_up' => 1,
'description' => 'Descricao2',
]
);
}
public function testDelete()
{
$idDelete = Trip::all()->last()['id'];
$this->seeInDatabase('trips', ['id' => $idDelete]);
$this->visit('/trip/destroy/'.$idDelete);
$this->seeIsSoftDeletedInDatabase('trips', ['id' => $idDelete]);
}
public function testErrors()
{
$this->visit('/trip/create')
->press('Enviar')
->seePageIs('/trip/create')
->see('de um valor para o campo pickup date.</span>')
->see('de um valor para o campo end mileage.</span>')
->see('<span class="mdl-textfield__error">O campo fuel cost dever')
->see('<span class="mdl-textfield__error">O campo fuel amount dever')
;
}
public function testFilters()
{
$this->visit('/trip')
->type('Generic Car', 'vehicle')
->type('delivery', 'trip_type')
->type('01/01/2016 00:00:00', 'pickup_date')
->type('15,00', 'fuel_cost')
->press('Buscar')
->see('Generic Car</div>')
->see('delivery</div>')
->see('01/01/2016 00:00:00</div>')
->see('15,00</div>')
;
}
public function testSort()
{
$this->visit('/trip?id=&vehicle=&trip-type=&pickup-date=&fuel-cost=&sort=id-desc')
->see('mode_edit</i>');
$this->visit('/trip?id=&vehicle=&trip-type=&pickup-date=&fuel-cost=&sort=id-asc')
->see('mode_edit</i>');
$this->visit('/trip?id=&vehicle=&trip-type=&pickup-date=&fuel-cost=&sort=vehicle-desc')
->see('mode_edit</i>');
$this->visit('/trip?id=&vehicle=&trip-type=&pickup-date=&fuel-cost=&sort=vehicle-asc')
->see('mode_edit</i>');
$this->visit('/trip?id=&vehicle=&trip-type=&pickup-date=&fuel-cost=&sort=trip-type-desc')
->see('mode_edit</i>');
$this->visit('/trip?id=&vehicle=&trip-type=&pickup-date=&fuel-cost=&sort=trip-type-asc')
->see('mode_edit</i>');
$this->visit('/trip?id=&vehicle=&trip-type=&pickup-date=&fuel-cost=&sort=pickup-date-desc')
->see('mode_edit</i>');
$this->visit('/trip?id=&vehicle=&trip-type=&pickup-date=&fuel-cost=&sort=pickup-date-asc')
->see('mode_edit</i>');
$this->visit('/trip?id=&vehicle=&trip-type=&pickup-date=&fuel-cost=&sort=fuel-cost-desc')
->see('mode_edit</i>');
$this->visit('/trip?id=&vehicle=&trip-type=&pickup-date=&fuel-cost=&sort=fuel-cost-asc')
->see('mode_edit</i>');
}
}