EmployeeUnitTest.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace Tests\Unit\Employees;
  3. use App\Shop\Employees\Employee;
  4. use App\Shop\Employees\Repositories\EmployeeRepository;
  5. use App\Shop\Roles\Repositories\RoleRepository;
  6. use App\Shop\Roles\Role;
  7. use Tests\TestCase;
  8. class EmployeeUnitTest extends TestCase
  9. {
  10. /** @test */
  11. public function it_can_list_all_the_roles_associated_to_the_employee()
  12. {
  13. $employee = factory(Employee::class)->create();
  14. $roleRepo = new RoleRepository(new Role);
  15. $userRole = $roleRepo->createRole(['name' => 'user']);
  16. $employeeRepo = new EmployeeRepository($employee);
  17. $employeeRepo->syncRoles([$userRole->id]);
  18. $employeeRoles = $employeeRepo->listRoles();
  19. $this->assertCount(1, $employeeRoles->all());
  20. $employeeRoles->each(function (Role $role) use ($userRole) {
  21. $this->assertEquals($userRole->name, $role->name);
  22. });
  23. }
  24. /** @test */
  25. public function it_can_attach_or_detach_the_employee_role()
  26. {
  27. $employee = factory(Employee::class)->create();
  28. $role = factory(Role::class)->create();
  29. $employee->roles()->attach($role);
  30. $this->assertTrue($employee->hasRole($role->name));
  31. $employee->roles()->detach($role);
  32. $this->assertFalse($employee->hasRole($role->name));
  33. }
  34. }