packages/deriver/tests/Unit/Reporter/ReporterTest.php
1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Reporter;
6
7use Deriver\Deriver\Candidate\CandidateCollection;
8use Deriver\Deriver\Candidate\ResultRef;
9use Deriver\Reporter\JsonReporter;
10use Deriver\Reporter\Reporter;
11use Deriver\Reporter\TextReporter;
12use PHPUnit\Framework\Attributes\CoversNothing;
13use PHPUnit\Framework\Attributes\DataProvider;
14use PHPUnit\Framework\TestCase;
15
16#[CoversNothing]
17final class ReporterTest extends TestCase
18{
19 #[DataProvider('providerReporters')]
20 public function testReportAcceptsACollectionWithoutAnAnalysisSession(Reporter $reporter): void
21 {
22 $collection = new CandidateCollection([], new ResultRef('r'));
23 self::assertStringEndsWith("\n", $reporter->report($collection));
24 self::assertCount(0, $collection);
25 }
26
27 /**
28 * @return list<array{Reporter}>
29 */
30 public static function providerReporters(): array
31 {
32 return [[new TextReporter()], [new JsonReporter()]];
33 }
34}
35