Blame view

tests/Feature/FeatureTestCase.php 1.18 KB
b7c7a5f6   Alexey Boroda   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
  <?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']);
  	}
  }