major update

This commit is contained in:
2026-03-04 15:56:58 +01:00
parent 16759a2732
commit 8f4dd5840d
478 changed files with 24313 additions and 8201 deletions

View File

@@ -0,0 +1,36 @@
<?php
namespace MintyPHP\Tests\Service\Access;
use MintyPHP\Service\Access\PermissionGateway;
trait AuthorizationPolicyTestSupport
{
/**
* @param array<int, array<int, string>> $permissionsByUser
*/
private function permissionGatewayAllowing(array $permissionsByUser): PermissionGateway
{
$permissionGateway = $this->createMock(PermissionGateway::class);
$permissionGateway->method('userHas')
->willReturnCallback(static function (int $userId, string $permission) use ($permissionsByUser): bool {
return in_array($permission, $permissionsByUser[$userId] ?? [], true);
});
return $permissionGateway;
}
private function assertForbiddenDecision(mixed $decision, string $error = 'forbidden'): void
{
$this->assertFalse($decision->isAllowed());
$this->assertSame(403, $decision->status());
$this->assertSame($error, $decision->error());
}
private function assertDeniedDecision(mixed $decision, int $status, string $error): void
{
$this->assertFalse($decision->isAllowed());
$this->assertSame($status, $decision->status());
$this->assertSame($error, $decision->error());
}
}