|
5 | 5 | use Kiboko\Component\PHPUnitExtension\Constraint\Builder\BuilderProducesCodeThat; |
6 | 6 | use Kiboko\Component\PHPUnitExtension\Constraint\Pipeline\PipelineLoadsLike; |
7 | 7 | use Kiboko\Component\PHPUnitExtension\Constraint\Pipeline\PipelineWritesFile; |
| 8 | +use Kiboko\Contract\Pipeline\PipelineRunnerInterface; |
8 | 9 | use PhpParser\Builder as DefaultBuilder; |
9 | 10 | use PHPUnit\Framework\Constraint\Constraint; |
10 | 11 | use PHPUnit\Framework\Constraint\IsEqual; |
|
14 | 15 | trait LoaderBuilderAssertTrait |
15 | 16 | { |
16 | 17 | abstract public static function assertThat($value, Constraint $constraint, string $message = ''): void; |
| 18 | + abstract public function pipelineRunner(): PipelineRunnerInterface; |
17 | 19 |
|
18 | 20 | protected function assertBuildsLoaderLoadsLike(iterable $expected, iterable $input, DefaultBuilder $builder, string $message = '') |
19 | 21 | { |
20 | 22 | $this->assertThat($builder, new BuilderProducesCodeThat( |
21 | | - new PipelineLoadsLike($expected, $input, fn ($item) => new IsEqual($item)) |
| 23 | + new PipelineLoadsLike($expected, $input, fn ($item) => new IsEqual($item), $this->pipelineRunner()) |
22 | 24 | ), $message); |
23 | 25 | } |
24 | 26 |
|
25 | 27 | protected function assertBuildsLoaderDoesNotLoadLike(iterable $expected, iterable $input, DefaultBuilder $builder, string $message = '') |
26 | 28 | { |
27 | 29 | $this->assertThat($builder, new LogicalNot( |
28 | 30 | new BuilderProducesCodeThat( |
29 | | - new PipelineLoadsLike($expected, $input, fn ($item) => new IsEqual($item)) |
| 31 | + new PipelineLoadsLike($expected, $input, fn ($item) => new IsEqual($item), $this->pipelineRunner()) |
30 | 32 | ), |
31 | 33 | ), $message); |
32 | 34 | } |
33 | 35 |
|
34 | 36 | protected function assertBuildsLoaderLoadsExactly(iterable $expected, iterable $input, DefaultBuilder $builder, string $message = '') |
35 | 37 | { |
36 | 38 | $this->assertThat($builder, new BuilderProducesCodeThat( |
37 | | - new PipelineLoadsLike($expected, $input, fn ($item) => new IsIdentical($item)) |
| 39 | + new PipelineLoadsLike($expected, $input, fn ($item) => new IsIdentical($item), $this->pipelineRunner()) |
38 | 40 | ), $message); |
39 | 41 | } |
40 | 42 |
|
41 | 43 | protected function assertBuildsLoaderDoesNotLoadExactly(iterable $expected, iterable $input, DefaultBuilder $builder, string $message = '') |
42 | 44 | { |
43 | 45 | $this->assertThat($builder, new LogicalNot( |
44 | 46 | new BuilderProducesCodeThat( |
45 | | - new PipelineLoadsLike($expected, $input, fn ($item) => new IsIdentical($item)) |
| 47 | + new PipelineLoadsLike($expected, $input, fn ($item) => new IsIdentical($item), $this->pipelineRunner()) |
46 | 48 | ), |
47 | 49 | ), $message); |
48 | 50 | } |
49 | 51 |
|
50 | 52 | protected function assertBuildsLoaderProducesFile(string $expected, iterable $input, DefaultBuilder $builder, string $message = '') |
51 | 53 | { |
52 | 54 | $this->assertThat($builder, new BuilderProducesCodeThat( |
53 | | - new PipelineWritesFile($input, $expected), |
| 55 | + new PipelineWritesFile($input, $expected, $this->pipelineRunner()), |
54 | 56 | ), $message); |
55 | 57 | } |
56 | 58 |
|
57 | 59 | protected function assertBuildsLoaderDoesNotProduceFile(string $expected, iterable $input, DefaultBuilder $builder, string $message = '') |
58 | 60 | { |
59 | 61 | $this->assertThat($builder, new LogicalNot( |
60 | 62 | new BuilderProducesCodeThat( |
61 | | - new PipelineWritesFile($input, $expected), |
| 63 | + new PipelineWritesFile($input, $expected, $this->pipelineRunner()), |
62 | 64 | ), |
63 | 65 | ), $message); |
64 | 66 | } |
|
0 commit comments