alias(static fn (int $id): bool => $id !== 5); Functions\when('current_user_can')->alias(static fn (string $cap, int $id): bool => $cap === 'read_post' && $id !== 6); Functions\when('wp_get_attachment_url')->alias(static fn (int $id): string|false => $id === 8 ? false : "https://kunde.test/$id.jpg"); Functions\when('get_post_meta')->justReturn('Alt-Text'); } public function testReadableImagesOnly(): void { $media = new WpMediaResolver(); self::assertSame(['url' => 'https://kunde.test/33.jpg', 'alt' => 'Alt-Text'], $media->image(33)); self::assertNull($media->image(0), 'no id'); self::assertNull($media->image(5), 'no image'); self::assertNull($media->image(6), 'not readable'); self::assertNull($media->image(8), 'no url'); } }