feat: add comprehensive tests for Medium, OtpCode, Shift models and various Enums
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\Unit\Enums;
|
||||
|
||||
use App\Enums\DocumentPriorityEnum;
|
||||
use App\Enums\ShiftDayEnum;
|
||||
use Tests\TestCase;
|
||||
|
||||
class EnumHasOptionsTest extends TestCase
|
||||
{
|
||||
public function test_values_returns_backing_values_in_declaration_order(): void
|
||||
{
|
||||
$this->assertSame(['عادی', 'اورژانسی'], DocumentPriorityEnum::values());
|
||||
}
|
||||
|
||||
public function test_keys_returns_case_names_in_declaration_order(): void
|
||||
{
|
||||
$this->assertSame(['Medium', 'High'], DocumentPriorityEnum::keys());
|
||||
}
|
||||
|
||||
public function test_from_name_resolves_case_by_name(): void
|
||||
{
|
||||
$this->assertSame(DocumentPriorityEnum::High, DocumentPriorityEnum::fromName('High'));
|
||||
$this->assertSame(ShiftDayEnum::Friday, ShiftDayEnum::fromName('Friday'));
|
||||
}
|
||||
|
||||
public function test_from_name_returns_null_for_unknown_or_value_input(): void
|
||||
{
|
||||
$this->assertNull(DocumentPriorityEnum::fromName('Urgent'));
|
||||
$this->assertNull(DocumentPriorityEnum::fromName(DocumentPriorityEnum::High->value));
|
||||
$this->assertNull(DocumentPriorityEnum::fromName('high'));
|
||||
}
|
||||
|
||||
public function test_options_is_keyed_by_value_with_translation_per_case(): void
|
||||
{
|
||||
$options = DocumentPriorityEnum::options();
|
||||
|
||||
$this->assertSame(['عادی', 'اورژانسی'], array_keys($options));
|
||||
$this->assertSame(__('enums.DocumentPriorityEnum.Medium'), $options['عادی']);
|
||||
$this->assertSame(__('enums.DocumentPriorityEnum.High'), $options['اورژانسی']);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user