packages/requirements/tests/Unit/Verification/VerificationResultTest.php

1<?php
2
3declare(strict_types=1);
4
5namespace Tests\Unit\Verification;
6
7use PHPUnit\Framework\Attributes\CoversClass;
8use PHPUnit\Framework\Attributes\Small;
9use PHPUnit\Framework\TestCase;
10use Requirements\Verification\VerificationResult;
11
12#[CoversClass(VerificationResult::class)]
13#[Small]
14final class VerificationResultTest extends TestCase
15{
16    public function testToArrayReportsEveryField(): void
17    {
18        self::assertSame(['status' => 'failed', 'tests' => 3, 'passed_targets' => 1, 'total_targets' => 2, 'message' => 'b: Expected failure.', 'deferred_targets' => 0], (new VerificationResult('failed', 3, 1, 2, 'b: Expected failure.'))->toArray());
19    }
20
21    public function testToArrayKeepsANullPassedTargetCountAndEmptyMessage(): void
22    {
23        self::assertSame(['status' => 'not-run', 'tests' => 0, 'passed_targets' => null, 'total_targets' => 2, 'message' => '', 'deferred_targets' => 0], (new VerificationResult('not-run', 0, null, 2))->toArray());
24    }
25    public function testToArrayReportsDeferredTargetsSeparatelyFromPassingTargets(): void
26    {
27        self::assertSame(['status' => 'deferred', 'tests' => 1, 'passed_targets' => 1, 'total_targets' => 2, 'message' => 'Deferred.', 'deferred_targets' => 1], (new VerificationResult('deferred', 1, 1, 2, 'Deferred.', 1))->toArray());
28    }
29}
30