RoleTest.php 980 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Tests\Unit\Auth;
  4. use App\Domain\Auth\Role;
  5. use PHPUnit\Framework\TestCase;
  6. final class RoleTest extends TestCase
  7. {
  8. public function testAdminSatisfiesEverything(): void
  9. {
  10. self::assertTrue(Role::Admin->satisfies(Role::Viewer));
  11. self::assertTrue(Role::Admin->satisfies(Role::Operator));
  12. self::assertTrue(Role::Admin->satisfies(Role::Admin));
  13. }
  14. public function testOperatorSatisfiesViewerButNotAdmin(): void
  15. {
  16. self::assertTrue(Role::Operator->satisfies(Role::Viewer));
  17. self::assertTrue(Role::Operator->satisfies(Role::Operator));
  18. self::assertFalse(Role::Operator->satisfies(Role::Admin));
  19. }
  20. public function testViewerOnlySatisfiesViewer(): void
  21. {
  22. self::assertTrue(Role::Viewer->satisfies(Role::Viewer));
  23. self::assertFalse(Role::Viewer->satisfies(Role::Operator));
  24. self::assertFalse(Role::Viewer->satisfies(Role::Admin));
  25. }
  26. }