trove/tests/Unit/Enums/CrawlOutcomeEnumTest.php

35 lines
1 KiB
PHP

<?php
declare(strict_types=1);
namespace Tests\Unit\Enums;
use App\Enums\CrawlOutcomeEnum;
use Tests\TestCase;
class CrawlOutcomeEnumTest extends TestCase
{
public function test_all_expected_cases_exist_with_correct_backing_values(): void
{
$expected = [
'Success' => 'success',
'Failed' => 'failed',
'Timeout' => 'timeout',
'BlockedRobots' => 'blocked_robots',
'Blocked4xx' => 'blocked_4xx',
'Blocked5xx' => 'blocked_5xx',
];
foreach ($expected as $caseName => $backingValue) {
$case = CrawlOutcomeEnum::from($backingValue);
$this->assertSame($caseName, $case->name, "Case name for '{$backingValue}' should be '{$caseName}'");
$this->assertSame($backingValue, $case->value, "Backing value for '{$caseName}' should be '{$backingValue}'");
}
}
public function test_enum_has_exactly_six_cases(): void
{
$this->assertCount(6, CrawlOutcomeEnum::cases());
}
}