mirror of
https://github.com/archtechx/enums.git
synced 2025-12-13 03:54:03 +00:00
add enum description
This commit is contained in:
parent
20fa78c2b1
commit
c983a9f50b
5 changed files with 83 additions and 2 deletions
|
|
@ -15,6 +15,8 @@ use ArchTech\Enums\InvokableCases;
|
|||
use ArchTech\Enums\Names;
|
||||
use ArchTech\Enums\Options;
|
||||
use ArchTech\Enums\Values;
|
||||
use ArchTech\Enums\Descriptions;
|
||||
use ArchTech\Enums\DescriptionInterface;
|
||||
|
||||
uses(ArchTech\Enums\Tests\TestCase::class)->in('Pest');
|
||||
|
||||
|
|
@ -49,10 +51,20 @@ function something()
|
|||
// ..
|
||||
}
|
||||
|
||||
enum Status: int
|
||||
enum Status: int implements DescriptionInterface
|
||||
{
|
||||
use InvokableCases, Options, Names, Values;
|
||||
use InvokableCases, Options, Names, Values, Descriptions;
|
||||
|
||||
case PENDING = 0;
|
||||
case DONE = 1;
|
||||
|
||||
public function getDescription(): string
|
||||
{
|
||||
return match ($this) {
|
||||
self::PENDING => 'this is `PENDING` description',
|
||||
self::DONE => 'this is `DONE` description',
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
5
tests/Pest/DescriptionsTest.php
Normal file
5
tests/Pest/DescriptionsTest.php
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<?php
|
||||
|
||||
it('can return an array of case descriptions')
|
||||
->expect(Status::descriptions())
|
||||
->toBe([0 => 'this is `PENDING` description', 1 => 'this is `DONE` description']);
|
||||
Loading…
Add table
Add a link
Reference in a new issue