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['اورژانسی']); } }