Skip to content

Commit 4f26c31

Browse files
author
igor-chepurnoi
committed
update README
1 parent a173bdb commit 4f26c31

File tree

4 files changed

+67
-60
lines changed

4 files changed

+67
-60
lines changed

README.md

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,12 @@ to the require section of your `composer.json` file.
4141
```php
4242
use yii2mod\enum\helpers\BaseEnum;
4343

44-
class BooleanEnum extends BaseEnum
44+
class PostStatus extends BaseEnum
4545
{
46-
const YES = 1;
47-
const NO = 0;
46+
const PENDING = 0;
47+
const APPROVED = 1;
48+
const REJECTED = 2;
49+
const POSTPONED = 3;
4850

4951
/**
5052
* @var string message category
@@ -53,21 +55,26 @@ class BooleanEnum extends BaseEnum
5355
*/
5456
public static $messageCategory = 'app';
5557

58+
/**
59+
* @var array
60+
*/
5661
public static $list = [
57-
self::YES => 'Yes',
58-
self::NO => 'No'
62+
self::PENDING => 'Pending',
63+
self::APPROVED => 'Approved',
64+
self::REJECTED => 'Rejected',
65+
self::POSTPONED => 'Postponed',
5966
];
6067
}
6168
```
6269
## Usage
6370
```php
64-
BooleanEnum::getConstantsByValue() // [1 => 'YES', 0 => 'NO']
65-
BooleanEnum::getConstantsByName() // ['YES' => 1, 'NO' => 0]
66-
BooleanEnum::isValidName(1) // false
67-
BooleanEnum::isValidName('YES') // true
68-
BooleanEnum::isValidValue(1) // true
69-
BooleanEnum::isValidValue('Yes') // false
70-
BooleanEnum::listData() // [1 => 'Yes', 0 => 'No']
71-
BooleanEnum::getLabel(1) // Yes
72-
BooleanEnum::getValueByName('Yes') // 1
71+
PostStatus::getConstantsByValue() // ['PENDING', 'APPROVED', 'REJECTED', 'POSTPONED']
72+
PostStatus::getConstantsByName() // ['PENDING' => 0, 'APPROVED' => 1, 'REJECTED' => 2, 'POSTPONED' => 3]
73+
PostStatus::isValidName(1) // false
74+
PostStatus::isValidName('APPROVED') // true
75+
PostStatus::isValidValue(1) // true
76+
PostStatus::isValidValue('Approved') // false
77+
PostStatus::listData() // ['Pending', 'Approved', 'Rejected', 'Postponed']
78+
PostStatus::getLabel(1) // Approved
79+
PostStatus::getValueByName('Approved') // 1
7380
```

tests/EnumTest.php

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace yii2mod\enum\tests;
44

5-
use yii2mod\enum\tests\data\BooleanEnum;
5+
use yii2mod\enum\tests\data\PostStatus;
66

77
/**
88
* Class EnumTest
@@ -13,50 +13,50 @@ class EnumTest extends TestCase
1313
{
1414
public function testEnumMethods()
1515
{
16-
$this->assertEquals([1 => 'YES', 0 => 'NO'], BooleanEnum::getConstantsByValue());
17-
$this->assertEquals(['YES' => 1, 'NO' => 0], BooleanEnum::getConstantsByName());
18-
$this->assertEquals([1 => 'Yes', 0 => 'No'], BooleanEnum::listData());
19-
$this->assertEquals('Yes', BooleanEnum::getLabel(1));
20-
$this->assertEquals('1', BooleanEnum::getValueByName('Yes'));
16+
$this->assertEquals(['PENDING', 'APPROVED', 'REJECTED', 'POSTPONED'], PostStatus::getConstantsByValue());
17+
$this->assertEquals(['PENDING' => 0, 'APPROVED' => 1, 'REJECTED' => 2, 'POSTPONED' => 3], PostStatus::getConstantsByName());
18+
$this->assertEquals(['Pending', 'Approved', 'Rejected', 'Postponed'], PostStatus::listData());
19+
$this->assertEquals('Pending', PostStatus::getLabel(PostStatus::PENDING));
20+
$this->assertEquals(1, PostStatus::getValueByName('Approved'));
2121
}
2222

2323
public function testValidation()
2424
{
25-
$this->assertFalse(BooleanEnum::isValidName(1));
26-
$this->assertTrue(BooleanEnum::isValidName('YES'));
27-
$this->assertTrue(BooleanEnum::isValidValue(1));
28-
$this->assertFalse(BooleanEnum::isValidValue('YES'));
25+
$this->assertFalse(PostStatus::isValidName(1));
26+
$this->assertTrue(PostStatus::isValidName('APPROVED'));
27+
$this->assertTrue(PostStatus::isValidValue(1));
28+
$this->assertFalse(PostStatus::isValidValue('APPROVED'));
2929
}
3030

3131
public function testCreateByName()
3232
{
33-
$enum = BooleanEnum::createByName('YES');
33+
$enum = PostStatus::createByName('APPROVED');
3434

35-
$this->assertEquals(BooleanEnum::YES, $enum->getValue());
36-
$this->assertTrue(array_key_exists($enum->getName(), BooleanEnum::getConstantsByName()));
35+
$this->assertEquals(PostStatus::APPROVED, $enum->getValue());
36+
$this->assertTrue(array_key_exists($enum->getName(), PostStatus::getConstantsByName()));
3737
}
3838

3939
/**
4040
* @expectedException \UnexpectedValueException
4141
*/
4242
public function testFailedCreateByName()
4343
{
44-
BooleanEnum::createByName('not existing name');
44+
PostStatus::createByName('not existing name');
4545
}
4646

4747
public function testCreateByValue()
4848
{
49-
$enum = BooleanEnum::createByValue(BooleanEnum::YES);
49+
$enum = PostStatus::createByValue(PostStatus::APPROVED);
5050

51-
$this->assertEquals(BooleanEnum::YES, $enum->getValue());
52-
$this->assertTrue(array_key_exists($enum->getName(), BooleanEnum::getConstantsByName()));
51+
$this->assertEquals(PostStatus::APPROVED, $enum->getValue());
52+
$this->assertTrue(array_key_exists($enum->getName(), PostStatus::getConstantsByName()));
5353
}
5454

5555
/**
5656
* @expectedException \UnexpectedValueException
5757
*/
5858
public function testFailedCreateByValue()
5959
{
60-
BooleanEnum::createByValue('not existing value');
60+
PostStatus::createByValue('not existing value');
6161
}
6262
}

tests/data/BooleanEnum.php

Lines changed: 0 additions & 28 deletions
This file was deleted.

tests/data/PostStatus.php

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
namespace yii2mod\enum\tests\data;
4+
5+
use yii2mod\enum\helpers\BaseEnum;
6+
7+
/**
8+
* Class PostStatus
9+
*
10+
* @package yii2mod\enum\tests\data
11+
*/
12+
class PostStatus extends BaseEnum
13+
{
14+
const PENDING = 0;
15+
const APPROVED = 1;
16+
const REJECTED = 2;
17+
const POSTPONED = 3;
18+
19+
/**
20+
* @var array
21+
*/
22+
public static $list = [
23+
self::PENDING => 'Pending',
24+
self::APPROVED => 'Approved',
25+
self::REJECTED => 'Rejected',
26+
self::POSTPONED => 'Postponed',
27+
];
28+
}

0 commit comments

Comments
 (0)