packages/requirements/tests/Fake/MemorySource.php

1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Fake;
6
7use Override;
8use Requirements\Model\Source;
9use Requirements\Source\SourceExtension;
10use Requirements\Source\Unit;
11
12/**
13 * A source extension whose document is one message held in memory.
14 */
15final class MemorySource implements SourceExtension
16{
17    /**
18     * Selects the single message unit, whatever the selector.
19     *
20     * @param Source $source The source declaration
21     * @param string $selector The selector
22     * @param string $directory The configuration directory
23     * @param bool $live Whether to read live
24     *
25     * @return list<Unit> The message:1 unit
26     */
27    #[Override]
28    public function select(Source $source, string $selector, string $directory, bool $live): array
29    {
30        return [new Unit('message:1', 'A service message.')];
31    }
32}
33