akaunting/tests/Feature/FeatureTestCase.php
2018-07-14 13:22:33 +03:00

64 lines
1.2 KiB
PHP

<?php
/**
* Created by PhpStorm.
* User: bgure
* Date: 13.07.2018
* Time: 19:44
*/
namespace Tests\Feature;
use App\Models\Auth\User;
use App\Models\Common\Company;
use Faker\Factory;
use Tests\TestCase;
abstract class FeatureTestCase extends TestCase
{
/**
* @var \Faker\Generator
*/
protected $faker;
/** @var User */
protected $user;
/** @var Company */
protected $company;
protected function setUp()
{
parent::setUp();
$this->faker = Factory::create();
$this->user = User::first();
$this->company = $this->user->first()->companies()->first();
}
/**
* Empty for default user.
*
* @param User|null $user
* @param Company|null $company
* @return FeatureTestCase
*/
public function loginAs(User $user = null, Company $company = null)
{
if(!$user) $user = $this->user;
if(!$company) $company = $user->companies()->first();
$this->startSession();
return $this->actingAs($user)
->withSession(['company_id' => $company->id]);
}
public function assertFlashLevel($excepted)
{
$flash["level"] = null;
if($flashMessage = session('flash_notification'))
{
$flash = $flashMessage->first();
}
$this->assertEquals($excepted, $flash['level']);
}
}