/
AleksWork
/
diary_plants
Обзор
Документация
Войти
/
AleksWork
/
diary_plants
Код
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
tests/Unit/Domain/ValueObject/Enum/UserRoleTest.php
74 строки
2 KB
AlexeySerov
Add vote to user managers
14 май 2026, 16:57
14 май 2026, 16:57
fa52ab1
Код
Авторство
О чём код?
<?php namespace Unit\Domain\ValueObject\Enum; use InvalidArgumentException; use PHPUnit\Framework\TestCase; use App\Domain\ValueObject\Enum\UserRole; class UserRoleTest extends TestCase { public function testIsValid(): void { $this->assertTrue(UserRole::isValid('ROLE_ADMIN')); $this->assertTrue(UserRole::isValid('ROLE_USER')); $this->assertFalse(UserRole::isValid('ROLE_SUPER_ADMIN')); $this->assertFalse(UserRole::isValid('')); } public function testGetLabelReturnsRussianTranslation(): void { $this->assertEquals('user_role.admin', UserRole::getLabelKey('ROLE_ADMIN')); $this->assertEquals('user_role.user', UserRole::getLabelKey('ROLE_USER')); $this->assertEquals('user_role.unknown', UserRole::getLabelKey('UNKNOWN')); } public function testAllRolesToStringReturnsCommaSeparatedList(): void { $result = UserRole::AllRolesToString(); $this->assertStringContainsString('ROLE_USER', $result); $this->assertStringContainsString('ROLE_ADMIN', $result); $this->assertStringContainsString('ROLE_MANAGER', $result); $this->assertStringContainsString('ROLE_GUEST', $result); } public function testToStringConvertsMixedArrayToString(): void { $roles = [UserRole::ROLE_ADMIN, 'ROLE_USER']; $result = UserRole::toString($roles); $this->assertEquals('ROLE_ADMIN,ROLE_USER', $result); } public function testToStringThrowsExceptionOnInvalidType(): void { $this->expectException(InvalidArgumentException::class); UserRole::toString([123]); } public function testToArrayConvertsStringBackToEnumArray(): void { $rolesString = 'ROLE_ADMIN, ROLE_USER, INVALID_ROLE'; $result = UserRole::toArray($rolesString); $this->assertCount(2, $result); $this->assertSame(UserRole::ROLE_ADMIN, $result[0]); $this->assertSame(UserRole::ROLE_USER, $result[1]); } public function testToArrayReturnsEmptyArrayOnNullOrEmpty(): void { $this->assertEmpty(UserRole::toArray(null)); $this->assertEmpty(UserRole::toArray('')); } public function testGetChoicesForSymfonyForms(): void { $choices = UserRole::getChoices(); $this->assertArrayHasKey('user_role.manager', $choices); $this->assertEquals('ROLE_MANAGER', $choices['user_role.manager']); } }