Exemplo n.º 1
0
 public function testCan()
 {
     /*
     |------------------------------------------------------------
     | Set
     |------------------------------------------------------------
     */
     $permA = $this->mockPermission('manage_a');
     $permB = $this->mockPermission('manage_b');
     $permC = $this->mockPermission('manage_c');
     $roleA = $this->mockRole('RoleA');
     $roleB = $this->mockRole('RoleB');
     $roleA->perms = [$permA];
     $roleB->perms = [$permB, $permC];
     $user = new HasRoleUser();
     $user->roles = [$roleA, $roleB];
     /*
     |------------------------------------------------------------
     | Assertion
     |------------------------------------------------------------
     */
     $this->assertTrue($user->can('manage_a'));
     $this->assertTrue($user->can('manage_b'));
     $this->assertTrue($user->can('manage_c'));
     $this->assertFalse($user->can('manage_d'));
     $this->assertTrue($user->can(['manage_a', 'manage_b', 'manage_c']));
     $this->assertTrue($user->can(['manage_a', 'manage_b', 'manage_d']));
     $this->assertFalse($user->can(['manage_a', 'manage_b', 'manage_d'], true));
     $this->assertFalse($user->can(['manage_d', 'manage_e']));
 }
Exemplo n.º 2
0
 public function testCanWithPlaceholderSupport()
 {
     /*
     |------------------------------------------------------------
     | Set
     |------------------------------------------------------------
     */
     $permA = $this->mockPermission('admin.posts');
     $permB = $this->mockPermission('admin.pages');
     $permC = $this->mockPermission('admin.users');
     $role = $this->mockRole('Role');
     $role->perms = [$permA, $permB, $permC];
     $user = new HasRoleUser();
     $user->roles = [$role];
     /*
     |------------------------------------------------------------
     | Expectation
     |------------------------------------------------------------
     */
     $role->shouldReceive('cachedPermissions')->times(6)->andReturn($role->perms);
     Config::shouldReceive('get')->with('cache.ttl', 60)->times(6)->andReturn('1440');
     Cache::shouldReceive('remember')->times(6)->andReturn($user->roles);
     /*
     |------------------------------------------------------------
     | Assertion
     |------------------------------------------------------------
     */
     $this->assertTrue($user->can('admin.posts'));
     $this->assertTrue($user->can('admin.pages'));
     $this->assertTrue($user->can('admin.users'));
     $this->assertFalse($user->can('admin.config'));
     $this->assertTrue($user->can(['admin.*']));
     $this->assertFalse($user->can(['site.*']));
 }