19declare(strict_types=1);
23use PHPUnit\Framework\TestCase;
31 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
35 #[\PHPUnit\Framework\Attributes\DataProvider('invalidPaths')]
38 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
42 $this->assertFalse($instance->isPermitted(
$path)->isOk());
49 [
'/assessment/12/images/foo.png'],
50 [
'/assessment/12/34/images/foo/bar.png'],
51 [
'/assessment/12/ab/images/foo.png'],
52 [
'/assessment/ab/12/images/foo.png'],
53 [
'assessment/12/34/images/foo.png'],
57 #[\PHPUnit\Framework\Attributes\DataProvider('isPermittedProvider')]
60 $readable = $this->getMockBuilder(Readable::class)->disableOriginalConstructor()->getMock();
62 $readable->method(
'objectId')->with(6709)->willReturn($is_readable);
65 $result = $instance->isPermitted(
'/assessment/6709/389/images/foo.png');
66 $this->assertTrue($result->isOk());
67 $this->assertSame($is_readable, $result->value());
73 'With readable object path.' => [
true],
74 'Without readable object path.' => [
false],
static isPermittedProvider()
testIsPermittedWithValidPath(bool $is_readable)
testIsPermittedWithInvalidPath(string $path)